4:5 AI video for Instagram: generate 3:4, then crop with video-filter
No Sume video model lists 4:5. Generate 3:4 on Wan 3.0, H3 or H3 Max, then crop the height to 93.75% with the video-filter crop op. Price and steps.

None of the Video Router models lists a 4:5 aspect ratio, so you cannot ask for it directly. The route that works is to generate at 3:4, which Wan 3.0, MiniMax H3 and H3 Max all list, and crop the result to 4:5 with Sume's video filter. A 3:4 frame keeps all of its width and loses 6.25% of its height, so the crop is height: 0.9375 centred, and the encode costs $0.02.
Kling 3 lists only 16:9, 9:16 and 1:1, and Gemini Omni Flash 1.1 lists only 16:9 and 9:16, so neither can reach 4:5 this way without a larger crop.
Which models can start from 3:4?
The catalog's aspect_ratios field is the source. Read it from GET /v1/video-router/models before you submit, because the sets differ per model.
| Model id | Lists 3:4 | Lists 4:5 | Other ratios |
|---|---|---|---|
| wan-3.0 | yes | no | auto, adaptive, 16:9, 4:3, 1:1, 9:16 |
| minimax-h3 | yes | no | adaptive, 21:9, 16:9, 4:3, 1:1, 9:16 |
| minimax-h3-max | yes | no | adaptive, 21:9, 16:9, 4:3, 1:1, 9:16 |
| kling-3 | no | no | 16:9, 9:16, 1:1 |
| gemini-omni-flash-1.1 | no | no | 16:9, 9:16 |
How big is the crop?
The filter's crop op takes a rectangle as fractions of the source frame: x and y between 0 and 1, width and height between 0.05 and 1, with x + width and y + height each at most 1. The compiler rounds to even pixel sizes for yuv420p. Starting from 3:4, 4:5 is wider by a factor of (4/5) / (3/4) = 16/15, so you keep full width and cut the height to 15/16, which is 0.9375. Centred, y is 0.03125. The snippet below computes it, and prints the op you paste into the request.
def crop_3_4_to_4_5():
# A 3:4 frame is 3 wide by 4 tall. Keep the full width,
# then the height that makes the frame 4:5.
width_units, height_units = 3, 4
keep_h = width_units * 5 / 4 # 3.75 units tall
height = keep_h / height_units # fraction of source height
y = (1 - height) / 2 # centred
return {"op": "crop", "x": 0, "y": round(y, 5),
"width": 1, "height": round(height, 5)}
op = crop_3_4_to_4_5()
assert op["y"] + op["height"] <= 1
print(op)What does the request look like?
Video filter takes one clip hosted on your workspace's media.sume.com, so the generated clip must already be an artifact there. It requires an Idempotency-Key, defaults to async, and accepts mode: "sync" to wait up to 30 seconds. The same program can be checked first with POST /v1/video-filter/check, which is free, creates no job and reserves nothing.
The body is {"video_url": "https://media.sume.com/artifacts/artf_demo/clip.mp4", "ops": [{"op": "crop", "x": 0, "y": 0.03125, "width": 1, "height": 0.9375}]}. The result is a new MP4 with a new artifact id; the source stays untouched.
What if I only have a 9:16 clip?
The same arithmetic gives a bigger loss. A 9:16 frame is 9 units wide and 16 tall, and a 4:5 frame at that width is 11.25 units tall, so you keep full width and 11.25 / 16 = 0.703125 of the height, which loses about 30% of the picture. That is a hard crop for a clip framed for vertical video, because heads and captions near the top or bottom will be cut.
The benefit of generating at 3:4 is that the loss is only 6.25% of the height. A tall, centred subject, such as a product on a table or a person at a desk, survives it easily. Anything with text near the top or bottom edge does not, so add captions after the crop rather than before it.
If you also need the 9:16 version, generate once at 3:4 and crop once for 4:5, or generate a 9:16 clip separately on a model that lists that ratio. The filter's check endpoint validates a program without creating a job, so you can try both crops for free before paying for either.
What does the whole route cost?
A 5-second Wan 3.0 clip at 720p is $0.63 on Sume, and the crop adds $0.02, so $0.65 in total. The same clip on H3 Max at 768p is $0.50 plus $0.02. Generating at the higher resolution first leaves more pixels after the crop, but pays for them: the same Wan clip at 1080p is $1.25.
Check one thing before you ship: a crop removes picture. If the model placed a caption or a face near the top or bottom edge, 6.25% of the height is enough to clip it, so keep important content centred in the prompt.
Sources
Related posts
More in Media tools
- Instagram auto captions vs burned-in captions: when to burn them in
Instagram says captions are worth including even with text overlays. When to rely on its auto captions and when to burn captions in with Sume video captions.
- Reels music vs original audio balance: set duck_db in a Sume timeline
Instagram lets you trim a song and balance its volume against original audio. To bake the same balance into an MP4, use a Sume timeline soundtrack with duck_db.
- Story over 60 seconds on Instagram: it splits, so pick the cuts
Instagram breaks a Story video longer than 60 seconds into several clips. How to choose the break points yourself and cut each part with Sume video trim.
- Put music under Gemini Omni's native audio: detach, spine, duck
Omni clips always carry native audio on Sume. Detach it to a wav, use it as the Timeline spine, add a music soundtrack with duck_db. Calls and limits.
Written by Sume