Nodes/ComfyUI_LTX2_SM/LTX2_DECO_VIDEO
ComfyUI Node

LTX2_DECO_VIDEO

Turn LTX latents into actual frames, tiled so your GPU doesn't die

By smthemex·Created 7 months ago·Updated 3 months ago· 31
LTX2_DECO_VIDEO
  • decoder
  • latent
  • images
tiletrue

You've sampled, you've got latents, and now you want to see the thing. LTX2_DECO_VIDEO is the pack's decode step: it takes the video latent from the KSampler and the decoder output from LTX2_SM_VAE, and returns actual image frames you can preview, save, or feed into a video encoder node. If you're coming from stock Comfy, this is the VAE Decode that's been custom-built for LTX-2.3's latent space.

The one setting that matters

There are only three inputs - decoder, latent, and tile (a boolean, on by default). The tile toggle is the whole story: with it on, the decoder runs with TilingConfig.default(), slicing the latent into chunks and decoding piece by piece. That's how you decode an 81-frame 2.3 clip on a 6GB card instead of watching the card choke. With it off, it decodes the whole latent at once - faster when you have VRAM to burn, instant OOM when you don't.

Two behaviors worth knowing:

  • It reads a seed from the latent dict if one's stored there (the KSampler stamps it), so decoding is reproducible for a given latent.
  • It returns frames as a float tensor in 0–1, shaped like a batch of [frames, height, width, 3] - i.e. standard Comfy IMAGE format. From here you wire into the usual suspects: a preview node, VHS_VideoCombine, or any save-video node in your setup.

Gotchas

  • This is the wrong node for the audio latent. There's a separate LTX2_DECO_AUDIO for that, paired with the audio VAE's a_decoder. Feed audio latents here and you'll get a type error or garbage.
  • Don't swap the VAE. 2.3's rebuilt latent space means the decode only works with the matching 2.3 video VAE (ltx-2.3-22b-distilled_video_vae.safetensors). A 2.x or 0.9.x VAE will silently give you mush.
  • Keep tile on until you've confirmed your card can handle the untiled pass. The failure mode is a hard OOM mid-run, not a graceful error.

Install

The short version, identical to the rest of the pack - ComfyUI Manager (search "ComfyUI_LTX2_SM") or:

cd ComfyUI/custom_nodes
git clone https://github.com/smthemex/ComfyUI_LTX2_SM.git
cd ComfyUI_LTX2_SM && pip install -r requirements.txt

Restart, place the video VAE in ComfyUI/models/vae/, and you're set. It runs through the diffusers/transformers stack the pack vendors, and it clears Comfy's model cache on execute like everything else here - a reload tax per run, but small compared to the sampler's.

CategoryLTX2_SM

Inputs (3)

NameTypeDefaultDescription
decoderVAE
latentLATENT
tileBOOLEANtrue

Outputs (1)

NameTypeDescription
imagesIMAGE