Silent clip for your own music: sume/auto rejects audio off
sume/auto defaults to Gemini Omni Flash 1.1, where native audio is always on, so generate_audio false returns 400. Pin a model that offers silence.

If you send generate_audio: false with model: "sume/auto", Sume answers 400 unsupported_capability and submits nothing. Auto defaults to Gemini Omni Flash 1.1, where native audio is always on, and the docs say Sume never silently routes such a request elsewhere. To get a silent clip for your own music bed, name a catalog model whose generate_audio field allows it.
What auto promises
sume/auto is Sume-only. Its resolution is a pure function of the normalized request plus the catalog version. There is no load balancing and no A/B test, so an idempotent replay gets the same route and the same price. The default target for text, first and end frame, and reference requests is gemini-omni-flash-1.1.
The validation envelope is that model's. Duration is 3 to 10 seconds with a default of 8. Resolution is 360p, 720p, 1080p or 4K with a default of 720p. Aspect is 16:9 or 9:16.
Requests that fail closed
Unsupported constraints fail with 400 unsupported_capability and no provider submission. The docs list generate_audio: false, 2 or 11 seconds, and 480p or 768p as examples. The error names sume/auto, not the resolved model, and supported still lists the values the API accepts.
| Request on sume/auto | Result |
|---|---|
| generate_audio: false | 400 unsupported_capability |
| duration 2 or 11 | 400 unsupported_capability |
| resolution 480p or 768p | 400 unsupported_capability |
| Omit generate_audio, or send true | Accepted |
The fix
Read GET /v1/videos/models and look at each row's generate_audio value. Choose a model that supports a silent output, name it in model, and keep your music from the Music Router or your own file as the Timeline audio spine. The Music Router bills a fixed Music price per generation.
Do not fall back by catching the 400 and retrying on auto. The retry would fail again with the same message.
curl "https://api.sume.com/v1/videos/models" \
-H "Authorization: Bearer $SUME_API_KEY"Keep one policy in code
Decide per campaign whether the clip carries its own sound. If it does, use auto or Omni and leave generate_audio out. If the bed is yours, pin the model and render the final cut on Timeline with your track.
Sources
Related posts
More in Developers
- Captions fail on a silent Short with caption_no_speech: send cues
A silent clip has no speech to transcribe, so Sume's captions API returns caption_no_speech. Send cues with text, start and end to burn overlay text instead.
- Size a batch from generation_limits so no clip hits queue_full
Read accepted_generation_jobs_limit from a Sume submit response and slice your clips. A 50-clip batch leaves 2 for a later wave on Startup and 26 on Pro.
- Voice model updated in place with no API change: how to detect it
Nova 2 Sonic was refreshed in place in May with no API change. If a vendor can change your voice silently, log the model id and a canary clip. Sume code inside.
- spend_approval_queue_full 429: clear pending approvals, do not retry
A thread with too many pending spend approvals gets 429 spend_approval_queue_full. Resolve the pending ones first; a 503 store_misconfigured is for support.
Written by Sume