WanVaceToVideo (Tiled VAE encode)
VACE video-to-video, now with an encode that won't OOM
- positive
- negative
- vae
- control_video
- control_masks
- reference_image
- positive
- negative
- latent
- trim_latent
VACE is Alibaba's video-to-video and inpainting framework for Wan - the thing that turns a pose video into character-consistent footage, or drives motion with a mask. It's also one of the slowest, most VRAM-hungry corners of the whole Wan ecosystem. WanVaceToVideo (Tiled VAE encode) is the drop-in replacement for the core WanVaceToVideo node that tiles the VAE encode so the VACE pipeline stops dying before it even starts denoising.
It's the same philosophy as the rest of this pack: identical inputs and outputs to the built-in node, but every video frame (the control video, the reference image, the masked and unmasked passes) runs through vae.encode_tiled() with spatial tiles and temporal frame-chunks instead of one monolithic encode. Note the source marks this one EXPERIMENTAL - it's flagged as such in ComfyUI, so expect it to be a little rougher around the edges than the core I2V node.
What you feed it
- control_video - the footage that drives motion. VACE compares it against its reference to figure out what's moving.
- control_masks - a MASK that decides which regions of the control video actually influence the result. No mask = the whole video is live.
- reference_image - one image that anchors identity. This is the "video-to-video" trick: motion from the video, look from the image.
- strength - how hard VACE's conditioning pushes on the denoiser. 1.0 is the default; raise or lower it to taste.
- Plus the usual width / height / length / batch_size, and the four tiling knobs tile_size / overlap / temporal_size / temporal_overlap.
The output most people trip over
Outputs are positive, negative, latent - and a fourth one called trim_latent. That last one exists because when you supply a reference_image, VACE prepends it to the front of the latent timeline so the model can use it as context. trim_latent tells you how many leading latent frames are just reference context. After sampling, trim that many frames off the start of the video (ComfyUI's latent crop/offset nodes handle this) - otherwise your clip opens with a few frozen frames of the reference image. Easy to miss, and it'll confuse you exactly once.
Install and caveats
Install is the pack standard - ComfyUI Manager, search "WanImageToVideoTiled", or:
cd ComfyUI/custom_nodes
git clone https://github.com/stduhpf/ComfyUI--WanImageToVideoTiled
Restart and you're set; nothing extra to download, since it borrows the VACE conditioning helpers straight from ComfyUI's core. Pair the front end with VAE Decode (Tiled) on the way out - VACE renders are long, and tiled decode is the difference between a quick preview and watching paint dry.
Two honest warnings before you dive in. First, the tiled encode only helps the VAE stage; VACE's denoiser is still a VRAM hog and will happily OOM on its own. Second, VACE is slow no matter what you do - the community treats 15–40 minutes per clip on a 4090 as normal. This node makes the encode part survivable on weaker cards, not fast. And remember the README lists VACE as tested, so you're on the more reliable half of the pack.
Inputs (15)
| 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 | — |
| strength | FLOAT | 1.000–1000 | — |
| tile_size | INT | 51264–4096 | — |
| overlap | INT | 640–4096 | — |
| temporal_size | INT | 648–4096 | Amount of frames to encode at a time. |
| temporal_overlap | INT | 84–4096 | Amount of frames to overlap. |
| control_videoopt | IMAGE | — | |
| control_masksopt | MASK | — | |
| reference_imageopt | IMAGE | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |
| trim_latent | INT | — |