diff options
Diffstat (limited to 'modules/images.py')
-rw-r--r-- | modules/images.py | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/modules/images.py b/modules/images.py index 10dcd9ab..592dfacf 100644 --- a/modules/images.py +++ b/modules/images.py @@ -661,15 +661,13 @@ def save_image(image, path, basename, seed=None, prompt=None, extension='png', i save_image_with_geninfo(image_to_save, info, temp_file_path, extension, existing_pnginfo=params.pnginfo, pnginfo_section_name=pnginfo_section_name)
- full_file_name = filename_without_extension + extension
- if shared.opts.save_images_add_number_suffix and os.path.exists(full_file_name):
- count = 1
- while True:
- full_file_name = f"{filename_without_extension}_{count}{extension}"
- if not os.path.exists(full_file_name):
- break
- count += 1
- os.replace(temp_file_path, full_file_name)
+ filename = filename_without_extension + extension
+ if shared.opts.save_images_replace_action != "Replace":
+ n = 0
+ while os.path.exists(filename):
+ n += 1
+ filename = f"{filename_without_extension}-{n}{extension}"
+ os.replace(temp_file_path, filename)
fullfn_without_extension, extension = os.path.splitext(params.filename)
if hasattr(os, 'statvfs'):
@@ -726,7 +724,12 @@ def read_info_from_image(image: Image.Image) -> tuple[str | None, dict]: geninfo = items.pop('parameters', None)
if "exif" in items:
- exif = piexif.load(items["exif"])
+ exif_data = items["exif"]
+ try:
+ exif = piexif.load(exif_data)
+ except OSError:
+ # memory / exif was not valid so piexif tried to read from a file
+ exif = None
exif_comment = (exif or {}).get("Exif", {}).get(piexif.ExifIFD.UserComment, b'')
try:
exif_comment = piexif.helper.UserComment.load(exif_comment)
|