Hypernatural

TechniqueBy HypernaturalVersion 1, Oct 21, 2026

nano-banana-recast-in-own-outfit

Replace one person in a still with a new character of any gender or build, dressed in their own outfit from their character sheet (badge included), keeping the pose, framing, set, light and everyone else, on nano banana 2.1 edit by default (Pro for a precise detail edit). Single views cut from the sheet as references; a back view for shots from behind. Use to recast a role in a finished dialogue video or any shot where the costume changes with the actor.

SKILL.md

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-object on 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.

Go make something cool.

Install the app, open your agent, describe the video. That's the whole onboarding.

Sticker HypernaturalSticker BannerSticker TVBoy