Video aspect ratios by Sume row: Kling 3, Gemini, Wan 3.0, MiniMax H3
Which aspect_ratio values each Sume video row takes: kling-3 has three, Gemini two, Wan and MiniMax add adaptive, and MiniMax adds 21:9. From the catalog.

The accepted aspect_ratio values differ by row in Sume's Video Router catalog. kling-3 takes 16:9, 9:16 and 1:1. gemini-omni-flash-1.1 takes only 16:9 and 9:16, and its edit mode takes none. wan-3.0 adds auto and adaptive plus 4:3 and 3:4. The two MiniMax H3 rows list adaptive and 21:9 on top of the common set. A value outside a row's list is rejected, so check before you fan out a batch.
The lists
These come from the catalog rows read on 2026-10-04. Seedance and the other rows are not shown here; read them live with the models route.
| Id | Accepted aspect_ratio values |
|---|---|
kling-3 | 16:9, 9:16, 1:1 |
gemini-omni-flash-1.1 (text to video) | 16:9, 9:16 |
wan-3.0 | auto, adaptive, 16:9, 4:3, 1:1, 3:4, 9:16 |
minimax-h3 | adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 |
minimax-h3-max | adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 |
Practical consequences
Three things follow from the lists. Square clips are not available on the Gemini row, so a 1:1 feed post needs another id. Ultra-wide 21:9 is only a MiniMax H3 choice in this set. And adaptive lets the provider follow your input image shape, which is useful when your image set mixes orientations.
- Vertical 9:16 works on all five rows listed above.
- 1:1 works on kling-3, wan-3.0 and both MiniMax rows.
- 21:9 works on the MiniMax rows only.
Validate before submitting
A small guard in your own code saves a failed request. This reads the live list for one id and checks your value.
import asyncio
import os
import httpx
async def main() -> None:
headers = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
async with httpx.AsyncClient(headers=headers, timeout=30) as client:
r = await client.get("https://api.sume.com/v1/video-router/models/kling-3")
r.raise_for_status()
ratios = r.json()["data"]["model"]["capabilities"]["aspect_ratios"]
want = "21:9"
print(want, "ok" if want in ratios else f"not in {ratios}")
asyncio.run(main())Where to read more
The Video Router page documents the catalog and the model route. The Video generation page covers the /v1/videos route. Reserve and refund rules for a rejected request are on generation admission.
Sources
Related posts
More in Models
- MAI-Voice-2.1-Flash tops out at 45 seconds: what for longer?
MAI-Voice-2.1-Flash is reported at up to 45 s of audio and 150 ms latency. Longer lines need the standard model or a TTS taking 20,000 characters.
- Voxtral Mini Transcribe 2 and Realtime v26.02: what Mistral lists
Mistral lists Voxtral Mini Transcribe 2, Voxtral Realtime v26.02 and Voxtral TTS v26.03. How to prepare video audio for any transcription model.
- Wan 3.0 doubles clip length to 30 seconds: Alibaba ids vs Sume
Alibaba Model Studio lists wan3.0-video and wan3.0-video-prime at 2 to 30 seconds, up from 15 on Wan 2.7. What Sume's wan-3.0 accepts and a 30 s request.
- Wan 3.0 has no open weights: call it by API on Sume
llm-stats reports no open-weight Wan 3.0 and WAN 2.2 as the last open Wan release. Call the hosted wan-3.0 id on Sume through POST /v1/videos.
Written by Sume