Recast a person in their own outfit
You give it a still and single views of the new character; you get the still with that
person in the role, wearing the outfit from their sheet, in the original's pose and
place, with the set, light and other people unchanged. It handles a woman-to-man swap
at a wide table first time. When the original wardrobe must stay, use
nano-banana-swap-actor-keep-wardrobe.
Inputs
- The still. Recast from the footage's own frame when the delivered still and the footage
disagree:
exec ffmpeg -ss <t> -i <cut> -frames:v 1 <job>/refs/source_shot16.png. - Single views of the new character, never the whole sheet: cut a 2×2 sheet with
python-split-character-sheet. Cells, row by row: 0 close-up portrait, front; 1 close-up profile; 2 full body, front; 3 full body, from behind. Send views 0, 1, 2; for a shot from behind send 0, 1, 3 and say so in the prompt. - Who is replaced, as seen ("the woman with short dark hair (the presenter)"), and the new character's name.
- Before any stills work, scrub every shot of the existing video for the old actor, backs of heads, shoulders, reflections and screens included. A still with no presenter can still have the presenter's back of head in the footage.
Run it
Call describe on the model before its first run in a job. Prepare the still as a JPEG
of at most 2752 px on the long side at quality 95 (big PNGs don't fit a request):
exec ffmpeg -i <still>.png -vf "scale=2752:2752:force_original_aspect_ratio=decrease" -q:v 2 <job>/stills/refs/source_shot12.jpg
(skip the scale when the still is already smaller). Two takes per shot, one call each:
run(model="fal/google/nano-banana-2.1/edit",
input={"prompt": <the recast prompt>,
"image_urls": ["<job>/stills/refs/source_shot12.jpg", "<job>/stills/refs/dana_view0.jpg",
"<job>/stills/refs/dana_view1.jpg", "<job>/stills/refs/dana_view2.jpg"],
"aspect_ratio": "16:9", "resolution": "2K", "num_images": 1, "seed": 1000,
"output_format": "png", "safety_tolerance": "5", "thinking_level": "high"},
into="<job>/stills/dana", unit="shot12")
Seed 1000 for the first take, then the next free seed per take. Conform each output to
1920×1080 with python-conform-to-1080p.
Which model: 2.1 edit is the default for a recast. It is a little faster, more
dynamic, and more natural in how it places and forms the new person and composes the
scene. Run the same input on fal/fal-ai/nano-banana-pro/edit (without
thinking_level) when the edit is a precise detail edit where every other pixel must
stay exactly the same: Pro goes deeper and sharper on the detail.
Prompt
Image 1 is the frame, then one line per view. The template:
Reference image 1: a frame from a live-action film. This is the shot to reproduce.
Reference image 2: {new_character}, close-up portrait, front.
Reference image 3: {new_character}, close-up profile.
Reference image 4: {new_character}, full body, front.
Recreate reference image 1 exactly, but replace {old_character} with {new_character}, the person in the character reference images.
From the character references take: their identity (face, facial features, skin tone, eye color, hair color, texture and style, build and height), so they are clearly recognizable as the same person, and their outfit exactly as shown (garments, colors, collar, any badge or pin and where it sits).
Keep everything else from reference image 1 exactly as it is: the camera position, framing, crop, lens, depth of field and focus; the person's position in the frame, pose, posture and head angle; where they are looking; hand positions and anything they hold or touch; their facial expression and mouth shape; the lighting on them, including rim light and shadows; the set, props, screens and anyone else in the frame; the color grade and grain. If the new person's build differs, fit them naturally into the same pose and space. Do not reframe, zoom, or change the aspect ratio. Nothing else in the frame changes.
{extra}
Photorealistic, like a real frame from the same shoot with a different actor cast in the role.
{extra} carries shot-specific notes, for a back view: "Seen from behind, out of focus
in the right foreground; reference image 4 shows them from behind."
Tips and traps
- The outfit comes with its badge or pin. To take one off afterwards, use
nano-banana-remove-small-objecton the picked still and on the character's reference views, or the video models put it back. - A shot from behind without the back view gets the front of the outfit on the back.
- Map stills to script shots by what they show, never by file name.
Check it
Review the takes on a page with the delivered still (or the footage frame) as the
reference: identity against the views, the outfit and badge, the pose and space taken
by a different build, and that nobody else in the frame changed. Pick, move the rest to
rejected/.
Which recast route keeps what: guide-recast-a-person.


