Nodes/PixelML ComfyUI Nodes/SaveImage_PixelML
ComfyUI Node

SaveImage_PixelML

A renamed fork of ComfyUI's SaveImage with one extra required field

By PixelML·Created 2 years ago·Updated 2 years ago· 0
SaveImage_PixelML
  • images
    filename_prefixComfyUI
    output_nameoutput_input

    SaveImage_PixelML is, plainly, a fork of ComfyUI's built-in SaveImage node with one extra required field bolted on. If you're comparing it to the core node, there is essentially no other difference: same output directory, same PNG writing, same embedded workflow metadata. So the honest question is whether that extra field - output_name - is worth anything to you.

    Here's the field's story. The core SaveImage takes an images input and a filename_prefix, and that's it. This version adds a required output_name (default "output_input") that has no effect on the filename or the save location - it's a required label the node demands before it will run. If it's empty, the node raises ValueError: Output name is required. In the pack's wider "variable handling and workflow automation" framing, that label is presumably how an agentic pipeline tracks which save produced which output. For a human, it's a mandatory text field you mostly just leave alone.

    How it works

    The mechanics are copied from core ComfyUI's SaveImage. On run, it computes a save path in your ComfyUI output directory via get_save_image_path, converts each image in the batch from a torch tensor to a PIL image, and writes it as a PNG with compression level 4. It also embeds the workflow and prompt JSON as PNG text chunks - that's the metadata that lets you drag the saved image back into ComfyUI to reconstruct the graph. If you launch ComfyUI with --disable-metadata, that embedding is skipped.

    The output file naming follows the standard pattern: your filename_prefix plus a zero-padded counter, e.g. ComfyUI_00001_.png. A batch of images becomes a sequence of numbered files.

    The inputs

    • images (IMAGE) - the batch of tensors to save. Wire this from a VAE Decode or any image-producing node.
    • filename_prefix (STRING, default "ComfyUI") - the base name of the saved files.
    • output_name (STRING, default "output_input") - the required label. Must be non-empty or the node errors out. It doesn't affect the filename.

    There are no outputs - it's an output node that terminates the branch of your graph.

    Install

    Via ComfyUI Manager: search "PixelML ComfyUI Nodes", install, restart. By hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/PixelML/ComfyUI-PixelML-CustomNodes
    

    Then restart ComfyUI. The pack's requirements.txt pins diffusers==0.24.0 plus boto3/httpx/httpx-sse, none of which this node uses - it only needs PIL, numpy, and ComfyUI's folder_paths. If the requirements file causes a diffusers downgrade that breaks other nodes, skip it; the save node runs fine without it.

    The honest verdict

    If you're looking for a save node, use core SaveImage - it does the same thing with one less required field to trip over. Where this one earns its keep is in agent-driven workflows that need the output_name label to identify saves programmatically. The "Output name is required" error is the only failure mode you're likely to hit, and it's self-explanatory: fill the field. There's no model download, no heavy dependency, and nothing else to configure.

    Categoryimage

    Inputs (3)

    NameTypeDefaultDescription
    imagesIMAGE
    filename_prefixSTRINGComfyUI
    output_nameSTRINGoutput_input

    Outputs (0)

    No outputs