PD_IMAGE:COVER_SAVER
COVER_SAVER — the saver that overwrites instead of numbering up forever
- images
Core ComfyUI's SaveImage is allergic to same-named files: every run mints a new 00001_001.png, 00001_002.png, and before long your output folder is a graveyard. If you're iterating on a single deliverable - a video cover, a thumbnail, a profile image - that behavior is exactly backwards. PD_IMAGE:COVER_SAVER inverts it: save to a fixed filename and it overwrites the previous file every run. The name is literal; the whole node is a cover saver.
It's the node I'd reach for when the output of a run should always live at a known path: a loop that renders the same poster repeatedly, a "latest render" file that a browser or another tool picks up, an auto-refresh cover for a project. Each run leaves exactly one file behind.
How it works
Straight from the source, it writes each image with the given filename (it smartly appends .png or .jpg if you forgot the extension) into either your ComfyUI output directory or a custom_output_dir you type in, creating the directory if it doesn't exist. Same name every time → same file gets clobbered. It's marked as an output node, so show_preview toggles whether the run surfaces a preview image in the UI - flip it off for pure headless-ish saves.
Notably, for PNG it embeds the prompt and workflow metadata into the file (via the hidden PROMPT/EXTRA_PNGINFO inputs), so the "drag the PNG back in to recover the workflow" trick from the KB's image-io-metadata essay still works - as long as you save PNG and don't re-encode.
The inputs that matter
- images (
IMAGE) - frames to save. - filename (
STRING, defaultoutput) - fixed name, extension optional. - custom_output_dir (
STRING, default empty) - if blank, goes to the normal output folder. - format -
png(default) orjpg. - show_preview (
BOOLEAN, default on) - whether to render a preview widget.
No outputs - it's a terminal node, which is why it doesn't wire into anything downstream. Its job ends at the disk.
The trap
Overwrite mode is destructive, on purpose, and there's no safety net. The flip side of "always one file" is "your previous version is gone the moment the run finishes." If you want history, this is not your node - use core SaveImage or a versioned path instead. Also: custom_output_dir is a plain text box, no folder picker, so double-check your path if nothing shows up. And the same-name clobbering applies to batches: a multi-frame input saves every frame under the same base name, so the last frame wins unless your filename includes a frame token yourself. For single-image cover work none of that bites.
Install
ComfyUI Manager: search PDuse (repo 7BEII/Comfyui_PDuse), install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/7BEII/Comfyui_PDuse
cd Comfyui_PDuse
pip install -r requirements.txt
Restart and it appears as PD_IMAGE:COVER_SAVER under PD/Image. One job, done well: always the same file, always fresh.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| filename | STRING | output | — |
| custom_output_dir | STRING | — | |
| format | COMBO | png | 2 options: png, jpg |
| show_preview | BOOLEAN | true | — |
Outputs (0)
No outputs