diff --git a/localizations/.placeholder b/localizations/.placeholder new file mode 100644 index 000000000..e69de29bb diff --git a/modules/images.py b/modules/images.py index 250fdb655..c3a5fc8bc 100644 --- a/modules/images.py +++ b/modules/images.py @@ -547,20 +547,16 @@ def save_image(image, path, basename, seed=None, prompt=None, extension='png', i if image_to_save.mode == 'RGBA': image_to_save = image_to_save.convert("RGB") - if opts.enable_pnginfo: - info_copy = params.pnginfo.copy() - exif_str = info_copy.pop('parameters', '') # try to use params from pnginfo - exif_old = info_copy.pop('exif', None) - if exif_old is not None and exif_str == '': # if we dont have params, load whatever is in exif - exif_comment = piexif.load(existing_info['exif']).get("Exif", {}).get(piexif.ExifIFD.UserComment, b'') - exif_str = piexif.helper.UserComment.load(exif_comment) - for k, v in info_copy.items(): # and append anything else left in pnginfo such as extras - exif_str += f"\n{k}: {v}" - exif_bytes = piexif.dump({ "Exif": { piexif.ExifIFD.UserComment: piexif.helper.UserComment.dump(exif_str, encoding="unicode") } }) - image_to_save.save(temp_file_path, format=image_format, quality=opts.jpeg_quality, exif=exif_bytes) # save once instead of injecting exif later - else: - image_to_save.save(temp_file_path, format=image_format, quality=opts.jpeg_quality) + image_to_save.save(temp_file_path, format=image_format, quality=opts.jpeg_quality) + if opts.enable_pnginfo and info is not None: + exif_bytes = piexif.dump({ + "Exif": { + piexif.ExifIFD.UserComment: piexif.helper.UserComment.dump(info or "", encoding="unicode") + }, + }) + + piexif.insert(exif_bytes, temp_file_path) else: image_to_save.save(temp_file_path, format=image_format, quality=opts.jpeg_quality) diff --git a/requirements.txt b/requirements.txt index 1d6a16e7a..6132867a3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -32,3 +32,4 @@ torch torchdiffeq torchsde transformers +filetype