Nodes/comfyui-rapidfire/MultiModelPromptSaver
ComfyUI Node

MultiModelPromptSaver

Every Image Leaves With Its Whole Config Baked In

By Zeks·Created 2 years ago·Updated 10 months ago· 3
MultiModelPromptSaver
  • images
  • FILENAME
  • FILE_PATH
  • METADATA
settings
seed0
extensionpng
filenameComfyUI_%time_%seed_%counter
path%date/
lossless_webptrue
jpg_webp_quality100
date_format%Y-%m-%d
time_format%H%M%S
save_metadata_filefalse

The MultiModel samplers output a settings string - the entire serialized config of the run: which checkpoints, which handoff steps, which seed, everything. MultiModelPromptSaver is the node that makes that string useful instead of just printed. It saves your image and writes the full settings into the file's metadata, so every PNG you produce is a self-contained recipe you can drag back later and replay.

That's the workflow-in-the-file idea that ComfyUI culture runs on, taken one step further: where the base save embeds the graph JSON, this node also bakes in the exact chain configuration that produced the image.

How it works

You feed it an IMAGE, the settings string from the sampler, and a seed, and it writes the image with settings stored as the "parameters" text chunk in the PNG metadata (plus the workflow JSON via the standard hidden inputs). It supports png, jpg, jpeg, and webp output, with lossless_webp and jpg_webp_quality (default 100) for the lossy formats.

The part that takes getting used to is the templating. Both filename and path accept variables:

  • %date - the date (format via date_format, default %Y-%m-%d)
  • %time - the time (time_format, default %H%M%S)
  • %seed - the run's seed
  • %counter - an auto-incrementing counter (padded to 5 digits) that avoids overwriting

The default path is %date/, so outputs land in output/<today>/, and the default filename ComfyUI_%time_%seed_%counter gives every image a unique, sortable name. There's also save_metadata_file (default off) to write the settings to a .txt sidecar alongside the image.

The inputs that matter

  • images - the IMAGE to save.
  • settings - the sampler's settings output. This is the whole point; paste in any JSON config and it rides along in the metadata.
  • seed - for the %seed variable and record-keeping.
  • extension - png/jpg/jpeg/webp.
  • filename / path - the templates above; edit these when you want a different naming scheme.

Outputs: FILENAME, FILE_PATH, and METADATA (the settings string as saved) - wire FILE_PATH into a logger or use it to chain downstream processing on the exact file you just wrote.

Install and gotchas

Ships with comfyui-rapidfire, no extra dependencies. Install via ComfyUI Manager (search "comfyui-rapidfire") or:

cd ComfyUI/custom_nodes
git clone https://github.com/Zeks/comfyui-rapidfire

then restart.

Two things to watch. The %counter only counts existing image files in the target folder, so two nodes writing to the same folder can collide on the same counter value - the node then appends a _1, _2 suffix, so nothing is overwritten, but your naming gets noisy. And metadata embedding is only rich for PNG: jpg/webp don't carry the same text-chunk structure, so if reproducible configs matter to you, default to PNG. If you just want to save images without the settings round-trip, the stock Save Image node is simpler - this one pays for itself specifically in the MultiModel workflow where the settings string exists.

CategorySD Prompt Reader

Inputs (11)

NameTypeDefaultDescription
imagesIMAGE
settingsSTRING
seedINT0
extensionCOMBOpng4 options: png, jpg, jpeg, webp
filenameoptSTRINGComfyUI_%time_%seed_%counter
pathoptSTRING%date/
lossless_webpoptBOOLEANtrue
jpg_webp_qualityoptINT1001–100
date_formatoptSTRING%Y-%m-%d
time_formatoptSTRING%H%M%S
save_metadata_fileoptBOOLEANfalse

Outputs (3)

NameTypeDescription
FILENAMESTRING
FILE_PATHSTRING
METADATASTRING