Why adaptive and auto are missing from /v1/videos/models

Seedance and Wan list auto and adaptive aspect ratios in the Video Router catalog, but /v1/videos/models filters them out. Which models, and a script to see it.

5 min readSume
All posts

The /v1/videos/models descriptor reports supported_aspect_ratios filtered to the OpenRouter enum: 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3, 21:9 and 9:21. Sume-only values auto and adaptive are dropped from that list even though the Video Router catalog accepts them. If you see Seedance 2.5 with six ratios on one endpoint and eight on another, this is why.

Which models are affected

Four groups list auto or adaptive in the Video Router catalog; the compatibility view shows only their concrete ratios.

Aspect ratios per model in the Sume catalog; auto and adaptive are not shown on /v1/videos/models. Sume code, read 2026-10-04.
Model idRouter catalog ratiosOn /v1/videos/models
seedance-2.5 and seedance-2 familyauto, adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:1621:9, 16:9, 4:3, 1:1, 3:4, 9:16
wan-3.0auto, adaptive, 16:9, 4:3, 1:1, 3:4, 9:1616:9, 4:3, 1:1, 3:4, 9:16
minimax-h3, minimax-h3-maxadaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:1621:9, 16:9, 4:3, 1:1, 3:4, 9:16
kling-316:9, 9:16, 1:116:9, 9:16, 1:1

What the missing values do

adaptive and auto let the model choose a frame shape from the inputs instead of you naming one. They matter when you pass an image or video reference and want the output to follow its shape.

A client that built its UI from /v1/videos/models alone will never offer them. If you want those two options, read the Video Router catalog instead, as described in the Video Router docs.

Which endpoint to read

Use /v1/videos/models if you want OpenRouter-compatible descriptors and a stable shape. Use /v1/video-router/models if you want Sume-specific capabilities and constraints. Both are documented under Video Generation.

This script prints what the compatibility endpoint reports, which will never include adaptive or auto.

import os
import requests

resp = requests.get(
    "https://api.sume.com/v1/videos/models",
    headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
    timeout=30,
)
resp.raise_for_status()
for m in resp.json()["data"]:
    ratios = m["supported_aspect_ratios"]
    print(m["id"], ratios)
    assert "adaptive" not in ratios and "auto" not in ratios

Sources

Related posts

More in Developers

All Developers posts

Written by Sume