Nodes/ComfyUI_StarNodes/⭐ Star Preview
ComfyUI Node

⭐ Star Preview

See the video at step 3 instead of finding out five minutes later

By Starnodes2024·Created 2 years ago·Updated 2 days ago· 106
⭐ Star Preview
    • star_preview
    preview_vaenone

    What this actually is

    Here's the problem it solves. You hit Queue on an LTX 2.5 or MiniMax H3 render. ComfyUI shows you a progress bar and nothing else for the next several minutes. Then it finishes, the composition is wrong, and you start over.

    The community says the quiet part out loud: prompting these models is the weak axis, so the winning move is generating many cheap candidates and selecting - and seed hunting only works if you can bail early. One user in the LTX threads put the stakes plainly: "I very often don't like the result, and have to generate again, I can't wait 5-10 minutes for a failed gen."

    ⭐ Star Preview is the bail-early button. While a StarNodes all-in-one samples, an animated preview of the video latent streams onto this node, updating every step.

    The one thing that confuses everyone

    This is not a preview node you feed a latent into. It has no latent input, no image input, no frame input. It's what the plumbing docs call an options node: one widget in, one settings bundle out. Its output type is STAR_PREVIEW, and it only means anything when wired into the preview input of a node that knows how to use it:

    • ⭐ Star LTXV All-in-One
    • ⭐ Star LTXV 2.5 All-in-One
    • ⭐ Star Minimax All In One
    • ⭐ StarSampler (Unified)

    Plug it into anything else and nothing happens, because nothing else reads that type. That's the whole wiring job - one wire into the all-in-one's preview socket. Nothing downstream.

    How it works

    When the AIO sees a STAR_PREVIEW bundle on its preview input, it clones its model and attaches an OUTER_SAMPLE wrapper - the same mechanism KJNodes' Model Preview Override uses. That wrapper taps the sampler callback on every step, grabs the current x0 video latent, decodes it with the model's own latent_rgb_factors (Latent2RGB), samples up to 16 frames, and encodes them as an animated WebP (a single frame comes out as a JPEG instead) which it pushes to the node over the websocket.

    The settings are hardcoded on purpose: 512 px on the longest side, quality 80, 8 fps playback. No widgets to fiddle with, which is the point - you're watching, not tuning. Encoding runs on a background thread behind a one-slot queue that drops frames when it falls behind, so a slow preview can never stall the sampler. The node also mutes ComfyUI's built-in latent previewer while it's active, otherwise the same latents get decoded twice every step.

    The input that matters

    Exactly one: preview_vae - a dropdown listing everything in models/vae_approx, defaulting to none.

    none means fast Latent2RGB colours, no file needed. It's approximate: it's a colour transform of the latent, not a decode, so you'll see the composition, motion and rough palette, not the final look. If you keep a tiny decoder around - a taehv, taeltx or taeh3 file - drop it in models/vae_approx and pick it here for truer colours. Video versus image decoders are detected automatically, so renamed files still work. If the tiny VAE throws during a run, the node logs a warning and falls back to Latent2RGB for the rest of that run rather than killing your generation.

    Installing

    The usual two routes, and the pack ships with a per-node import guard worth knowing about: if a dependency is missing, only that node disappears, ComfyUI prints which package it wanted, and the rest of the pack loads fine.

    ComfyUI Manager: search Starnodes → Install → restart.

    Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Starnodes2024/ComfyUI_StarNodes
    cd ComfyUI_StarNodes
    pip install -r requirements.txt
    

    Then restart ComfyUI and look under the ⭐StarNodes/Video category, or double-click the canvas and type star.

    Star Preview itself needs nothing beyond PIL and numpy, so it works even on a partially installed pack. One install note for the pack as a whole: install.py also pip-installs nvidia-vfx from NVIDIA's own index for the RTX super-resolution node. On an AMD or CPU box that's dead weight - skip it, and the affected node simply won't load.

    Where people get tripped up

    "I connected it and nothing appears." Check where it's connected. If the target isn't a StarNodes all-in-one or StarSampler, no preview is coming. If it is, watch the console - the preview callback logs [StarPreview] preview callback failed: ... rather than crashing your run, so a silent no-show is usually an error printed there.

    Colours look flat or wrong. That's Latent2RGB doing its job - a colour transform, not a decode. A tae* decoder in vae_approx is the fix, not a bug report. And don't judge quality from the preview: 512 px, quality 80, eight fps. It's a compass, not a proof.

    Category⭐StarNodes/Video

    Inputs (1)

    NameTypeDefaultDescription
    preview_vaeCOMBOnoneOptional tiny preview VAE from models/vae_approx (e.g. a taehv / taeltx / taeh3 decoder) for truer colors in the live preview. 'none' = fast Latent2RGB preview, no file needed. Video vs image decoders are detected automatically, so renamed files work too.

    Outputs (1)

    NameTypeDescription
    star_previewSTAR_PREVIEW