Wan22FunControlToVideo
Reference image plus control video for Wan 2.2
- positive
- negative
- vae
- ref_image
- control_video
- positive
- negative
- latent
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
lengthto 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.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| vae | VAE | — | |
| width | INT | 83216–16384 | — |
| height | INT | 48016–16384 | — |
| length | INT | 811–16384 | — |
| batch_size | INT | 11–4096 | — |
| ref_imageopt | IMAGE | — | |
| control_videoopt | IMAGE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |