Ephemeral Preview Tap
See your batch results without junking up temp/
- image
- image
Ephemeral Preview Tap exists for one specific annoyance: you want to eyeball what a batch produced, but you don't want the standard Preview Image node's habit of dumping a file into ComfyUI's temp/ folder every run. Leave a big batch running overnight with Preview Image and you'll wake up to a temp folder you have to clean before it eats your disk. This node shows you the result without ever writing a file. That's the whole pitch, and it's the whole package.
It's a pass-through tap, not a processing step. You feed it one IMAGE tensor and it hands that same tensor straight through, unchanged, to whatever comes next. The "tap" is just a live preview drawn on the node itself. That makes it trivially safe to drop into an existing workflow - it can't corrupt your image, it can't be bypassed incorrectly, and because it has zero side effects, you don't even need to bypass it when you're done looking. The preview updates every run because the node always reports itself as changed, so it's never cached out of the execution.
How it actually works
Under the hood it's smarter than the one-liner it looks like. The node takes up to the first 64 images in the batch, shrinks each to 50% of its size (capped so the long side never exceeds 512px), and lays them out on a single contact sheet arranged to stay close to square. That sheet is JPEG-encoded at quality 80 and pushed to your browser over ComfyUI's websocket, where a small JavaScript extension draws it inside the node's canvas - complete with a little caption showing image count and grid dimensions. The whole thing lives in memory: no temp file, no output file, nothing on disk to clean up.
One catch built into the design: the preview only goes to the currently running client. Reload the page and it's gone - these are ephemeral previews by name and by nature. It also doesn't persist to your output history; if you want a permanent record, let it pass through to Save Image, or use the stock Preview Image when you actually want a history entry.
The inputs that matter
The entire parameter list is one field:
- image (
IMAGE) - the batch you want a live look at.
There are no options, no quality sliders, no gap settings. The author hardcoded everything (quality 80, 6px gap, 64-image cap, 50% downscale) on purpose - it's a "no knobs" utility. Want to change the cap or quality? You're editing ephemeral_preview_tap.py yourself. The output is also just image (IMAGE), a byte-for-byte pass-through, so wire it into whatever your workflow did before.
Install
This pack is plain Python with zero extra dependencies - no requirements.txt, no model downloads, nothing beyond what ComfyUI already ships. Install via ComfyUI Manager (search "Ephemeral Preview Tap") or just:
cd ComfyUI/custom_nodes
git clone https://github.com/ruminar/ComfyUI-EphemeralPreviewTap
Restart ComfyUI and you're done. It's genuinely one of the lightest installs you'll find in the whole ecosystem.
Where people trip up
- Placement timing. Because the preview is sent when the node executes, if you branch it early and let the main line do a long upscale or face-fix after, you won't see anything until that whole branch finishes. Put the tap right after the step you actually want to inspect - the README's suggested spot is straight off
VAE Decode, before your fix-ups and save. - The 64-image cap. Batches bigger than 64 just silently show the first 64. No warning, no "…and 40 more" - you have to know this going in.
- Reload kills the preview. Not a bug. If you come back to the workflow later, the node is empty until the next run.
- It's archived. The README announces the project was succeeded by
ComfyUI-CheckpointHandpickerSuite, which folds in an "Ephemeral Preview" alongside a fuller checkpoint-management toolkit. If you found this page because you want the suite's features, that's the current home; this repo is kept around as reference. - If the preview draws nothing but the node still runs, you may be on the Nodes 2.0 beta canvas - ComfyUI's frontend rewrite broke plenty of custom-node canvas extensions, and this one draws with the legacy API. Flipping back to the legacy canvas usually fixes it.
For a mid-batch visual checkpoint with zero cleanup afterward, this is the one I'd reach for. It won't upscale anything, it won't save anything, and it won't leave a mess - that's exactly the point.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |