SaveImageWithParamText
Save a PNG that remembers everything it took to make it
- images
- parameters_data
ComfyUI saves images, but the workflow that made them stays locked in the JSON - and the workflow alone won't tell you the CFG or the seed at a glance. SaveImageWithParamText (class SaveImageParamMittimi) is the other half of the preset story: it's a drop-in replacement for the stock SaveImage that also stamps the image's metadata with an A1111-style parameter block, so every file carries its own recipe.
What it does
Feed it images from your VAE decode, optionally a parameters_data from the pack's LoadSetParameters node, and it saves PNG or WEBP exactly like the built-in SaveImage - same folder, same filename_prefix numbering - plus it writes a "parameters" text entry into the file. PNGs get it as a standard metadata chunk; WEBP gets it in the EXIF data, the same place A1111-era tools look. The saved text follows A1111's layout: combined positive and negative prompts, then Steps, Sampler, Scheduler, CFG Scale, Seed, Batch count, Size, Model hash, Model, Clip, VAE, finished with Version: ComfyUI. If you've ever squinted at a shared image and wished you knew its settings, this is the node that puts them back.
Inputs that matter
- images - the tensor to save. filename_prefix - the filename base, default
ComfyUI. - type -
PNGorWEBP. - level_or_method - PNG compression level from 1–9, or WEBP encoding method from 1–6. Anything above 7 on WEBP is treated as 6, per the README.
- lossless - toggle for WEBP encoding.
- quality - optional, WEBP quality from 1–100 (default 80); irrelevant for PNG.
- parameters_data - the magic input. Wire this from LoadSetParameters and the metadata gets written. Leave it empty and the node behaves like a plain SaveImage.
- add_text - optional extra text prepended to the parameters block, handy for a custom caption that rides along in the metadata.
Wiring it up
The natural loop: LoadSetParameters → KSampler → VAE decode → this node, with parameters_data running alongside. The node even puts the seed in the saved filename (a _<seed> suffix) when a seed is present in the data, which makes batch-sorted folders instantly greppable. There are no outputs - it's an output node; the "return" is the files on disk.
Because it writes the same "parameters" convention that A1111 and its forks use, you can later pull that recipe back out with the pack's LoadImageParam node (or any metadata reader). That's the actual value here: the image stops being just pixels and becomes a shareable settings card. Given how much of the ComfyUI ecosystem is built around "the PNG carries everything," this slots right into that culture without making you manage extra files.
Install and gotchas
Install the pack via ComfyUI Manager (search "ComfyUI_mittimiLoadPreset2") or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/mittimi/ComfyUI_mittimiLoadPreset2
then restart ComfyUI. The only dependency is toml; there are no model files to fetch.
Where people get burned: the parameters text is only written when parameters_data is actually connected - forget the wire and you get a perfectly normal image with no recipe. And on WEBP, remember level_or_method is a method selector (1–6), not a quality slider - quality is the separate quality input, and it only does anything if lossless is off. One more: if the pack's sibling node LoadSetParameters is broken by an installed RES4LYF (a documented conflict), you'll see it here as empty or missing parameter blocks - the fix is the scheduler registration patch in the RES4LYF README note, from ClownsharkBatwing/RES4LYF#161.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| filename_prefix | STRING | ComfyUI | — |
| type | COMBO | 2 options: PNG, WEBP | |
| level_or_method | INT | 61–9 | — |
| lossless | BOOLEAN | true | — |
| qualityopt | INT | 801–100 | — |
| parameters_dataopt | PDATA | — | |
| add_textopt | STRING | — |
Outputs (0)
No outputs