LightVAE: Faster Video VAE Decoding for Wan and H3
ModelTC releases LightVAE, compressed Wan2.1, Wan2.2 and MiniMax-H3 video VAE decoders that keep the original latent interface, up to 2.94x faster in ComfyUI.
From the project repository: the Wan2.1 VAE next to Turbo-VAED, Flash-VAED and LightVAE.
What LightVAE does
Video VAE decoding is a large part of the cost of a video generation run: a latent clip has to be turned back into hundreds of frames every time. LightVAE keeps the decoder's job identical and shrinks the network that does it:
- LightVAE-Pro uses temporal low-rank convolutions at the original decoder depth, so reconstruction fidelity stays close to the original.
- LightVAE-Lite adds block pruning on top, trading a little fidelity for more speed.
- Original latent interface. Wan models keep their own uncompressed encoder, so an existing workflow only swaps the decode side. MiniMax-H3 gets both a pruned decoder and a separate Lite encoder.
Table 1 of the paper: decoder throughput against reconstruction PSNR.
Decode speed
Measured by the authors in ComfyUI on an H200 at 768 x 1344, batch size 1, with 125 frames for Wan and 124 for H3, one warmup and the median of three runs:
| Backbone | Original VAE | LightVAE-Pro | LightVAE-Lite |
|---|---|---|---|
| Wan2.1 | 6.844 s / 18.26 FPS | 3.754 s / 33.30 FPS (1.82x) | 2.330 s / 53.64 FPS (2.94x) |
| Wan2.2 | 6.886 s / 18.15 FPS | 4.420 s / 28.28 FPS (1.56x) | 2.999 s / 41.68 FPS (2.30x) |
| MiniMax-H3 | 6.303 s / 19.67 FPS | not provided | 3.574 s / 34.69 FPS (1.76x) |
The measurement covers GPU-synchronized VAE.decode only, so it is a decode speedup rather than a full-generation speedup. LightVAE does not reduce the diffusion model's or the text encoder's memory cost.
Choosing a checkpoint
| Generation model | LightVAE decoder | Encoder |
|---|---|---|
| Wan2.1 / Wan2.2 14B | lightvae-{pro,lite}-wan21-decoder-comfy.safetensors | Original Wan2.1 VAE |
| Wan2.2 5B TI2V | lightvae-{pro,lite}-wan22-decoder-comfy.safetensors | Original Wan2.2 VAE |
| MiniMax-H3 | lightvae-lite-h3-decoder-comfy.safetensors | lightvae-lite-h3-encoder-comfy.safetensors or the original H3 video VAE |
Wan2.2 14B uses the Wan2.1 VAE (16 latent channels) while the 5B model uses the Wan2.2 VAE (48 channels), so the choice is not a free pick. Wan encoders and the H3 audio VAE stay unchanged in every configuration.
Using it in ComfyUI
python comfyui/install.py --comfy-root /path/to/ComfyUI copies the adapter to ComfyUI/custom_nodes/ComfyUI-LightVAE/, and the *-comfy.safetensors weights go in ComfyUI/models/vae/LightVAE/. The node is Load LightVAE (TLR), and the important part is that the packed exports replace a normal Load VAE, not the standard VAELoader path:
- Keep the original Load VAE node and connect it to LightVAE's
base_vae. - Select the Pro or Lite decoder for your backbone and leave
encoder = none(Wan), or select both H3 Lite files. - Connect LightVAE's
VAEoutput to the encode and decode nodes in the workflow.
For Wan only the decode side changes, and reference conditioning keeps using the original encoder. For H3 the optional Lite encoder replaces both the reference-encoding path and decoding, and no original video VAE is needed in that setup. Setting both selections to none restores the original VAE exactly.
The repository ships six flat workflows for this node, and they need nothing beyond ComfyUI core:
| Workflow | Task | LightVAE components |
|---|---|---|
wan21_t2v_lightvae.json | Wan2.1 1.3B text to video, 832x480, 81 frames | wan21 Pro / Lite decoder |
wan22_5b_t2v_lightvae.json | Wan2.2 5B text to video, 1280x704, 121 frames | wan22 Pro / Lite decoder |
wan22_5b_i2v_lightvae.json | Wan2.2 5B image to video | wan22 Pro / Lite decoder |
wan22_14b_i2v_lightvae.json | Wan2.2 14B image to video, two experts | wan21 Pro / Lite decoder |
h3_ref_image_lightvae.json | H3 reference image to video and audio, 1344x768 | H3 Lite encoder + decoder |
h3_ref_video_lightvae.json | H3 reference video plus soundtrack to video and audio | H3 Lite encoder + decoder |
All six are also in the workflows directory.
Hardware support
LightVAE is not limited to Hopper. On NVIDIA BF16 with Triton it uses fused kernels; without a working Triton compiler, or on other PyTorch devices, the TLR convolutions stay factored and run through a PyTorch fallback, and there is a CPU FP32 path for debugging. The H3 path uses PyTorch convolutions and attention rather than the Wan Triton kernels, and the authors note that untested GPU families are not speed-guaranteed. The node was validated against ComfyUI e8665ca at Python 3.11, with a complete H3 generation verified at 1344x768, 362 frames, 24 FPS.
Availability
Weights: lightx2v/LightVAE on Hugging Face. Code, benchmarks and workflows: ModelTC/LightVAE on GitHub.
Comments
Sign in with GitHub to join the discussion.