ComfyUI Node

Power Save Image

The save node that thinks about your CivitAI upload before you do

By Cornmeister·Created 8 months ago·Updated 8 months ago· 0
Power Save Image
  • image
    share_output_pathoutput/share
    full_output_pathoutput/full
    save_share_imagetrue
    save_full_flowfalse
    filename_prefixpower
    formatPNG
    positive_prompt
    negative_prompt
    model_name
    seed0
    steps0
    cfg0.00
    sampler
    scheduler
    width0
    height0
    jpeg_quality95

    Most ComfyUI save nodes do one of two things: dump every scrap of workflow data into the PNG (which is great for you, annoying for everyone you share with), or write a bare image with no metadata at all (which CivitAI may quietly down-rank, and since its 2025 policy, outright won't keep visible for NSFW uploads). Power Save Image is the "read the room" option: it writes a clean, CivitAI-ready file to one folder for sharing, and - if you want it - a separate full archive of the entire workflow somewhere else. Two outputs, two audiences, one node.

    How it works

    The node saves two independent things, each with its own toggle and its own path:

    • Share image (on by default). Writes a PNG or JPEG into your share folder carrying an A1111-style parameters string - prompt, negative prompt, steps, sampler, scheduler, CFG, seed, size, model - as PNG tEXt metadata, or as an EXIF UserComment for JPEG. This is the exact format CivitAI's metadata reader knows, which is the "CivitAI-ready" claim and it's accurate.
    • Full flow archive (off by default). Writes a PNG with the complete prompt and workflow embedded, plus a separate .txt with the whole thing as pretty-printed JSON. This is your reproducibility copy - the file you keep, never the one you post.

    The philosophy is deliberately "share-safe by default": the share file only ever contains the metadata you explicitly wired in, not your entire node graph. If you want the archive, you turn it on.

    Inputs that matter

    • image - what you're saving, from a VAE Decode.
    • share_output_path / full_output_path - subfolders under your ComfyUI output dir (defaults output/share and output/full). Both support time macros like [time(%Y-%m-%d)] in the path, which is handy for dated folders.
    • save_share_image / save_full_flow - the two toggles above.
    • filename_prefix - base name (default power); the node appends a timestamp.
    • format - PNG or JPEG, with jpeg_quality (70–100, default 95) when JPEG.

    Then the optional metadata fields: positive_prompt, negative_prompt, model_name, seed, steps, cfg, sampler, scheduler, width, height. These build the parameters string, and here's the trap for beginners: they're all empty by default. If you only wire in the image and save, you'll get a perfectly valid file with a metadata line that reads "Negative prompt: " and zeros for everything else.

    The wiring that makes it good

    This is where the rest of the pack pays off. Feed the Power Diffusion Model Loader's model_name output into this node's model_name. Feed your actual prompt text in (the Power Text Concat output works great), your seed, your sampler names. Then the parameters string is real, and your uploads carry the whole story. The pack is built so this node is the end of a deliberate pipeline, not a bolt-on.

    Install

    It's part of the CornmeisterNL PowerPack - install once, use all seven nodes:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Cornmeister/ComfyUI-CornmeisterNL-PowerPack.git
    

    Restart ComfyUI. Or ComfyUI Manager → search "CornmeisterNL PowerPack". Dependencies are just requests and Pillow, both already in any normal ComfyUI install.

    Where people get burned

    • Blank metadata - you wired image only. Wire the optional fields, or accept that the share file says nothing useful.
    • "Invalid output path" - the node deliberately blocks .. and absolute paths; everything must stay inside your output folder. That's a safety feature, not a bug.
    • JPEG vs PNG metadata differences - PNG gets a parameters chunk, JPEG gets EXIF. Both are readable by CivitAI's tooling; if some reader complains about one, that's why.
    • Full flow is off by default - if you came for the archive, flip save_full_flow on. Plenty of people run with just the share half and never notice.

    It's one of those nodes you don't appreciate until you upload a batch and every image has its prompt attached - and the ones you'd rather keep private have nothing but pixels.

    Category⚡ CornmeisterNL/PowerPack/Save

    Inputs (18)

    NameTypeDefaultDescription
    imageIMAGE
    share_output_pathSTRINGoutput/share
    full_output_pathSTRINGoutput/full
    save_share_imageBOOLEANtrue
    save_full_flowBOOLEANfalse
    filename_prefixSTRINGpower
    formatCOMBOPNG2 options: PNG, JPEG
    positive_promptoptSTRING
    negative_promptoptSTRING
    model_nameoptSTRING
    seedoptINT0
    stepsoptINT0
    cfgoptFLOAT0.00
    sampleroptSTRING
    scheduleroptSTRING
    widthoptINT0
    heightoptINT0
    jpeg_qualityoptINT9570–100

    Outputs (0)

    No outputs