Restage a frame for 9:16 or 3:4
You give it a shot's first frame and an instruction saying what to move and what to keep; you get six candidates in two kinds. Restage only when a crop loses a story beat (a second character, an interaction, the product), never for empty space or a slightly tight frame: most shots of a vertical cut are a plain crop.
| Kind | What it is | Best for |
|---|---|---|
| 16:9 edit | the same camera and lens, people moved into the middle third, judged by its centred 9:16 strip | close-ups, and shots whose look must match the cropped shots around them |
| native 9:16 redraw | the same camera "shot in portrait" | wide shots; more resolution for the render, but the model recomposes more freely |
Inputs
- The shot's first frame:
exec ffmpeg -i <cut> -vf "select='eq(n,41)'" -frames:v 1 <job>/restage/refs/shot03_first_source.png. - The instruction (what moves, what stays), e.g. "Bring the manager in from the left edge so he stands just behind her right shoulder, both inside the middle third; she stays where she is."
- Optional extra references, each with a line saying what it is: a character sheet when a person has to be redrawn larger.
- A plain crop for the review, from the window the crop pass chose:
exec ffmpeg -i refs/shot03_first_source.png -vf crop=608:1080:X:0 refs/shot03_first_plaincrop.png.
Run it
Call describe on each model before its first run in a job. Six calls, one take each,
seeds from 4000 up: per kind, two on fal/google/nano-banana-2.1/edit and one on
fal/fal-ai/nano-banana-pro/edit.
run(model="fal/google/nano-banana-2.1/edit",
input={"prompt": <the restage prompt for this kind>,
"image_urls": ["<job>/restage/refs/shot03_first_source.png"],
"aspect_ratio": "16:9", "resolution": "2K", "num_images": 1, "seed": 4000,
"output_format": "png", "safety_tolerance": "5", "thinking_level": "high"},
into="<job>/restage", unit="shot03_first")
aspect_ratio is 16:9 for the edit and 9:16 for the redraw. For each 16:9 edit, cut
the centred strip the crop would keep (width = round(height × 9 / 16), centred) and
judge that. Re-roll one kind only when the other is already settled.
Prompt
Reference image 1: a 16:9 frame from a live-action commercial.
[Reference image 2: {what it is}.]
{target}
The change: {instruction}
Keep the same people, identical in face, hair, build, wardrobe and expression; the same set and props; the same lighting direction, quality and color, lens look, depth of field and focus, color grade and film grain. Add nothing else, remove nothing else. Photorealistic, like a real frame from the same shoot.
{target} for the 16:9 edit:
"Produce the same 16:9 frame from the same camera, edited so it can be cropped to a
vertical 9:16 strip taken from the center of the frame: everything the change below asks
for must sit inside the middle third of the frame's width. Keep the frame's height,
camera height and lens."
For the redraw: "Produce a vertical 9:16 version of this frame, as if the same camera, at the same height, distance and lens, had shot it in portrait orientation. Recompose only as much as the change below needs."
3:4 for a talking head
For a presenter still meant for slide layouts, recompose an approved 16:9 still on Pro
edit at aspect_ratio: "3:4", 2K: "Recompose this exact photograph as a 3:4 PORTRAIT
frame… three-quarter body, bottom edge at mid-thigh below her hands… even margin either
side wide enough to spread her arms… change nothing else". Fit it to 768×1024 or
1080×1440. Use 3:4, not 9:16: open-arm gestures reach about ±35% of the frame height
from the centre line, and 9:16 clips them.
Tips and traps
- Check every person in a redraw: 9:16 redraws sometimes duplicate a background person or bunch two of them on one side.
- Background people: ask for a glimpse at the frame edges. "Move them close behind her" crowds the subject.
- Held products lose their logo in a redraw. Plan a
nano-banana-swap-held-productpass on the pick and judge the logo at playback size. - A 16:9 edit whose centred crop holds only a sliver of someone: a push-in in the render drifts them out. Move the crop window off centre and lock the camera in the video prompt.
Check it
Review per shot on a 9/16 page: the original frame (16:9) and the plain crop as
references; the 16:9 edits shown as their crop, flipping to the full frame; the
redraws. All under one pick key per shot. Conform the pick with
python-conform-to-1080p (1080×1920 for 9:16).


