WanVideo Animate Embeds
Drive a character with pose, face, and reference
- vae
- clip_embeds
- ref_images
- pose_images
- face_images
- bg_images
- mask
- start_ref_image
- image_embeds
This is the setup node for Wan 2.2 Animate - Alibaba's character-animation and replacement model, and one of the most-used of the Wan task models. The idea: take a reference image of a character, a driving video's pose and face, and produce a clip of your character performing that motion. WanVideoAnimateEmbeds is where all those signals get combined into the WANVIDIMAGE_EMBEDS the sampler turns into video.
If you've seen the "put my character into this dance video" workflows going around, this node is the heart of them. It's also VRAM-hungry and genuinely finicky - the community help threads are full of 4070-class cards hitting out-of-memory on it - so expect to lean on block swap and fp8.
How it works
Animate conditions the generation on several separate streams. Pose images carry the body motion (typically extracted from a driving video), face images carry the facial performance, reference images carry the character's identity/appearance, and an optional background and mask let you composite the character into a scene. The node encodes these against the Wan VAE and bundles them, with strength dials so you can weight how hard the pose and face drive the result. It also windows longer clips via frame_window_size, since Animate, like everything else on Wan, works in ~81-frame chunks natively.
The inputs that matter
ref_images- your character. This is the identity anchor.pose_images- the driving body motion, usually a preprocessed pose sequence (the DownloadAndLoadNLFModel node in this pack produces the kind of 3D body/pose signal that feeds this).face_images- the driving facial performance, kept separate so expression transfers independently of body.pose_strength/face_strength(both default 1.0) - how strongly each drives the output. Easeface_strengthdown if the driver's face is overriding your character's likeness; easepose_strengthif the body is distorting to match the driver.vae- theWANVAE, required.bg_images/mask(optional) - for compositing the animated character over a background or into a masked region.colormatch(optional) - matches output color to a reference to reduce drift across windows.
Output: a WANVIDIMAGE_EMBEDS for the sampler.
How to install it
Ships with the pack. Via ComfyUI Manager: search WanVideo Wrapper, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-WanVideoWrapper
pip install -r ComfyUI-WanVideoWrapper/requirements.txt
then restart. You'll need the Wan 2.2 Animate model (attached via the model loader) plus the VAE, and a pose/preprocessing path to generate the driving signals.
Common issues & troubleshooting
Out of memory, especially on 12-16GB cards. This is the number-one complaint in the wild. Run a GGUF or fp8 Animate model, drop your resolution (try 512-ish first and work up), keep frame counts modest, and use block swap. People do run this on a 4070 - but only with the memory-saving stack in place. Pushing high resolution or long clips is what triggers the OOM.
The output character morphs toward the driving person. Your face_strength/pose_strength are letting the driver dominate. Lower them, and make sure your ref_images are strong, clean shots of the intended character.
Motion transfer stretches or distorts the body. A known Wan Animate weakness - it can warp the subject to match the driver's proportions. If this is a dealbreaker, the community's answer is a different model (SCAIL-2 drops the skeleton intermediate specifically to avoid this), but within Animate, better-matched pose sources and lower pose strength help.
Identity drifts on longer clips. Cross-window drift again - colormatch and a strong reference reduce it, but chunked long-form on Wan always wobbles at the boundaries.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| vae | WANVAE | — | |
| width | INT | 83264–8096 | Width of the image to encode |
| height | INT | 48064–8096 | Height of the image to encode |
| num_frames | INT | 811–10000 | Number of frames to encode |
| force_offload | BOOLEAN | true | — |
| frame_window_size | INT | 771–10000 | Number of frames to use for temporal attention window |
| colormatch | COMBO | disabled | Color matching method to use between the windows |
| pose_strength | FLOAT | 1.0000–10 | Additional multiplier for the pose |
| face_strength | FLOAT | 1.0000–10 | Additional multiplier for the face |
| clip_embedsopt | WANVIDIMAGE_CLIPEMBEDS | Clip vision encoded image | |
| ref_imagesopt | IMAGE | Image to encode | |
| pose_imagesopt | IMAGE | end frame | |
| face_imagesopt | IMAGE | end frame | |
| bg_imagesopt | IMAGE | background images | |
| maskopt | MASK | mask | |
| start_ref_imageopt | IMAGE | start ref image | |
| tiled_vaeopt | BOOLEAN | false | Use tiled VAE encoding for reduced memory use |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image_embeds | WANVIDIMAGE_EMBEDS | — |