LTX Review
A review gate so your two-pass LTX workflow stops burning hours on duds
- video_latent
- audio_latent
- video_vae
- audio_vae
- video_latent
- audio_latent
- review_path
LTX Review is the node that turns a long LTX video workflow into a two-stage one you can actually babysit: it pauses execution mid-graph, decodes the video and audio latents you've sampled so far, pops up a review window with playback, and only continues when you say so. It exists because LTX's two-pass pattern - a cheap first sampler to lay down motion, then an expensive refine pass - is a waste of GPU time if you let every bad first pass ride through to the end. This is the checkpoint that catches duds before the expensive half runs.
It's part of ComfyUI-FBnodes, François Beaudry's utility pack, and it's squarely aimed at LTX-2/2.3-style audio+video workflows, where "review the pass" means looking at both the picture and the sound before committing.
How it works
You wire in video_latent and audio_latent plus the video_vae and audio_vae used to decode them. When enable is ON, the node decodes both latents internally, encodes a browser-compatible H.264/yuv420 preview clip into temp, and opens a popup with Proceed / Cancel / Requeue. It then blocks - up to timeout seconds - and acts on your choice. Critically, it preserves the latents: Proceed passes the original video and audio latents through untouched, so downstream decode and save see the lossless state, not a re-encoded copy.
Two behaviors matter for unattended runs:
timeout(1–600s, default 120) andon_timeout(proceedorcancel) decide what happens when nobody clicks. Setcanceland walk away; the run stops instead of committing a bad pass.enable(BOOLEAN) OFF bypasses the whole thing - latents pass through immediately, no decode, no popup - which is how you run a workflow in production mode with the review gate still in place.
Outputs are video_latent, audio_latent (both passed through), and review_path (STRING) - the path to the generated temp preview clip, which you can hand to the companion LTX Review Preview node to display it in the UI.
The inputs that matter
video_latent/audio_latent(LATENT) - the stage-one output you're reviewing.video_vae/audio_vae(VAE) - used only for the review decode.fps(FLOAT, default 24) - frame rate for the preview clip.timeout+on_timeout- the unattended behavior.enable- the master switch.
Installing it
ComfyUI Manager - search "ComfyUI-FBnodes" - or:
cd ComfyUI/custom_nodes
git clone https://github.com/FranckyB/ComfyUI-FBnodes.git
pip install -r ComfyUI-FBnodes/requirements.txt
Restart ComfyUI. The review encode leans on av (PyAV), the pack's real dependency.
Where it's fiddly
The VAE decode is the slow part - it happens on every review, so the node is only worth it when the second pass is genuinely more expensive than a decode. And remember the preview is an H.264 approximation: what you see is close to what you'll get, but the saved result decodes from the latent, which is why it looks a touch sharper. The classic setup mistake is wiring the wrong VAE - the review decode silently uses whatever you give it, and a mismatched VAE produces a preview that looks nothing like the real output.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| video_latent | LATENT | Video latent to pass through if you proceed. | |
| audio_latent | LATENT | Audio latent to pass through if you proceed. | |
| video_vae | VAE | Video VAE used to decode video_latent for review clip generation. | |
| audio_vae | VAE | Audio VAE used by LTXV Audio VAE Decode behavior to decode audio_latent for review clip generation. | |
| fps | FLOAT | 24.01–240 | Frame rate used when encoding the review clip. |
| timeout | INT | 1201–600 | Seconds to wait for user decision before timeout action. |
| on_timeout | COMBO | proceed | Action used if no decision is received before timeout. |
| enable | BOOLEAN | true | When ON, run review flow and decode latents for preview. When OFF, pass through latents immediately and skip decoding. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video_latent | LATENT | — |
| audio_latent | LATENT | — |
| review_path | STRING | — |