π₯ Winnougan LTX Latent Preview
Watch your LTX video being generated, not a progress bar
- model
- vae
- latent_upscale_model
- model
The difference between "waiting for a video" and "watching a video appear" is one node, and it's Winnougan LTX Latent Preview. It patches your LTX model so that every sampling step decodes the current latent into a preview frame in your browser - you watch the clip being painted in front of you instead of staring at an ETA. For video especially this is how you spot a doomed generation early and kill it before burning the full render.
Honest framing: this node doesn't invent the idea. It's a faithful port of Kijai's LTX2SamplingPreviewOverride from ComfyUI-KJNodes - the docstring says so, and the math is line-for-line the same - wrapped in the pack's fire-themed UI. What the pack adds is a version that doesn't require installing all of KJNodes to get the feature.
How it works
The node takes your model, clones it, and attaches a wrapper at the sampler's outer-sample callback (OUTER_SAMPLE in ComfyUI's patcher extension). On every step, the wrapper grabs the partially-denoised latent, converts it to a previewable RGB image, and pushes it to the browser alongside step/Eta info. The clever part is how it previews: for the LTX-2.3 latent space (128 channels) it uses a built-in linear latentβRGB projection - the same cheap trick the classic latent preview nodes use - so it needs no full VAE decode at all. That's a genuinely important detail, because 2.3's rebuilt VAE broke the old TinyVAE preview trick for the previous latent space; this node ships the 2.3 projection factors so previews work again without a heavy decode.
Inputs
model- your loaded LTX model. The outputmodelis the patched clone; wire it into your sampler.preview_rate- target preview frames per second, default 8. Higher is a more cinematic preview at the cost of a little compute per step.vae(optional) - only meaningfully used if it's a Tiny AutoEncoder (TAEHV or similar): wire one for crisp, fast decoded previews. If you wire a full VAE here it won't hurt, but the node falls back to the fast projection path anyway.latent_upscale_model(optional) - pass a latent upscale model if you use one, so previews reflect the working resolution.
Install
It's one of eight nodes in the ComfyUI_WLTX_nodes pack, under Winnougan LTX:
cd ComfyUI/custom_nodes
git clone https://github.com/Winnougan/ComfyUI_WLTX_nodes
Restart ComfyUI, or search ComfyUI_WLTX_nodes in ComfyUI Manager. No pip dependencies beyond ComfyUI's own stack.
Common issues
The two things that actually bite: forgetting to wire the patched model out into the sampler (if the original model feeds the sampler, you get no previews and no error - silent), and running preview at too high a rate on a slow card, where the decode overhead eats into the speed LTX exists for. Keep the default 8 unless you have a reason. And if you're coming from LTX-2 and had a TinyVAE-based preview working, note the rebuilt 2.3 latent space is why you need this node's 2.3 factors instead of reusing the old preview setup.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | β | |
| preview_rate | INT | 81β60 | Preview frames per second target. |
| vaeopt | VAE | β | |
| latent_upscale_modelopt | LATENT_UPSCALE | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | β |