EmAySee Image Preview Passthrough
Preview the image without killing the wire — see it and keep it flowing
- image
- image
The friction that motivates this node: ComfyUI's preview nodes are terminal - they show you the image and stop there. If you want to look at an intermediate image and keep passing it onward, you have to add a preview node plus a duplicate branch. This node does both in one: it previews the image inline in the UI, then passes the image through unchanged to its output. Preview for your eyes, passthrough for the graph. It's the pack's version of a pattern rgthree and others popularized with "preview + reroute" combos, bundled into a single node.
How it works
The source adapts ComfyUI's built-in PreviewImage logic. It converts the incoming IMAGE tensor back to PIL images, saves each to ComfyUI's temp directory with a timestamped filename (emaysee_preview_<nanoseconds>.png), and returns a dictionary with both ui (the image list, which tells the frontend to render the preview) and result (the original tensor). That ui + result combination is the whole trick: ui drives the visual, result carries the data forward. Nothing is modified - the image you see is the image that continues down the graph.
Because it writes to the temp directory with a fresh name each run, it behaves like the standard preview: a history of previews accumulates in temp, and the browser shows the latest.
Inputs and outputs
image(IMAGE) - the tensor to preview and pass through.
Output: image (IMAGE) - the same tensor, untouched. Feed the output onward into a VAE decode, an upscaler, or a save node.
Where it earns its place
Anywhere you want to eyeball an intermediate stage without breaking the chain. Watch what comes out of an img2img pass before it hits the upscaler, confirm a ControlNet-preprocessed image looks right while it still flows into the sampler, or audit the output of a mask/editing stage - all without adding a dead-end preview branch. For debugging a long pipeline, dropping these in at each stage is the fast way to see where things go wrong.
Install
Part of ComfyUI_EmAySee_CustomNodes. ComfyUI Manager → search "EmAySee" → install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/EmAySee/ComfyUI_EmAySee_CustomNodes
No dependencies - it uses PIL/numpy, which ComfyUI already bundles. No model files. Restart and you'll see the pack's "SPECTRE v5.0" banner in the console.
Gotchas
Every run writes a new PNG to temp, so heavy use accumulates preview files - the pack's EmAySee_EphemeralPreview is the "low disk" alternative if that ever bites you, at the cost of no preview history. And it saves with a moderately compressed PNG for speed, so a huge batch of large previews adds a little CPU overhead per run. For most workflows that's invisible; for a 1000-frame batch, it's real.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |