OpenRouter video lists 4-8 second clips; Sume model ranges run 2-30s

OpenRouter's video guide shows typical 4-8 second durations. Sume validates duration per model, from 2-30s on Wan 3.0 to 3-10s on Omni 1.1. See the table.

5 min readSume
All posts

A request that works on OpenRouter's video API can fail with a 400 on Sume for a reason that has nothing to do with the endpoint: the duration. OpenRouter's video guide, read 2026-10-05, lists models such as Veo 3.1, Wan 2.7 and Hailuo 3 with typical durations of 4 to 8 seconds. Sume's /v1/videos surface copies the OpenRouter wire format, but it validates duration against each model's own catalog entry, and the ranges differ a lot.

Sume validates; it does not silently clip

The Sume catalog descriptor lists supported_durations, supported_resolutions and supported_aspect_ratios per model. If a value is not advertised, the request fails with 400 rather than being dropped or rounded. That is good for cost control and a surprise for migrating code that sends one default (say 8 seconds) to every model.

Duration ranges for Sume Video Router models, from Sume docs (read 2026-10-05)
Sume model idDurationNotes
seedance-2.54-30s480p, 720p, 1080p
seedance-24-15s480p, 720p, 1080p
kling-34-15s720p, 1080p
wan-3.02-30sAudio; 480p, 720p, 1080p
minimax-h3-max5-15sNative stereo audio
gemini-omni-flash-1.13-10sDefault for sume/auto; 8s default
h3-max-recast5-30sEquals the source video length

How duration changes the clip count

Planning a 30-second spot shows why this matters. With 8-second clips you need four generations (30 / 8 = 3.75, rounded up) and three or more cuts to stitch. With a 15-second ceiling you need two. With wan-3.0 or seedance-2.5 you can ask for the full 30 seconds in one job, at the price of one long render that is harder to retry on a single bad second. Cost per second does not change with the count, but retries, reference consistency and edit points do.

Remember the guardrails on the default route. sume/auto resolves to Omni 1.1, with a 3-10 second range and an 8-second default, and generate_audio: false fails there. Passing a 12-second duration to sume/auto is a 400 unsupported_capability, and the error names sume/auto, not the resolved model.

  • Read supported_durations from GET /v1/videos/models before you hard-code a default.
  • Branch your duration per model id in the client, not one global setting.
  • For lengths above 15 seconds, check whether one long job or several stitched clips fits your retry budget.

A quick migration test

Send the shortest and the longest duration you plan to use to each model id in a dry staging run, and assert on the error code. It takes minutes and prevents a nightly batch from failing on item 1 because someone copied an OpenRouter example that assumed 4 to 8 seconds.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume