Nodes/ComfyUI-skkut-utils/Save Compressed Weppy
ComfyUI Node

Save Compressed Weppy

A compact save node

By skkut·Created 8 days ago·Updated 8 days ago· 0
Save Compressed Weppy
  • images
    filename_prefixComfyUI_Weppy
    quality80
    losslessfalse

    The name is doing more work than it looks like - "Weppy" is WebP, and the pitch is in the second word. ComfyUI's default Save Image hands you a PNG with the entire workflow welded in as text chunks: drag that PNG back onto the canvas and the whole graph rebuilds. Convert it to anything else - JPEG, a plain WebP, a screenshot - and re-encoding drops the metadata on the floor, graph included. Save Compressed Weppy is the "someone already thought about that" answer: it writes compressed .webp files and deliberately tucks the prompt and workflow back in as EXIF before saving, so the small file stays a ComfyUI round-trip ticket instead of a dead end.

    You reach for it in two situations. Your output folder is eating disk and every generation is a multi-megabyte PNG when a quality-80 WebP is a fraction of the size and nobody can tell the difference in a browser. Or you're sharing a generation and want to keep the "workflow included" convention - the thing the community treats as the image being the project file - without shipping a PNG bigger than the post deserves. It lands in that sweet spot the ecosystem's own docs call the metadata diet: not a PNG master, but not a corpse either.

    How it works

    Under the hood it's SaveImage with a different encoder and a different metadata home. Each image in the batch is written as .webp to ComfyUI/output/ with a counter suffix, and before the file is saved the node serializes the run's prompt and workflow into EXIF tags - prompt into the Make tag, workflow into ImageDescription. Because WebP has no PNG text chunks, EXIF is the only pocket that fits, and it's small. So the node runs every string through a stripper that removes base64 data: URIs and any value longer than 10 KB without spaces, keeping the JSON under EXIF size limits. That's not paranoia: large workflows genuinely overflow metadata fields - JPEG's EXIF area caps out and big graphs blow past it - which is exactly why WebP-plus-pruning is the safer target than JPEG.

    Two ways to use it. Drop the node at the end of a workflow and every run saves to the output directory, or right-click any image preview and pick Save Compressed Weppy (sits right under the native Save Image) to re-encode just that image and trigger a download.

    The inputs that matter

    • quality - 1–100, default 80. WebP's lossy quality dial; lower for smaller files.
    • lossless - off by default. Flip it on and quality becomes a compression-level slider instead. Slower, bigger, no quality loss.
    • filename_prefix - defaults to ComfyUI_Weppy; a random five-letter suffix is appended so names don't collide with default saves.

    That's it. It's an output node - no data outputs, it just saves and shows the result in the UI. Hidden prompt/workflow inputs are captured automatically, so there's nothing to wire.

    Installing it

    The node ships in the ComfyUI-skkut-utils pack, so installing gives you a couple of other utils too. Easiest is ComfyUI Manager: search for skkut-utils. Or:

    cd ComfyUI/custom_nodes/
    git clone https://github.com/skkut/ComfyUI-skkut-utils.git
    

    Then, optionally, install its one extra dependency (the preferred EXIF writer - without it, saving falls back to Pillow's native EXIF and still works):

    cd ComfyUI-skkut-utils
    pip install -r requirements.txt
    

    Restart ComfyUI. No model files, no config.

    Common gotchas

    Where people get burned: the round-trip only works when ComfyUI reads WebP EXIF (current versions do), and only when the receiving host serves your original bytes. Reddit, Discord inline previews, and every CDN that recompresses will strip the workflow just like they strip a PNG's - send the file as an attachment, not through a re-encoder. And the default is lossy at quality 80, so if you're making a master you'll edit again, keep the original PNG or tick lossless. Nobody loves the name. The feature is good anyway.

    Categoryimage

    Inputs (4)

    NameTypeDefaultDescription
    imagesIMAGE
    filename_prefixSTRINGComfyUI_Weppy
    qualityINT801–100
    losslessBOOLEANfalse

    Outputs (0)

    No outputs