diff --git a/README.md b/README.md index 9fff573..ebce941 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ git clone https://github.com/sjh00/ComfyUI-LoadImageWithInfo.git - `filename`:保存的文件名(不含扩展名) - `format`:保存格式(original、avif、webp、jpg、png、tiff) - `original_format`:原始格式(当format设为original时使用) - - `quality`:保存质量(1-100,AVIF默认80,其他默认92,png/tiff格式不受影响) + - `quality`:保存质量(1-100,AVIF默认80,其他默认95,png/tiff格式不受影响) - `dpi`:图像DPI值 - `exif`:EXIF元数据(JSON格式字符串) 4. 节点将保存图像 @@ -120,13 +120,14 @@ SaveImageWithInfo: ### SaveImageWithInfo 节点 +- 若文件名重名,则自动增加数字以区分 - 并非所有图像格式都支持EXIF数据,目前只有JPG格式支持保存EXIF数据 - 如果选择的保存格式不支持EXIF,EXIF数据将被忽略 - 如果指定的格式无法保存,将自动回退到PNG格式 - quality参数对不同格式的影响: - JPG/JPEG:直接影响图像质量(1-100,值越高质量越好) - PNG/TIFF:不受影响 - - WEBP/AVIF:影响图像质量(1-100,值越高质量越好,AVIF最高80;若设置100则WEBP/AVIF开启无损模式) + - WEBP/AVIF:影响图像质量(1-100,值越高质量越好,AVIF高于80肉眼无区别,所以已锁定AVIF质量上限为80;若设置100则WEBP/AVIF开启无损模式) - 其他格式:如果格式支持quality参数则使用,否则忽略 ## 许可证 diff --git a/load_image_with_info.py b/load_image_with_info.py index 2768801..2bfc180 100644 --- a/load_image_with_info.py +++ b/load_image_with_info.py @@ -136,7 +136,7 @@ class SaveImageWithInfo: "filename": ("STRING", {"default": "image"}), "format": (["original", "avif", "webp", "jpg", "png", "tiff"], {"default": "original"}), "original_format": ("STRING", {"default": "png"}), - "quality": ("INT", {"default": 92, "min": 1, "max": 100, "step": 1, "display": "silder", 'tooltip': "Quality for JPEG/WebP/AVIF formats; Quality is relative to each format. \n* Example: AVIF 60 is same quality as WebP 90. \n* PNG compression is fixed at 4 and not affected by this. PNG compression times skyrocket above level 4 for zero benefits on filesize."}), + "quality": ("INT", {"default": 95, "min": 1, "max": 100, "step": 1, "display": "silder", 'tooltip': "Quality for JPEG/WebP/AVIF formats; Quality is relative to each format. \n* Example: AVIF 60 is same quality as WebP 90. \n* PNG compression is fixed at 4 and not affected by this. PNG compression times skyrocket above level 4 for zero benefits on filesize."}), "dpi": ("INT", {"default": 96}), "exif": ("STRING", {"default": "{}"}), 'image_preview': ('BOOLEAN', {'default': True, 'tooltip': "Turns the image preview on and off"}), @@ -153,7 +153,7 @@ class SaveImageWithInfo: DESCRIPTION = "Saves the input image with to your ComfyUI output directory." type = 'output' - quality = 92 + quality = 95 quality_avif = 80 # optimize_image only works for jpeg, png and TIFF, with like just 2% reduction in size; not used for PNG as it forces a level 9 compression. optimize_image = True @@ -175,6 +175,15 @@ class SaveImageWithInfo: # 确保目录存在 os.makedirs(output_dir, exist_ok=True) + + # 如果文件已存在,更改文件名 + if os.path.exists(full_path): + base, ext = os.path.splitext(full_filename) + counter = 1 + while os.path.exists(full_path): + full_filename = f"{base}_{counter}{ext}" + full_path = os.path.join(output_dir, full_filename) + counter += 1 # 处理EXIF数据 try: