aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/shared.py3
-rw-r--r--modules/ui.py12
2 files changed, 12 insertions, 3 deletions
diff --git a/modules/shared.py b/modules/shared.py
index 372569b5..c10e5a54 100644
--- a/modules/shared.py
+++ b/modules/shared.py
@@ -110,7 +110,8 @@ class Options:
"outdir_txt2img_grids": OptionInfo("outputs/txt2img-grids", 'Output directory for txt2img grids', component_args=hide_dirs),
"outdir_img2img_grids": OptionInfo("outputs/img2img-grids", 'Output directory for img2img grids', component_args=hide_dirs),
"outdir_save": OptionInfo("log/images", "Directory for saving images using the Save button", component_args=hide_dirs),
- "samples_save": OptionInfo(True, "Save indiviual samples"),
+ "samples_save": OptionInfo(True, "Save individual samples"),
+ "save_selected_only": OptionInfo(False, "Save selected image only, not entire job"),
"samples_format": OptionInfo('png', 'File format for individual samples'),
"filter_nsfw": OptionInfo(False, "Filter NSFW content"),
"grid_save": OptionInfo(True, "Save image grids"),
diff --git a/modules/ui.py b/modules/ui.py
index d1aa7793..da481fbf 100644
--- a/modules/ui.py
+++ b/modules/ui.py
@@ -79,15 +79,19 @@ def send_gradio_gallery_to_image(x):
return image_from_url_text(x[0])
-
-def save_files(js_data, images):
+def save_files(js_data, images, index):
import csv
+
os.makedirs(opts.outdir_save, exist_ok=True)
filenames = []
data = json.loads(js_data)
+
+ if index > -1 and opts.save_selected_only and len(images) > 1 and (index > 0 or not opts.return_grid): # ensures we are looking at a specific picture, we have save_selected_only, and there's more than a single image (for correct seed logging in case of return_grid)
+ images = [images[index]]
+ data["seed"] += (index - 1 if opts.return_grid else index)
with open(os.path.join(opts.outdir_save, "log.csv"), "a", encoding="utf8", newline='') as file:
at_start = file.tell() == 0
@@ -348,9 +352,11 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo):
save.click(
fn=wrap_gradio_call(save_files),
+ _js = "(x, y, z) => [x, y, selected_gallery_index()]",
inputs=[
generation_info,
txt2img_gallery,
+ html_info
],
outputs=[
html_info,
@@ -568,9 +574,11 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo):
save.click(
fn=wrap_gradio_call(save_files),
+ _js = "(x, y, z) => [x, y, selected_gallery_index()]",
inputs=[
generation_info,
img2img_gallery,
+ html_info
],
outputs=[
html_info,