Product still on the top half of a Reel: Timeline compose stack

Timeline compose stacks one still and one video in a 1080x1920 shot for $0.02 flat: ratio 0.1 to 0.9, overlay position, and the 300-second ceiling.

5 min readSume
All posts

Sume's Timeline compose puts one still and one video on screen at the same time and returns one MP4, for a flat $0.02 per job. The stack operation tiles the two in a split of your choice, with the still's share set by ratio from 0.1 to 0.9; the default is a half-banner with the still on top at 0.5. Output is 1080x1920 unless you set it, which is the shape a Reel wants.

Stack or overlay

Required fields are operation (stack or overlay), image.url and video.url, all on your media host, plus an Idempotency-Key. Output length always comes from the video layer, capped at 300 seconds, and the still is held for the whole clip.

Compose layout keys (read 2026-10-03)
Keystackoverlay
splithorizontal or verticalnot allowed
image_regiontop, bottom, left or right (matching the split)not allowed
ratiostill share, 0.1 to 0.9not allowed
positionnot allowedtop, center or bottom
width_rationot allowed0.05 to 1 (default 0.9)
image_fit / video_fitcover, contain, stretchvideo_fit only

A request

The video audio passes through; a mute video is a warning (compose_video_has_no_audio), not a failure, and the Timeline spine supplies audio later.

import os, requests

r = requests.post(
    "https://api.sume.com/v1/timeline-1.0/compose",
    headers={
        "Authorization": "Bearer " + os.environ["SUME_API_KEY"],
        "Idempotency-Key": "compose-001",
    },
    json={
        "operation": "stack",
        "image": {"url": os.environ["STILL_URL"]},
        "video": {"url": os.environ["CLIP_URL"]},
        "layout": {"split": "horizontal", "image_region": "top", "ratio": 0.4},
        "output": {"width": 1080, "height": 1920},
    },
)
r.raise_for_status()
print(r.json().get("request_id"))

Place it in the Reel

Take video_url from the result and use it as a slot in Timeline 1.0 video[]. Setting compose output.width and output.height to the timeline's size avoids rescaling twice. Instagram's Reels guide (read 2026-10-03) suggests tutorials of 15 to 60 seconds, which fits a product still pinned above a demo clip.

What Sume does not do

Compose handles one still and one video. It does not animate the still, accept text, or stack more than two layers. A clip longer than 300 seconds has to be trimmed first.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume