FantasyPortrait Model Loader
Load the expression-driver for multi-face Wan animation
- model
This is the loader for FantasyPortrait, an expression-transfer model that drives faces in a Wan generation from a reference performance. The pitch: give it a driving video of someone emoting, and it maps that expression - mouth, brows, eye movement, the works - onto your generated character. The community first clocked it as "looks like MultiTalk," but the emphasis is different: MultiTalk is audio-to-lipsync, FantasyPortrait is expression transfer, and it's built to handle multiple faces in one frame.
On its own this node does almost nothing visible. It's step one of three: load the model here, extract expression embeds with the FantasyPortrait Face Detector, then inject them into your Wan clip with the WanVideoAddFantasyPortrait node. This loader just gets the weights into memory in the format the other two expect.
How it works
FantasyPortrait is an adapter that plugs into Wan. It reads facial motion from a driving source and produces a control signal the Wan sampler can follow, without you needing pose skeletons or manual keyframing. Because it's an adapter on top of the base video model, the loader's job is narrow: pick the weight file, pick the precision, hand back a typed FANTASYPORTRAITMODEL object.
The inputs and outputs that matter
There are only two inputs, and one of them you'll rarely touch.
model- a dropdown of the FantasyPortrait weight files it finds in your models folder. If this list is empty, you haven't downloaded the weights yet (see install). This is the one that matters.base_precision(defaultfp16) -fp32,bf16, orfp16.fp16is the sane default and matches how most people run Wan. Gobf16if you hit numerical weirdness on certain hardware;fp32only if you're debugging and have VRAM to waste.
Output: model (FANTASYPORTRAITMODEL) → straight into FantasyPortraitFaceDetector, which is where the actual expression extraction happens.
How to install it
ComfyUI Manager → search ComfyUI-WanVideoWrapper, install, restart. Manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-WanVideoWrapper
pip install -r ComfyUI-WanVideoWrapper/requirements.txt
then restart. The node pack is only half the job - you need the FantasyPortrait weights downloaded into your ComfyUI models directory (Kijai mirrors these under huggingface.co/Kijai/WanVideo_comfy), plus the base Wan model, VAE and text encoder that the rest of the graph uses.
Common issues & troubleshooting
"Missing nodes" when you load someone's FantasyPortrait workflow. This is the single most-reported FantasyPortrait problem on r/comfyui, and clicking "Install missing nodes" often doesn't fix it - because the fix isn't a different pack, it's a newer WanVideoWrapper. Update the pack you already have (git pull or Manager → update) and restart. These nodes ship with the wrapper, not as a standalone.
The model dropdown is empty. No weights on disk. Download the FantasyPortrait model file into the folder the loader scans and refresh - an empty dropdown means the loader looked and found nothing.
Everything loads but the expression barely transfers. That's not this node - it's downstream. The control strength lives on the Face Detector (adapter_scale, mouth_scale, emo_scale) and on the Add node. This loader is a plumbing step; if the face is wrong, look one or two nodes further along.
OOM on load. Drop to fp16 if you somehow set fp32, and remember this stacks on top of Wan 14B - the adapter is small, but the combined footprint still wants a 16GB-plus card comfortably.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | These models are loaded from the 'ComfyUI/models/diffusion_models' -folder | |
| base_precision | COMBO | fp16 | 3 options: fp32, bf16, fp16 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | FANTASYPORTRAITMODEL | — |