Swap the actor, keep the wardrobe
You give it a frame from the source and a character sheet of the new actor; you get the
same frame with the new face, hair and build, and everything else (wardrobe, pose,
eyeline, hands, set, light, grain) kept. Use it for the stills of a shot-for-shot
remake. When the new character should wear their own outfit, or the swap changes
gender or build, use nano-banana-recast-in-own-outfit instead.
Inputs
- The source frame (the shot's first, or last, still).
- A character sheet of the new actor (front, back and close-up views).
- Optional, Pro only: a pre-hazed product photo when the held product must change too
(
nano-banana-swap-held-productsays how to prepare it). - Who is replaced, as seen ("the woman in the green cardigan"), and what to call the new character ("the woman", she / he / they).
Run it
Call describe on the model before its first run in a job. One call per take, three
takes per frame, each with its own seed (separate seeds spread more than
num_images: 3):
run(model="fal/google/nano-banana-2.1/edit",
input={"prompt": <the swap prompt>,
"image_urls": ["<job>/shots/shot01_first.jpg", "<job>/references/sheet_b.jpg"],
"aspect_ratio": "16:9", "resolution": "2K", "num_images": 1, "seed": 1000,
"output_format": "png", "safety_tolerance": "5", "thinking_level": "high"},
into="<job>/swap_b", unit="shot01_first")
Seeds 1000, 1001, 1002 for the three takes. Add the product photo as the third image for
a one-pass swap, on fal/fal-ai/nano-banana-pro/edit (no thinking_level there).
- 2.1 edit for a plain swap. Pro edit when a prop must change in the same pass, and for a one-pass swap of a shot that will get a pinned last frame.
- 2K, never 4K. 2K 16:9 comes back 2752×1536; conform it to 1920×1080 with
python-conform-to-1080p(centre-crop, Lanczos). 4K sharpens lettering a little, but the downscale averages the film grain away and redraws background faces.
Prompt
The full template and a filled example are in references/prompt.md. It names image 1
as the shot to reproduce and image 2 as the sheet, takes only identity from the sheet
(face, skin, eyes, hair colour, texture and style, build), drops any hair clip from the
original actor, and lists everything kept. Two things in it matter most:
- The eyeline is spelled out: if they glance sideways in the source, the irises sit just as far into the corners of the eyes. Without it, side-eyes drift to camera.
- Every change is stated. Anything the shot needs different (eyes closed, cups swapped, a tray empty, keep the source's grain because it is grain and not haze) goes in as its own sentence at the end. Frames that need their own note (a smirk, a side-eye) go in their own call.
When the new character has hair accessories, say where they sit and that they come from the sheet.
Tips and traps
- A prop changed after the swap from a raw product photo pastes in a studio-lit, too-sharp object. Put the pre-hazed photo into the swap itself (Pro), so the prop is rendered in the scene's light. Hazing the result afterwards turned the product grey.
- Small print comes out garbled at frame size. Don't fix it with a second whole-frame
pass: use
nano-banana-rerender-small-printon the picked still. - First and last stills swapped independently don't match (hair, cuffs, cup, eyes),
and a video pinned to both morphs between them mid-shot. Swap the first frame only
and make the last with
nano-banana-derive-last-frame. - One correction left after picking (a hair strand, a letter):
nano-banana-targeted-fix.
Check it
Put the three takes per frame on a review page with the source frame as the reference. Look at identity against the sheet, the eyeline, the hands and grip, and the grain at 100% against the source. Logos and print at playback size. Record the seed of the pick.
Keeping small products and print exact through the whole shot: guide-keep-small-details.


