MetadataStripper
MetadataStripper
- image
Every PNG you save out of ComfyUI is a confession. ComfyUI's built-in Save Image node embeds your whole prompt and workflow graph into the file's metadata - drag the image back onto the canvas and the pipeline reconstructs itself, which is usually great and occasionally the last thing you want. MetadataStripper is the node you drop in when you want to post to Discord or Reddit without handing over the workflow at the same time. It's the quiet flip side of the "workflow included" culture this community argues about constantly.
How it works
The name is a small lie, so let's clear that up first. MetadataStripper doesn't take an existing file and scrub EXIF off it. It's a save node: feed it the image tensor coming out of VAE Decode and it writes a fresh PNG containing nothing but pixels. No prompt, no workflow, no PNGInfo chunk.
Mechanically it's a trimmed copy of ComfyUI's own Save Image node with the metadata part surgically removed. The source takes your IMAGE tensor, converts the float 0–1 values back to 8-bit, and writes each frame with PIL's img.save(). Where the built-in node attaches a PngInfo object carrying prompt + workflow, this one just... doesn't. Because PNG is lossless, you lose zero image quality - the only thing stripped is the embedded baggage. It also loops the whole batch (one clean file per frame), uses the same compress_level=4 as stock, and writes to ComfyUI's usual output folder with the same auto-incrementing counter, so you get familiar filenames like ComfyUI_00001_.png.
One thing worth knowing: it strips everything, including any color profile metadata if your pipeline carries one. For normal diffusion output that's a non-issue.
The two inputs
The whole interface fits in two fields, both required:
- image - the IMAGE tensor. Wire it from VAE Decode (or whatever node produces your final image).
- filename_prefix - text, default
ComfyUI. Sets the base filename; the counter and.pngare appended automatically.
There are no outputs, because it's an output node. Its "result" is the file on disk plus a thumbnail in ComfyUI's results tray. It shows up in the node menu under Utilities as "Metadata Stripper (Save)".
Install
Grab it through ComfyUI Manager (search "ComfyUI-MetadataStripper"), or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/HellerCommaA/ComfyUI-MetadataStripper
Then restart ComfyUI. The only dependency is Pillow, which ComfyUI already ships, so there's nothing extra to download and no model files. It's about as frictionless as a custom node gets.
When to reach for it
This is the per-workflow solution to a very common gripe. There's a steady trickle of "how do I stop ComfyUI from saving my prompt in the photo?" threads, and the standard answers are a global --disable-metadata launch flag or bulk-stripping after the fact with exiftool. Both work, but both are blunt. MetadataStripper is surgical: one workflow gets clean files while everything else stays normal - handy if one client or one audience doesn't get your workflow and another does. If you want every output clean forever, just use the launch flag and skip the node.
Gotchas
- It won't help with files you already have. If you're sitting on a folder of PNGs with embedded workflows, reach for exiftool, not this node.
- Outputs won't drag back into ComfyUI to reconstruct the workflow. That's the entire point - but remember it before you delete the workflow file.
- It re-encodes, so outputs are byte-different from a stock save even though they look identical. Irrelevant unless you're diffing files.
For a 30-second install that solves a real social problem (you'd be surprised how many people quietly don't want their chain exposed), it does exactly one thing and does it right.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| filename_prefix | STRING | ComfyUI | — |
Outputs (0)
No outputs