"1080p is not supported by model": which Sume video ids take 1080p
Sume refuses 1080p on rows outside its allowlist, even kling-3 whose catalog lists it. Which ids accept 1080p, which do not, and a client fallback.

The error 1080p is not supported by model X means the Video Router row you pinned does not offer 1080p. On Sume the rows that accept resolution: "1080p" at submit time are seedance-2, seedance-2.5, wan-3.0, minimax-h3-max and gemini-omni-flash-1.1. Everything else is refused before any money is held, so the fix is to change the id or lower the resolution.
Note that kling-3 is the one that surprises people, because its catalog row lists 1080p.
The allowlist, row by row
The validator uses an allowlist for 1080p rather than the resolutions array shown in the catalog. Sume keeps this historical allowlist separate from the catalog array, which still advertises 1080p on some rows (kling-3, seedance-2-mini, seedance-2-fast), so an id can list 1080p and still refuse it. When a request is refused, trust the error text and re-read the row.
| Catalog id | 1080p at submit | Other resolutions |
|---|---|---|
seedance-2, seedance-2.5 | yes | 480p, 720p |
wan-3.0 | yes | 480p, 720p |
minimax-h3-max | yes (latent refinement from native 768p) | 480p, 768p |
gemini-omni-flash-1.1 | yes | 360p, 720p, 4K |
minimax-h3 | no | 480p, 768p |
kling-3 | no, despite 1080p in its catalog row | 720p |
grok-imagine-video-1.5 | no | 480p, 720p |
How to read the error
The message names the model. Your first move is the catalog, not a retry. A retry with the same body gets the same 400, and nothing is reserved on a failed validation, so you lose time but not money.
1080p is not supported by model minimax-h3: useminimax-h3-max, or stay at 768p.360p is not supported by model X: onlygemini-omni-flash-1.1generates 360p.768p is not supported by model X: 768p exists only on the two MiniMax rows.
A fallback in client code
If your pipeline asks for 1080p first and lowers when refused, put the fallback in one place. This sketch tries 1080p on a model that may refuse it, then falls back to 768p on the MiniMax rows.
import os
import requests
URL = "https://api.sume.com/v1/video-router/generate"
HEAD = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
def submit(model, resolution, key):
body = {"model": model, "prompt": "A product turntable, soft light",
"resolution": resolution, "duration": 6, "mode": "async"}
return requests.post(URL, json=body, timeout=60,
headers={**HEAD, "Idempotency-Key": key})
r = submit("minimax-h3", "1080p", "res-try-1080")
if r.status_code == 400:
r = submit("minimax-h3", "768p", "res-try-768")
print(r.status_code)Where to read more
The Video Router page lists resolutions per model, and it tells you to read capabilities from GET /v1/video-router/models rather than assume one envelope. Use a distinct Idempotency-Key per attempt, as above, because a replayed key returns the original job. The API reference has the full error list.
Sources
Related posts
More in Developers
- 19-second AI video with references: Wan 3.0 limits on Sume
A 19 s reference-to-video job on Wan 3.0 allows 10 images, 5 videos and 5 audio clips, with video and audio each capped at 15 s total. Price for 19 s.
- 22-second AI video from a first and last frame on Sume
A 22 s clip that must land on a given last frame can use Wan 3.0 or Seedance 2.5 on Sume, the two end-frame models that run past 15 s.
- 23-second AI video with audio references on Wan 3.0 and Seedance
Audio references are accepted by Wan 3.0 (up to 5 clips, 15 s total) and Seedance 2.5. A 23 s clip price on Wan and the rules for audio inputs.
- 502 from the Sume Images API: read code, next_action and status_url
A 502 on POST /v1/images is a failed job, not an outage. Parse error.code, retryable and next_action, then fetch status_url for the job. Python handler.
Written by Sume