Save Image (Leputen)
Save to EXR float32, TGA, TIFF, WebP — the formats stock Save Image skips
- images
ComfyUI's built-in Save Image writes PNG and JPEG, and that's about it. Save Image (Leputen) covers the formats the stock saver ignores: PNG, JPEG, WebP, TIFF, TGA, and EXR (HDR float32). For game pipelines that's the whole point - TGA and EXR aren't edge cases, they're how a lot of engines and tools still eat textures.
It's also fast at scale: like the DDS saver in this pack, it writes batches through a pool of worker threads instead of one file at a time, which matters when you're saving a folder's worth of textures.
How it works
You pick a format and it routes through the right encoder:
- PNG - lossless, and the only format that embeds generation metadata (prompt/extra PNG info). The pack's README is explicit: metadata goes in PNG only.
- JPEG / WebP - lossy; the
qualityinput (1–100, default 95) controls them. WebP is the modern-compression pick. - TIFF - lossless, big files.
- TGA - fast, uncompressed, the old-school game/texture-tool staple.
- EXR - HDR float32, which is the one stock ComfyUI genuinely can't do. If you're shipping HDR data (environment maps, light probes, displacement in float), this is the format that preserves it.
Inputs and outputs
Required: images (a batch tensor), filename_prefix (files become prefix_00001.ext, prefix_00002.ext…), and format (default PNG).
Optional: output_path (absolute path; empty = ComfyUI's output folder) and quality (JPEG/WebP only).
It's an output node - no outputs, just files.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/lilquail/ComfyUI-Leputen-Utils
Restart ComfyUI, find it under Leputen-Utils → Image. Cross-platform, no Windows-only deps for these formats.
Troubleshooting
- Metadata missing on WebP/TGA - working as designed. Only PNG embeds generation info here; if you need prompt provenance, save PNG.
- EXR values got clamped - the saver writes float32 EXR, but whatever fed it may already be clamped. If your chain ran through nodes that clip to 0–1, the HDR range is already gone upstream - check the loader side (
exr_tone_mapoff) instead of the saver. - Big TIFF/TGA files - expected; those formats don't compress. Use PNG (lossless, compressed) or WebP if size matters and you don't need the legacy format.
- Quality does nothing on PNG/TIFF - correct; it's documented as JPEG/WebP-only. Don't chase it.
The one you'll actually want
For most batch texture work, PNG is the safe default and WebP is the space-saver. But the reason to have this node at all is EXR: being able to pull an HDR pipeline through ComfyUI and land a float32 EXR at the end is something the stock saver simply can't do, and it closes the loop on the HDR workflow the pack's loaders start.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | The batch of image tensors to be saved. | |
| filename_prefix | STRING | ComfyUI | A prefix for the output filenames. Files will be named 'prefix_00001.ext', 'prefix_00002.ext', etc. |
| format | COMBO | PNG | Output format. PNG: lossless with metadata. JPEG: lossy, smaller. WebP: modern, good compression. TIFF: lossless. TGA: fast, uncompressed. EXR: HDR float32. |
| output_pathopt | STRING | Optional: Specify an absolute path for saving. If left empty, files will be saved in the default ComfyUI output directory. | |
| qualityopt | INT | 951–100 | Quality for JPEG/WebP (1-100). Higher = better quality, larger files. Ignored for PNG/TIFF. |
Outputs (0)
No outputs