From bb2732c1c7349490fe39f536e487c720449c85f7 Mon Sep 17 00:00:00 2001 From: AUTOMATIC <16777216c@gmail.com> Date: Wed, 14 Sep 2022 15:20:05 +0300 Subject: [PATCH] updates for exif comments #446 --- modules/extras.py | 8 +++++++- modules/images.py | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/extras.py b/modules/extras.py index 55a782c..e3c7d3e 100644 --- a/modules/extras.py +++ b/modules/extras.py @@ -7,6 +7,7 @@ import modules.gfpgan_model from modules.ui import plaintext_to_html import modules.codeformer_model import piexif +import piexif.helper cached_images = {} @@ -80,7 +81,12 @@ def run_pnginfo(image): if "exif" in image.info: exif = piexif.load(image.info["exif"]) exif_comment = (exif or {}).get("Exif", {}).get(piexif.ExifIFD.UserComment, b'') - exif_comment = exif_comment.decode("utf8", 'ignore') + try: + exif_comment = piexif.helper.UserComment.load(exif_comment) + except ValueError: + exif_comment = exif_comment.decode('utf8', errors="ignore") + + items['exif comment'] = exif_comment for field in ['jfif', 'jfif_version', 'jfif_unit', 'jfif_density', 'dpi', 'exif']: diff --git a/modules/images.py b/modules/images.py index db68f40..960f25c 100644 --- a/modules/images.py +++ b/modules/images.py @@ -325,7 +325,7 @@ def save_image(image, path, basename, seed=None, prompt=None, extension='png', i if extension.lower() in ("jpg", "jpeg", "webp"): exif_bytes = piexif.dump({ "Exif": { - piexif.ExifIFD.UserComment: piexif.helper.UserComment.dump(info) + piexif.ExifIFD.UserComment: piexif.helper.UserComment.dump(info, encoding="unicode") }, }) else: