Group Preview
One tagged gallery for every stage of your pipeline
- image
If you've ever run a workflow with eight preview tiles scattered across the canvas and found yourself squinting at each one, GroupPreview is for you. It's the emitter half of a two-node gallery system: drop one at the end of each pipeline stage you care about, give them all the same tag, and every image lands in a single browsable gallery on a GroupPreviewDisplay node carrying that tag. One place to look, instead of a map of tiles.
You'll reach for it during iteration - LoRA training runs, prompt or CFG sweeps, checkpoint comparisons. That's exactly the scenario where the usual preview tiles stop scaling: you want to eyeball a dozen outputs at once, not scroll around a canvas full of thumbnails. Tag a stage (or every stage), add one display node, and you've got a stack you can flip through as runs complete. It works fine alongside the pack's other feature, the floating full-size preview window; GroupPreview is just the gallery variant.
How it works
It's a lightweight dead-end node. preview() grabs the first frame of the incoming image tensor, converts it to numpy, downsizes it with LANCZOS if it's bigger than max_size, encodes it as JPEG or PNG, and pushes it over ComfyUI's binary websocket using the standard preview message. The frontend JS catches that, reads the tag off the emitting node's widget, and hands the image to every display node sharing the tag. There's no image output, nothing gets returned down the graph, and IS_CHANGED returns NaN so the node always runs even when nothing upstream changed.
The inputs that matter
Only a few:
image- the tensor to preview. Put the node at the end of a branch, right after a VAE decode, and wire the tensor in.tag- the group key, defaultsteps. Must exactly match the tag on the display node you want to fill.format-JPEG(default) orPNG. JPEG is fine for eyeballing; switch to PNG if you'll actually zoom into fine detail, since JPEG compression gets crunchy.max_size- the cap on the long edge sent to the browser, default 768 (range 128–4096). Bigger means you can inspect more detail in the gallery, but also more websocket traffic for every run.
Outputs: none. That's not a bug - it's an output node, meant to be a terminal. Don't chain anything after it.
Install
This node ships in the comfyui-floating-preview pack. Either use ComfyUI Manager (search "floating preview") or clone it manually:
cd ComfyUI/custom_nodes
git clone https://github.com/automatasz/comfyui-floating-preview
then restart ComfyUI. No heavy dependencies and no model downloads - it just needs Pillow, which ComfyUI already ships. Worth a heads-up: the pack's README is stale and its install snippet still points at chrisgoringe/cg-previewer, an upstream pack this one is descended from. Use the URL above.
Gotchas
Only the first frame of the tensor is ever sent, so for video or animated workflows you'll preview frame one, not the clip. The gallery clears at the start of every execution by design - each run starts fresh. And if your tag doesn't match any display node on the canvas, the preview is still sent but you have nowhere to see it, which reads as "nothing happened." Double-check the exact string (case-sensitive) on both ends.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| tag | STRING | steps | Group tag. All GroupPreview nodes with the same tag feed into the same gallery. |
| formatopt | COMBO | JPEG | 2 options: JPEG, PNG |
| max_sizeopt | INT | 768128–4096 | — |
Outputs (0)
No outputs