Load MotifVideo VAE
The unglamorous node that turns latents back into pixels
- VAE
Every video that comes out of a Motif-Video 2B workflow ends its life as a latent - a compressed, 16-channel tensor that KSampler played around in. Getting it back to something you can watch is the VAE's job, and MotifVAELoader is how you tell ComfyUI which VAE to use. It's the least exciting node in the pack and also the one where a wrong choice produces the most confusing output: flat grey blobs, or noise that was almost a video.
What it does
This loads the Motif-Video VAE - a 3D video autoencoder in the Wan family (diffusers AutoencoderKLWan layout), which is what the model was trained against. Two facts matter here: it's 16-channel at 8x spatial and 4x temporal downscale, and it ships in diffusers format, not ComfyUI format. That last part is the reason this node exists instead of you just using core VAE Loader.
comfy.sd.VAE expects ComfyUI's key naming, and a raw diffusers checkpoint won't load. So the node sniffs the state dict - if it sees quant_conv.weight or encoder.conv_in.weight, it knows it's diffusers layout and remaps the keys automatically: norm1.gamma → residual.0.gamma, down_blocks.3 → downsamples.3, and so on, through encoder, decoder, and the mid-block resnets. If the keys are already ComfyUI-shaped, it skips the conversion. Either way you get a working VAE with zero manual fiddling.
The one input
- vae_name - a dropdown of everything in
models/vae/. Selectmotifvideo_vae.safetensors.
Output is a VAE, and it feeds two things: VAE Decode at the end of the graph, and MotifVideo Image Encode if you're doing image-to-video. Both want the same node.
Installing it
The node comes with the pack, so the install is pack-shaped:
cd ComfyUI/custom_nodes
git clone https://github.com/MotifTechnologies/ComfyUI-MotifVideo2B.git
pip install -r ComfyUI-MotifVideo2B/requirements.txt
Then get the VAE file where the dropdown can see it:
huggingface-cli download Motif-Technologies/Motif-Video-2B \
vae/diffusion_pytorch_model.safetensors --local-dir /tmp/motif-video-2b
# rename to motifvideo_vae.safetensors and move to models/vae/
Loading the pack's example workflows on a current ComfyUI triggers a one-click model download dialog that pulls all three weight files (transformer, text encoder, VAE) for you, which sidesteps the whole manual dance.
Where people get burned
- Using a different VAE. The Motif-Video VAE is Wan-family, which tempts people to reach for whatever Wan 2.1 VAE they already have. Don't. Latent statistics and exact key layouts are per-model; the pack's own
motifvideo_vae.safetensorsis the one the checkpoint was trained against, and that's the one that decodes cleanly. - Wrong latents, weird video. A mismatched VAE usually doesn't error - it produces gray frames or color noise. If your KSampler output looks fine in the preview but decode comes out trash, check which VAE you actually loaded.
- It's a one-file dependency. The tokenizer and config are bundled with the node, so once the safetensors is in
models/vae/there's nothing else to fetch.
Also worth knowing: this pack is genuinely heavy. The full download is ~16GB across three files, the recommended setup is H200-class VRAM with ComfyUI launched --highvram, and a single 1280×736, 121-frame generation runs about 30s/step at bf16. The VAE itself is not the bottleneck - but it's the node that makes every other node's work visible, so don't treat it as interchangeable.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| vae_name | COMBO | 0 options: |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| VAE | VAE | — |