Skip to content

Commit

Permalink
Merge pull request #12926 from AUTOMATIC1111/fix-batch-img2img-output…
Browse files Browse the repository at this point in the history
…-dir-with-script

fix batch img2img output dir with script
  • Loading branch information
AUTOMATIC1111 authored Sep 9, 2023
2 parents 259768f + 657404b commit 329c8ab
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 9 deletions.
10 changes: 9 additions & 1 deletion modules/images.py
Original file line number Diff line number Diff line change
Expand Up @@ -661,7 +661,15 @@ def _atomically_save_image(image_to_save, filename_without_extension, extension)

save_image_with_geninfo(image_to_save, info, temp_file_path, extension, existing_pnginfo=params.pnginfo, pnginfo_section_name=pnginfo_section_name)

os.replace(temp_file_path, filename_without_extension + extension)
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)

fullfn_without_extension, extension = os.path.splitext(params.filename)
if hasattr(os, 'statvfs'):
Expand Down
16 changes: 9 additions & 7 deletions modules/img2img.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,15 +114,17 @@ def process_batch(p, input_dir, output_dir, inpaint_mask_dir, args, to_scale=Fal
else:
p.override_settings.pop("sd_model_checkpoint", None)

if output_dir:
p.outpath_samples = output_dir
p.override_settings['save_to_dirs'] = False
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}'

proc = modules.scripts.scripts_img2img.run(p, *args)

if proc is None:
if output_dir:
p.outpath_samples = output_dir
p.override_settings['save_to_dirs'] = False
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}'
process_images(p)


Expand Down
2 changes: 1 addition & 1 deletion modules/shared_options.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"samples_format": OptionInfo('png', 'File format for images'),
"samples_filename_pattern": OptionInfo("", "Images filename pattern", component_args=hide_dirs).link("wiki", "https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Custom-Images-Filename-Name-and-Subdirectory"),
"save_images_add_number": OptionInfo(True, "Add number to filename when saving", component_args=hide_dirs),

"save_images_add_number_suffix": OptionInfo(True, "Add number suffix when necessary", component_args=hide_dirs).info("prevent existing image from being override"),
"grid_save": OptionInfo(True, "Always save all generated image grids"),
"grid_format": OptionInfo('png', 'File format for grids'),
"grid_extended_filename": OptionInfo(False, "Add extended info (seed, prompt) to filename when saving grid"),
Expand Down

0 comments on commit 329c8ab

Please sign in to comment.