βΎοΈπβ¨ Image Saver with JSON
ESS Image Saver with JSON β PNG and its metadata, in two different folders if you want
- images
This was the node the pack author built the whole pack for, and it shows: the βΎοΈπβ¨ Image Saver with JSON is a "save my PNG, and also save the prompt+metadata as a human-readable JSON - and oh, put the JSON in a different folder if I say so" output node. ComfyUI's built-in saver handles the PNG but not the separate JSON; WAS-style savers won't let you split image and metadata across two locations. This one does, which is genuinely the reason it exists.
The workflow where this shines: you're generating thousands of images for a dataset or a gallery, and you want the images in one directory and the machine-readable metadata in another - or you just hate the timestamp-skew problem where a text file saved by a different node lands two seconds off from its image. One node, one run, both files written together.
How it works
Inputs that matter:
images- IMAGE, what you're saving (PNG in this version).filename_prefix- STRING, defaultComfyUI. The base name.delimiter- STRING, default_. What separates the prefix from the number.filename_number_padding- INT, 1β9, default 4. Zero-padding on the counter, so you getComfyUI_0001.png.filename_number_start- an enum,false/true, for whether the counter starts the name.image_folderandjson_folder- STRING. Leave empty for the default output dir; fill in to send the two file types to different folders. Emptyjson_foldermeans the JSON lands next to the image.save_json_metadata- BOOLEAN, defaultfalse. Whether to embed the prompt JSON into the PNG's metadata as well.
No outputs - it's an output node; its job is writing files. It supports Python strftime placeholders in names and folder paths, auto-increments the counter so it never overwrites an existing file, and embeds the workflow's prompt and extra_pnginfo into both the PNG metadata and the sidecar JSON.
The honest caveat
Two things to know. First, this exact schema is the older saver: it saves PNG only, and the current Endless-Nodes saver is a much richer animal (three formats, prompt-based filename words, timestamps, UNC paths - the README describes a very different node). Second, it's a legacy ESS class: the June 2025 cleanup removed it, so a fresh git clone https://github.com/tusharbhutt/Endless-Nodes won't ship it. Old workflows referencing it may show a missing-node error.
Install is the usual Manager/clone dance (search "Endless" in Manager, or clone into custom_nodes and restart). If you're starting fresh and want the split-folder JSON behavior, the pack's current saver keeps that core idea and adds a lot - that's the one to use today.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | β | |
| filename_prefix | STRING | ComfyUI | β |
| delimiter | STRING | _ | β |
| filename_number_padding | INT | 41β9 | β |
| filename_number_start | COMBO | 2 options: false, true | |
| image_folder | STRING | β | |
| json_folder | STRING | β | |
| save_json_metadata | BOOLEAN | false | β |
Outputs (0)
No outputs