WAN VAE Loader
The Wan 2.2 VAE that turns latents into images
- VAE
WAN VAE Loader is the quiet workhorse of the comfyui-lance-aio pack: it loads Alibaba's Wan 2.2 VAE, which Lance uses as its image-space compressor. Every generation task - text-to-image, text-to-video, image-to-video, every edit - needs it, because Lance doesn't output pixels directly. It outputs latent noise, and the VAE is what turns that into a picture. The Lance Understanding node doesn't need it, but anything that draws does.
There's a pleasant bit of cross-lab history here. Lance is a ByteDance model, but ByteDance's researchers built it on Alibaba's Wan 2.2 VAE rather than training their own - Alibaba's open video family froze at Wan 2.2 in mid-2025 and its components kept getting reused as building blocks, and this is a direct example of that. The pack even reuses ComfyUI's existing Wan22 latent format for the normalization step, so if you've done any Wan 2.2 work in ComfyUI, the latent conventions will feel familiar.
The one input
- ckpt_path - a path to the
Wan2.2_VAE.pthfile. Wire it from Lance Args'WAN_CKPT_PATHoutput; it's a file path, not a directory, which trips people up once in a while. It's the only model loader in the pack that points at a file rather than a folder, because the VAE is a single standalone file.
What comes out
A single VAE output, in ComfyUI's standard VAE type - this is one place the pack plays nice with the rest of the ecosystem, since it's literally ComfyUI's own VAE class wrapping the loaded weights. It feeds the Lance Generation node's vae input. You can't decode Lance latents with an arbitrary VAE you happen to have lying around; Lance's latents are in Wan 2.2 space, so use this one.
How it works
The loader reads the .pth with ComfyUI's torch-file loader and wraps it in Comfy's VAE class, then validates it's structurally sound. During generation, Lance's decode step normalizes the latents back out of Wan 2.2's format, feeds them through the VAE, and reshapes the result into frames. One detail the author handled carefully: the VAE's crop_input is disabled to avoid rounding issues with non-standard dimensions, which is the kind of subtle fix that keeps odd resolutions from producing shifted output.
Installing the pack
cd ComfyUI/custom_nodes
git clone https://github.com/SteveImmanuel/comfyui-lance-aio
cd comfyui-lance-aio
pip install -r requirements.txt
or install comfyui-lance-aio via ComfyUI Manager. Then download the Lance checkpoints from bytedance-research/Lance into ComfyUI/models/lance/, including Wan2.2_VAE.pth at the top level of that folder (the README's layout puts it next to the Lance_3B/, Lance_3B_Video/, and Qwen2.5-VL-ViT/ folders). Restart ComfyUI.
Where people get burned
Mostly path mistakes: pointing ckpt_path at a directory, or putting the VAE file in the wrong spot so the path from Lance Args doesn't resolve. Also, people occasionally try to substitute another VAE to save a download - don't. The Wan 2.2 VAE is small (a few hundred MB) and its latent space is what Lance was trained against; swapping it produces color-shifted or broken output and saves you almost nothing. And since generation only, remember: if your graph is understanding-only, you can leave this node out entirely.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_path | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| VAE | VAE | — |