Timeline output size for 21:9 and 16:9 clips: default is 1080x1920
Sume Timeline renders 1080x1920 portrait unless you set output.width and height: even integers, 256 to 2160. Sizes that work for 21:9 and 16:9 AI clips.

If you join widescreen AI clips with Sume Timeline and set nothing, you get a 1080 x 1920 portrait MP4, so a 16:9 or 21:9 clip is cropped to fill a vertical frame. Set output.width and output.height yourself, as even integers between 256 and 2160. For a 21:9 cut use 1920 x 822, or 2160 x 926 for the largest allowed canvas.
This matters more this month because Kling 4.0 adds 21:9 (the fal explainer, read 2026-10-05) and long clips come in many ratios. Whatever model made the shots, the Timeline canvas is a separate choice.
What the docs set
The Timeline docs say the default output is 1080 x 1920, and that output.width and output.height must be even integers from 256 to 2160. Each slot's fit field decides what happens when a clip does not match the canvas: cover (the default) fills and crops, contain letterboxes, stretch distorts, and blur fills the bars with a blurred copy.
Because the upper limit is 2160 on both edges, the widest canvas you can ask for is 2160 wide. A Seedance 2.5 clip at 1080p 21:9 is 2205 x 945, which is wider and has an odd height, so it will not fit as a canvas; it is scaled to your canvas instead.
Canvas sizes for common ratios
| Target | Width x height | Allowed | Note |
|---|---|---|---|
| 16:9 HD | 1920x1080 | Yes | exact ratio |
| 16:9 720p | 1280x720 | Yes | exact ratio |
| 21:9 wide | 1920x822 | Yes | 822 is even, ratio 2.336 |
| 21:9 largest | 2160x926 | Yes | 926 is even, ratio 2.333 |
| 21:9 as Seedance 720p | 1470x630 | Yes | matches the clip size |
| 21:9 as Seedance 1080p | 2205x945 | No | over 2160 and odd height |
| Default | 1080x1920 | Yes | vertical 9:16 |
Fit, cover and transitions
Fit matters as much as size. If you leave a 21:9 clip on the default portrait canvas, cover crops it to a narrow slice from the middle of the frame, which usually cuts off the subject. On a landscape canvas, a 16:9 clip inside a 21:9 canvas under cover loses the top and bottom, so use contain or blur when the edges carry content such as titles.
Transitions follow the same rules whatever the canvas. A fade must be at most one second and at most half the shorter neighbouring slot, and more than eight chained fades are refused with too_many_chained_transitions. Past 12 slots, the default auto strategy renders in chunks.
Choosing a size, then planning
Match the canvas to the clips where you can. Seedance 2.5 at 720p 21:9 makes 1470 x 630 clips, and a canvas of the same size avoids any scaling. For 1080p 21:9 clips, pick 2160 x 926, which scales the clips down by about two percent and, with cover, trims a hair of the frame.
A Timeline render costs $0.10 per output minute, rounded up, and the plan endpoint is unbilled. Run /plan first: it validates the schema and URLs and returns billable_minutes and estimated_cost_usd_micros without a job or a reserve.
Check a size, then build the field
This script checks a size against the rule and builds the output object for a render. It prints the result and does not call the API.
def valid_edge(n):
return n % 2 == 0 and 256 <= n <= 2160
def output_for(width, height, fps=None):
if not (valid_edge(width) and valid_edge(height)):
raise ValueError(f"{width}x{height} breaks the even 256-2160 rule")
out = {"width": width, "height": height}
if fps:
out["fps"] = fps
return out
print(output_for(1920, 822))
print(output_for(2160, 926, fps=24))
try:
output_for(2205, 945)
except ValueError as e:
print("refused:", e)Putting it in the render
Send the object as output in the render body next to audio and video[], and set fps only if you want to override the source rate; leaving it out matches the sources, which avoids the judder warning output_fps_resamples_sources. Every source URL must already be a Sume-hosted artifact, and render needs an Idempotency-Key. For a quick 21:9 crop of a single 16:9 clip, a one-op video filter is cheaper than a render: it costs $0.02 per encode, and its free /check endpoint validates the operation first. Import any outside file with POST /v1/media-imports before you reference it, because Timeline refuses URLs that are not in your workspace. A three-shot, 30 second cut is one billable minute, so the render itself is $0.10 whatever the canvas size. Larger canvases cost the same as smaller ones; only the output minutes are billed.
Sources
Related posts
More in Media tools
- Timeline slot under 0.2 s refused: fast-cut hooks for Shorts in Sume
Sume Timeline 1.0 needs every video slot duration to be at least 0.2 s. Merge sub-0.2 s flashes into a neighbor, or hold a still.
- Trim an AI clip's slow intro for a Short: keyframe cut or exact cut?
Sume video-trim has two precisions: exact re-encodes to the frame, keyframe is a stream copy that can start a GOP early. Which one to use before a Short.
- Trim an HDR clip: why precision keyframe works and exact does not
Sume video trim refuses HDR sources on the exact re-encode but copies them on keyframe. What each mode keeps, and how to cut an HDR clip without flattening it.
- Trim or filter on a PNG or audio file: the not-a-video refusal
Sume video trim and video filter refuse a still image or a file with no video stream. The reason codes, the probe fields that predict them, and the right tool.
Written by Sume