π FRED Image Saver
A save node that names files from your actual model, seed, and LoRAs
- images
- GRID_IMAGE
- last_saved_path
- help
The stock Save Image node writes 00001_20260816_123456.png and calls it a day. If you generate a lot, those filenames are useless three days later. FRED_ImageSaver is the organized alternative: tokenized filenames and paths that expand to your model name, seed, LoRAs, date and more, plus A1111-style parameters text embedded in the file and optional grid saving. It's the node that makes an output folder actually browsable.
The tokens
The filename and path fields accept tokens that get expanded at save time. The ones you'll actually use:
%model_name/%basemodelname- which checkpoint made this%date,%date_dash,%time,%datetime(the last usestime_format)%seed- for reproducibility%lora_name_1,%lora_weight_1(through 3) - which LoRAs ran and at what strength%width,%height,%steps,%cfg,%sampler,%scheduler%img_count- batch/grid size
A counter is always appended for uniqueness, so filename: %model_name_%date_dash yields myModel_2026-08-16_0001.png. The default path is Fred_nodes/%date_dash/ relative to ComfyUI's output folder - your outputs self-organize by date under a Fred_nodes/ directory, and you can change that to %model_name-based organization instead.
Metadata embedding
This is the part A1111 refugees will feel at home with. The saver embeds an A1111-style parameters text chunk - positive prompt, Negative prompt: ... (only if non-empty, so it doesn't swallow the params), Steps:, Sampler:, CFG scale:, Seed:, model name, LoRA info - into the PNG, alongside the workflow JSON and ComfyUI version (toggle embed_workflow_in_png / save_workflow_as_json). That means the file carries its full generation recipe, which you can drag back into ComfyUI or read with any metadata viewer. It's the "workflow included" culture in your own archive.
To make those fields real rather than hand-typed, pair it with the extractor nodes in this pack: FRED_ExtractKSampler_parameter feeds the sampler settings, FRED_ExtractLora_parameter feeds the LoRA names/weights, FRED_CheckpointLoaderWithName feeds the model name. Keep one source of truth, let the saver record it.
Grid mode
save_as_grid_if_multi kicks in when your images input carries a batch: it arranges them into a grid (grid_column_max / grid_row_max auto-fit), writes it under grid_filename / grid_path, and emits it as GRID_IMAGE. There are separate extension/quality controls for the grid (png/jpeg/webp), so you can keep lossless singles and compact grids at the same time.
Outputs
GRID_IMAGE- the assembled grid (useful even if you also save it).last_saved_path- the actual path written, for logs or further processing.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Poukpalaova/ComfyUI-FRED-Nodes_v2.git
Restart, or "ComfyUI FRED Nodes v2" via ComfyUI Manager.
Gotchas
The quality_jpeg_or_webp slider is meaningless for PNG (PNG is lossless) - set it for jpeg/webp saves. And a token you spell wrong stays as literal text in the filename, which is how you end up with %model_nam_20260816.png; the pack's help output lists the exact token names, so check it once. If you're coming from a plain Save Image workflow, expect one-time fiddling with filename templates, then never again.
Inputs (37)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | image(s) to save (list or batch). | |
| save_single_image | BOOLEAN | true | Save each input image as its own file. |
| filename | STRING | %model_name_%date_dash | base filename (counter appended) |
| path | STRING | Fred_nodes/%date_dash/ | relative to Comfy output (or absolute) |
| time_format | STRING | %Y-%m-%d-%H%M%S | used by %datetime token |
| extension | COMBO | png | output file format for single images |
| optimize_png | BOOLEAN | false | optimize PNG (lossless); smaller files but slower |
| lossless_webp | BOOLEAN | true | save WEBP in lossless mode (quality ignored) |
| quality_jpeg_or_webp | INT | 1001β100 | JPEG/WEBP quality (ignored if WEBP lossless) |
| save_workflow_as_json | BOOLEAN | false | write a sidecar JSON next to image |
| embed_workflow_in_png | BOOLEAN | true | embed workflow/prompt JSON into PNG metadata |
| width | INT | 10241β16384 | recorded in metadata; does not resize |
| height | INT | 10241β16384 | recorded in metadata; does not resize |
| scale | FLOAT | 1.400β100000 | record-only parameter |
| denoise | FLOAT | 0.600β1 | record-only parameter |
| guidance | FLOAT | 2.200β100 | record-only parameter (CFG/guidance) |
| clip_skip | INT | 1-24β24 | record-only parameter |
| steps | INT | 201β4096 | record-only parameter |
| seed_value | INT | 00β18446744073709550000 | record-only parameter (seed) |
| sampler_name | STRING | euler | record-only parameter (sampler name) |
| scheduler_name | STRING | simple | record-only parameter (scheduler name) |
| positive | STRING | positive prompt (saved in metadata) | |
| negative | STRING | negative prompt (saved in metadata) | |
| model_name | STRING | flux | record-only parameter (model name) |
| lora_name_1 | STRING | optional LoRA name #1 (if empty: weight omitted everywhere) | |
| lora_weight_1 | FLOAT | 1.00-10β10 | LoRA weight #1 |
| lora_name_2 | STRING | optional LoRA name #2 (if empty: weight omitted everywhere) | |
| lora_weight_2 | FLOAT | 1.00-10β10 | LoRA weight #2 |
| lora_name_3 | STRING | optional LoRA name #3 (if empty: weight omitted everywhere) | |
| lora_weight_3 | FLOAT | 1.00-10β10 | LoRA weight #3 |
| save_as_grid_if_multi | BOOLEAN | false | Also save a single tiled grid image of all inputs. |
| grid_filename | STRING | %lora_name_1_weight_%lora_weight_1_%datetime_%model_name grid_%img_count | filename prefix for the grid image |
| grid_path | STRING | Test/%model_name/Grid/%date_dash/ | save folder for the grid image |
| grid_column_max | INT | 5 | x_size (columns). |
| grid_row_max | INT | 1 | y_size (rows). |
| grid_extension | COMBO | png | output file format for the grid image |
| grid_quality_jpeg_or_webp | INT | 1001β100 | JPEG/WEBP quality for the grid image |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| GRID_IMAGE | IMAGE | path to last saved image |
| last_saved_path | STRING | help / usage tips |
| help | STRING | β |