Nodes/ComfyUI Image Properties SG/Save Image Format Quality Properties-SG
ComfyUI Node

Save Image Format Quality Properties-SG

Save in five formats, with quality knobs and the recipe on the label

By ShammiG·Created 10 months ago·Updated 6 months ago· 11
Save Image Format Quality Properties-SG
  • images
    filename_prefixComfyUI
    PropertiesBoth
    formatPNG (lossless, larger files)
    png_compress_level9
    jpeg_quality95
    jpeg_optimizetrue
    jpeg_subsamplingAuto (based on quality)
    webp_quality90
    webp_method4
    webp_losslessfalse
    tiff_compressiontiff_deflate (lossless, better compression)
    tiff_jpeg_quality90

    Save Image is the node everyone ends the workflow on, and it's also where a lot of people quietly hit its limits. You want a JPEG for uploading somewhere, a WebP for a web post, a TIFF for a print pipeline - and the stock Save Image only does PNG at one compression level, then hides everything it knows. This node is Save Image with a full format and quality panel, plus the property readout this pack is known for. It's the flagship node of ComfyUI-Image_Properties_SG, and the one with the most settings to fumble.

    You reach for it when you need output format control without bolting on a separate save-and-convert subgraph. If you've ever worked around the stock node by saving PNG and batch-converting outside ComfyUI, this kills the detour. It also reads your prompt on the way out, so the label on the node shows model, seed, steps, CFG, sampler, and scheduler for that run - you get the recipe at the same spot you save the result.

    How it works

    Wire it where you'd put Save Image - typically off the VAE decode output. It takes the IMAGE tensor and, per your format choice, calls PIL's encoder for PNG, JPEG, WebP, BMP, or TIFF with the quality settings you've picked. The JavaScript half hides the irrelevant widgets: pick JPEG and the WebP knobs vanish; pick PNG and you get png_compress_level (0–9, default 9 for maximum compression).

    The critical rule is spelled out in the tooltip and worth repeating: only PNG saves ComfyUI workflow and image metadata. The node embeds the full prompt and workflow JSON into PNG text chunks the same way the stock node does. JPEG, WebP, BMP, and TIFF get no metadata - the file is just pixels. If you need the workflow to survive, PNG is your only option here.

    The settings that matter

    • format - the big one: PNG, JPEG, WEBP, BMP, or TIFF. The option names honestly describe the trade-off (PNG is "lossless, larger files", BMP is "uncompressed, largest").
    • filename_prefix - the output prefix. Bonus: it supports %date%, %time%, and %timestamp% placeholders, plus formatted versions like %date:yyyy-MM-dd%, so you get date-stamped output without an extra filename node.
    • Properties - what the label shows: None, Basic (resolution/aspect/size), Metadata (model/seed/steps/CFG/sampler/scheduler), or Both.
    • Per-format quality: jpeg_quality (default 95) and jpeg_subsampling (4:4:4 = no subsampling, best quality); webp_quality (90), webp_method (0–6), webp_lossless; and tiff_compression (lzw, deflate, jpeg, packbits).

    There are no outputs - it's a terminal save node, exactly like the stock Save Image.

    Installing and quirks

    Install is the standard pack route: Manager → Custom Nodes Manager → search "ComfyUI-Image_Properties_SG" → Install → restart, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ShammiG/ComfyUI-Image_Properties_SG
    

    Restart and look for "Save Image Format Quality Properties-SG". No extra dependencies or models.

    Two quirks worth knowing, both from reading the code. The "File Size" line it prints on the node always shows 0.00 MB - the code references a variable that doesn't exist in that scope and swallows the error, so don't trust that number. And BMP/TIFF files can't be previewed by the browser, so the node quietly saves a temporary PNG just for the thumbnail; your real file is still written to output with the extension you picked.

    The standing pack gotcha applies here too: on ComfyUI 0.3.76+, Node 2.0 needs to be off or the display won't render. Saving still works - you just lose the label.

    Categoryimage

    Inputs (13)

    NameTypeDefaultDescription
    imagesIMAGE
    filename_prefixSTRINGComfyUI
    PropertiesCOMBOBothDisplay options: • None: Hides all information • Basic: Shows resolution, aspect ratio, and size • Metadata: Shows model, seed, steps, CFG, sampler, scheduler • Both: Shows all information
    formatCOMBOPNG (lossless, larger files) ❗WARNING❗ Only PNG saves comfyUI workflow and metadata
    png_compress_leveloptINT90–9
    jpeg_qualityoptINT951–100
    jpeg_optimizeoptBOOLEANtrue
    jpeg_subsamplingoptCOMBOAuto (based on quality)4 options: 4:4:4 (No subsampling, best quality), 4:2:2 (Moderate subsampling), 4:2:0 (Maximum subsampling, smaller files), Auto (based on quality)
    webp_qualityoptINT901–100
    webp_methodoptINT40–6
    webp_losslessoptBOOLEANfalse
    tiff_compressionoptCOMBOtiff_deflate (lossless, better compression)5 options: none (uncompressed, largest), lzw (lossless, good compression), tiff_deflate (lossless, better compression), jpeg (lossy, smallest), packbits (lossless, basic)
    tiff_jpeg_qualityoptINT901–100

    Outputs (0)

    No outputs