Nodes/Save Separate Metadata/Save PNG (Separate Meta)
ComfyUI Node

Save PNG (Separate Meta)

A PNG that keeps the workflow beside it, not inside it

By Kuroi961·Created 4 months ago·Updated 4 months ago· 0
Save PNG (Separate Meta)
  • images
    filename_prefixComfyUI

    Here's the thing nobody warns you about with ComfyUI's default SaveImage: the PNG you generate is not just a picture. It's your entire workflow wearing an image costume. The node graph, every widget value, the seed, the exact checkpoint, every LoRA by name and hash - all of it rides inside the file as PNG text chunks. Drag it back onto the canvas and the whole pipeline reconstructs. That's the magic trick, and it's also a privacy foot-gun: send that PNG to a friend or post it publicly and you're handing over your full recipe whether you meant to or not.

    Save PNG (Separate Meta) is the deliberate step the default never gives you. It writes a PNG with zero embedded metadata - genuinely clean pixels, no tEXt/iTXt chunks - and parks the workflow in a sidecar JSON instead:

    output/2026-05/image_00001_.png
    output/2026-05/.meta/image_00001_.json
    

    The sidecar holds the same prompt and workflow data the default node would have embedded, just as a readable file. Restore still works the normal way: drag the PNG back onto the canvas and the extension fetches the matching sidecar, or drag the .json directly. If a file somehow has both embedded and sidecar metadata, the sidecar wins.

    Why reach for it? Three reasons, in order of how often they bite:

    • Editing round-trips. Photoshop and GIMP are happy to strip PNG text chunks when they re-save, so an embedded workflow dies on a single edit. A sidecar file survives, because the editor never touches it.
    • Sharing without leaking. The image is a plain image. No prompt, no seed, no model list for anyone who opens it in an editor - but you keep the recipe for yourself.
    • Archiving. A .json you can open, grep, version, and diff beats metadata you can only read by loading a file back into ComfyUI.

    Inputs are minimal: images (the batch) and filename_prefix (standard ComfyUI templating - %date:yyyy-MM-dd%, subfolders via slash, auto counter). No quality slider, because PNG is lossless; the pack saves at a fixed compression level. Like its two siblings in this pack, it's an output node with nothing wiring out of it.

    Install is shared across the pack: ComfyUI Manager, search "Save Separate Metadata", install, restart. Manual route:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Kuroi961/ComfyUI-Save-Separate-Metadata.git
    

    No pip dependencies, no model downloads.

    The tradeoffs are the honest part. The image and its sidecar have to stay together, and most external tools won't know the sidecar exists - move the PNG with your OS file manager and the .meta file stays behind. ComfyUI-Drawer, the author's gallery extension, syncs them on move/rename/delete, but plain file operations don't. Some tools hide dot-folders, so .meta can look like the metadata vanished. And if ComfyUI starts with --disable-metadata, no sidecars are written at all.

    Who is this for? If you post PNGs and care that the workflow stays yours, or you edit outputs after generation, this is the right save node. If you live purely in the one-file workflow-included convention and never share, the default SaveImage is simpler. It's a small, opinionated tool - and the opinion is that your recipe is yours.

    Categoryimage

    Inputs (2)

    NameTypeDefaultDescription
    imagesIMAGE
    filename_prefixSTRINGComfyUI

    Outputs (0)

    No outputs