ZH Save Image
A Save Image that leaves the workflow out of the PNG
- images
- images
ComfyUI's default Save Image embeds your entire workflow inside every PNG - prompt, graph, seed, the works. Usually that's the whole point: drag the image back in and the graph rebuilds. But sometimes it's exactly what you don't want. ZHSaveImageNoMetadata (display name "ZH Save Image") is the version that writes the pixels and nothing else: no prompt chunk, no workflow chunk, just a clean PNG in your output folder.
It's part of ZF-ComfyUI-Helper, the dependency-free utility pack, under ZF Helper/Image. The ZH prefix is deliberate - the author wanted it easy to tell apart from the built-in Save Image in a busy graph while keeping nearly identical behavior.
Why you'd want a metadata-less PNG
Three reasons, in rough order of how often they come up:
- Privacy. A default-saved PNG is a full dump of your pipeline - including any prompt you'd rather not ship. If you're generating a batch to post somewhere public, the default save is quietly leaking your negative prompt and your seed with every file. This node stops that.
- Cleaner sharing. Hosts that recompress (Reddit, Twitter, most CDNs) strip the metadata anyway when they re-encode, so the embedded workflow often dies in transit regardless. For those destinations, a clean file is honest about what it is.
- File size and hygiene. The metadata chunk isn't free - prompt and workflow JSON add kilobytes per file. For big batch runs, dropping them is measurable.
The flip side is the trade you should make consciously: this image is no longer a project file. You can't drag it back into ComfyUI to recover the workflow. If you think you'll want to re-open the pipeline from an output later, keep the built-in Save Image in the graph too, or keep the workflow JSON separately.
The inputs and output
images- what to save.filename_prefix- defaultComfyUI, and it supports ComfyUI's filename formatting: the auto-incrementing counter,%date%tokens, and subfolder syntax (portraits/run_a) all behave like the built-in node. So the only thing that's been removed is the metadata, not the conveniences.
The output is images, passing your batch straight through - so you can chain this after a preview or into other nodes and it won't disrupt the flow.
Installing it
The pack is dependency-free, so it's the standard quick install:
cd ComfyUI/custom_nodes
git clone https://github.com/Z-yaofang/ZF-ComfyUI-Helper
Restart ComfyUI, or search ZF-ComfyUI-Helper in ComfyUI Manager. No models, no requirements.txt.
The one honest caveat
Everything in this article cuts both ways. The "workflow-in-the-PNG" convention is genuinely load-bearing in this ecosystem - it's how people share recipes and how you recover an old generation. If you switch every Save Image in every workflow to this node, you lose that. The smart pattern is selective: use ZH Save Image for the outputs you're going to post or that contain sensitive prompts, and keep the default save (or a paired copy) for the runs you'll want to rebuild later. As a deliberate, well-labeled tool for "save clean," it's excellent - as a default for everything, it's a trap you'd be setting for your future self.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | The images to save without ComfyUI metadata. | |
| filename_prefix | STRING | ComfyUI | The prefix for saved PNG files. Supports ComfyUI filename formatting. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |