Cyber Monday half-banner: price card over a clip, compose stack
Stack a Sume-hosted price card above a product clip in one vertical shot with Timeline compose, at a flat $0.02 per job, then drop it into a Timeline.

Stack, not overlay
For a half-banner, call POST /v1/timeline-1.0/compose with operation: "stack", one still and one video. stack tiles two regions of one frame; the defaults are horizontal, still on top, ratio 0.5. Use overlay if the card should sit on top of the video instead. Cyber Monday 2026 is Monday, November 30.
The HTTP field for stack versus overlay is operation, not mode; mode is the async or sync communication option. Both media URLs must already be your workspace's media.sume.com artifacts or assets.
Request
curl -sS -X POST https://api.sume.com/v1/timeline-1.0/compose \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: cm-banner-001" \
-d '{
"operation": "stack",
"image": { "url": "https://media.sume.com/artifacts/artf_demo/price-card.png" },
"video": { "url": "https://media.sume.com/artifacts/artf_demo/product-clip.mp4" },
"layout": { "split": "horizontal", "image_region": "top", "ratio": 0.3 },
"output": { "width": 720, "height": 1280, "fps": 25 }
}'Layout keys
ratio is the still's share of the frame, from 0.1 to 0.9, and the video takes the exact remainder. The still is held for the whole clip and cannot lengthen it; the output length always comes from the video layer, to a ceiling of 300 seconds.
| Key | stack | overlay |
|---|---|---|
| split | horizontal or vertical | not allowed |
| image_region | top or bottom (horizontal); left or right (vertical) | not allowed |
| position | not allowed | top, center or bottom |
| width_ratio | not allowed | 0.05 to 1 of width, default 0.9 |
Errors and audio
Mixing stack and overlay keys returns 400 (compose_stack_takes_no_overlay_layout or compose_overlay_takes_no_stack_layout), and compose_image_region_wrong_axis fires when a region does not match the split. A mute video is a warning, not a failure. Set output.width and height to the timeline you will assemble into so the shot is not rescaled twice.
Sources
Related posts
More in Media tools
- Demand Gen video under 10 seconds: no in-stream; upload 1 to 5 videos
Demand Gen needs 5 seconds minimum, but videos under 10 seconds can't serve on YouTube in-stream. Upload 1 to 5 per ad; crop a 9:16 master on Sume.
- Demucs is archived: still use it to split a song into stems?
Demucs was archived on January 1, 2025 but is MIT-licensed and still splits drums, bass, vocals and other. How to feed it a track from Sume audio detach.
- Descript AI music and sound effects vs generating music by API
Descript's 2026-09-17 update generates music and sound effects on request. Sume's Music Router generates music from a prompt; it has no sound-effect route.
- Descript's ElevenLabs voice library vs Sume TTS voices
Descript's voice picker now uses the ElevenLabs voice library. Sume text-to-speech uses its own voices, and blocks a voice-language mismatch with a 409.
Written by Sume