LLPS Config
The config node that decides how your in-progress generations look (and whether they get saved)
- llps_config
LLPS Config is the boring half of a two-node pack, and that's a compliment. It does nothing by itself. What it does is let you stop fighting ComfyUI's global live-preview setting and decide, per-sampler, how the in-progress image is decoded, whether it's shown in the UI, and whether a copy gets written to disk every N steps. Its only output is one little llps_config bundle that you feed into the pack's LLPS KSampler.
Why does this exist? Stock ComfyUI has one live-preview method for the whole server, set at launch, and the built-in KSampler doesn't give you a "save every step" toggle at all. If you're building a workflow where you want a per-node preview policy - say, fast taesd previews on a quick test sampler but crisp saved frames from your final sampler - the stock setup forces you to pick one global behavior. This node is the author's answer: "LLPS" is short for Live Latent Previewer & Saver, and it works by passing a settings object around instead of monkeypatching the whole process.
The settings that matter
The config carries eleven fields, but a beginner only really touches a handful:
live_preview_method-server_default,none,auto,latent2rgb,taesd. Default islatent2rgb(decodes the latent to an RGB image each step).taesduses the tiny TAESD decoder, which is fast and looks close enough to judge composition. Important:nonemeans no preview frame is ever decoded - so it also can't save frames. For "save only," picklatent2rgbortaesd, setshow_previewoff,save_previewon.show_preview/save_preview- the two toggles that decide whether previews go to the UI, to disk, both, or neither.save_base_path- empty meansComfyUI/output/LLPS. Relative paths land inside your ComfyUI output folder (the code enforces this so you can't accidentally scatter files across your disk).save_every_n_steps-1saves every single step. For a 20-step run that's 20 files; you usually want a bigger interval.image_format(jpg/png/webp) andjpeg_quality(default 90) - JPEG is the sensible default; switch topngif you're archiving frames for editing.
The rest - enabled, subfolder, filename_prefix, save_metadata_json - are self-explanatory. With save_metadata_json on, the pack writes a metadata.json next to your saved frames recording seed, steps, cfg, sampler, scheduler and the exact file list, which is a genuine lifesaver when you're logging a grid of experiments.
How it works
The node just assembles a dict from your inputs and hands it to the sampler via the LLPS_CONFIG socket. The actual work happens in LLPS KSampler: it temporarily swaps ComfyUI's preview method while building the previewer, then restores the global setting, so nothing leaks into your other samplers. That's the whole v1 design boundary - only LLPS KSampler respects this config, which the author chose deliberately to avoid global-state race conditions.
Install
It ships in the ComfyUI-LLPS pack with the sampler. Easiest is ComfyUI Manager: search "LLPS" and install. Otherwise:
cd ComfyUI/custom_nodes
git clone https://github.com/nicarinai/ComfyUI-LLPS
Then restart ComfyUI. No requirements.txt, no model downloads, no TAESD file to fetch manually - the previewer hooks into whatever ComfyUI already has. It's a small pack; the whole thing is one file of vanilla Python plus PIL.
Gotchas
The trap most people hit first is live_preview_method = none + save_preview = true - nothing saves, because there's nothing decoded to save. The README calls this out, and it's easy to trip over. Also note that the first callback step (step 0) is skipped for file-saving because it can be a stale warm-up frame; the last step is force-saved at the end, so your final preview always lands on disk. If you've got a workflow that saves previews elsewhere too, remember this pack is scoped to its own sampler - stock KSamplers in the same graph keep using ComfyUI's global preview settings.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| enabled | BOOLEAN | true | — |
| live_preview_method | COMBO | latent2rgb | 5 options: server_default, none, auto, latent2rgb, taesd |
| show_preview | BOOLEAN | true | — |
| save_preview | BOOLEAN | false | — |
| save_base_path | STRING | — | |
| subfolder | STRING | — | |
| filename_prefix | STRING | LLPS | — |
| image_format | COMBO | jpg | 3 options: jpg, png, webp |
| save_every_n_steps | INT | 11–1000 | — |
| save_metadata_json | BOOLEAN | true | — |
| jpeg_quality | INT | 901–100 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| llps_config | LLPS_CONFIG | — |