Added selected image saving
This commit is contained in:
parent
0cfbd59d6d
commit
74c5f7974c
2 changed files with 12 additions and 3 deletions
|
@ -110,7 +110,8 @@ class Options:
|
||||||
"outdir_txt2img_grids": OptionInfo("outputs/txt2img-grids", 'Output directory for txt2img grids', component_args=hide_dirs),
|
"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_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),
|
"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'),
|
"samples_format": OptionInfo('png', 'File format for individual samples'),
|
||||||
"filter_nsfw": OptionInfo(False, "Filter NSFW content"),
|
"filter_nsfw": OptionInfo(False, "Filter NSFW content"),
|
||||||
"grid_save": OptionInfo(True, "Save image grids"),
|
"grid_save": OptionInfo(True, "Save image grids"),
|
||||||
|
|
|
@ -79,15 +79,19 @@ def send_gradio_gallery_to_image(x):
|
||||||
|
|
||||||
return image_from_url_text(x[0])
|
return image_from_url_text(x[0])
|
||||||
|
|
||||||
|
def save_files(js_data, images, index):
|
||||||
def save_files(js_data, images):
|
|
||||||
import csv
|
import csv
|
||||||
|
|
||||||
|
|
||||||
os.makedirs(opts.outdir_save, exist_ok=True)
|
os.makedirs(opts.outdir_save, exist_ok=True)
|
||||||
|
|
||||||
filenames = []
|
filenames = []
|
||||||
|
|
||||||
data = json.loads(js_data)
|
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:
|
with open(os.path.join(opts.outdir_save, "log.csv"), "a", encoding="utf8", newline='') as file:
|
||||||
at_start = file.tell() == 0
|
at_start = file.tell() == 0
|
||||||
|
@ -348,9 +352,11 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo):
|
||||||
|
|
||||||
save.click(
|
save.click(
|
||||||
fn=wrap_gradio_call(save_files),
|
fn=wrap_gradio_call(save_files),
|
||||||
|
_js = "(x, y, z) => [x, y, selected_gallery_index()]",
|
||||||
inputs=[
|
inputs=[
|
||||||
generation_info,
|
generation_info,
|
||||||
txt2img_gallery,
|
txt2img_gallery,
|
||||||
|
html_info
|
||||||
],
|
],
|
||||||
outputs=[
|
outputs=[
|
||||||
html_info,
|
html_info,
|
||||||
|
@ -568,9 +574,11 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo):
|
||||||
|
|
||||||
save.click(
|
save.click(
|
||||||
fn=wrap_gradio_call(save_files),
|
fn=wrap_gradio_call(save_files),
|
||||||
|
_js = "(x, y, z) => [x, y, selected_gallery_index()]",
|
||||||
inputs=[
|
inputs=[
|
||||||
generation_info,
|
generation_info,
|
||||||
img2img_gallery,
|
img2img_gallery,
|
||||||
|
html_info
|
||||||
],
|
],
|
||||||
outputs=[
|
outputs=[
|
||||||
html_info,
|
html_info,
|
||||||
|
|
Loading…
Reference in a new issue