Nodes/ComfyUI-ArchAi3d-Qwen/πŸ’Ύ Save Image
ComfyUI Node

πŸ’Ύ Save Image

A Save Image with a format switch and actual file-size control

By amir84ferdosΒ·Created 11 months agoΒ·Updated 5 months agoΒ· 70
πŸ’Ύ Save Image
  • images
    β—„savetrueβ–Ί
    β—„filename_prefixComfyUIβ–Ί
    β—„formatPNGβ–Ί
    β—„quality95β–Ί
    β—„embed_workflowtrueβ–Ί
    β—„save_workflow_jsonfalseβ–Ί
    β—„output_nameoutput_imageβ–Ί
    β—„webp_methoddefault (4)β–Ί
    β—„webp_losslessfalseβ–Ί
    β—„webp_exactfalseβ–Ί
    β—„png_compress_level4β–Ί
    β—„jpg_optimizetrueβ–Ί
    β—„jpg_subsampling4:2:0 (default)β–Ί
    β—„use_opencvfalseβ–Ί

    ComfyUI's built-in Save Image is fine until you need to output a JPG for a client, a WebP for a website, or a PNG that isn't 40MB because you forgot it embeds the full workflow. ArchAi3D Save Image is that node with a format dropdown and the compression knobs ComfyUI's default keeps hidden. Nothing about it is exotic - it's just the save node you actually want when file size and format matter.

    The three inputs you'll touch every time: images (your IMAGE tensor), filename_prefix (what goes at the front of the filename, default "ComfyUI"), and format - PNG, JPG, or WebP. PNG is the default because it embeds workflow metadata, which is the whole ComfyUI culture of "workflow included": anyone who drags your PNG back into ComfyUI gets the graph back.

    What's actually worth setting

    • quality (1-100, default 95) - governs JPG and WebP compression. For WebP, 100 means lossless.
    • embed_workflow - embed the workflow in the PNG. Default on; turn it off for leaner files or if you're sharing raw outputs.
    • save_workflow_json - dump the workflow as a separate .json file instead of (or alongside) embedding it. Handy for versioning.
    • png_compress_level (0-9, default 4) - the classic tradeoff: 0 is huge and instant, 9 is small and slow. You'll rarely need to move off 4.
    • jpg_subsampling - 4:2:0 is small and fine for photos; 4:4:4 is bigger but crisper for text and fine edges.
    • use_opencv - switches WebP encoding to OpenCV, which the tooltip claims is 5-10x faster on 4K+ images. Only matters if you're batch-saving huge frames.

    The deeper set - webp_method, webp_lossless, webp_exact, jpg_optimize - are there for people shipping to specific pipelines. Leave them alone until you have a reason.

    Outputs and wiring

    It has no outputs - it's an output node, the end of the line. output_name is worth knowing though: it's a label the pack's web-interface integration uses to identify this output, so a custom frontend can point at it by name. If you're just using default ComfyUI, ignore it.

    Installation

    Part of the ComfyUI-ArchAi3d-Qwen pack. Through ComfyUI Manager, search "ArchAi3d Qwen"; manually:

    cd ComfyUI/custom_nodes/
    git clone https://github.com/amir84ferdos/ComfyUI-ArchAi3d-Qwen.git
    cd ComfyUI-ArchAi3d-Qwen
    pip install -r requirements.txt
    

    Restart ComfyUI, and it shows up under ArchAi3d/Image. The requirements pull the whole pack's dependencies, so the install is heavier than this node strictly needs. Free for personal use; commercial use needs the author's paid license.

    Where people get burned

    If you switch to JPG or WebP, the tooltip caveat applies: only PNG carries embedded workflow metadata, so a JPG means the "workflow included" trick is gone. Also, quality and png_compress_level don't interact - quality only touches JPG/WebP, png_compress_level only PNG. And if you ever set save to false thinking it'll just preview, that's the trap: the node silently does nothing. Output appears where every ComfyUI output does - ComfyUI/output/.

    CategoryArchAi3d/Image

    Inputs (15)

    NameTypeDefaultDescription
    imagesIMAGEβ€”
    saveBOOLEANtrueEnable/disable saving the image to disk
    filename_prefixSTRINGComfyUIPrefix for the saved filename
    formatCOMBOPNGImage format (PNG supports metadata embedding)
    qualityoptINT951–100Quality for JPG/WebP (1-100). For WebP, 100 = lossless
    embed_workflowoptBOOLEANtrueEmbed workflow metadata in image (PNG only)
    save_workflow_jsonoptBOOLEANfalseSave workflow as separate .json file
    output_nameoptSTRINGoutput_imageIdentifier name for this output (used by web interface)
    webp_methodoptCOMBOdefault (4)WebP compression effort. 0=fastest encoding, 6=best compression/slowest. Only affects WebP.
    webp_losslessoptBOOLEANfalseForce lossless WebP (overrides quality). Perfect quality but slower and larger files.
    webp_exactoptBOOLEANfalsePreserve transparent area RGB values in WebP. Slightly larger files.
    png_compress_leveloptINT40–9PNG compression level. 0=no compression (fastest/largest), 9=max compression (slowest/smallest).
    jpg_optimizeoptBOOLEANtrueJPG optimize flag. Slightly slower but better compression.
    jpg_subsamplingoptCOMBO4:2:0 (default)JPG chroma subsampling. 4:4:4=best quality/larger, 4:2:0=smaller/default.
    use_opencvoptBOOLEANfalseUse OpenCV for WebP saving (5-10x faster on 4K+ images). Falls back to Pillow if unavailable.

    Outputs (0)

    No outputs