Nodes/VELVET VICE — LTX/VELVET VICE LTX — Native Preview Bridge
ComfyUI Node

VELVET VICE LTX — Native Preview Bridge

Watch LTX denoise in real time without a second encode — and without risking the render

By Velvet-Vice·Created 25 days ago·Updated 10 days ago· 2
VELVET VICE LTX — Native Preview Bridge
  • model
  • latent_upscale_model
  • vae
  • model
preview_rate24
jpeg_quality95
max_preview_edge768

The community's dream for local video gen is seeing your clip emerge as it renders, not waiting three minutes then hoping. ComfyUI has a built-in latent preview, but for LTX it's a tiny 16×24 projection - technically a preview, practically a mood board. VelvetViceLTXNativePreviewBridge is the pack's upgrade: it adds a real, VAE-decoded live preview of your LTX render, streamed to the browser at 24–60 FPS while sampling runs.

How it works

The clever part is that it doesn't change your sampler at all. The node clones your sampling model (model.clone()) and attaches an OUTER_SAMPLE wrapper via ComfyUI's comfy.patcher_extension API. Every sampler callback produces the current temporal frame buffer; the wrapper intercepts that, VAE-decodes it (using the optional vae you feed it - in the Velvet Vice workflow that's the fast preview VAE), and streams JPEG frames to the browser. The original model is untouched, which is the safety guarantee: a preview failure can only disable the preview, never stop the render.

The frame buffer holds up to 24 frames and the browser plays them at preview_rate (24–60 FPS) until the next sampler callback arrives, so you're watching real motion, not a slideshow. Resolution is capped by max_preview_edge (512–1024, default 768) and quality by jpeg_quality (85–95, default 95), both deliberately bounded to keep the preview cheap.

You'll need the pack's VelvetViceLTXLivePreviewDisplay node somewhere in the graph - that's the sink that actually renders the frame buffer in the UI. The bridge produces; the display consumes.

Inputs and outputs

  • model - the sampling model. The node clones it.
  • preview_rate - 24–60, default 24.
  • jpeg_quality - 85–95, default 95.
  • max_preview_edge - 512–1024, default 768.
  • latent_upscale_model (optional) - a latent upscaler to improve preview detail before decode.
  • vae (optional) - the preview VAE; without it the preview falls back to a latent RGB projection.
  • Output: model - the cloned model, wire it into the sampler.

Installing it

Part of VELVET VICE - LTX (velvet-vice-ltx) via ComfyUI Manager, or:

cd ComfyUI/custom_nodes
git clone https://github.com/Velvet-Vice/velvet-vice-ltx

Restart and hard-refresh with Ctrl+F5. No pip deps. Important: it uses comfy.patcher_extension, which is a relatively recent ComfyUI feature - if the node errors on import, update ComfyUI.

Gotchas

  • No display node = no preview. Wire the Live Preview Display into the graph or the buffer streams into nothing.
  • The preview costs a bit of VRAM. A second VAE decode at preview resolution during sampling isn't free. On a tight 24 GB card, use the latent-projection fallback (no VAE) if the preview is causing pressure.
  • Preview ≠ final. It's a stream of the live denoise, so expect it to look rough mid-sampling. The beauty is in watching motion emerge; the final encode is still your single output node's job.
  • Requires modern ComfyUI - the patcher_extension API isn't on ancient builds.

For LTX specifically - where clips render in seconds and iteration speed is the whole point - a live preview that's actually watchable turns every render into a quick sanity check instead of a blind wait.

CategoryVELVET VICE/LTX/Preview

Inputs (6)

NameTypeDefaultDescription
modelMODEL
preview_rateFLOAT2424–60
jpeg_qualityINT9585–95
max_preview_edgeINT768512–1024
latent_upscale_modeloptLATENT_UPSCALE_MODEL
vaeoptVAE

Outputs (1)

NameTypeDescription
modelMODEL