Preview Image Private (GeN13)
The preview that doesn't end up in your output folder
- images
- IMAGE
- width
- height
Drop Preview Image in the middle of a graph and it earns its keep immediately: you see what's happening at that point, and nothing lands in output/ because previews go to temp/ instead. The cost is a full-size image sitting on your canvas for as long as the workflow stays open, which is fine until someone's looking over your shoulder.
Preview Image Private (GeN13) is the same node with a cover over that image. Mosaic, frosted glass, gradient, palette or solid - held down to peek, released to hide again. It's the preview node you leave in a graph you're screen-sharing.
Inputs and outputs
One input, images - a single image or a batch. Then:
IMAGE- passed through unchanged.width,height- INTs for the first image of a batch.
That passthrough is why this node is actually useful beyond privacy. Most people treat preview nodes as dead ends you have to route around, but this one sits inline: you can put it between the VAE Decode and the Video Combine / Save step to eyeball the intermediate result without breaking the chain or adding a fork. The dimensions coming out the side are a small bonus that saves you a size node.
It's an output node in ComfyUI's execution sense, which has a real consequence: output nodes always run, and the cache works backward from them. A preview in the middle of a branch forces that branch to execute. That's usually what you want while iterating - and it's exactly what you don't want when you're trying to save time on a big graph. Delete it when you're done tuning.
The cover, precisely
The overlay is frontend work: the pack's JavaScript draws the preview panel and a small row of controls (preview on/off, privacy on/off, cover style, plus a few style-specific options). Those settings are stored in the node's properties, which means they save with your workflow but never appear in the API prompt or in widgets_values. The image itself is never modified.
Which is the honest limitation: this hides the on-screen preview. The file still gets written to temp/, and anything downstream that shows pixels - a Save node, another preview, your OS file browser - is unaffected. It's a screen-share and tutorial-recording tool, not a security feature.
And yes, privacy starts OFF. Turn it on before you start talking.
Why bother when Preview Image exists
Three reasons, in order of how often they apply:
- You stream, record, or share your screen while you work. The pack's whole premise is image-to-video and portrait workflows, which are exactly the workflows where the intermediate frames are things you might not want on a screenshot.
- You want a preview that passes its input onward, so the graph stays one line instead of forking into "preview branch" and "real branch".
- You want the dimensions out the other side without a second node.
If none of those are you, core Preview Image is fine and there's no reason to install a pack for it.
Installing
Manager → search GeN13 → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/heigen13/ComfyUI-GeN13
pip install -r ComfyUI-GeN13/requirements.txt
The single requirement is nvidia-ml-py, which belongs to the pack's monitor strip. The preview node itself needs nothing extra - and if you're on a very new frontend and the cover doesn't draw, that's a frontend compatibility question (the pack targets ComfyUI 0.40 and the classic canvas, with Nodes 2.0 supported for the image previews) rather than a missing dependency.
You can also get here without touching the node list: right-click a built-in Preview Image and there's a convert-in-place option that swaps in the Private version with links and settings intact. Fastest way to make an existing graph presentable.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | Images: a single image or a batch to preview. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | Image: passed through unchanged for further nodes. |
| width | INT | Width: image width in px; for a batch, the first image. |
| height | INT | Height: image height in px; for a batch, the first image. |