Model Highlights
- Direct motion transfer: Animates a still character from a driving video without pose extraction or skeleton preprocessing
- Identity preservation: Keeps the reference character’s identity, appearance, and details intact
- Text-driven camera control: Decouples output camera perspective from the driving video
- Fresh backgrounds: Generates a new background from your text prompt instead of copying the driving video’s background
- High-fidelity motion: Replicates complex motions and expressions from the driving video
Wan Animate 2 workflow
Animate a still character using a driving video, transferring motion directly from video frames. The output preserves the reference character’s identity while generating a fresh background and camera movement from your text prompt.Run on Comfy Cloud
Open in Comfy Cloud
Download Workflow
Download JSON or search “Wan Animate 2” in Template Library
Reference image
LoadImage node: pink_hair_mech_arms_ref.png (the character to animate)Driving video
LoadVideo node: street_dance_drive.mp4 (the motion source)Model downloads
This workflow uses thewan_animate_2_int8_convrot.safetensors diffusion model. The repository also ships BF16 and distilled variants; if you want to use those instead, change the model selection in the UNETLoader node. All files are available in the Comfy-Org/Wan-Animate-2 repository:
Diffusion Model (INT8, required)
wan_animate_2_int8_convrot.safetensors: INT8 convrot quantized diffusion model used by this workflow
Diffusion Model (BF16, optional)
wan_animate_2_bf16.safetensors: Full-precision base model. Requires changing the UNETLoader model selection.
Diffusion Model (Distill INT8, optional)
wan_animate_2_distill_int8_convrot.safetensors: Distilled INT8 variant. Requires changing the UNETLoader model selection.
Diffusion Model (Distill BF16, optional)
wan_animate_2_distill_bf16.safetensors: Distilled BF16 variant. Requires changing the UNETLoader model selection.
LoRA
lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors: LightX2V acceleration LoRA
Text Encoder
umt5_xxl_fp8_e4m3fn_scaled.safetensors: UMT5-XXL FP8 text encoder
CLIP Vision
clip_vision_h.safetensors: CLIP Vision encoder
VAE
Wan2_1_VAE_bf16.safetensors: Wan2.1 VAE for encoding and decoding
Workflow instructions
- Make sure all the models are loaded correctly
- Upload the reference image: the character in this image is the target character to animate
- Upload the driving video: its motion is transferred to the reference character
- Update the prompt to describe the scene, background, and camera movement you want
- Click
Runor use the shortcutCtrl(cmd) + Enterto generate the video
Extending to longer videos
Longer videos are handled inside the workflow: theMotion Transfer (Wan Animate 2) subgraph loops (StartLoop / EndLoop) and keeps generating until it has covered the whole driving video, so one subgraph is all you need. Nothing has to be duplicated or rewired.
One loop iteration generates 81 frames, about 3.4 seconds at 24 fps. That is the Int (fragment_length) value inside the subgraph. You can raise it, but it has to stay a legal Wan length: 81, 85, 89, and so on, which is 4n + 1.
The loop math reads the driving video’s frame count, works out how many continuations are needed, and the tail is trimmed so the output has exactly as many frames as the driving video. Each continuation repeats the previous segment’s last frame and that duplicate is removed, so every extra segment adds fragment_length - 1 new frames.
Looping uses the core loop nodes, so the workflow needs ComfyUI 0.36.0 or newer.
The Video Stitch subgraph is the comparison preview: it places the generated video next to the driving video. It is not part of the extension path.