Put music under Gemini Omni's native audio: detach, spine, duck
Omni clips always carry native audio on Sume. Detach it to a wav, use it as the Timeline spine, add a music soundtrack with duck_db. Calls and limits.

Gemini Omni Flash 1.1 on Sume always returns native synced audio, and you cannot turn it off. To lay music under that sound, detach the clip's audio to a wav with audio-detach, pass the wav as the audio.url spine of a Timeline 1.0 render, and add a soundtrack with duck_db so the music dips when the clip's sound is present.
Why does the spine matter?
The Timeline docs describe the audio spine as the output's audio and its length. The soundtrack is an optional bed on top, with gain_db, loop, fade_out_seconds up to 10 and duck_db from 0 to 20. The docs state that duck_db needs a real spine and not silence, and the refusal is duck_requires_audio_spine.
That is the whole reason to detach. If you put the Omni clip in video[] with a silent spine, the music has nothing to duck under, and the clip's own audio is not carried over. The Video Router page says Omni's audio is always on and generate_audio: false is rejected, so a clip with sound is what you start from.
Step 1: detach the clip's audio
Audio detach takes a media.sume.com video and returns a new audio artifact, wav by default. The public rate is $0.01 per job. A clip with no audio track fails with detach_source_has_no_audio; Omni clips should have one, but check probe.has_audio with a probe-only video inspect if you are unsure.
curl -X POST https://api.sume.com/v1/audio-detach \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: detach-omni-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/omni-clip.mp4",
"mode": "sync"
}'Step 2: render with a ducked music bed
Read audio_url and duration_seconds from the detach result, then render. Here a 10-second Omni clip is the only video slot, the wav is the spine, and a music file sits under it at lower gain with a 2-second fade-out. Output width and height are set to keep a 16:9 clip landscape, because the default output is 1080 by 1920.
Pick duck_db by ear in the 0 to 20 range; there is no documented perfect value. The soundtrack.url must be a Sume-hosted file.
curl -X POST https://api.sume.com/v1/timeline-1.0/render \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: omni-music-001" \
-d '{
"audio": { "url": "https://media.sume.com/artifacts/artf_demo/omni-clip-audio.wav", "duration_seconds": 10 },
"video": [ { "source_url": "https://media.sume.com/artifacts/artf_demo/omni-clip.mp4", "start": 0, "duration": 10 } ],
"soundtrack": { "url": "https://media.sume.com/artifacts/artf_demo/bed.mp3", "gain_db": -12, "duck_db": 8, "fade_out_seconds": 2 },
"output": { "width": 1920, "height": 1080 }
}'What are the limits?
Timeline bills $0.10 per ceil output minute, so a 10-second render costs one minute's rate, and audio detach adds a cent. Together that is cheap next to the clip itself. Sume does not clean the clip's audio, remix its dialogue, or generate the music in this call; for a bed you can generate one with the music tools and import it first.
Omni clips run at 24 fps per Google's description in the 24 fps notes; if you leave output.fps off, Timeline renders at the rate the sources already run at. See Jobs and results to wait for both jobs.
Sources
Related posts
More in Media tools
- Burning Korean captions: why a Latin style returns a 400 on Sume
Sume's slam, punch and tiktok-green styles have no Hangul glyphs, so Korean copy on them fails with a 400. Which style to pick and what a $0.20 caption costs.
- Lip Sync or Native Audio for a Talking Shot: Which Sume Route
Sume's docs say video models do not lip-sync to TTS. Compare Fabric, H3 Max lip sync, Avatar Video and Kling native lip sync for a speaking shot.
- Short clip in Timeline: when does it loop and when does it freeze?
render.pad_mode auto loops a short source only when the shortfall is over 0.25 s and the clip is at least 0.5 s long. Otherwise it holds the last frame.
- Luma Ray3.2 length by frame rate (24/30/60 fps) and Sume's fps
Luma lists Modify Video at 20 s for 24 fps, 15 s for 30 fps and 7 s for 60 fps. Sume's video-trim and timeline tools output 24, 25, 30 or 60 fps.
Written by Sume