Nodes/HighPreviewKSampler/High Preview KSampler
ComfyUI Node

High Preview KSampler

A KSampler that live-previews full-resolution frames

By Hu-XiaoYan·Created about a month ago·Updated about a month ago· 0
High Preview KSampler
  • model
  • positive
  • negative
  • latent_image
  • vae
  • LATENT
seed0
steps20
cfg8.00
sampler_name
scheduler
preview_modeSync
preview_decodeScale
denoise1.00

First, the name is a bit of a lie. HighPreviewKSampler doesn't sample at high resolution and it doesn't upscale anything - the image you get out is the same latent you'd get from a stock KSampler. What it does do is show you a full, properly VAE-decoded image at every denoising step in a floating "HD Preview" window, instead of the tiny, smeared latent preview ComfyUI draws by default. If you've ever squinted at that 64-pixel thumbnail mid-run wondering whether the composition is actually working, this is the node for that specific itch.

It's a brand-new, one-node pack from Hu-XiaoYan - there's no fanfare behind it yet, no community track record, so treat it as a hobby tool that does one thing. The good news is that one thing is built on ComfyUI's own plumbing, so it's hard to break anything with it.

How it works

Mechanically it's a thin wrapper. The source calls the exact same comfy.sample.sample function the core KSampler uses, with all your settings passed straight through. The difference is a callback that fires on each denoising step: it takes the sampler's predicted clean image (x0), runs it through process_out and then your VAE to get an actual RGB image, base64-encodes it, and pushes it to the browser over the websocket. A bundled frontend script catches that event and paints it into a draggable, resizable, zoom-and-pan preview window with a Step x/y readout. No API, no key, no extra model files - the only real dependency is a VAE you were going to load anyway.

The inputs that matter

Every KSampler input is here - model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, denoise - plus the thing that makes it different:

  • vae - required, and the one you'll forget. No VAE wire, no preview, because there's nothing to decode with.
  • preview_mode - Sync (default) decodes every step and sleeps ~0.15s so the browser can actually paint it. Fast decodes every 5th step and skips the sleep.
  • preview_decode - Scale (default) downscales the latent to roughly 1MP before decoding for speed. Full decodes at full resolution.

The single LATENT output wires into a normal VAE Decode / Save Image chain, exactly like a stock sampler.

Install

ComfyUI Manager → search "HighPreviewKSampler", or:

cd ComfyUI/custom_nodes
git clone https://github.com/Hu-XiaoYan/HighPreviewKSampler

Then restart ComfyUI. No requirements.txt, no models to download - it only uses what ComfyUI already ships.

Where people get burned

Sync mode is slow, on purpose. A VAE decode every step plus the 0.15s sleep adds real wall-clock time - on 20 steps that's 3 seconds of pure sleep before you even count the decodes. For iterating on prompts use Fast + Scale; save Sync + Full for when you genuinely want to watch the generation at full fidelity (and have VRAM to spare).

Also: the preview window hooks every execution start, so it'll pop up even on workflows that don't use this node - just close it, it remembers. And as always with previews, if the VAE doesn't match the model's latent space, you'll get noise in the window. The honest take: ComfyUI's cheap latent preview exists because decoding every step is expensive, and this node is a nicety for watching, not a quality improver.

CategoryHigh_Preview

Inputs (13)

NameTypeDefaultDescription
modelMODEL
seedINT0
stepsINT20
cfgFLOAT8.00
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
positiveCONDITIONING
negativeCONDITIONING
latent_imageLATENT
vaeVAE
preview_modeCOMBOSync2 options: Sync, Fast
preview_decodeCOMBOScale2 options: Full, Scale
denoiseFLOAT1.000–1

Outputs (1)

NameTypeDescription
LATENTLATENT