πΎ Save Image + (nhk)
Save the image AND keep it flowing β a Save that doesn't end the line
- images
- image
- saved_path
ComfyUI's SaveImage is a dead end by design: it writes the file and stops the line there. That's fine most of the time, but the moment you want to save every image and route some of them onward for extra processing, you're stuck copying nodes or saving twice. SaveImagePassthrough ("Save Image +") is the version that has it both ways - it writes the PNG to disk and hands the image out the other side for more processing.
It's marked nhk/wip, and that label matters. This node is part of the pack's in-progress Image Evaluation workflow, built to sit in a branch where an evaluator decides whether an image continues. Save here, pass through, route onward.
How it works
Mechanically it's a re-implementation of the core SaveImage logic. It grabs ComfyUI's output directory, generates a counter-stamped filename under your filename_prefix (default ComfyUI, so you get ComfyUI_00001_.png style names), and writes a PNG - including the standard prompt and workflow metadata embedded in the file, which is the ComfyUI norm and means your saved PNG is reusable by dragging it back into the canvas.
The difference from stock SaveImage is the outputs: image (the exact image that was saved, passed through for further processing) and saved_path (STRING - the absolute path on disk, useful for logging, feeding an external tool, or wiring into the pack's API-driven nodes). The images input is forceInput, so it presents as a socket rather than a file-input widget.
The same file also registers a sibling, "Preview Image +" (PreviewImagePassthrough), which does the same pass-through trick but previews into the temp directory instead of saving - a lighter version for when you want to look, not store.
The WIP gotcha you must know
Because it participates in the pack's conditional-routing scheme, there's a subtlety spelled out in the pack's IMAGE_EVALUATION.md: a passthrough save/preview is not a terminal by itself. ComfyUI plans execution backward from nodes marked as output terminals. The passthrough nodes are not terminals, so if the only thing reachable from your branch is this node, ComfyUI may decide there's nothing to run and silently skip it. The rule: always end an evaluation branch in a real terminal - a stock SaveImage or PreviewImage - or route the passthrough output into one. If your branch "doesn't run," that's the first thing to check.
Installing
Same as the rest of the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Enashka/ComfyUI-nhknodes
or ComfyUI Manager β search "NHK Nodes" β install β restart. It appears under nhk/wip (with Preview Image + next to it), no extra dependencies.
Where people get burned
- "It saves but my branch never runs." Not a terminal - end the line in a real Save/Preview node, or wire the passthrough into one.
- "The path output is empty." Shouldn't be, but it's derived from the first image in the batch; if nothing was saved, nothing's in the string. Check the filename prefix and that the output directory is writable.
- Expecting an output node. It's
is_output_node: false- don't treat it as the end of your workflow.
SaveImagePassthrough is a niche-but-useful tool: a Save that isn't a stop sign. If you're building conditional pipelines - "save everything, but also send the passes onward" - it slots in exactly where stock ComfyUI forces you to duplicate nodes. Just mind the terminal rule.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | Images to save | |
| filename_prefix | STRING | ComfyUI | Prefix for saved filenames |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | Image passthrough for further processing |
| saved_path | STRING | Path where image was saved |