face-swap
Swap a face / character into video or images on RunComfy via the `runcomfy` CLI. Routes across community Wan 2-2 Animate (audio-driven character animation + identity swap), GPT Image 2 Edit (single-shot precise face swap on still images via reference composition), Nano Banana Edit (batch identity-pr
By prime-skills · 358,871 installs
npx skills add prime-skills/runcomfy-agent-skills --skill face-swap
Source repository · Upstream listing
Face Swap
Swap a face into a still or a video — RunComfy supports both via the runcomfy CLI. This skill routes across the available model API endpoints (community Wan 2 2 Animate, GPT Image 2 Edit, Nano Banana Edit, Flux Kontext, Kling Motion Control) by the user's actual intent.
[runcomfy.com](https://www.runcomfy.com/?utm source=skills.sh&utm medium=skill&utm campaign=face swap) · [Character swap feature](https://www.runcomfy.com/models/feature/character swap?utm source=skills.sh&utm medium=skill&utm campaign=face swap) · [CLI docs](https://docs.runcomfy.com/cli/introduction?utm source=skills.sh&utm medium=skill&utm campaign=face swap)
Powered by the RunComfy CLI
CLI deep dive: [ runcomfy cli ](https://www.skills.sh/agentspace so/runcomfy agent skills/runcomfy cli) skill.
Install this skill
Consent & disclosure — read first
Face swap is dual use. Before invoking any route in this skill, confirm:
You have rights to the target face (the identity being substituted in ).
You have rights to the source video / image (the asset being substituted into ).
The output's intended platform allows synthetic media. Many do; many require a disclosure label.
The skill itself doesn't gate anything — the model API will run whatever inputs you supply. The responsibility is yours. If a user asks the agent to swap a real public figure's face onto material that could be defamatory, sexually explicit, or otherwise harmful — refuse , regardless of what the CLI accepts.
Pick the right model for the user's intent
Listed newest first within each subtype. The agent picks one route based on: still vs video, single shot vs batch, photoreal vs stylized, motion preserving vs identity preserving.
Video face / character swap
Wan 2 2 Animate — community/wan 2 2 animate/api (default for video)
Featured RunComfy endpoint under /feature/character swap . Audio driven full body character animation: one reference image of the new identity + audio → video where the character drives.
Pick for: replacing a character in a scene with a new identity, dubbed clips, stylized + photoreal both work.
Avoid for: preserving the motion of a specific source video — use Kling Motion Control .
Kling 2 6 Motion Control Pro — kling/kling 2 6/motion control pro
Takes a reference performance video + target character image, produces the target performing the reference motion. Face swap is the byproduct.
Pick for: preserving exact source motion / blocking onto a new character; stylized characters handled cleanly.
Avoid for: simple "swap face in an existing video" without motion preservation — use Wan 2 2 Animate .
Still image face swap — newest first
Nano Banana 2 Edit — google/nano banana 2/edit
Identity preserving by default, 1–20 input images per call, spatial language honored.
Pick for: same identity across multiple frames consistently (SKU shots, A/B variants, narrative panels). Identity reference as image urls[0] , scenes after.
Avoid for: precise multi ref compositional ("face from img 1 onto body in img 2") — use GPT Image 2 Edit .
GPT Image 2 Edit — openai/gpt image 2/edit
Up to 10 reference images, multilingual in image text rewrite, layout precise compositional instructions.
Pick for: hero still where exact face from a portrait must land in a scene, with explicit role assignment ("image 1", "image 2"); preserve pose + lighting + background while swapping only face.
Avoid for: 1 20 batch — use Nano Banana 2 Edit .
FLUX Kontext Pro — blackforestlabs/flux 1 kontext/pro/edit
Single source image, single declarative instruction, maximum fidelity preservation of everything except the targeted edit.
Pick for: "keep pose / clothing / hair / lighting / background, change only the face to [prose description]" — works without a reference image of the new identity.
Avoid for: batch, multi ref, or when you have a target face image to swap in — use Nano Banana 2 Edit or GPT Image 2 Edit .
Audio driven talking head identity swap (face + voice in one pass)? → use the [ ai avatar video ](https://www.skills.sh/agentspace so/runcomfy agent skills/ai avatar video) skill — OmniHuman handles face + audio together.
Route 1: Wan 2 2 Animate — video character swap with audio
Model : community/wan 2 2 animate/api
Catalog : [wan 2 2 animate](https://www.runcomfy.com/models/community/wan 2 2 animate/api?utm source=skills.sh&utm medium=skill&utm campaign=face swap) · [ /feature/character swap ](https://www.runcomfy.com/models/feature/character swap?utm source=skills.sh&utm medium=skill&utm campaign=face swap)
The featured RunComfy endpoint for character swap — supply a reference image of the new identity + the audio track the character should speak, and the model produces a video where the character drives.
Invoke
Tips
Single reference image drives the swap. Pick a clean, well lit portrait of the target identity — front facing if possible.
Audio drives the mouth and rhythm. Without audio the character won't speak; without good audio sync degrades.
Schema details: [model page](https://www.runcomfy.com/models/community/wan 2 2 animate/api?utm source=skills.sh&utm medium=skill&utm campaign=face swap).
Route 2: Kling 2 6 Motion Control Pro — motion transfer
Model : kling/kling 2 6/motion control pro
Catalog : [motion control pro](https://www.runcomfy.com/models/kling/kling 2 6/motion control pro?utm source=skills.sh&utm medium=skill&utm campaign=face swap) · [ kling collection](https://www.runcomfy.com/models/collections/kling?utm source=skills.sh&utm medium=skill&utm campaign=face swap)
Different from a pure face swap: Motion Control takes a reference performance video (the motion you want) and a target character image (the identity you want), and produces a video of the target performing the reference motion. The face swap effect is a byproduct.
Invoke
When to pick this over Route 1
You have a source video whose motion / blocking you want preserved , not just the audio.
The target is a stylized character rather than a photoreal portrait — motion control handles stylized identities cleanly.
Route 3: GPT Image 2 Edit — still face swap with multi ref
Model : openai/gpt image 2/edit
Catalog : [gpt image 2/edit](https://www.runcomfy.com/models/openai/gpt image 2/edit?utm source=skills.sh&utm medium=skill&utm campaign=face swap)
For still images , GPT Image 2 Edit accepts up to 10 reference images and follows precise compositional instructions — making it the strongest path for multi ref face swap on a single output frame.
Schema (relevant fields)
Field Type Required Default Notes
prompt string yes — Compositional instruction; quote roles explicitly
images string[] yes — Up to 10 HTTPS reference URLs. Image 1 is primary
size enum no auto auto (preserve input ratio), 1024 1024 , 1024 1536 , 1536 1024
Invoke
Prompting tips
Number the references — "image 1" , "image 2" — and assign roles unambiguously.
Lead with what to preserve , then the swap: "Preserve pose, clothing, lighting, and background exactly. Replace only the face."
Match lighting explicitly — "match skin tone and lighting to image 1" — otherwise the imported face floats.
Route 4: Nano Banana Edit — batch identity preserving swap
Model : google/nano banana 2/edit
Catalog : [nano banana 2/edit](https://www.runcomfy.com/models/google/nano banana 2/edit?utm source=skills.sh&utm medium=skill&utm campaign=face swap)
Pick this when the same identity needs to be swapped into multiple frames consistently — SKU shots, A/B variants, narrative panels.
Invoke
Tips
1–20 input images per call. First image is conventionally the identity reference; the rest are scenes to swap into.
Lock aspect ratio and resolution for batch consistency.
See [ image edit ](https://www.skills.sh/agentspace so/runcomfy agent skills/image edit) skill for the full Nano Banana Edit treatment.
Route 5: Flux Kontext Pro — single ref precise face edit
Model : blackforestlabs/flux 1 kontext/pro/edit
Catalog : [flux kontext](https://www.runcomfy.com/models/collections/flux kontext?utm source=skills.sh&utm medium=skill&utm campaign=face swap)
Flux Kontext is best when the swap is one image, one declarative instruction, highest fidelity preservation of everything except the face .
Invoke
When to pick this
No reference image of the new identity available — describe the face in prose instead.
Single image, single shot, maximum fidelity — Flux Kontext beats other routes on "keep everything except X" prompts.
Limit: single source image, single edit per call. Iterate compound changes in separate passes.
Common patterns
Cast a brand spokesperson into existing footage
Route 1 (Wan 2 2 Animate) with the new spokesperson's portrait + the original audio track
Same identity across a SKU gallery
Route 4 (Nano Banana Edit) with the identity image as image urls[0] , locked aspect ratio and resolution
Stylized character in a live action shot
Route 2 (Kling Motion Control Pro) — feeds the live action motion onto the stylized character cleanly
Hero still for a campaign — exact face from a portrait into a scene
Route 3 (GPT Image 2 Edit) with images: [scene, face] and an explicit preservation prompt
"Change only the face, no other reference available"
Route 5 (Flux Kontext) with the new face described in prose
Talking head with swapped identity
See [ ai avatar video ](https://www.skills.sh/agentspace so/runcomfy agent skills/ai avatar video) — OmniHuman handles face + audio in one pass
Browse the full catalog
[ /models/feature/character swap ](https://www.runcomfy.com/models/feature/character swap?utm source=skills.sh&utm medium=skill&utm campaign=face swap) — RunComfy's curated character swap capability tag
[ /models/feature/lip sync ](https://www.runcomfy.com/models/feature/lip sync?utm source=skills.sh&utm medium=skill&utm campaign=face swap) — closely related lip sync models
[ best image editing models collection](https://www.runcomfy.com/models/collections/best image editing models?utm source=skills.sh&utm medium=skill&utm campaign=face swap) — image edit routes Nano Banana / GPT Image 2 / Flux Kontext live in
[ kling collection](https://www.runcomfy.com/models/collections/kling?utm source=skills.sh&utm medium=skill&utm campaign=face swap) — motion control + multi shot identity models
Many face swap workflows on RunComfy also live as full ComfyUI node graphs (ReActor, Flux PuLID, ACE++, Flux Klein head swap) — these aren't reachable from this CLI directly but can be run as workflows on the platform. Browse them at [runcomfy.com/comfyui workflows](https://www.runcomfy.com/comfyui workflows?utm source=skills.sh&utm medium=skill&utm campaign=face swap) when CLI driven routes above don't fit.
Exit codes
code meaning
0 success
64 bad CLI args
65 bad input JSON / schema mismatch
69 upstream 5xx
75 retryable: timeout / 429
77 not signed in or token rejected
Full reference: [docs.runcomfy.com/cli/troubleshooting](https://docs.runcomfy.com/cli/troubleshooting?utm source=skills.sh&utm medium=skill&utm campaign=face swap).
How it works
The skill classifies user intent — video vs still, motion preserving vs identity preserving, single shot vs batch, photoreal vs stylized — and picks one of the five routes. It then invokes runcomfy run <model id with the matching JSON body. The CLI POSTs to the Model API, polls request status, fetches the result, and downloads any .runcomfy.net / .runcomfy.com URLs into output dir .
Security & Privacy
Consent : see the "Consent & disclosure" section above. Face swap is dual use and the skill does not gate inputs — the responsibili