Nodes/SpicyAPI/Wan 2.2 Animate · Character Animation
ComfyUI Node

Wan 2.2 Animate · Character Animation

Put your character's face on someone else's dance

By spicyapi-ai·Created 21 days ago·Updated 2 days ago· 2
Wan 2.2 Animate · Character Animation
  • image_url
  • video_url
  • video
  • task id
◄animation_modeanimate►
◄resolution720p►
◄prompt►
◄seed0►

Motion transfer is its own genre, and it has a different failure mode from everything else in video generation: you're not asking for new motion, you're asking for this motion on that character. Wan 2.2 Animate is Alibaba's open model for exactly that - one image of a character, one driving video, output matching the driving video's length - and this node calls it hosted, at 480p or 720p.

The reason to want it is that nothing else in the open ecosystem does this well enough to bother with. Wan Animate owns per-frame motion control, it's why character-replacement tests pull four-figure upvotes on r/comfyui, and it's the model people reach for when they want a character who can actually act. It's also not the newest thing in the category - newer models beat it at not distorting your character to match the driving video's proportions, which is the specific complaint you'll find at the top of every comparison thread.

Inputs

  • image_url - an IMAGE socket. The character. This is the person who gets animated, so use the cleanest, most front-on image you have.
  • video_url - a VIDEO socket for the driving video, 2 to 30 seconds. Upload an MP4, or pass an MP4 or MOV URL. Two things are worth knowing: its motion transfers to the character, and its length sets the output length, so the driving clip is also your cost estimate. The node's tooltip is explicit that videos outside the 2–30 second range are rejected before any charge.
  • animation_mode - animate drives the character in the image with the driving video's motion. replace swaps the person in the driving video for the one in your image. Same node, two different jobs; pick before you write a prompt.
  • prompt - optional, and it guides animation style and content. Often better left alone than used to second-guess the driving video.
  • resolution - 720p by default, 480p available. 480p is the cheap-iteration tier.
  • seed - fixed after generate by default, so a re-queue reuses the result rather than charging for another take.

Outputs

video and task id. Wire video into Save Video; keep the task id, since it's both the support handle and how you find the job in your console.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi

Restart ComfyUI. No dependency install, no model weights, no GPU - the pack is a thin client and the model runs on SpicyAPI's machines. Add a key from spicyapi.ai/console/keys under Settings > SpicyAPI and restart once so the catalogue comes from your account. On a headless box, SPICY_API_KEY.

What to watch

Cost is per second of output, so a long driving video is a long bill. Around $0.053/s means a 30-second take is around a dollar-fifty, and a five-second test is a quarter. Trim your driving clip to the section that matters before you run - it's free, and it's the single biggest saving on this node.

Your character gets stretched to fit. This is the known gripe with Wan Animate and the reason SCAIL-1 got its fifteen minutes of fame: if the person in your image and the person in the driving video have different proportions, the motion transfer distorts yours. Match your reference to the driver - same build, similar framing - or expect the model to make them match.

Identity drifts. Reference-based animation holds a face better than text-to-video ever will, and still not perfectly. Keep clips short and check the last frame before you commit to a long render.

Set the ceiling. Settings > SpicyAPI > Max cost per run makes the node quote every run and refuse anything above your limit before charging. And remember: interrupting a run only stops you waiting - the task finishes server-side and is charged if it succeeds. Failures return a task id; 40310 is an unverified email, 40004 means no deployment serves that combination.

CategorySpicyAPI/Video/Alibaba

Inputs (6)

NameTypeDefaultDescription
animation_modeCOMBOanimateanimate drives the character in the image with the motion of the driving video; replace swaps the person in the driving video for the one in the image.
image_urlIMAGECharacter image. The person in this image is the one that gets animated.
video_urlVIDEODriving video, 2 to 30 seconds long; upload an MP4, or pass an MP4 or MOV URL. Its motion is transferred to the character and its length sets the output length. Videos outside that range are rejected before any charge.
resolutionCOMBO720pOutput video resolution.
promptSTRINGOptional description of the motion, used to guide animation style and content.
seedINT00–2147483647Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed.

Outputs (2)

NameTypeDescription
videoVIDEO—
task idSTRINGThe SpicyAPI task id, for the console logs or support.