Procházet zdrojové kódy

Add "Interrupting..." placeholder.

AUTOMATIC1111 před 1 rokem
rodič
revize
9f3ba38314
3 změnil soubory, kde provedl 19 přidání a 16 odebrání
  1. 11 2
      javascript/ui.js
  2. 5 11
      modules/ui_toprow.py
  3. 3 3
      style.css

+ 11 - 2
javascript/ui.js

@@ -119,9 +119,18 @@ function create_submit_args(args) {
     return res;
     return res;
 }
 }
 
 
+function setSubmitButtonsVisibility(tabname, showInterrupt, showSkip, showInterrupting) {
+    gradioApp().getElementById(tabname + '_interrupt').style.display = showInterrupt ? "block" : "none";
+    gradioApp().getElementById(tabname + '_skip').style.display = showSkip ? "block" : "none";
+    gradioApp().getElementById(tabname + '_interrupting').style.display = showInterrupting ? "block" : "none";
+}
+
 function showSubmitButtons(tabname, show) {
 function showSubmitButtons(tabname, show) {
-    gradioApp().getElementById(tabname + '_interrupt').style.display = show ? "none" : "block";
-    gradioApp().getElementById(tabname + '_skip').style.display = show ? "none" : "block";
+    setSubmitButtonsVisibility(tabname, ! show, !show, false);
+}
+
+function showSubmitInterruptingPlaceholder(tabname) {
+    setSubmitButtonsVisibility(tabname, false, true, true);
 }
 }
 
 
 function showRestoreProgressButton(tabname, show) {
 function showRestoreProgressButton(tabname, show) {

+ 5 - 11
modules/ui_toprow.py

@@ -17,6 +17,7 @@ class Toprow:
     button_deepbooru = None
     button_deepbooru = None
 
 
     interrupt = None
     interrupt = None
+    interrupting = None
     skip = None
     skip = None
     submit = None
     submit = None
 
 
@@ -98,14 +99,9 @@ class Toprow:
 
 
             self.interrupt = gr.Button('Interrupt', elem_id=f"{self.id_part}_interrupt", elem_classes="generate-box-interrupt", tooltip="End generation immediately or after completing current batch")
             self.interrupt = gr.Button('Interrupt', elem_id=f"{self.id_part}_interrupt", elem_classes="generate-box-interrupt", tooltip="End generation immediately or after completing current batch")
             self.skip = gr.Button('Skip', elem_id=f"{self.id_part}_skip", elem_classes="generate-box-skip", tooltip="Stop generation of current batch and continues onto next batch")
             self.skip = gr.Button('Skip', elem_id=f"{self.id_part}_skip", elem_classes="generate-box-skip", tooltip="Stop generation of current batch and continues onto next batch")
+            self.interrupting = gr.Button('Interrupting...', elem_id=f"{self.id_part}_interrupting", elem_classes="generate-box-interrupting", tooltip="Interrupting generation...")
             self.submit = gr.Button('Generate', elem_id=f"{self.id_part}_generate", variant='primary', tooltip="Right click generate forever menu")
             self.submit = gr.Button('Generate', elem_id=f"{self.id_part}_generate", variant='primary', tooltip="Right click generate forever menu")
 
 
-            self.skip.click(
-                fn=lambda: shared.state.skip(),
-                inputs=[],
-                outputs=[],
-            )
-
             def interrupt_function():
             def interrupt_function():
                 if not shared.state.stopping_generation and shared.state.job_count > 1 and shared.opts.interrupt_after_current:
                 if not shared.state.stopping_generation and shared.state.job_count > 1 and shared.opts.interrupt_after_current:
                     shared.state.stop_generating()
                     shared.state.stop_generating()
@@ -113,11 +109,9 @@ class Toprow:
                 else:
                 else:
                     shared.state.interrupt()
                     shared.state.interrupt()
 
 
-            self.interrupt.click(
-                fn=interrupt_function,
-                inputs=[],
-                outputs=[],
-            )
+            self.skip.click(fn=shared.state.skip)
+            self.interrupt.click(fn=interrupt_function, _js='function(){ showSubmitInterruptingPlaceholder("' + self.id_part + '"); }')
+            self.interrupting.click(fn=interrupt_function)
 
 
     def create_tools_row(self):
     def create_tools_row(self):
         with gr.Row(elem_id=f"{self.id_part}_tools"):
         with gr.Row(elem_id=f"{self.id_part}_tools"):

+ 3 - 3
style.css

@@ -331,17 +331,17 @@ input[type="checkbox"].input-accordion-checkbox{
 .generate-box{
 .generate-box{
     position: relative;
     position: relative;
 }
 }
-.gradio-button.generate-box-skip, .gradio-button.generate-box-interrupt{
+.gradio-button.generate-box-skip, .gradio-button.generate-box-interrupt, .gradio-button.generate-box-interrupting{
     position: absolute;
     position: absolute;
     width: 50%;
     width: 50%;
     height: 100%;
     height: 100%;
     display: none;
     display: none;
     background: #b4c0cc;
     background: #b4c0cc;
 }
 }
-.gradio-button.generate-box-skip:hover, .gradio-button.generate-box-interrupt:hover{
+.gradio-button.generate-box-skip:hover, .gradio-button.generate-box-interrupt:hover, .gradio-button.generate-box-interrupting:hover{
     background: #c2cfdb;
     background: #c2cfdb;
 }
 }
-.gradio-button.generate-box-interrupt{
+.gradio-button.generate-box-interrupt, .gradio-button.generate-box-interrupting{
     left: 0;
     left: 0;
     border-radius: 0.5rem 0 0 0.5rem;
     border-radius: 0.5rem 0 0 0.5rem;
 }
 }