aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--javascript/ui.js28
-rw-r--r--modules/ui.py26
-rw-r--r--style.css2
3 files changed, 52 insertions, 4 deletions
diff --git a/javascript/ui.js b/javascript/ui.js
index cfd0dcd3..165383da 100644
--- a/javascript/ui.js
+++ b/javascript/ui.js
@@ -151,6 +151,34 @@ function ask_for_style_name(_, prompt_text, negative_prompt_text) {
return [name_, prompt_text, negative_prompt_text]
}
+// returns css id for currently selected tab in ui
+function selected_tab_id() {
+ tabs = gradioApp().querySelectorAll('#tabs div.tabitem')
+
+ for(var tab = 0; tab < tabs.length; tab++) {
+ if (tabs[tab].style.display != "none") return tabs[tab].id
+
+ }
+
+}
+
+function trash_prompt(_,_, is_img2img) {
+
+ if(selected_tab_id() == "tab_txt2img") {
+ pos_prompt = txt2img_textarea = gradioApp().querySelector("#txt2img_prompt > label > textarea");
+ neg_prompt = txt2img_textarea = gradioApp().querySelector("#txt2img_neg_prompt > label > textarea");
+
+ pos_prompt.value = ""
+ neg_prompt.value = ""
+ } else {
+ pos_prompt = txt2img_textarea = gradioApp().querySelector("#img2img_prompt > label > textarea");
+ neg_prompt = txt2img_textarea = gradioApp().querySelector("#img2img_neg_prompt > label > textarea");
+
+ pos_prompt.value = ""
+ neg_prompt.value = ""
+ }
+}
+
opts = {}
diff --git a/modules/ui.py b/modules/ui.py
index a2dbd41e..bde546cc 100644
--- a/modules/ui.py
+++ b/modules/ui.py
@@ -83,6 +83,7 @@ folder_symbol = '\U0001f4c2' # 📂
refresh_symbol = '\U0001f504' # 🔄
save_style_symbol = '\U0001f4be' # 💾
apply_style_symbol = '\U0001f4cb' # 📋
+trash_prompt_symbol = '\U0001F5D1' #
def plaintext_to_html(text):
@@ -423,6 +424,16 @@ def create_seed_inputs():
return seed, reuse_seed, subseed, reuse_subseed, subseed_strength, seed_resize_from_h, seed_resize_from_w, seed_checkbox
+# setup button for clearing prompt input boxes on client side of webui
+def connect_trash_prompt(dummy_component, button, is_img2img):
+
+ button.click(
+ fn=lambda: print("Clearing prompt"),
+ _js="trash_prompt",
+ inputs=[],
+ outputs=[],
+ )
+
def connect_reuse_seed(seed: gr.Number, reuse_seed: gr.Button, generation_info: gr.Textbox, dummy_component, is_subseed):
""" Connects a 'reuse (sub)seed' button's click event so that it copies last used
(sub)seed value from generation info the to the seed field. If copying subseed and subseed strength
@@ -498,6 +509,7 @@ def create_toprow(is_img2img):
paste = gr.Button(value=paste_symbol, elem_id="paste")
save_style = gr.Button(value=save_style_symbol, elem_id="style_create")
prompt_style_apply = gr.Button(value=apply_style_symbol, elem_id="style_apply")
+ trash_prompt = gr.Button(value=trash_prompt_symbol, elem_id="trash_prompt")
token_counter = gr.HTML(value="<span></span>", elem_id=f"{id_part}_token_counter")
token_button = gr.Button(visible=False, elem_id=f"{id_part}_token_button")
@@ -538,7 +550,7 @@ def create_toprow(is_img2img):
prompt_style2 = gr.Dropdown(label="Style 2", elem_id=f"{id_part}_style2_index", choices=[k for k, v in shared.prompt_styles.styles.items()], value=next(iter(shared.prompt_styles.styles.keys())))
prompt_style2.save_to_config = True
- return prompt, roll, prompt_style, negative_prompt, prompt_style2, submit, button_interrogate, button_deepbooru, prompt_style_apply, save_style, paste, token_counter, token_button
+ return prompt, roll, prompt_style, negative_prompt, prompt_style2, submit, button_interrogate, button_deepbooru, prompt_style_apply, save_style, paste, token_counter, token_button, trash_prompt
def setup_progressbar(progressbar, preview, id_part, textinfo=None):
@@ -615,9 +627,13 @@ def create_ui(wrap_gradio_gpu_call):
return refresh_button
with gr.Blocks(analytics_enabled=False) as txt2img_interface:
- txt2img_prompt, roll, txt2img_prompt_style, txt2img_negative_prompt, txt2img_prompt_style2, submit, _, _, txt2img_prompt_style_apply, txt2img_save_style, txt2img_paste, token_counter, token_button = create_toprow(is_img2img=False)
+ txt2img_prompt, roll, txt2img_prompt_style, txt2img_negative_prompt, txt2img_prompt_style2, submit, _, _,\
+ txt2img_prompt_style_apply, txt2img_save_style, txt2img_paste, token_counter,\
+ token_button, trash_prompt_button = create_toprow(is_img2img=False)
+
dummy_component = gr.Label(visible=False)
txt_prompt_img = gr.File(label="", elem_id="txt2img_prompt_image", file_count="single", type="bytes", visible=False)
+ connect_trash_prompt(dummy_component, trash_prompt_button, False)
with gr.Row(elem_id='txt2img_progress_row'):
with gr.Column(scale=1):
@@ -802,7 +818,11 @@ def create_ui(wrap_gradio_gpu_call):
token_button.click(fn=update_token_counter, inputs=[txt2img_prompt, steps], outputs=[token_counter])
with gr.Blocks(analytics_enabled=False) as img2img_interface:
- img2img_prompt, roll, img2img_prompt_style, img2img_negative_prompt, img2img_prompt_style2, submit, img2img_interrogate, img2img_deepbooru, img2img_prompt_style_apply, img2img_save_style, img2img_paste, token_counter, token_button = create_toprow(is_img2img=True)
+ img2img_prompt, roll, img2img_prompt_style, img2img_negative_prompt, img2img_prompt_style2, submit,\
+ img2img_interrogate, img2img_deepbooru, img2img_prompt_style_apply, img2img_save_style, img2img_paste,\
+ token_counter, token_button, trash_prompt_button = create_toprow(is_img2img=True)
+
+ connect_trash_prompt(dummy_component,trash_prompt_button, True)
with gr.Row(elem_id='img2img_progress_row'):
img2img_prompt_img = gr.File(label="", elem_id="img2img_prompt_image", file_count="single", type="bytes", visible=False)
diff --git a/style.css b/style.css
index 26ae36a5..21a8911f 100644
--- a/style.css
+++ b/style.css
@@ -114,7 +114,7 @@
padding: 0.4em 0;
}
-#roll, #paste, #style_create, #style_apply{
+#roll_col > button {
min-width: 2em;
min-height: 2em;
max-width: 2em;