mirror of
https://github.com/vladmandic/automatic
synced 2026-09-20 09:38:23 +02:00
fix image save to subfolder
This commit is contained in:
+1
-1
@@ -368,7 +368,7 @@ options_templates.update(options_section(('saving-images', "Image Options"), {
|
||||
"save_selected_only": OptionInfo(True, "When using 'Save' button, only save a single selected image"),
|
||||
"save_to_dirs": OptionInfo(False, "Save images to a subdirectory"),
|
||||
"grid_save_to_dirs": OptionInfo(False, "Save grids to a subdirectory"),
|
||||
"use_save_to_dirs_for_ui": OptionInfo(False, "When using Save button, save images to a subdirectory"),
|
||||
"use_save_to_dirs_for_ui": OptionInfo(False, "Save images to a subdirectory when using Save button"),
|
||||
"directories_filename_pattern": OptionInfo("[date]", "Directory name pattern", component_args=hide_dirs),
|
||||
"directories_max_prompt_words": OptionInfo(8, "Max prompt words for [prompt_words] pattern", gr.Slider, {"minimum": 1, "maximum": 20, "step": 1, **hide_dirs}),
|
||||
}))
|
||||
|
||||
+14
-8
@@ -86,20 +86,26 @@ def save_files(js_data, images, do_make_zip, index):
|
||||
filenames = []
|
||||
fullfns = []
|
||||
for image_index, filedata in enumerate(images, start_index):
|
||||
is_grid = image_index < p.index_of_first_image # pylint: disable=no-member
|
||||
i = 0 if is_grid else (image_index - p.index_of_first_image) # pylint: disable=no-member
|
||||
if len(p.all_seeds) <= i: # pylint: disable=no-member
|
||||
p.all_seeds.append(p.seed) # pylint: disable=no-member
|
||||
if len(p.all_prompts) <= i: # pylint: disable=no-member
|
||||
p.all_prompts.append(p.prompt) # pylint: disable=no-member
|
||||
if 'name' in filedata and ('tmp' not in filedata['name']) and os.path.isfile(filedata['name']):
|
||||
fullfn = filedata['name']
|
||||
filenames.append(os.path.basename(fullfn))
|
||||
fullfns.append(fullfn)
|
||||
shutil.copy(fullfn, shared.opts.outdir_save)
|
||||
shared.log.info(f"Copying image: {fullfn} -> {shared.opts.outdir_save}")
|
||||
destination = shared.opts.outdir_save
|
||||
if shared.opts.use_save_to_dirs_for_ui:
|
||||
namegen = modules.images.FilenameGenerator(p, seed=p.all_seeds[i], prompt=p.all_prompts[i], image=None) # pylint: disable=no-member
|
||||
dirname = namegen.apply(shared.opts.directories_filename_pattern or "[prompt_words]").lstrip(' ').rstrip('\\ /')
|
||||
destination = os.path.join(destination, dirname)
|
||||
os.makedirs(destination, exist_ok = True)
|
||||
shutil.copy(fullfn, destination)
|
||||
shared.log.info(f"Copying image: {fullfn} -> {destination}")
|
||||
else:
|
||||
image = image_from_url_text(filedata)
|
||||
is_grid = image_index < p.index_of_first_image # pylint: disable=no-member
|
||||
i = 0 if is_grid else (image_index - p.index_of_first_image) # pylint: disable=no-member
|
||||
if len(p.all_seeds) <= i: # pylint: disable=no-member
|
||||
p.all_seeds.append(p.seed) # pylint: disable=no-member
|
||||
if len(p.all_prompts) <= i: # pylint: disable=no-member
|
||||
p.all_prompts.append(p.prompt) # pylint: disable=no-member
|
||||
fullfn, txt_fullfn = modules.images.save_image(image, shared.opts.outdir_save, "", seed=p.all_seeds[i], prompt=p.all_prompts[i], extension=shared.opts.samples_format, info=p.infotexts[image_index], grid=is_grid, p=p, save_to_dirs=shared.opts.use_save_to_dirs_for_ui) # pylint: disable=no-member
|
||||
if fullfn is None:
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user