Does Sume accept lowercase 4k as a video resolution? Yes

Since fab7d59af, lowercase 4k is an alias on every Sume video row that lists 4K, on both /v1/video-router/generate and /v1/videos.

4 min readSume
All posts

Yes. Since commit fab7d59af (#11356), lowercase 4k is accepted as an alias for 4K on every Sume video model whose catalog row lists 4K, on both POST /v1/video-router/generate and POST /v1/videos. On a row that does not list 4K, both spellings are still refused.

Why it was inconsistent

The commit message explains the split: the builders for the Tencent VOD rows already took 4k on /v1/videos, while the Video Router request rule refused it. The docs line in docs/api/video-router.md adds the reason for the spelling: Sume sends resolution 4K to fal as fal's own enum value 4k, so callers who copy fal examples write lowercase.

The fix is a shared alias table in apps/api/src/video-router/catalog.ts. SHARED_RESOLUTION_ALIASES maps 4k to 4K, and videoRouterResolutionAliases keeps an alias only for rows whose resolutions list the target. That filter is why the alias is not a general loosening.

Which public rows list 4K

Reading the catalog rows at that commit, two public rows list 4K. The docs table also lists Tencent VOD rows that carry 4K, but the docs say those appear only where the Tencent switch serves them, so check the models endpoint before you rely on them.

Public rows listing 4K, apps/api/src/video-router/catalog.ts at fab7d59af
Model idResolutions listedDurationDoes `4k` work?
minimax-h3480p, 768p, 2K, 4K5 to 15 sYes, alias of 4K
gemini-omni-flash-1.1360p, 720p, 1080p, 4K3 to 10 sYes, alias of 4K
seedance-2.5480p, 720p, 1080p4 to 30 sNo: 4K is not listed
minimax-h3-max480p, 768p, 1080p5 to 15 sNo: 4K is not listed

A request that uses it

The body below follows the shape in the Videos docs at docs.sume.com/models/videos; only resolution is the point here. Set SUME_API_KEY first.

curl https://api.sume.com/v1/videos \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-omni-flash-1.1",
    "prompt": "A paper boat crossing a puddle, macro lens",
    "resolution": "4k",
    "aspect_ratio": "16:9",
    "duration": 4
  }'

What it does not change

The alias does not make 4K reachable on a row that lacks it, and it does not rename the value you read back: the models endpoint lists 4K. Billing follows the listed tier, so a 4k request is priced as 4K. If your client compares strings, normalize to 4K on your side so a logged request and a catalog value match.

For the rows themselves, the pinned table is at docs.sume.com/models/video-router.

Related posts

More in Developers

All Developers posts

Written by Sume