ComfyUI Node

Extended Save

PNG is fine, but webp/jpeg/avif that still carries your workflow is better

By kaanyalova·Created 2 years ago·Updated 2 years ago· 6
Extended Save
  • images
    filename_prefixComfyUI
    format

    Stock ComfyUI Save Image does exactly one thing well: PNG with the workflow embedded, drag it back in and the whole graph rebuilds. That embedded-metadata trick is practically ComfyUI culture - "workflow included" became a community norm precisely because a single image file carries everything needed to reproduce it. This node is what you want when PNG's file sizes start annoying you. It's the same save, but for jpeg, webp, avif and jxl - and it stuffs the prompt plus workflow JSON into the EXIF UserComment tag (0x9286) so drag-to-restore keeps working.

    So: generate a nice batch, save as webp, post it, and anyone who drags your file back into ComfyUI gets the full pipeline. The image is smaller and the graph survives. That's the pitch, and it works.

    How it works

    The node subclasses ComfyUI's own SaveImage, so the PNG path is stock behavior with the normal compression level. For jpeg/webp/avif, the prompt and workflow JSON get written into the image's EXIF UserComment field. The pack also ships a frontend extension in web/ that reads that tag back (via exifr) when you drag a file into the browser, reconstructing the workflow exactly like a PNG would. The metadata format matches what the README documents: {"prompt": ..., "workflow": ..., ...extra fields}.

    Two honest caveats from the source. JXL saves the image only - the author prints "JXL export doesn't have metadata/import support yet!", and the README says the same. And there's a dds option in the format list, but it's a bare imageio write with no compression or mipmap controls - if you actually want game-ready DDS, use the pack's other node, Save DDS for games.

    The inputs that matter

    • images - the IMAGE tensor from your VAE decode (or whatever's feeding it).
    • filename_prefix - same as stock Save Image; files land in ComfyUI/output/.
    • format - png, jpeg, webp, dds are always in the list. avif and jxl only appear once the plugins import successfully (see below).

    No outputs - it's an output node. Results show up in the side panel like any save node.

    How to install it

    Install the Extended Image Formats pack once; this node comes with it. Through ComfyUI Manager: search "Extended Image Formats" and install. Or manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/kaanyalova/ComfyUI_ExtendedImageFormats
    

    Then the optional formats need their Python deps:

    source ./venv/bin/activate
    pip install pillow-avif-plugin jxlpy
    

    Restart ComfyUI. The pack's requirements.txt lists both packages, so a Manager install usually grabs them for you.

    Where people get burned

    • No avif or jxl in the dropdown? The format list is built at load time and only appends avif/jxl when pillow-avif-plugin and jxlpy actually import. If you don't see them, the deps aren't installed - install and restart.
    • JXL files won't drag-restore. No metadata, by design. Don't expect workflow recovery from .jxl.
    • Image hosts strip EXIF. Local jpeg/webp files restore fine, but the moment you upload one to a hosting service, the UserComment tag is gone and so is the workflow. Same problem every embedded-metadata scheme has.
    • Headless runs can trip over the metadata path. The non-PNG branches assume extra_pnginfo with a workflow key exists; save jpeg/webp/avif via the raw API without extra_pnginfo and it can throw. PNG stays safe.

    A word of perspective: this space has bigger, busier competitors - Save Image Extended is the pack most people already have. This one's angle is avif/jxl support plus the DDS node in the same repo. If you're only ever saving PNG, the built-in Save Image is right there and this adds nothing. It earns its place when file size or format matters and you still want your workflow to travel with the image.

    Categoryimage

    Inputs (3)

    NameTypeDefaultDescription
    imagesIMAGE
    filename_prefixSTRINGComfyUI
    formatCOMBO6 options: png, jpeg, webp, dds, avif, jxl

    Outputs (0)

    No outputs