ComfyUI Node

Save Info

Set the folder and format once, for every save in the graph

By Nynxz·Created 11 months ago·Updated about 12 hours ago· 4
Save Info
  • config
  • save_info

A working graph doesn't have one save node, it has five: raw, upscaled, detail pass, final, and the one you added at 1am to check something. Core's Save Image makes you re-enter filename_prefix, format and metadata settings on every single one of them, and then re-enter them again when you move to a new project. Save Info is the obvious fix - one node holding folder, format and metadata, wired into as many Save Image nodes as you like.

It's a hub with no pixels in it. Nothing in it renders, nothing samples. It's a settings panel with an output socket.

What's actually in it

The whole config lives in one socketless config widget (frontend type NYNXZ_SAVE_INFO_CONFIG) - a smart panel rather than fifteen visible fields - and the node normalises whatever the panel produced into a full dict and emits it over the NYNXZ_SAVE_INFO link. It also tolerates a plain JSON string, and fills every missing key from defaults, so a partial or future-shaped config can never break the downstream saves.

The contract, because it's what you'll actually be setting:

  • project - a folder to save into, picked from the existing subfolders of your base directory; or new_project, a name for a folder that doesn't exist yet.
  • subfolder - extra path under the project, so you can get project/run_a/ without making nine projects.
  • filename_prefix - a shared prefix that every downstream Save Image's own name gets appended to.
  • format - png, jpg or webp, plus quality (default 90) for the two lossy ones.
  • embed_metadata - on by default; this is the ComfyUI graph going into the file.
  • save_workflow_json - off by default; writes a sidecar .json with the matching filename.
  • base_directory - an override inside output/, empty meaning "use the setting or the output dir".

Two details worth knowing before you wire it

First, the per-node base_directory is deliberately confined to ComfyUI's output directory. That's not paranoia for its own sake: the value comes from the workflow, and the workflow may not be yours - a shared workflow or one embedded in a downloaded PNG could point anywhere on your disk. So a relative value is relative to output/, an absolute one must already be inside it, both checked by realpath so .. and symlinks can't walk out. If you genuinely want to save elsewhere, that's a Settings → Nynxz → base directory value, which only you can set. The priority is: per-node override, then that setting, then ComfyUI's plain output directory.

Second, embed_metadata respects ComfyUI's own kill switch. If you run with --disable-metadata (or the "Disable saving prompt metadata" server setting), no metadata gets written regardless of what this node says. That's the right behaviour - the global flag should win - but it means "I ticked embed_metadata and there's no workflow in my PNG" is usually the launch flag.

Where it fits

Save Info ──save_info──┬──> Save Image  (name: raw)
                       ├──> Save Image  (name: upscaled)
                       └──> Save Image  (name: final)

Change the project folder on one node and every save follows. Each Save Image still contributes its own name as the filename label, and the full prefix is filename_prefix + name, with a counter keeping files unique - so you get proj/run_a/final_00007_.png.

Optional input: config. Optional output: save_info. That's the whole node. It's also the only one of the pair you can use alone - a Save Image with no Save Info wired falls back to the output directory, PNG, metadata embedded, which is exactly core's behaviour.

Installing it

Manager → search Nynxz → ComfyUI-NynxzNodes, or:

comfy node install comfyui-nynxz-nodes

From source:

cd ComfyUI/custom_nodes
git clone https://github.com/Nynxz/ComfyUI-NynxzNodes
cd ComfyUI-NynxzNodes
pnpm install && pnpm build

Restart. No models, no Python dependencies.

That build step matters more for this node than most things in the pack: the panel is the node's entire interface. Skip pnpm build and web/ - which is gitignored upstream - never exists, so you get a node whose only visible control is a config widget with nothing drawing it. Manager and the registry package ship the build; a raw clone doesn't.

Troubleshooting

"Base directory is outside ComfyUI's output folder." That's the base_directory field doing its job. Use a value inside output/, or set the base in Settings → Nynxz if you actually mean somewhere else.

Saves land in the wrong project. Check new_project isn't still filled in - it wins over the project selection, and an old value from a previous project is easy to forget.

Metadata missing on JPG or WebP. Those two write EXIF rather than PNG text chunks, and WebP is the "metadata diet" option in practice: you may keep the parameters, you won't keep the graph. If the workflow-in-the-file matters to you because you post to CivitAI, keep PNG as the master and convert for sharing.

CategoryNynxz/IO

Inputs (1)

NameTypeDefaultDescription
configoptNYNXZ_SAVE_INFO_CONFIG—

Outputs (1)

NameTypeDescription
save_infoNYNXZ_SAVE_INFOWire into one or more Save Image nodes.