LTX2_SM_VAE
Two LTX video VAEs in one dropdown — decoder for frames, encoder for images
- decoder
- encoder
LTX2_SM_VAE looks like a boring model loader, and mostly it is - but it's doing something Comfy users aren't used to. It loads one video VAE file and hands you two different objects: a decoder that turns latents back into frames, and an encoder that turns input images into latent conditioning for image-to-video. Same weights, two roles, one node.
Why two outputs
LTX-2.3 ships a rebuilt VAE with its own new latent space - the thing that made the old TinyVAE preview trick die, and the reason the model holds edges and hair detail better than LTX-2. In this pack's vendored pipeline, the VideoDecoder handles the decode pass and the ImageConditioner handles the I2V encode pass. load_vae() builds both from the single file you point the vae dropdown at, so you don't download anything twice.
Wire it like this:
- decoder →
LTX2_DECO_VIDEO(decode sampled latents to frames) - encoder →
LTX2_LATENTS(feed it an image when you want I2V)
The vae dropdown reads from ComfyUI/models/vae/ and expects ltx-2.3-22b-distilled_video_vae.safetensors, which comes from the vae folder of unsloth/LTX-2.3-GGUF on HuggingFace (or the author's mirror). Yes, it's the "distilled" VAE even if you run the dev transformer - that's the standard file for 2.3.
Gotchas
- This is not Comfy's VAE type. It's an LTX-2 pipeline object, so don't try to wire it into a normal VAE Decode node - you'll get a type error. Use the pack's own
LTX2_DECO_VIDEOfor decoding. - Don't confuse it with the audio VAE.
LTX2_SM_AUDIO_VAEis a separate node for the audio latents. Both live in the samemodels/vaefolder; the audio one isltx-2.3-22b-distilled_audio_vae.safetensors. Easy to pick the wrong file in the dropdown if you're not looking. - Missing from the list? The dropdown only shows files physically present in
models/vae. If your file isn't there, ComfyUI hasn't seen it - restart after placing it.
Install reminder
Same pack, same story as every node here:
cd ComfyUI/custom_nodes
git clone https://github.com/smthemex/ComfyUI_LTX2_SM.git
cd ComfyUI_LTX2_SM && pip install -r requirements.txt
It depends on the diffusers/transformers stack plus gguf and omegaconf, and it loads through those rather than Comfy's native loader. The model runs with streaming offload, so expect the usual reload tax between runs - the node clears Comfy's model cache on every execute to keep 6GB cards alive.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| vae | COMBO | 1 options: none |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| decoder | VAE | — |
| encoder | VAE | — |