From 99b4912e0d856f8a5ee209fc9cd4909d5fe15299 Mon Sep 17 00:00:00 2001 From: Dmitriy Date: Mon, 4 Nov 2024 01:47:09 +0300 Subject: [PATCH] add img2img batch use original name setting (#1952) makes save filename consistent for both sub-tabs of img2img batch using original filename is now an option --- modules/images.py | 4 ++-- modules/img2img.py | 10 ++++------ modules/shared_options.py | 2 +- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/modules/images.py b/modules/images.py index 031396ee..2c1711df 100644 --- a/modules/images.py +++ b/modules/images.py @@ -674,9 +674,9 @@ def save_image(image, path, basename, seed=None, prompt=None, extension='png', i if short_filename or seed is None: file_decoration = "" elif opts.save_to_dirs: - file_decoration = opts.samples_filename_pattern or "[seed]" + file_decoration = opts.samples_filename_pattern or p.override_settings.get("samples_filename_pattern") or "[seed]" else: - file_decoration = opts.samples_filename_pattern or "[seed]-[prompt_spaces]" + file_decoration = opts.samples_filename_pattern or p.override_settings.get("samples_filename_pattern") or "[seed]-[prompt_spaces]" file_decoration = namegen.apply(file_decoration) + suffix diff --git a/modules/img2img.py b/modules/img2img.py index 737794dc..b360fc88 100644 --- a/modules/img2img.py +++ b/modules/img2img.py @@ -122,16 +122,14 @@ def process_batch(p, input, output_dir, inpaint_mask_dir, args, to_scale=False, if output_dir: p.outpath_samples = output_dir p.override_settings['save_to_dirs'] = False - p.override_settings['save_images_replace_action'] = "Add number suffix" - if p.n_iter > 1 or p.batch_size > 1: - p.override_settings['samples_filename_pattern'] = f'{image_path.stem}-[generation_number]' - else: - p.override_settings['samples_filename_pattern'] = f'{image_path.stem}' + + if opts.img2img_batch_use_original_name: + filename_pattern = f'{image_path.stem}-[generation_number]' if p.n_iter > 1 or p.batch_size > 1 else f'{image_path.stem}' + p.override_settings['samples_filename_pattern'] = filename_pattern proc = modules.scripts.scripts_img2img.run(p, *args) if proc is None: - p.override_settings.pop('save_images_replace_action', None) proc = process_images(p) if not discard_further_results and proc: diff --git a/modules/shared_options.py b/modules/shared_options.py index 6ae8dcb2..4049758b 100644 --- a/modules/shared_options.py +++ b/modules/shared_options.py @@ -230,7 +230,7 @@ options_templates.update(options_section(('img2img', "img2img", "sd"), { "img2img_batch_show_results_limit": OptionInfo(32, "Show the first N batch img2img results in UI", gr.Slider, {"minimum": -1, "maximum": 1000, "step": 1}).info('0: disable, -1: show all images. Too many images can cause lag'), "overlay_inpaint": OptionInfo(True, "Overlay original for inpaint").info("when inpainting, overlay the original image over the areas that weren't inpainted."), "img2img_autosize": OptionInfo(False, "After loading into Img2img, automatically update Width and Height"), - + "img2img_batch_use_original_name": OptionInfo(False, "Save using original filename in img2img batch. Applies to 'Upload' and 'From directory' tabs.").info("Warning: overwriting is possible, based on Settings > Saving images/grids > Saving the image to an existing file.") })) options_templates.update(options_section(('optimizations', "Optimizations", "sd"), {