From 79d4c50e7e06809ecf73e27e1fb1410bbf0651a8 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Wed, 10 Jan 2024 12:54:29 -0500 Subject: [PATCH] fix process batch filenames --- CHANGELOG.md | 1 + modules/postprocessing.py | 20 +++++++++++--------- wiki | 2 +- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1927bd164..6da6e6b5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -131,6 +131,7 @@ And it also includes fixes for all reported issues so far - sampler: guard against invalid sampler index - config: reset default cfg scale to 6.0 - processing: correct display metadata + - processing: fix batch file names - live preview: fix when using `bfloat16` - upscale: fix ldsr - cli: fix cmd args parsing diff --git a/modules/postprocessing.py b/modules/postprocessing.py index 153128142..db3645d75 100644 --- a/modules/postprocessing.py +++ b/modules/postprocessing.py @@ -17,6 +17,7 @@ def run_postprocessing(extras_mode, image, image_folder: List[tempfile.NamedTemp image_ext = [] outputs = [] params = {} + infotext = '' if extras_mode == 1: for img in image_folder: if isinstance(img, Image.Image): @@ -40,14 +41,15 @@ def run_postprocessing(extras_mode, image, image_folder: List[tempfile.NamedTemp assert input_dir, 'input directory not selected' image_list = os.listdir(input_dir) for filename in image_list: + fn = os.path.join(input_dir, filename) try: - image = Image.open(filename) + image = Image.open(fn) except Exception as e: - shared.log.error(f'Failed to open image: file="{filename}" {e}') + shared.log.error(f'Failed to open image: file="{fn}" {e}') continue - image_fullnames.append(filename) + image_fullnames.append(fn) image_data.append(image) - image_names.append(filename) + image_names.append(fn) image_ext.append(None) shared.log.debug(f'Process: mode=folder inputs={input_dir} files={len(image_list)} images={len(image_data)}') else: @@ -70,10 +72,6 @@ def run_postprocessing(extras_mode, image, image_folder: List[tempfile.NamedTemp shared.state.textinfo = name pp = scripts_postprocessing.PostprocessedImage(image.convert("RGB")) scripts.scripts_postproc.run(pp, args) - if opts.use_original_name_batch and name is not None: - basename = os.path.splitext(os.path.basename(name))[0] - else: - basename = '' geninfo, items = images.read_info_from_image(image) params = generation_parameters_copypaste.parse_generation_parameters(geninfo) for k, v in items.items(): @@ -84,7 +82,11 @@ def run_postprocessing(extras_mode, image, image_folder: List[tempfile.NamedTemp pp.image.info["postprocessing"] = infotext processed_images.append(pp.image) if save_output: - images.save_image(pp.image, path=outpath, basename=basename, seed=None, prompt=None, extension=ext or opts.samples_format, info=infotext, short_filename=True, no_prompt=True, grid=False, pnginfo_section_name="extras", existing_info=pp.image.info, forced_filename=None) + if opts.use_original_name_batch and name is not None: + forced_filename = os.path.splitext(os.path.basename(name))[0] + images.save_image(pp.image, path=outpath, extension=ext or opts.samples_format, info=infotext, short_filename=True, no_prompt=True, grid=False, pnginfo_section_name="extras", existing_info=pp.image.info, forced_filename=forced_filename) + else: + images.save_image(pp.image, path=outpath, extension=ext or opts.samples_format, info=infotext, short_filename=True, no_prompt=True, grid=False, pnginfo_section_name="extras", existing_info=pp.image.info) if extras_mode != 2 or show_extras_results: outputs.append(pp.image) image.close() diff --git a/wiki b/wiki index f35e49fcc..23d66a9ad 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit f35e49fcc79671f1f04ac6cf8d0d1b0e33fea701 +Subproject commit 23d66a9ad50b8349926a7bdccae646dd9cc02bb4