Nodes/Doss Node Suite/Doss Save Image
ComfyUI Node

Doss Save Image

Save to an output subfolder, auto-numbered, without breaking the chain

By JamesDanielDoss·Created 3 months ago·Updated 6 days ago· 1
Doss Save Image
  • image
  • image
filenameComfyUI
save_locationoutput
file_formatPNG
save_metadatatrue
save_metadata_text_filefalse

Every ComfyUI user knows the ritual: hit Queue, wait, then spelunk through output trying to figure out which PNG is the one you just made. The stock Save Image node works, but it's PNG-only, terminal (nothing flows out of it), and its filename handling makes organizing batches annoying. Doss Save Image is a friendlier version with a real twist: it writes to the output folder or any subfolder you name, in JPEG, PNG, PDF, WEBP, TIFF, ICO or BMP, auto-increments filenames so it never overwrites, and passes the image batch through unchanged. It's a save node that isn't a dead end.

That pass-through output is the reason to care. You can wire image from the sampler into Doss Save Image, then keep feeding the same tensor to a preview, an upscaler, or a second saver - saving becomes a side effect of the pipeline instead of its end.

How it works

The backend is plain Python plus PIL - no extra dependencies. It sanitizes your filename (invalid Windows characters like \/:*?"<>| become _, with a toast warning), strips any known extension you typed, and resolves save_location relative to ComfyUI's output directory. Absolute paths, drive letters, and .. traversal are rejected outright, so you can't accidentally write outside output.

For a batch it pre-computes unique paths - ComfyUI.png, ComfyUI(1).png, ComfyUI(2).png - and writes every frame. PNG embeds the prompt and workflow metadata just like core Save Image (that's the "workflow included" culture in action). Formats behave sensibly: JPEG and PDF flatten transparency onto white, PNG and WEBP keep alpha, TIFF uses LZW compression, and ICO writes a single 256×256 icon per batch frame. There's also a Browse button that only shows folders inside output, so you can pick or create a subfolder without typing a path from memory.

Inputs and outputs

  • image - required IMAGE. The batch you want saved.
  • filename - string, default ComfyUI.
  • save_location - string, default output. Subfolders are output-relative, like portraits/session_01.
  • file_format - the dropdown: JPEG, PNG, PDF, WEBP, TIFF, ICO, BMP.
  • save_metadata - boolean, default on. Embeds prompt/workflow metadata where the format supports it.
  • save_metadata_text_file - boolean, default off. Writes a .txt sidecar next to each image with generation metadata and save details as JSON.

Output is a single image - the original batch, untouched.

Installing it

ComfyUI Manager, search "Doss Node Suite", or:

cd ComfyUI/custom_nodes
git clone https://github.com/JamesDanielDoss/Doss-Node-Suite.git

Restart and look under the ⚡ Doss Node Suite category. No models, no heavy dependencies - numpy and PIL are already in ComfyUI.

Gotchas

The first time you use it, go look in ComfyUI/output (or the subfolder you chose) - that's where files land, not your Downloads folder. Other things that trip people up: there are no quality or compression sliders, so JPEG is hardcoded to quality 95 and WEBP to 100; ICO is always 256×256; typing an absolute path into save_location throws an error rather than silently redirecting. And because it never overwrites, every run adds a new (n) file - great for keeping runs, mildly annoying if you wanted in-place saves. The settings are ordinary widgets, so they ride along in the workflow JSON - copy your workflow and the folder choice travels with it.

Category⚡ Doss Node Suite

Inputs (6)

NameTypeDefaultDescription
imageIMAGE
filenameSTRINGComfyUI
save_locationSTRINGoutput
file_formatCOMBOPNG7 options: JPEG, PNG, PDF, WEBP, TIFF, ICO, +1
save_metadataBOOLEANtrue
save_metadata_text_fileBOOLEANfalse

Outputs (1)

NameTypeDescription
imageIMAGE