Save Image (Standalone)
Save Image (Standalone), Unpacked
- images
- images
SaveImage is the node you already have - this is that node, extracted, with one difference that matters. The stock SaveImage is a terminal: it writes your PNG to output/ and that's the end of the line. Save Image (Standalone) writes the file and then hands the same image tensor back out, so you can save a checkpoint copy at any point in a workflow without interrupting it. Save the pre-upscale version, keep processing the upscale. Save a "raw" branch while a second branch filters it. It's the same SaveImage you know, minus the dead-end limitation.
How it works
It's a direct extraction of ComfyUI's core SaveImage class - same save path, same metadata, same batch handling. It writes to folder_paths.get_output_directory(), which is your standard ComfyUI/output/ folder, and files come out named {filename_prefix}_{00001}_.png with sequential numbering per prefix. Each image in a batch gets its own file, so a 4-frame batch produces four numbered PNGs.
The metadata is the part worth knowing about. Every save embeds the workflow as PNG text chunks - the prompt, your extra_pnginfo, the whole graph - so the image you saved round-trips back into ComfyUI if you drag it back in. That's the ecosystem's "workflow included" culture baked into the file format, and it's what makes a saved image shareable as a recipe. It writes with compress_level=4, the balanced default: decent file size without crawling.
The other "standalone" detail: if it's run outside ComfyUI (no folder_paths), it falls back to writing to a local output folder beside the script. So the code isn't just a copy-paste of core - it's genuinely runnable as a standalone Python utility, which is the pack's whole reason for being.
Inputs and what you actually set
Only two inputs, one output:
images(IMAGE) - what gets saved. Required.filename_prefix(STRING, default"ComfyUI") - the start of the filename. This is the only thing you'll touch; set it to something likeMyArtorbatch_01so files are findable.images(IMAGE) - pass-through output, same tensor, feeding whatever comes next.
There's no quality slider, no format choice. It saves PNG, with metadata, to output/. That's the whole surface area, which is kind of the point of the pack.
Installing it
Same story as its sibling Preview node in this pack - it ships in the same repository:
cd ComfyUI/custom_nodes
git clone https://github.com/eddyhhlure1Eddy/ComfyUI-PreviewImageNode.git
cd ComfyUI-PreviewImageNode
pip install -r requirements.txt
Then restart ComfyUI. Or use ComfyUI Manager and search ComfyUI-PreviewImageNode. Dependencies are just Pillow and NumPy, both already present in any ComfyUI install - no models, no heavy downloads, nothing to configure.
Gotchas
The usual suspects when "nothing saves": the output/ directory doesn't exist or isn't writable, the disk is full, or you're staring at an error about write permissions on a protected install. All worth checking before you blame the node. And if you're wondering why saved PNGs are missing their workflow metadata, it's not this node's fault - it obeys ComfyUI's --disable-metadata flag, so if that's on globally, no node will embed the prompt.
Is it worth installing for the average user? Honestly, if you only ever save at the end of a workflow, the built-in node does the job and this pack is redundant. Where it earns its keep is mid-graph archiving - saving a variant before a risky upscale or filter, then continuing. That pass-through is the whole difference, and for that one workflow pattern it's exactly what you want.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | The images to save. | |
| filename_prefix | STRING | ComfyUI | The prefix for the file to save. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |