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.

API

Use this workflow from code

Every Comfy workflow is a JSON graph. The payload below is this workflow, exactly as ComfyUI runs it — fetch it from the URL, keep it in version control, or load it in ComfyUI and run it node by node.

GET https://comfy.org/workflows/download/9394f9968da3.json
Fetching workflow JSON…

Run it from Python or TypeScript with the Comfy SDK. The same code targets Comfy Cloud or a ComfyUI you host yourself — only the base URL changes.

# Install (beta)
pip install comfy-sdk        # Python
npm i @comfyorg/sdk          # TypeScript

# Run this workflow (Python)
from comfy_sdk import Comfy

client = Comfy(api_key="comfyui-...")
wf = client.workflows.from_file("workflow_api.json")
job = client.run(wf)
for output in job.get_outputs("<output-node-id>"):
    output.to_file(output.name)

The SDK takes a workflow in API format: open this workflow in ComfyUI and use File → Export Workflow (API). API access requires a Comfy Cloud plan with an API key. SDK docs · Get an API key

FAQ

Frequently Asked Questions

View all workflows
Character
Cinematic
Image to Video
Lip Sync
Multiple Angles
Portrait
Style Reference
Style Transfer
Text to Video
Video Generation
Video
Showing 30 of 30 templates