Sume Timeline transitions: 6 types, 1 s cap and the 8-fade chain limit

Timeline 1.0 has fade, wipeleft, wiperight, slideup, slidedown and dissolve. Duration is capped at 1 s and half the shorter clip; 9 chained fades fail.

5 min readSume
All posts

Timeline 1.0 offers six transitions: fade, wipeleft, wiperight, slideup, slidedown and dissolve. A transition lasts at most one second and at most half of the shorter neighbouring clip. You cannot put one on the first slot, and more than eight adjacent fades fail with too_many_chained_transitions. Insert a hard cut to break the chain.

Where a transition goes

A transition sits on video[n].transition and joins that slot to the one before it. That is why video[0].transition is refused with transition_on_first_segment. The object is { "type": "fade", "duration": 0.25 }.

The compiler handles the overlap for you. Declared start values are authoritative: the compiler compensates for the cross-fade and never pre-shifts your starts. Write the starts as the story, not as the overlap.

The rules

The render costs $0.10 per ceil(output minute). A transition does not change the rate.

From docs.sume.com/models/timeline, read 2026-10-05
RuleValueError
Allowed typesfade, wipeleft, wiperight, slideup, slidedown, dissolverejected
Durationat most 1 s, at most 50% of the shorter neighbour, at least one output frametransition_too_long
Alignmentto the output frame ratetransition_not_frame_aligned
First slotno transitiontransition_on_first_segment
Chain lengthat most 8 adjacent transitionstoo_many_chained_transitions
Overlapstarts must increase; slots may not overlap past the cross-fadeinvalid_segment_timing, segment_overlap

A two-clip render with one fade

Both sources must already be media.sume.com files in your workspace, and Idempotency-Key is required. video[0].start must be 0, and later starts must increase.

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: timeline-fade-001" \
  -d '{
    "audio": {
      "url": "https://media.sume.com/artifacts/artf_demo/voice.wav",
      "duration_seconds": 24
    },
    "video": [
      { "source_url": "https://media.sume.com/artifacts/artf_demo/intro.mp4", "start": 0, "duration": 8 },
      { "source_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4", "start": 8, "duration": 16,
        "transition": { "type": "fade", "duration": 0.25 } }
    ]
  }'

Planning a long montage

A montage with many slots hits the chain cap before it hits anything else. The fix is editorial as well as technical: let some cuts stay hard. A run of eight fades in a row looks like a template, and the API treats it as a mistake.

Run POST /v1/timeline-1.0/plan first. It is unbilled, compiles the document, and returns duration_seconds, segment_count, billable_minutes and estimated_cost_usd_micros. It cannot predict padding or looping of short sources, and soft warnings such as snapped transitions are not failures.

Stills and motion

A still is a static hold. The job accepts a motion field on a still, ignores it, and reports motion_ignored. If you need movement, generate a clip instead and give the timeline the clip.

Related posts

More in Media tools

All Media tools posts

Written by Sume