Preview Image Bridge [LP]
A preview that only fires when something's actually watching
- images
- original IMAGE
A regular Preview Image node runs every single time the queue reaches it, whether you're actually looking at the result or not. That's fine for a linear workflow, but the moment you're building something with loops or conditional branches - where a given path only sometimes matters - an unconditional preview becomes dead weight you're paying execution time for on runs where nobody needed it. Preview Image Bridge is the pack's answer: it behaves like a normal preview, but it only actually does its job if its output is connected to something downstream.
What it does
Wire images in, and if nothing's connected to this node's output, it skips doing the work - no save, no preview render. Connect its output onward to something else in the graph and it behaves like an ordinary preview: it downscales, saves to your ComfyUI output directory, and shows the thumbnail, then passes the original image straight through unchanged for whatever comes next. It's the same "only run if wired downstream" pattern as the pack's Show Text Bridge node, just for images instead of text - useful for exactly the same reason: a workflow with loops or conditional branches where this particular preview isn't always relevant.
Inputs and outputs that matter
images(required) - what you're previewing.size(default 512, 1–8192) - the target dimension the preview gets scaled to whendownscale_previewis on.downscale_preview(default on) - whether the saved/displayed thumbnail gets shrunk tosizeat all, versus kept at full resolution.downscale_mode(default on) - a second toggle affecting how that downscale is applied. The node doesn't expose a tooltip explaining the exact difference fromdownscale_preview, so if you care about the specific behavior, the fastest way to learn it is to flip it on a test image and compare - cheaper than guessing.compress_level(default 0, range 0–9) - the same PNG compression trade-off ComfyUI's own core Preview/Save Image nodes use: 0 is fastest with the largest file on disk, 9 is slowest with the smallest.
The output is original IMAGE - the untouched input, passed through so you can keep chaining nodes after the preview point without a separate passthrough wire.
Installing it
Through ComfyUI Manager, search "ComfyUI Level Pixel" or "ComfyUI-LevelPixel." Or:
cd ComfyUI/custom_nodes
git clone https://github.com/LevelPixel/ComfyUI-LevelPixel.git
Restart ComfyUI. No models, no extra dependencies.
Where people get burned
The one that trips people up every time with any "bridge" node in this pack: if you leave the output completely unwired while you're building the graph, it will not show you a preview - that's not a bug, it's the entire point of the node. If you want to see the image right now while you're still designing, wire something to the output first (even a throwaway node you delete later) or just use a plain Preview Image node for that step and swap to the Bridge version once the workflow's structure is settled and you actually need the conditional-skip behavior.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| size | INT | 5121–8192 | — |
| downscale_preview | BOOLEAN | true | — |
| downscale_mode | BOOLEAN | true | — |
| compress_level | INT | 00–9 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| original IMAGE | IMAGE | — |