Nodes/ComfyUI-Fossiel-WAN-Additional-Tilers/Wan22 Fun Control To Video (Tiled VAE Encode)
ComfyUI Node

Wan22 Fun Control To Video (Tiled VAE Encode)

Drive a Wan 2.2 video from another video

By Fossiel·Created 9 months ago·Updated 9 months ago· 2
Wan22 Fun Control To Video (Tiled VAE Encode)
  • positive
  • negative
  • vae
  • ref_image
  • control_video
  • positive
  • negative
  • latent
width832
height480
length81
batch_size1
tile_size512
overlap64
temporal_size64
temporal_overlap8

Want a character to move the way another video moves, but rendered as whatever your prompt describes? That's VACE Fun Control, and this node is the ComfyUI-native control-to-video conditioner with a tiled VAE encode so it doesn't need a giant slab of VRAM to do it. It's the simplest node in this pack - which is nice, because the workflow around it is where the fiddling lives.

What it actually does

You feed it two images/videos: a ref_image (who or what you want in the shot) and a control_video (the motion you want to borrow). The node VAE-encodes the control video into latent space and stuffs it into the conditioning as the control_video field, so the Wan 2.2 model uses it as a per-frame driver. The reference image becomes a reference_latents entry. Same job as the stock Wan22FunControlToVideo node - the only change under the hood is that every encode goes through encode_tiled() instead of a whole-tensor encode().

This matters more than it looks. Control videos are long, and the full encode is exactly the kind of operation that pushes an 8–12GB card over the edge while the sampler itself would have been fine. With the tiled version you trade a bit of time for dramatically lower peak memory.

Inputs and outputs

It's a lean node. Required: positive / negative conditioning, vae, width / height / length / batch_size, and the tiling quartet - tile_size (512), overlap (64), temporal_size (64 frames per chunk), temporal_overlap (8). Optional: ref_image and control_video. That's the whole surface.

Outputs: positive, negative, and latent. Wire the conditioning and the empty latent into your KSampler exactly as you would with the original node - this is a drop-in replacement, so existing Fun Control workflows carry over with the tiling controls appearing in the node.

A small implementation note, if you're the curious type: the control latent is expanded to double channels (concatenated with itself) because that's how the model expects a control-video conditioning to look, and there's a concat_mask_index set to match. You don't set any of that; it's just why the wiring lines up when you swap nodes.

Installing it

ComfyUI Manager → search Fossiel or WAN-Additional-Tilers, or:

cd ComfyUI/custom_nodes
git clone https://github.com/Fossiel/ComfyUI-Fossiel-WAN-Additional-Tilers

Restart ComfyUI. No Python dependencies beyond ComfyUI itself, and no models shipped with the pack - you need the Wan 2.2 checkpoint, CLIP, and VAE on hand.

Gotchas

The typical one applies: keep ComfyUI current, because the temporal tiling arguments on encode_tiled() need a recent build. And since the reference encode uses a single-frame tile (tile_t=1), the temporal_size knob effectively only affects the control video - which is the part that eats VRAM anyway, so it's the knob you'll actually turn. If you're still hitting memory limits, drop tile_size before you drop resolution.

Categoryconditioning/video_models

Inputs (13)

NameTypeDefaultDescription
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
widthINT83216–16384
heightINT48016–16384
lengthINT811–16384
batch_sizeINT11–4096
tile_sizeINT51264–4096Tile size for VAE encoding (X and Y).
overlapINT640–4096Overlap between spatial tiles.
temporal_sizeINT648–4096Number of frames to encode per temporal tile.
temporal_overlapINT84–4096Overlap between temporal tiles.
ref_imageoptIMAGE
control_videooptIMAGE

Outputs (3)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING
latentLATENT