ComfyUI Node

Save Image Ultra

Save Image Ultra Is Just SaveImage Plus One Checkbox — When Does the Checkbox Matter?

By jeremytenjo·Created 4 months ago·Updated 4 months ago· 0
Save Image Ultra
  • images
    filename_prefixComfyUI
    attach_prompt_metadatafalse

    Let's be honest about what this is: "Save Image Ultra" is a one-node pack that reimplements ComfyUI's built-in SaveImage and adds exactly one checkbox. That's the whole pitch. If you're used to the "Ultra" naming convention in this ecosystem - ultra this, pro that, all of them twenty nodes deep - this will feel almost anticlimactically small. But small isn't the same as useless. The checkbox controls whether your saved PNG carries your prompt text inside it, and once you know what that means, you'll know whether this node is for you in about twenty seconds.

    Why the toggle exists at all

    Here's the context that makes this node make sense. ComfyUI's default SaveImage doesn't just save pixels - it buries your entire generation inside the PNG as text chunks: the full node graph (workflow) plus the resolved prompt (prompt). Drag that PNG back onto the canvas and the whole pipeline rebuilds. That "the image is the project file" convention is one of the great things about this ecosystem (it's literally how the official example workflows are distributed). But it's also disclosure-by-default: every image you save quietly carries your seed, your checkpoint, every LoRA, your negative prompt, the whole graph.

    ComfyUI does have a global kill switch for all of it - the "Disable saving prompt metadata in files" setting, or the --disable-metadata launch flag. But that's per-instance and all-or-nothing. This node is the per-node, per-run version: you decide on each save whether any prompt data goes into the file.

    What it actually does

    Mechanically, it's a near-fork of the core node's save code, and it behaves like one. It writes to ComfyUI/output/ with the same prefix_00001_.png auto-incrementing naming, same batch handling, same folder-path machinery. Flick attach_prompt_metadata to true and it writes one PNG text chunk, keyed prompt, containing the longest text field it can dig out of your execution prompt (the author's logic calls that the "best match" - a sensible heuristic when a workflow has several text inputs).

    The part the name oversells: it only writes that single prompt chunk. No workflow chunk, no A1111-style parameters block. So don't expect drag-back-to-rebuild from these files, and don't expect CivitAI to auto-link your model - the default node's graph chunk and CivitAI's parser expectations are both absent here. The README is refreshingly honest about this: "Only the prompt text key is written by this node when enabled." What you're getting is a way to keep a breadcrumb of what you prompted without publishing the entire recipe.

    The inputs that matter

    There are only three, all on the required list:

    • images - the batch of images to save. Standard IMAGE socket off your VAE Decode.
    • filename_prefix - defaults to ComfyUI. Same templating as core: %date:yyyy-MM-dd% and subfolders via a slash (portraits/run_a) work here.
    • attach_prompt_metadata - the whole point of the node. Default false, meaning by default these saves are metadata-clean.

    It's an output node (OUTPUT_NODE = True) with no outputs to wire - it terminates a branch. ComfyUI feeds it the execution prompt automatically through a hidden input; you never wire that yourself.

    Install

    Nothing to download, no model files, no requirements beyond what ComfyUI already has (the source only touches PIL, numpy, and ComfyUI's own folder_paths). Via ComfyUI Manager, search "ComfyUI-Save-Image-Ultra" or "Save Image Ultra". Or the usual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/jeremytenjo/ComfyUI-Save-Image-Ultra
    

    Restart ComfyUI and it shows up as Save Image Ultra under the image category.

    Where people get burned

    The big one: you toggle the checkbox, save, and the metadata still isn't there. That's almost certainly ComfyUI's global setting overriding you - --disable-metadata or the "Disable saving prompt metadata" option beats a per-node toggle every time, and the node respects it silently. Second, don't use this node expecting shareable workflow PNGs; you'll get a picture with a prompt snippet, not a reconstructable graph. And the usual ecosystem caveat applies: even the prompt chunk dies the moment a host re-encodes your upload (Reddit, screenshots, JPEG conversion all strip chunks), so if you're toggling it on to share, pick a host that serves your original bytes.

    Real talk: if you just save images, use the built-in node and don't think about it. If you want the option to ship a PNG that doesn't hand strangers your entire graph, this is a tidy, dependency-free way to get it. Just keep the name in perspective.

    Categoryimage

    Inputs (3)

    NameTypeDefaultDescription
    imagesIMAGEThe images to save.
    filename_prefixSTRINGComfyUIThe prefix for the file to save.
    attach_prompt_metadataBOOLEANfalseWhen enabled, writes prompt data into PNG metadata.

    Outputs (0)

    No outputs