From f8acbb8f880815facb5037efcd676f2f0d2b5bf4 Mon Sep 17 00:00:00 2001 From: Michoko Date: Tue, 27 Sep 2022 23:02:11 +0200 Subject: Add output folder icons Adds icons on the first 3 tabs to directly open the corresponding images output directory --- style.css | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'style.css') diff --git a/style.css b/style.css index 877f2f7f..a98c46ec 100644 --- a/style.css +++ b/style.css @@ -1,5 +1,11 @@ .output-html p {margin: 0 0.5em;} +.row > *, +.row > .gr-form > * { + min-width: min(120px, 100%); + flex: 1 1 0%; +} + .performance { font-size: 0.85em; color: #444; @@ -43,7 +49,7 @@ margin-right: auto; } -#random_seed, #random_subseed, #reuse_seed, #reuse_subseed{ +#random_seed, #random_subseed, #reuse_seed, #reuse_subseed, #open_folder{ min-width: auto; flex-grow: 0; padding-left: 0.25em; -- cgit v1.2.3 From 02c4b757b6e4e0894c5a988b49cb8f50c0d99cc1 Mon Sep 17 00:00:00 2001 From: Michoko Date: Wed, 28 Sep 2022 10:31:53 +0200 Subject: Add output folder icons Handling of the --hide-ui-dir-config flag and added multi-platform code for opening a folder --- modules/ui.py | 20 ++++++++++++++++---- style.css | 4 ++++ 2 files changed, 20 insertions(+), 4 deletions(-) (limited to 'style.css') diff --git a/modules/ui.py b/modules/ui.py index 4c93fca9..2dbcd50c 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -9,6 +9,8 @@ import random import sys import time import traceback +import platform +import subprocess as sp import numpy as np import torch @@ -461,7 +463,8 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo, run_modelmerger): send_to_img2img = gr.Button('Send to img2img') send_to_inpaint = gr.Button('Send to inpaint') send_to_extras = gr.Button('Send to extras') - open_txt2img_folder = gr.Button(folder_symbol, elem_id="open_folder") + button_id = "open_folder_hidden" if shared.cmd_opts.hide_ui_dir_config else 'open_folder' + open_txt2img_folder = gr.Button(folder_symbol, elem_id=button_id) with gr.Group(): html_info = gr.HTML() @@ -638,7 +641,8 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo, run_modelmerger): img2img_send_to_img2img = gr.Button('Send to img2img') img2img_send_to_inpaint = gr.Button('Send to inpaint') img2img_send_to_extras = gr.Button('Send to extras') - open_img2img_folder = gr.Button(folder_symbol, elem_id="open_folder") + button_id = "open_folder_hidden" if shared.cmd_opts.hide_ui_dir_config else 'open_folder' + open_img2img_folder = gr.Button(folder_symbol, elem_id=button_id) with gr.Group(): html_info = gr.HTML() @@ -811,7 +815,8 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo, run_modelmerger): html_info = gr.HTML() extras_send_to_img2img = gr.Button('Send to img2img') extras_send_to_inpaint = gr.Button('Send to inpaint') - open_extras_folder = gr.Button('Open output directory') + button_id = "open_folder_hidden" if shared.cmd_opts.hide_ui_dir_config else '' + open_extras_folder = gr.Button('Open output directory', elem_id=button_id) submit.click( fn=run_extras, @@ -911,7 +916,14 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo, run_modelmerger): component_dict = {} def open_folder(f): - os.startfile(os.path.normpath(f)) + if not shared.cmd_opts.hide_ui_dir_config: + path = os.path.normpath(f) + if platform.system() == "Windows": + os.startfile(path) + elif platform.system() == "Darwin": + sp.Popen(["open", path]) + else: + sp.Popen(["xdg-open", path]) def run_settings(*args): changed = 0 diff --git a/style.css b/style.css index a98c46ec..1b53f05f 100644 --- a/style.css +++ b/style.css @@ -56,6 +56,10 @@ padding-right: 0.25em; } +#open_folder_hidden{ + display: none; +} + #seed_row, #subseed_row{ gap: 0.5rem; } -- cgit v1.2.3 From 819fd3af40d7cb5bac9a496f0e08c062fedf100b Mon Sep 17 00:00:00 2001 From: Michoko Date: Wed, 28 Sep 2022 10:40:05 +0200 Subject: Add output folder icons Changed the hidden element class name to a more generic one, so people can reuse it if they want to hide further elements in the future --- modules/ui.py | 6 +++--- style.css | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'style.css') diff --git a/modules/ui.py b/modules/ui.py index 2dbcd50c..f704749a 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -463,7 +463,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo, run_modelmerger): send_to_img2img = gr.Button('Send to img2img') send_to_inpaint = gr.Button('Send to inpaint') send_to_extras = gr.Button('Send to extras') - button_id = "open_folder_hidden" if shared.cmd_opts.hide_ui_dir_config else 'open_folder' + button_id = "hidden_element" if shared.cmd_opts.hide_ui_dir_config else 'open_folder' open_txt2img_folder = gr.Button(folder_symbol, elem_id=button_id) with gr.Group(): @@ -641,7 +641,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo, run_modelmerger): img2img_send_to_img2img = gr.Button('Send to img2img') img2img_send_to_inpaint = gr.Button('Send to inpaint') img2img_send_to_extras = gr.Button('Send to extras') - button_id = "open_folder_hidden" if shared.cmd_opts.hide_ui_dir_config else 'open_folder' + button_id = "hidden_element" if shared.cmd_opts.hide_ui_dir_config else 'open_folder' open_img2img_folder = gr.Button(folder_symbol, elem_id=button_id) with gr.Group(): @@ -815,7 +815,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo, run_modelmerger): html_info = gr.HTML() extras_send_to_img2img = gr.Button('Send to img2img') extras_send_to_inpaint = gr.Button('Send to inpaint') - button_id = "open_folder_hidden" if shared.cmd_opts.hide_ui_dir_config else '' + button_id = "hidden_element" if shared.cmd_opts.hide_ui_dir_config else '' open_extras_folder = gr.Button('Open output directory', elem_id=button_id) submit.click( diff --git a/style.css b/style.css index 1b53f05f..9709c4ee 100644 --- a/style.css +++ b/style.css @@ -56,7 +56,7 @@ padding-right: 0.25em; } -#open_folder_hidden{ +#hidden_element{ display: none; } -- cgit v1.2.3 From d1db330010de31d48975bb3ec86e9e60d56ae9e9 Mon Sep 17 00:00:00 2001 From: Trung Ngo Date: Fri, 30 Sep 2022 15:31:00 -0500 Subject: ALT + return will submit prompt when it's in focus --- javascript/ui.js | 10 ++++++++++ modules/ui.py | 2 +- style.css | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) (limited to 'style.css') diff --git a/javascript/ui.js b/javascript/ui.js index 562d2552..6b52878d 100644 --- a/javascript/ui.js +++ b/javascript/ui.js @@ -186,10 +186,12 @@ onUiUpdate(function(){ if (!txt2img_textarea) { txt2img_textarea = gradioApp().querySelector("#txt2img_prompt > label > textarea"); txt2img_textarea?.addEventListener("input", () => update_token_counter("txt2img_token_button")); + txt2img_textarea?.addEventListener("keyup", (event) => submit_prompt(event, "txt2img_generate")); } if (!img2img_textarea) { img2img_textarea = gradioApp().querySelector("#img2img_prompt > label > textarea"); img2img_textarea?.addEventListener("input", () => update_token_counter("img2img_token_button")); + txt2img_textarea?.addEventListener("keyup", (event) => submit_prompt(event, "img2img_generate")); } }) @@ -197,6 +199,14 @@ let txt2img_textarea, img2img_textarea = undefined; let wait_time = 800 let token_timeout; +function submit_prompt(event, generate_button_id) { + if (event.altKey && event.keyCode === 13) { + event.preventDefault(); + gradioApp().getElementById(generate_button_id).click(); + return; + } +} + function update_token_counter(button_id) { if (token_timeout) clearTimeout(token_timeout); diff --git a/modules/ui.py b/modules/ui.py index 249b3eea..15572bb0 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -380,7 +380,7 @@ def create_toprow(is_img2img): with gr.Column(scale=1): with gr.Row(): interrupt = gr.Button('Interrupt', elem_id=f"{id_part}_interrupt") - submit = gr.Button('Generate', elem_id="generate", variant='primary') + submit = gr.Button('Generate', elem_id=f"{id_part}_generate", variant='primary') interrupt.click( fn=lambda: shared.state.interrupt(), diff --git a/style.css b/style.css index 9709c4ee..79d6bb0d 100644 --- a/style.css +++ b/style.css @@ -23,7 +23,7 @@ text-align: right; } -#generate{ +#txt2img_generate, #img2img_generate { min-height: 4.5em; } -- cgit v1.2.3