FD Workflow Image Saver
The saver that names each result after the source image
- images
Feidorian_WorkflowImageSaver is the other half of the FD batch system, and it's the half that makes the whole thing make sense. Its job: take the images your workflow just produced and write them back next to the source file they came from, under a name you didn't have to invent. photo_037.png in, product_photo_037.png out. Every result is traceable to its input without you keeping a spreadsheet.
How it works. This is the unusual bit, so pay attention: the saver doesn't take a filename or a directory from you. It reads class-level state that the loader set on the previous pass - the directory it loaded from, the product_ filename it reserved, the subfolder. The two nodes share that state across the graph, which is why they're designed to run as a pair. When the saver executes, it writes product_<original name>.png into the loader's directory and embeds the metadata. Then it logs a status line to the console: tasks completed, tasks left, how long the last one took, and an estimate of how much time remains for the batch. It's a progress bar in your terminal instead of on screen.
IS_CHANGED returns NaN here too, so the node always runs rather than being skipped as unchanged - important, because saving is a side effect that must not be cached away.
Inputs. Three, and they're all easy:
images(required) - the IMAGE tensor you want saved.prompt_text- a string written into the PNG metadata, so the product keeps whatever caption belonged to the source image.with_workflow(defaulttrue) - embeds the full workflow JSON (the prompt plus extra pnginfo) into the PNG metadata. With this on, every saved file is self-contained: drop it back into ComfyUI later and the whole graph comes with it.
There are no outputs - it's an output node, the end of the line.
What it's good for. Batch jobs where you want provenance: one input image in, one product out, named the same, captioned the same. If you're running a LoRA or face-restore or upscale pass over a folder of images, this is the tidy way to collect results.
Common issues. The big one: "Missing Path. Path must be provided to loader node." - the saver ran without the loader ever having run in the same session, so the shared state is empty. Keep both nodes in one graph and run them in the same queue. Second, you don't get to choose the filename - if you want your own names or a timestamp, use Feidorian_ImageSave (FD Image Save) instead. And note the pack is archived, so no updates are coming.
Install. ComfyUI Manager (search "feidorian-ComfyNodes"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/Feidorian/feidorian-ComfyNodes
Restart ComfyUI afterward. No dependencies to install, no models to download - just restart and it's there under the "FD" prefix.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| prompt_text | STRING | — | |
| with_workflow | BOOLEAN | true | — |
Outputs (0)
No outputs