πΎ TOO Smart Image Saver (Advanced)
Civitai-ready metadata and filenames built from your own graph
- images
- metadata
- workflow
- any1
- any2
- any3
- images
- filepath
The stock SaveImage gives you ComfyUI_00042_.png and a workflow chunk, but not a Civitai-friendly parameters block, not your model's hash, not your LoRA hashes, and not a filename that means anything a week later. TOO Smart Image Saver (Advanced) is the "stop using the default save node" answer: it saves PNG/WebP/JPEG with an A1111/Civitai-compatible metadata block, embeds the workflow, and names the file from data pulled live out of your own graph.
The inputs are deliberately few: images (required), plus optional metadata (METADATA), workflow, and three universal inputs any1/any2/any3 that accept anything. The real configuration lives in the node's JavaScript interface - a set of panels that tell the node what to extract and how to name things:
- DATA - custom fields, each a name plus a value source: static text, a widget pulled from another node (
#45:textorClassName:widget), or[any1]. - DATE FORMAT - three date tokens (
YYYY-MM-DD,HHmmss, custom) for naming. - MODEL - extract the model name and compute its SHA-256 hash (first 10 chars) for the
Model hash:field Civitai matches. - LORAS - same idea for LoRAs, with Civitai AutoV3 hashes (header-excluded, computed over the safetensors payload). Multiline
[any1]values are parsed one LoRA per line. - TEXT REPLACE - targeted find/replace on extracted values before they hit the filename (strip
(masterpiece, best quality)out of the prompt-derived name). - NAMING - assemble the filename from available elements: folder, prefix, extra fields, model, suffix, separator, dates.
- OUTPUT - format (
png/jpg/webp), quality, save-metadata and embed-workflow toggles.
The value-extraction pattern (#node_id:widget / ClassName:widget) is the same graph-reading trick as the pack's Extract Widget From Node - you can point it at a KSampler's seed, a CLIP encoder's text, or anything, and the name and metadata track the live values.
Outputs. images (passthrough) and filepath (the path of the first saved file), so downstream nodes can reference what was saved.
Install. This is the pack's flagship, so the pack install applies:
cd ComfyUI/custom_nodes
git clone https://github.com/tetsuoo-online/Comfyui-TOO-Pack
or ComfyUI Manager β "Comfyui-TOO-Pack" β restart. It needs piexif for the JPG/WebP EXIF path - the pack's requirements.txt installs it; if you skip requirements you'll see EXIF errors on non-PNG saves.
Gotchas. This "LiteGraph" variant is one of two registrations of the same node - the pack also ships a FileNaming (DOM) variant with a fancier UI. Config lives on the node in the UI, so a "Recreate/Fix node" in some contexts won't rebuild it cleanly (the docs note refreshing the canvas instead). And keep the metadata logic in mind: PNG is the only format that round-trips the full workflow; WebP/JPEG get the parameters via EXIF but the graph doesn't survive. Save PNG as your master, publish the small one.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | β | |
| metadataopt | METADATA | β | |
| workflowopt | WORKFLOW | β | |
| any1opt | * | β | |
| any2opt | * | β | |
| any3opt | * | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | β |
| filepath | STRING | β |