From 9d5dc582be54031f3a2292105eb7dc540bcc8b0c Mon Sep 17 00:00:00 2001 From: HSIEH TSUNGYU Date: Sun, 18 Feb 2024 19:27:33 +0800 Subject: [PATCH] Error handling for unsupported transparency When input images (palette mode) have transparency (bytes) in info, the output images (RGB mode) will inherit it, causing ValueError in Pillow:PIL/PngImagePlugin.py#1364 when trying to unpack this bytes. This commit check the PNG mode and transparency info, removing transparency if it's RGB mode and transparency is bytes --- modules/images.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/images.py b/modules/images.py index b6f2358c3..ebd3a9014 100644 --- a/modules/images.py +++ b/modules/images.py @@ -548,6 +548,12 @@ def save_image_with_geninfo(image, geninfo, filename, extension=None, existing_p else: pnginfo_data = None + # Error handling for unsupported transparency in RGB mode + if (image.mode == "RGB" and + "transparency" in image.info and + isinstance(image.info["transparency"], bytes)): + del image.info["transparency"] + image.save(filename, format=image_format, quality=opts.jpeg_quality, pnginfo=pnginfo_data) elif extension.lower() in (".jpg", ".jpeg", ".webp"):