LTX-2.5 AV Decode ⚡
Latent in, finished MP4 out — LTX-2.5 audio + video decode in one node
- latent
- vae
- audio_vae
- VIDEO
The end of every LTX-2.5 chain is this node: it takes the joint audio-video latent from the refine pass and turns it into a single muxed VIDEO - picture, audio, and container - with one fps threaded through all of it. By hand you'd chain three core nodes (tiled VAE decode for video, audio VAE decode, then CreateVideo to mux) and you'd have to type the same frame rate into two widgets that have no wire between them. A mismatch there isn't an error; it's silent audio/video drift that gets worse the longer the clip runs. This node exists to make that class of bug impossible.
The decode itself is the boring, correct kind of work, which is exactly what you want at the end of a long generation. The video half goes through a tiled VAE decode - that's why long clips don't blow your VRAM budget at the finish line - and the audio half decodes through the audio VAE at the output sample rate the model was trained on. Both get muxed into a VIDEO object you can pipe straight into core SaveVideo (or PreviewVideo if you're iterating).
The inputs
latent- the refine pass's output (or the distilled pass's, if you skipped upscaling for a quick draft).vae- the video VAE.audio_vae- the audio VAE. Both come straight fromLTXV25ModelsLoader; the loader already verified you didn't swap them.fps- wireLTXV25ImgToVideo'sframe_rateoutput into this rather than typing a number. That's the pack's explicit instruction, and it's the whole reason the prep node carriesframe_rateas an output in the first place. A 30 fps source muxed at 24 drifts audio progressively out of sync - and nobody notices until the video's ruined.- The four tile widgets (
tile_size512,overlap64,temporal_size64,temporal_overlap16) - these are the official workflow's tiled-decode defaults. Leave them alone until you're tuning for a specific VRAM ceiling.
One VIDEO out → SaveVideo.
Installing it
Part of the ComfyUI-GGUF-Loader pack (ChrisColeTech's fork of city96's ComfyUI-GGUF). ComfyUI Manager: search "ComfyUI-GGUF-Loader". Or:
cd ComfyUI/custom_nodes
git clone https://github.com/ChrisColeTech/ComfyUI-GGUF-Loader
pip install --upgrade gguf
Restart. One honest requirement: this node uses ComfyUI's newer VIDEO type, so it wants a reasonably current ComfyUI - on a very old install it errors with an explicit "update ComfyUI" message rather than failing silently.
Common issues
The fps wiring is the whole gotcha, and it's a wiring gotcha, not a node bug - type the number and you'll eventually ship a clip with drifting sync. Second, remember this node is the end: feed it a latent that still has guide frames appended (if you came from LTXV25VidToVideo and skipped the crop), and those guide frames decode into your final video. The chain order - crop, then upscale, then refine, then decode - is the recipe.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| latent | LATENT | — | |
| vae | VAE | Video VAE. | |
| audio_vae | VAE | Audio VAE. | |
| fps | FLOAT | 24.001–120 | Wire LTXV25ImgToVideo's frame_rate output here. |
| tile_sizeopt | INT | 51264–4096 | — |
| overlapopt | INT | 640–4096 | — |
| temporal_sizeopt | INT | 648–4096 | — |
| temporal_overlapopt | INT | 164–4096 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| VIDEO | VIDEO | — |