Nodes/ComfyUI/Wan22FunControlToVideo
ComfyUI Node Runs on cloud

Wan22FunControlToVideo

Reference image plus control video for Wan 2.2

By Comfy-Org·Created 4 years ago·Updated about an hour ago· 129,820
Wan22FunControlToVideo
  • positive
  • negative
  • vae
  • ref_image
  • control_video
  • positive
  • negative
  • latent
width832
height480
length81
batch_size1

Wan22FunControlToVideo is the conditioning node for Wan 2.2's "Fun Control" models - the ones that take a reference image for identity plus a control video for motion. Think of it as VACE's lighter sibling: same idea (identity from a reference, motion from a driving video) but built for the smaller, faster Wan 2.2 Fun line rather than the heavyweight VACE stack.

The category name is a giveaway about what changed in Wan 2.2: the model line split into "Fun" variants that make control conditioning first-class. This node packages the whole front half of that pipeline - identity reference, control video, generation canvas, and the empty latent - so your graph is: load Wan 2.2 FunControl checkpoint → text encode → this node → KSampler → VAE decode → video.

How it works

It builds a latent canvas at your target width/height/length, VAE-encodes the control video and (optionally) the reference image, and writes the concatenated latent into the conditioning as the concat_latent_image. The model then treats the encoded reference as identity context and the control video as the motion guide while it denoises. The concat channel count varies with the checkpoint - the source handles both the 48-channel Wan 2.2 format and the 16-channel Wan 2.1 format, which is why this node works across the family.

Inputs:

  • ref_image - the identity reference. Optional, but it's the whole point of the Fun Control line; without it you've got a plain video generation.
  • control_video - the driving video (pose, depth, or any guide). Optional.
  • width / height / length / batch_size - the canvas, length defaulting to 81 frames.

Outputs: positive, negative, and latent (the empty latent for the KSampler).

Where people get burned

  • Control and reference get resized, not cropped. Both inputs are resized to your exact width/height. Feeding a portrait reference into a landscape canvas stretches it - pre-crop near your target aspect ratio or the identity distorts.
  • Shorter control video than length. The model keeps generating past the end of the control video, which is a pleasant surprise in some workflows and a bug in others. Match length to your control video's frame count if you want exact alignment.
  • It's not VACE. Fun Control is the lighter, faster path - great for pose/control transfer at moderate lengths, but the heavyweight VACE stack handles longer extension and finer per-region control. Pick the tool for the length.
  • You still need the sampler. This node produces conditioning and a latent, not video. Missing KSampler + VAE decode is the classic "where's my clip" moment with all the Wan conditioning nodes.

Ships with ComfyUI core (comfy_extras/nodes_wan.py), and it's a sibling of the Wan Fun Control node used for the bigger Wan 2.1-era Fun models. For "make this character do this motion" on a budget, it's the sensible default.

Categorymodel/conditioning/wan/fun control

Inputs (9)

NameTypeDefaultDescription
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
widthINT83216–16384
heightINT48016–16384
lengthINT811–16384
batch_sizeINT11–4096
ref_imageoptIMAGE
control_videooptIMAGE

Outputs (3)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING
latentLATENT