Wan Animate 2: Motion Transfer

Animate a still character using a driving video with Wan Animate 2, transferring motion directly from video frames without any pose extraction or skeleton preprocessing. The output preserves the reference character's identity while generating a fresh background and camera movement from your text prompt. Ideal for motion transfer, action mimicry, and character animation replacement projects.

Input

The character to animate: full body or upper body, clearly visible.

Describe the character's appearance: face, hair, clothing, materials.

The motion to copy. Only the first 81 frames are used (about 3.4 s at 24 fps). For longer clips, chain segments in ComfyUI.

The driving video is resized to this frame.

Default: 480

The driving video is resized to this frame.

Default: 832

Advanced settings

One line on the movement, e.g. what the dance is.

Default: An elderly mystic doing an energetic contemporary street dance with rhythmic steps, wide arm swings, a spin and a crouch, background stationary

What to avoid.

Leave empty for a new result each run. Enter a number to repeat one.

Default: 6

Output
00:00
Example

Try an example

About this workflow

This ComfyUI workflow demonstrates end-to-end motion transfer using Wan-Animate-2 (by Wan-Video/Alibaba): a single reference image (your character) is animated to follow the motion in a driving video, without any pose keypoint or skeleton extraction. The core of the graph is the "Motion Transfer (Wan Animate 2)" subgraph powered by custom Wan-Animate-2 nodes (UUIDs: 11706f8a-428d-4ef9-b24f-863f651c1b0b, 79280513-53b2-4417-93f8-f3e116bb6736, b798a87e-23ec-483d-ab9b-6af5b298d0ad). These nodes accept your reference image, the per-frame motion signal from the driving video, and a text prompt that guides background look and camera feel.

Because motion is learned directly from frames, setup is fast and robust—no OpenPose or preprocessing passes.

LoadImage provides the character identity, while LoadVideo and GetVideoComponents extract the driving frames and fps. BatchImagesNode replicates the reference image so each video frame gets its own paired identity input. GetImageSize and ComfyMathExpression are used to keep resolution and aspect ratio consistent between inputs and outputs. PreviewAny lets you inspect intermediate frames, and CreateVideo + SaveVideo assemble the generated frames back into a video using the original fps.

For longer clips, you manually duplicate the Motion Transfer subgraph (native looping support is pending upstream) and connect it in sequence so the pipeline can process the entire driving video.

Questions & answers