MultiModelPromptSaver
Every Image Leaves With Its Whole Config Baked In
- images
- FILENAME
- FILE_PATH
- METADATA
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 viadate_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
settingsoutput. This is the whole point; paste in any JSON config and it rides along in the metadata. - seed - for the
%seedvariable 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.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| settings | STRING | — | |
| seed | INT | 0 | — |
| extension | COMBO | png | 4 options: png, jpg, jpeg, webp |
| filenameopt | STRING | ComfyUI_%time_%seed_%counter | — |
| pathopt | STRING | %date/ | — |
| lossless_webpopt | BOOLEAN | true | — |
| jpg_webp_qualityopt | INT | 1001–100 | — |
| date_formatopt | STRING | %Y-%m-%d | — |
| time_formatopt | STRING | %H%M%S | — |
| save_metadata_fileopt | BOOLEAN | false | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| FILENAME | STRING | — |
| FILE_PATH | STRING | — |
| METADATA | STRING | — |