diff options
author | AUTOMATIC <16777216c@gmail.com> | 2022-09-12 18:59:53 +0300 |
---|---|---|
committer | AUTOMATIC <16777216c@gmail.com> | 2022-09-12 18:59:53 +0300 |
commit | 482a6ce8cbdde82fecfabd4a47a7720b54676a54 (patch) | |
tree | c93839e5b5ef94bcdfb6028b34b73766aba02887 | |
parent | 843b2b64fcd41be4a9e934ba83a3a499c7aff5c0 (diff) |
[Feature Request] Save defaults for extras & keep image parameters after using extras #251
-rw-r--r-- | modules/extras.py | 4 | ||||
-rw-r--r-- | modules/images.py | 11 |
2 files changed, 12 insertions, 3 deletions
diff --git a/modules/extras.py b/modules/extras.py index 40935f98..596cd172 100644 --- a/modules/extras.py +++ b/modules/extras.py @@ -13,6 +13,8 @@ cached_images = {} def run_extras(image, gfpgan_visibility, codeformer_visibility, codeformer_weight, upscaling_resize, extras_upscaler_1, extras_upscaler_2, extras_upscaler_2_visibility):
devices.torch_gc()
+ existing_pnginfo = image.info or {}
+
image = image.convert("RGB")
info = ""
@@ -65,7 +67,7 @@ def run_extras(image, gfpgan_visibility, codeformer_visibility, codeformer_weigh while len(cached_images) > 2:
del cached_images[next(iter(cached_images.keys()))]
- images.save_image(image, outpath, "", None, info=info, extension=opts.samples_format, short_filename=True, no_prompt=True, pnginfo_section_name="extras")
+ images.save_image(image, outpath, "", None, info=info, extension=opts.samples_format, short_filename=True, no_prompt=True, pnginfo_section_name="extras", existing_info=existing_pnginfo)
return image, plaintext_to_html(info), ''
diff --git a/modules/images.py b/modules/images.py index 334f8fec..05fc4206 100644 --- a/modules/images.py +++ b/modules/images.py @@ -247,7 +247,7 @@ def sanitize_filename_part(text, replace_spaces=True): return text.translate({ord(x): '' for x in invalid_filename_chars})[:128]
-def save_image(image, path, basename, seed=None, prompt=None, extension='png', info=None, short_filename=False, no_prompt=False, pnginfo_section_name='parameters', p=None):
+def save_image(image, path, basename, seed=None, prompt=None, extension='png', info=None, short_filename=False, no_prompt=False, pnginfo_section_name='parameters', p=None, existing_info=None):
# would be better to add this as an argument in future, but will do for now
is_a_grid = basename != ""
@@ -258,7 +258,9 @@ def save_image(image, path, basename, seed=None, prompt=None, extension='png', i else:
file_decoration = opts.samples_filename_format or "[seed]-[prompt_spaces]"
- file_decoration = "-" + file_decoration.lower()
+ if file_decoration != "":
+ file_decoration = "-" + file_decoration.lower()
+
if seed is not None:
file_decoration = file_decoration.replace("[seed]", str(seed))
if prompt is not None:
@@ -273,6 +275,11 @@ def save_image(image, path, basename, seed=None, prompt=None, extension='png', i if extension == 'png' and opts.enable_pnginfo and info is not None:
pnginfo = PngImagePlugin.PngInfo()
+
+ if existing_info is not None:
+ for k, v in existing_info.items():
+ pnginfo.add_text(k, v)
+
pnginfo.add_text(pnginfo_section_name, info)
else:
pnginfo = None
|