Yet Another Save Image
Yet another save node — until it hands you the filename back
- images
- filename
The name is doing the joke for you: "Yet Another Save Image" is the third save node in your node list and the reason you never bothered. And for plain PNG-saving it genuinely adds nothing over ComfyUI's built-in SaveImage - same output folder, same auto-incrementing counter, same workflow metadata embedded in the file. Where it earns its place is the three things the built-in node doesn't do: pick a format, hand you back the saved filename as a STRING, and optionally copy the file straight into input/ so a Load Image in the same run can pick it up. If you've ever wired a save node's output into a loader, renamed files by hand, or saved JPG/WebP to keep a gallery small, this is the dependency-free version of that.
It comes from boobkake22, who is an active, genuinely helpful voice on r/comfyui (the kind who answers "everything is red" with "install missing nodes, twice, then restart" - good advice, by the way). The pack is one node, no dependencies, and no corporate backstory. It just does the job.
How it works
Under the hood it's the same plumbing as the built-in node: it calls get_save_image_path() to resolve your filename_prefix into a real path plus an auto-incrementing counter, writes the image with Pillow, and only then - this is the bit most save nodes skip - returns the filename.
formatpickspng,jpg, orwebp. JPG and WebP save at quality 95; PNG uses compression level 4. The author's own tooltip says it plainly: PNG is lossless, the other two are lossy. Everything else about the node follows the format you pick, so choose deliberately.filename_prefixis a small template language, same as the built-in node: subfolders via a slash, plus%date:yyyy-MM-dd%,%date:hhmmss%,%width%,%height%,%batch_num%, and%Node.widget%(e.g.%KSampler.seed%). One quirk to notice: the counter has no trailing separator, so you getComfyUI_00001.png, not the built-in'sComfyUI_00001_.png.save_to_inputis the party trick. When on, the exact saved file is also copied to the root ofinput/(prefix subfolders apply only to theoutput/copy), and the node's tiny JS extension adds that filename to the dropdowns of openLoad ImageandLoad Image (Mask)nodes - no manual refresh. The README is honest about the limit: it does not refresh ComfyUI's separate Assets/Input library.
Metadata works the way you'd hope: PNG gets the prompt and workflow chunks, so dragging the file back onto the canvas rebuilds the graph. JPG and WebP embed a flat JSON copy in EXIF instead (readable with ExifTool), and ComfyUI's frontend won't restore a workflow from a JPG - so PNG stays your master, JPG/WebP are derivatives for sharing. That's the same "PNG is the project file" rule from the rest of the ecosystem.
The output you came for
The single filename output is the basename of the saved file, extension included. For a batch it returns the final image's filename, matching KJNodes' Save Image behavior - so you can hand it to a text-display node, an LLM, or any downstream node that wants to know what just got written. That's the whole reason to reach for this instead of the built-in.
Install
No dependencies, no requirements.txt, no model downloads - only the NumPy/Pillow that ComfyUI already ships. Either way, restart ComfyUI after:
cd ComfyUI/custom_nodes
git clone https://github.com/boobkake22/ComfyUI-YetAnotherSaveImage
Or use ComfyUI Manager, search "Yet Another Save Image", and install from there.
Where people get burned
- Expecting JPG to round-trip. It won't - no frontend import from JPG. Keep PNG for anything you might want back as a workflow.
save_to_inputfiles "missing." They land ininput/(with no subfolders) and appear in Load Image dropdowns, but not in the Assets panel. Check theinput/folder directly if you don't see them.- Node not showing up. It's an output node in the
imagecategory - search "yet another save image" or "save image" (it has those search aliases) after restarting.
Also worth knowing: the code refuses to write outside ComfyUI's own output/ and input/ folders - path-traversal attempts and sloppy prefixes just raise a clear error rather than silently scattering files. That's a quiet safety win you don't appreciate until a weird prefix would have gone somewhere it shouldn't.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | The images to save. | |
| filename_prefix | STRING | ComfyUI | Supports subfolders and substitutions such as %date:yyyy-MM-dd%, %date:hhmmss%, %width%, %height%, and %Node.widget%. |
| format | COMBO | png | PNG is lossless; JPG and WebP use quality 95. ComfyUI workflow metadata is embedded automatically. |
| save_to_input | BOOLEAN | false | Also copy each file directly into ComfyUI's input folder, without prefix subfolders, and update Load Image choices. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| filename | STRING | — |