SAVE OUTPUT (JOV) πΎ
Write files where you want, with the metadata you want
- image
- metadata
ComfyUI's default Save Image is fine until it isn't. You want a specific folder, a controlled filename, metadata embedded, or all three - and stock ComfyUI gets stubborn about it. SAVE OUTPUT is Jovimetrix's answer: an output node that writes your image to an exact path with an exact filename and lets you attach both structured and free-form metadata. For batch pipelines that need files to land somewhere predictable, it's the difference between "I'll find it in output/" and "this workflow actually runs on its own."
The setup is four inputs, and they're all optional. image is the thing to save. path is the destination - type an absolute or relative folder and it's created as needed. fname defaults to "output" and is your base filename; the code appends the extension for you. Then the metadata pair: metadata takes a JSON object (great for structured data like settings or model info), and usermeta is a plain multiline string for anything you want written alongside - notes, copyright, a changelog. On top of that, the node automatically bundles in the prompt and extra_pnginfo, so the standard ComfyUI workflow metadata survives the save too.
Two mechanical details worth knowing. First, this node deliberately never caches: IS_CHANGED returns NaN, so every run writes a fresh file - which is what you want from a save node, but it does mean it always executes even if nothing upstream changed. Second, it converts to a PIL image for writing, embeds the metadata into the PNG info, and handles batches by writing each frame. If the image slot is empty it warns and writes a placeholder rather than crashing - a deliberate "don't kill my queue" choice.
Where it fits: any workflow where output location is part of the deliverable. Batch upscaling that needs results in an input-mirroring folder tree, animation frames that must land in a numbered sequence, or a render farm job that writes results to a shared drive. Pair it with QUEUE (JOV) to cycle a folder of inputs and SAVE OUTPUT to write results back out - that combo is a mini batch processor with zero extra tooling.
Install is the pack-wide routine. ComfyUI Manager β search "Jovimetrix", or:
cd ComfyUI/custom_nodes
git clone https://github.com/Amorano/Jovimetrix.git
pip install -r Jovimetrix/requirements.txt
Restart afterwards. Dependencies are the shared, light set - numpy, opencv-contrib-python, Pillow, matplotlib, and the cozy-comfyui helpers; no model files. Standard pack notes: keep ComfyUI at 0.1.3+ and the frontend current, and don't update Jovimetrix past 1.7.48 if you rely on the nodes that split into the Jovi_* packs. SAVE OUTPUT isn't one of the refugees.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| imageopt | IMAGE | β | |
| pathopt | STRING | Destination path to save the output | |
| fnameopt | STRING | output | Filename of the output |
| metadataopt | JSON | Extra metadata to save in the file | |
| usermetaopt | STRING | Custom user metadat to save with the file |
Outputs (0)
No outputs