PeroPix Save Image
Save Image, but with JPG, WebP, quality, and a destination you choose
- images
ComfyUI's built-in Save Image is fine until you need a JPEG. Then you're either stacking format-conversion nodes or living with the eternal pile of PNGs in output/. PeroPix Save Image is the version that fixes both gripes: it saves as PNG, JPG, or WebP, lets you set quality, and - the genuinely useful bit - writes to any folder you want, not just the output directory.
It ships with PeroPixfy, a pack that's mostly a fullscreen web app for generating with the Anima model without touching the node graph. These two graph nodes are the pack's secret side door: the README claims it registers no graph nodes, but the code clearly ships this one plus an Apply LUT. So this is what you use when you step out of the app and build a plain ComfyUI workflow around its outputs - which is exactly what you want when you've got a batch from Anima's Multi mode and need the keepers somewhere specific and small.
How it works
Under the hood it's a reimplementation of core Save Image with options bolted on. Three behaviors are worth knowing:
filename_prefix(STRING, default"PeroPixfy") - if it's a relative name, files go toComfyUI/output/with the standard counter naming (PeroPixfy_00001_.png). If it's an absolute path, the node creates that folder if needed and writes straight there - a project folder, a Dropbox, a second drive. That alone is why I reach for it.format(enum:png,jpg,webp) andquality(INT, 1–100, default 95). Here's the trap: quality does nothing for PNG - PNGs are always saved at the node's fixed compression level. Quality only matters for jpg and webp.- PNG embeds metadata; jpg/webp don't. Like core Save Image, PNG files get the full prompt and workflow info written into the file itself, so you can drag them back into ComfyUI later. JPG and WebP get neither, and both flatten any alpha channel to RGB - transparent areas come out as whatever was behind them.
One deliberate quirk: the node always reports itself as changed, so every queue submission writes a fresh file even when the inputs are identical. That's a fix, not a bug - without it, ComfyUI's cache can hand back the filename of a deleted previous output and your regenerated image seems to vanish.
Wiring it in
Inputs are just images (an IMAGE tensor), plus the three options above. It's an output node - no image output, so it goes at the very end of a graph. The saved files show up in ComfyUI's normal image panel. A natural chain: generate → PeroPix Apply LUT for a grade → this node set to jpg at quality 90 into a folder per project.
Installing it
Same install as the whole pack - ComfyUI Manager, search PeroPixfy, Install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/mrm987/PeroPixfy.git
Then restart. No extra Python packages (the pack's requirements.txt declares none - it runs on what ComfyUI already has), and this node needs no model files. The pack's optional first-run Anima model download is for the web app only; skip it if you just want the nodes.
Common issues
- Quality slider does nothing. You're saving PNG. Switch to jpg or webp - that's the only place quality applies.
- Transparency disappeared. JPG and WebP flatten alpha. If you need the transparent background, save PNG.
- Absolute path not working. Use forward slashes even on Windows (
D:/projects/my-gens), and remember the path is the prefix - you still get the counter-suffixed filename, not a bare name. - It wrote a new file but I didn't change anything. Correct. That's the always-re-run behavior doing its job; you won't be handed a stale filename for an output you deleted.
It's a small node that saves a real headache. Once you've pointed it at a real folder and stopped babysitting output/, you'll forget the default exists.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| filename_prefix | STRING | PeroPixfy | — |
| format | COMBO | png | 3 options: png, jpg, webp |
| quality | INT | 951–100 | — |
Outputs (0)
No outputs