πΎ Save Image
A Save Image with a format switch and actual file-size control
- images
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.jsonfile 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/.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | β | |
| save | BOOLEAN | true | Enable/disable saving the image to disk |
| filename_prefix | STRING | ComfyUI | Prefix for the saved filename |
| format | COMBO | PNG | Image format (PNG supports metadata embedding) |
| qualityopt | INT | 951β100 | Quality for JPG/WebP (1-100). For WebP, 100 = lossless |
| embed_workflowopt | BOOLEAN | true | Embed workflow metadata in image (PNG only) |
| save_workflow_jsonopt | BOOLEAN | false | Save workflow as separate .json file |
| output_nameopt | STRING | output_image | Identifier name for this output (used by web interface) |
| webp_methodopt | COMBO | default (4) | WebP compression effort. 0=fastest encoding, 6=best compression/slowest. Only affects WebP. |
| webp_losslessopt | BOOLEAN | false | Force lossless WebP (overrides quality). Perfect quality but slower and larger files. |
| webp_exactopt | BOOLEAN | false | Preserve transparent area RGB values in WebP. Slightly larger files. |
| png_compress_levelopt | INT | 40β9 | PNG compression level. 0=no compression (fastest/largest), 9=max compression (slowest/smallest). |
| jpg_optimizeopt | BOOLEAN | true | JPG optimize flag. Slightly slower but better compression. |
| jpg_subsamplingopt | COMBO | 4:2:0 (default) | JPG chroma subsampling. 4:4:4=best quality/larger, 4:2:0=smaller/default. |
| use_opencvopt | BOOLEAN | false | Use OpenCV for WebP saving (5-10x faster on 4K+ images). Falls back to Pillow if unavailable. |
Outputs (0)
No outputs