Seedance aspect ratios on Sume: 3:2 and 9:21 are not on every model

Sume accepts nine aspect ratios in total, but each video model lists its own subset. Check supported_aspect_ratios before you request 3:2 or 9:21.

5 min readSume
All posts

Sume documents nine video aspect ratios, from 16:9 to 9:21, but a model only accepts the subset it advertises in supported_aspect_ratios. The sample catalog entry for seedance-2 in the docs lists 21:9, 16:9, 4:3, 1:1, 3:4 and 9:16, which does not include 3:2, 2:3 or 9:21.

This is a common source of 400 errors in batch jobs: a spreadsheet column holds a ratio that is valid in the global vocabulary, the first rows succeed on one model, and later rows fail on another.

Which ratios exist at all?

The docs list nine values and say each model advertises its own subset.

Aspect ratios named in Sume docs (read 2026-10-02)
RatioDescription in the docsIn the seedance-2 sample entry?
16:9Widescreen landscapeYes
9:16Vertical/portraitYes
1:1SquareYes
4:3Standard landscapeYes
3:4Standard portraitYes
21:9Ultra-wideYes
3:2Photography landscapeNo
2:3Photography portraitNo
9:21Ultra-tallNo

Why does the sample entry matter?

The docs sample is an example response, so confirm against the live endpoint. But it shows the pattern: a broad global vocabulary, a narrower per-model list. Sending a ratio the model does not list is a request error, not a silent crop.

Gemini Omni Flash 1.1 is narrower still, at 16:9 or 9:16 only, per the Video Router docs.

Two habits prevent most of the trouble. Keep the model list cached for the length of a batch, since the catalog does not change mid-run, and validate every row against it before you submit anything. A failed request is cheap, but a half-finished batch with a mix of ratios is annoying to untangle.

Also remember that a ratio is only one of three things that must line up. Resolution and duration have their own lists per model, so a request can be fine on the ratio and still fail on a clip length. The docs state limits are not uniform across models; for example seedance-2.5 accepts 4 to 30 seconds while most other catalog models top out at 15.

How do I check before I submit?

Fetch the model list and test membership in code. This runs as written once SUME_API_KEY is set.

The snippet prints one line per model. Extend it to check your actual request: compare your ratio, your resolution and your duration against supported_aspect_ratios, supported_resolutions and supported_durations, and skip any model that fails. Doing that once at the start of a job is a few lines and removes a class of error.

import os, requests

r = requests.get(
    "https://api.sume.com/v1/videos/models",
    headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
    timeout=30,
)
r.raise_for_status()
for m in r.json()["data"]:
    ratios = m.get("supported_aspect_ratios") or []
    ok = "3:2" in ratios
    print(m["id"], "3:2" if ok else "no 3:2")

What if the ratio I need is missing?

Pick the nearest listed ratio and reframe afterwards, or choose a model that lists it. A photography 3:2 frame can usually be served by 4:3 plus a crop in your editor; that is a judgment call, not a Sume feature. If you use sume/auto, remember its create controls are 16:9 or 9:16 only; see which model to pin.

If you work from a design brief that names a ratio such as 3:2, ask whether the delivery channel really requires it. Most social and ad placements are 9:16, 1:1 or 16:9, all of which the Seedance sample entry lists.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume