ComfyUI Node

Save IMG Prompt

Save IMG Prompt

By mpiquero1111·Created 3 years ago·Updated 3 years ago· 19
Save IMG Prompt
  • images
    output_path[time(%Y-%m-%d)]
    filename_prefixComfyUI
    filename_delimiter_
    filename_number_padding4
    filename_number_start
    img_extension
    prompt_extension
    quality100
    overwrite_mode
    show_history
    show_history_by_prefix
    embed_workflow
    show_previews
    save_prompt

    If you've ever opened an old output image two weeks later with absolutely no memory of what prompt, seed, or checkpoint made it - this node exists purely to stop that from happening again. It's a one-node pack, no siblings, built by a solo dev (mpiquero7164) who, by their own account in the ComfyUI subreddit, made it because they were tired of firing up ComfyUI just to check what prompt produced a given image. That's the whole pitch: it's the core Save Image node with a memory.

    Functionally it's an output node that writes your image to disk like normal, but alongside it drops a separate text or JSON file holding the prompt/workflow that made it, and can also stamp the workflow straight into the PNG's own metadata - the same trick vanilla ComfyUI already uses to let you drag any of its output images back onto the canvas and have the whole graph rebuild itself. That PNG-metadata-as-portable-workflow thing is core to how ComfyUI users share work at all; this node just gives you a second, human-readable copy of the same information sitting right next to the image as a file you can grep or open in a text editor without touching ComfyUI. Worth knowing going in: the sidecar dump isn't curated. The author's own description of it is that it's a "dirty save" - it just yanks whatever's in the prompt portion of your workflow JSON. On a simple linear graph that reads fine. On a sprawling eleven-prompt monster it's going to be a wall of JSON, not a tidy paragraph.

    What you'll actually touch: images is the required input - plug in whatever's coming out of your VAE Decode. output_path controls the save folder and defaults to [time(%Y-%m-%d)] - note the bracket syntax, not the %date:...% style some other save nodes use; the pack supports [time], [time(format)], [hostname], and [user] as tokens, all documented in the README. filename_prefix (default ComfyUI) and img_extension (png or jpeg) are the other two most people set immediately. Whether you get a sidecar file at all is gated by save_prompt, with prompt_extension choosing txt or json for it, and embed_workflow separately controlling whether the workflow also gets baked into the image's own metadata. The rest is filename bookkeeping you'll rarely touch - filename_delimiter, filename_number_padding (how many digits the auto-incrementing counter gets), filename_number_start, quality for jpeg compression, and overwrite_mode (leave numbering alone, or prefix_as_filename to just reuse the prefix as the literal name and overwrite each run). show_history and show_history_by_prefix toggle a little on-node thumbnail history so you can eyeball recent saves without leaving the graph, and show_previews controls whether the node shows a preview at all. There's no output socket - this is a terminal node (is_output_node: true), so nothing downstream depends on it; it just deposits files and the graph ends there.

    Installing it is as basic as it gets: search "ComfyUI-SaveImgPrompt" in ComfyUI Manager, or do it by hand with cd ComfyUI/custom_nodes && git clone https://github.com/mpiquero7164/ComfyUI-SaveImgPrompt.git and restart ComfyUI. No models to download, no heavyweight Python dependencies riding along - it's a lean, single-purpose pack.

    On troubleshooting: the README's own "Known issues" section says, verbatim, "I dont know of any yet," which tells you what you're dealing with - a small, single-maintainer pack without a busy Discord behind it, so a GitHub issue is genuinely the right first move if something misbehaves. The most common way people trip themselves up is assuming the token syntax matches some other save node's format string - it doesn't, it's this pack's own [bracket] tokens, so a %date:yyyyMMdd% string copied from elsewhere will just print literally instead of substituting. And if you're relying on the classic drag-the-image-back-into-ComfyUI trick to reload a workflow, keep embed_workflow on and stay on PNG - that metadata trick is a PNG convention in ComfyUI, and switching img_extension to jpeg means you shouldn't count on the same reload behavior.

    CategoryIO

    Inputs (15)

    NameTypeDefaultDescription
    imagesIMAGE
    output_pathSTRING[time(%Y-%m-%d)]
    filename_prefixSTRINGComfyUI
    filename_delimiterSTRING_
    filename_number_paddingINT41–9
    filename_number_startCOMBO2 options: false, true
    img_extensionCOMBO2 options: png, jpeg
    prompt_extensionCOMBO2 options: txt, json
    qualityINT1001–100
    overwrite_modeCOMBO2 options: false, prefix_as_filename
    show_historyCOMBO2 options: false, true
    show_history_by_prefixCOMBO2 options: true, false
    embed_workflowCOMBO2 options: true, false
    show_previewsCOMBO2 options: true, false
    save_promptCOMBO2 options: true, false

    Outputs (0)

    No outputs