Models

Vertical 9:16 video generation API: aspect ratios by model

For vertical video, send aspect_ratio "9:16" to POST /v1/videos. Which Sume models support 9:16, 1:1, and 21:9, and why a pixel size returns 400.

4 min readSume
All posts

To generate vertical 9:16 video with the Sume API, send POST /v1/videos with aspect_ratio: "9:16" and a model that lists 9:16 in supported_aspect_ratios. Every video model in the catalog does, except grok-imagine-video-1.5, which takes no aspect_ratio. Pixel sizes do not work: size returns 400 unsupported_parameter.

The values come from the Video generation docs and the catalog behind GET /v1/videos/models, read on 2026-09-26.

Which aspect ratios does each video model support?

aspect_ratio takes 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3, 21:9, or 9:21, and each model advertises the subset it accepts. The descriptor lists only values you may send as aspect_ratio; a value outside a model's list is refused.

  • 9:16: every model except grok-imagine-video-1.5.
  • 1:1: Seedance 2.x, kling-3, wan-3.0, and the MiniMax H3 models.
  • 21:9: Seedance 2.x and the MiniMax H3 models.
  • 3:2, 2:3, and 9:21: no model in the catalog lists them.
supported_aspect_ratios per model, from the catalog behind GET /v1/videos/models and Video generation, read 2026-09-26. Confirm with GET /v1/videos/models before you submit.
Model idAspect ratios
seedance-2.5, seedance-2, seedance-2-fast, seedance-2-mini21:9, 16:9, 4:3, 1:1, 3:4, 9:16
kling-316:9, 9:16, 1:1
wan-3.016:9, 4:3, 1:1, 3:4, 9:16
minimax-h3, minimax-h3-max21:9, 16:9, 4:3, 1:1, 3:4, 9:16
gemini-omni-flash-1.116:9, 9:16
grok-imagine-video-1.5None: no aspect_ratio

How do I request a 9:16 clip?

Send aspect_ratio next to the resolution and duration you want. This moves the docs' vertical Video Router example (seedance-2.5, 720p, 12 seconds) to POST /v1/videos:

  • Each field is checked against its own list, so a model that lists 9:16 can still refuse a resolution or duration it does not offer.
  • The call returns 202 with a job id and a polling_url. Poll until status is completed, then download from unsigned_urls[0].
curl -X POST https://api.sume.com/v1/videos \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: vertical-001" \
  -d '{
    "model": "seedance-2.5",
    "prompt": "A vertical UGC-style product clip on a desk, natural light",
    "resolution": "720p",
    "duration": 12,
    "aspect_ratio": "9:16"
  }'

Why does size return 400?

size takes exact pixel dimensions in WIDTHxHEIGHT format, such as 1280x720. Every v1 model reports supported_sizes: null, so a size in that format returns 400 unsupported_parameter with the message “size is not supported in v1 — every model reports supported_sizes: null. Use resolution and aspect_ratio.”

Describe the frame with the two fields instead, for example resolution: "1080p" with aspect_ratio: "9:16" on a model that lists both. Resolutions per model are in 4K AI video generation API.

What happens if a model does not list my ratio?

POST /v1/videos refuses the request with a 400 and the error code unsupported_capability, for example “kling-3 does not support aspect_ratio 21:9.”, and the error details list the model's supported ratios. Because grok-imagine-video-1.5 lists none, leave the field out on that model.

Gemini Omni Flash 1.1 also rejects aspect_ratio in its edit mode, where you send a source clip as video_url; see Edit a video with a prompt.

Can I make an existing horizontal video vertical?

aspect_ratio shapes a new generation. To crop a clip you already have, the docs list video filter, which runs a dim, crop, or allowlisted pixel graph on one hosted clip and returns a new MP4. The steps are in Convert a horizontal video to vertical.

Sources

Related posts

Written by Sume