Fade out the end of a Short: Timeline fade_out_seconds limits
Sume Timeline fades video and audio at the ends with output.fade_in_seconds and fade_out_seconds, 0 to 5 each, summing to at most the length. Setup for Shorts.

Set output.fade_in_seconds and output.fade_out_seconds to fade a Timeline render at its ends. Each is 0 to 5 seconds, and their sum must not exceed the output length. Separately, soundtrack.fade_out_seconds fades a music bed and goes up to 10 seconds. Read from the Timeline docs on 2026-10-06.
Which fade does what?
| Field | Range | Applies to |
|---|---|---|
| output.fade_in_seconds | 0 to 5 | Start of the render |
| output.fade_out_seconds | 0 to 5 | End of the render |
| soundtrack.fade_out_seconds | 0 to 10 | The music bed only |
What fade suits a Short?
Short-form loops and quick cuts rarely want a long fade. A half-second fade-out stops the clip from ending abruptly, while a fade-in competes with the first frame that viewers judge in the first second. Leave fade_in_seconds at 0 for a hook and use a 0.5 to 1 second fade_out_seconds; pair it with a 1 to 2 second bed fade so the music does not outlast the picture.
{
"audio": {"url": "https://media.sume.com/artifacts/artf_demo/vo.wav", "duration_seconds": 40},
"video": [{"source_url": "https://media.sume.com/artifacts/artf_demo/b.mp4",
"start": 0, "duration": 40}],
"output": {"fade_out_seconds": 0.8},
"soundtrack": {"url": "https://media.sume.com/artifacts/artf_demo/bed.mp3", "fade_out_seconds": 1.5}
}Do fades change the length?
No. The output stays at the declared audio.duration_seconds; a fade is applied inside it. Use the unbilled plan call to confirm the length.
Sources
Related posts
More in Developers
- Verify a Sume webhook signature in Perl with Digest::SHA
A tested Perl verifier for the Sume x-sume-webhook-signature header using Digest::SHA, an XOR compare, the 300 s window and an empty-secret refusal.
- Pin the image model id on the queue row so a swap can't break old jobs
Store the Sume model id on each queued render row at enqueue time, then re-point only rows still carrying a retired id. Python sqlite3 sample for gpt-image-1.
- Polling a Sume job for 20 minutes: 600 fixed reads or 44 backed off
Counting reads for a 20-minute Sume job poll: fixed 2 s versus a 1 s schedule doubling to 30 s. Arithmetic you can run, and why the server hint still wins.
- Poll Sume status in a loop, read the full job once at the end
Poll the lightweight status for progress and read GET /v1/jobs/{id} once at a terminal state to get the error. What next_action tells you and the 409 on result.
Written by Sume