Holiday lookbook video from stills: timeline fades at $0.10 a minute
Build a gift-guide lookbook from product stills with Sume Timeline 1.0: fades up to 1 s, a 1080x1920 default, $0.10 per output minute. Limits and refusals.

A holiday lookbook from stills is one Timeline 1.0 request: a list of hosted images with start times on one audio spine, optional fades between them, and a default 1080 by 1920 MP4 output. The public rate is $0.10 per ceil(output minute), so a 45 second lookbook costs $0.10 and a 90 second one costs $0.20. Stills are static holds: the job accepts a motion field on a still, ignores it and reports motion_ignored, so do not plan on a camera move.
Run the unbilled POST /v1/timeline-1.0/plan first. It compiles your program as a preflight and refuses bad timing before you pay.
Shape of the program
You declare audio.duration_seconds (1 to 1800) and either a hosted audio.url, audio.parts[] or audio.mode: silence. Each video[] entry has a source_url, a start on the spine and a duration of at least 0.2 seconds. The first start must be 0 and later starts must increase. Coverage can stop at most 0.5 seconds before the end of the spine.
| Field | Rule |
|---|---|
| video[0].start | Must be 0 |
| video[].duration | At least 0.2 s |
| transition.type | fade, wipeleft, wiperight, slideup, slidedown, dissolve |
| transition duration | At most 1 s and 50% of the shorter neighbor |
| Chained fades | More than 8 adjacent is refused |
| Default output | 1080x1920 MP4 |
Segments and chunking
With render.strategy left on auto, Sume chunks the render past 12 segments. If you force single above 12 slots, it refuses with render_strategy_unsafe. A 24-look lookbook is therefore a 24-segment auto render, not a single pass. Plan roughly one look every 2 to 3 seconds for a gift guide, so 15 looks fit a 45 second spine with a little time for the closing card.
curl -X POST https://api.sume.com/v1/timeline-1.0/plan \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audio": {"mode": "silence", "duration_seconds": 6},
"video": [
{"source_url": "https://media.sume.com/artifacts/a/look1.jpg", "start": 0, "duration": 3},
{"source_url": "https://media.sume.com/artifacts/a/look2.jpg", "start": 3, "duration": 3,
"transition": {"type": "fade", "duration": 0.5}}
]
}'Check the output
Submit the real render with an Idempotency-Key, poll GET /v1/jobs/:id/status and read /result, which returns video_url, duration_seconds, segment_count, billable_minutes and any soft warnings[]. Soft warnings, like padded or looped short sources, are not failures; read them anyway.
Run a frame check of the first still, a mid transition and the end card, because a fade that is too long can wash out a price card.
- Plan first, render second.
- Use fade, at most 1 s, and a hard cut after 8 chained fades.
- Confirm the live rate in GET /v1/catalog.
A worked 45 second lookbook
Take 15 gift ideas, each held for 3 seconds: 15 x 3 = 45 seconds, which fits a 45 second spine exactly. Start times run 0, 3, 6 and so on to 42. Put a 0.5 second fade on every slot after the first; the docs cap a fade at 1 second and at half the shorter neighbor, so a 3 second slot can carry a fade up to 1 second, and 0.5 is a safe, quiet value. Fifteen slots is over the 12-segment threshold, so the render chunks under auto, and that is expected.
For the spine, use a hosted music file with a declared duration, or audio.mode: silence and add a soundtrack bed separately. The output is one MP4: 45 seconds bills one minute, $0.10. If you later stretch the spine to 61 seconds to fit a closing card, that bills two, $0.20, so decide the length with the price in mind.
Finish with a lookbook check. Confirm each still is a hosted artifact, since the job reads Sume-hosted media only. Confirm each slot's duration is at least 0.2 seconds. Read segment_count in the result: it should equal your slot count, and a different number means your program was not what you meant.
Related posts
More in Use cases
- A 15-second home-anniversary video for past clients from one avatar
Send past buyers a short personal video each year. One $0.95 avatar and a 15-second script cost $2.76 on standard or $3.68 on plus per video.
- Home renovation before and after video: start and end frame
Make a renovation reveal clip from two photos: send the before as image_url and the after as end_image_url to Gemini Omni Flash 1.1, 3 to 10 seconds.
- Hotel guest welcome video: an avatar in your lobby photo, 8 properties
Make a 25-second welcome video per property with a Sume avatar and a lobby photo as the scene: eight properties cost $36.80 on Standard. Script and request.
- 'How this ad was made' in My Ad Center: what viewers see about AI ads
Assets you mark as AI created or edited get a disclosure in My Ad Center's 'How this ad was made' panel worldwide. Where it shows, and where overlays join.
Written by Sume