Bladeren bron

Add keyboard shortcuts for generation

(Removed Alt+Enter) Ctrl+Enter to start/restart generation
(New) Alt/Option+Enter to skip generation
(New) Ctrl+Alt/Option+Enter to interrupt generation
kaalibro 1 jaar geleden
bovenliggende
commit
9c201550dd
2 gewijzigde bestanden met toevoegingen van 21 en 6 verwijderingen
  1. 2 2
      modules/ui_toprow.py
  2. 19 4
      script.js

+ 2 - 2
modules/ui_toprow.py

@@ -79,11 +79,11 @@ class Toprow:
     def create_prompts(self):
     def create_prompts(self):
         with gr.Column(elem_id=f"{self.id_part}_prompt_container", elem_classes=["prompt-container-compact"] if self.is_compact else [], scale=6):
         with gr.Column(elem_id=f"{self.id_part}_prompt_container", elem_classes=["prompt-container-compact"] if self.is_compact else [], scale=6):
             with gr.Row(elem_id=f"{self.id_part}_prompt_row", elem_classes=["prompt-row"]):
             with gr.Row(elem_id=f"{self.id_part}_prompt_row", elem_classes=["prompt-row"]):
-                self.prompt = gr.Textbox(label="Prompt", elem_id=f"{self.id_part}_prompt", show_label=False, lines=3, placeholder="Prompt (press Ctrl+Enter or Alt+Enter to generate)", elem_classes=["prompt"])
+                self.prompt = gr.Textbox(label="Prompt", elem_id=f"{self.id_part}_prompt", show_label=False, lines=3, placeholder="Prompt\n(Press Ctrl+Enter to generate, Alt+Enter to skip, Ctrl+Alt+Enter to interrupt)", elem_classes=["prompt"])
                 self.prompt_img = gr.File(label="", elem_id=f"{self.id_part}_prompt_image", file_count="single", type="binary", visible=False)
                 self.prompt_img = gr.File(label="", elem_id=f"{self.id_part}_prompt_image", file_count="single", type="binary", visible=False)
 
 
             with gr.Row(elem_id=f"{self.id_part}_neg_prompt_row", elem_classes=["prompt-row"]):
             with gr.Row(elem_id=f"{self.id_part}_neg_prompt_row", elem_classes=["prompt-row"]):
-                self.negative_prompt = gr.Textbox(label="Negative prompt", elem_id=f"{self.id_part}_neg_prompt", show_label=False, lines=3, placeholder="Negative prompt (press Ctrl+Enter or Alt+Enter to generate)", elem_classes=["prompt"])
+                self.negative_prompt = gr.Textbox(label="Negative prompt", elem_id=f"{self.id_part}_neg_prompt", show_label=False, lines=3, placeholder="Negative prompt\n(Press Ctrl+Enter to generate, Alt+Enter to skip, Ctrl+Alt+Enter to interrupt)", elem_classes=["prompt"])
 
 
         self.prompt_img.change(
         self.prompt_img.change(
             fn=modules.images.image_data,
             fn=modules.images.image_data,

+ 19 - 4
script.js

@@ -121,16 +121,21 @@ document.addEventListener("DOMContentLoaded", function() {
 });
 });
 
 
 /**
 /**
- * Add a ctrl+enter as a shortcut to start a generation
+ * Add keyboard shortcuts:
+ * Ctrl+Enter to start/restart a generation
+ * Alt/Option+Enter to skip a generation
+ * Alt/Option+Ctrl+Enter to interrupt a generation
  */
  */
 document.addEventListener('keydown', function(e) {
 document.addEventListener('keydown', function(e) {
     const isEnter = e.key === 'Enter' || e.keyCode === 13;
     const isEnter = e.key === 'Enter' || e.keyCode === 13;
-    const isModifierKey = e.metaKey || e.ctrlKey || e.altKey;
+    const isCtrlKey = e.metaKey || e.ctrlKey;
+    const isAltKey = e.altKey;
 
 
-    const interruptButton = get_uiCurrentTabContent().querySelector('button[id$=_interrupt]');
     const generateButton = get_uiCurrentTabContent().querySelector('button[id$=_generate]');
     const generateButton = get_uiCurrentTabContent().querySelector('button[id$=_generate]');
+    const interruptButton = get_uiCurrentTabContent().querySelector('button[id$=_interrupt]');
+    const skipButton = get_uiCurrentTabContent().querySelector('button[id$=_skip]');
 
 
-    if (isEnter && isModifierKey) {
+    if (isCtrlKey && isEnter && !isAltKey) {
         if (interruptButton.style.display === 'block') {
         if (interruptButton.style.display === 'block') {
             interruptButton.click();
             interruptButton.click();
             const callback = (mutationList) => {
             const callback = (mutationList) => {
@@ -150,6 +155,16 @@ document.addEventListener('keydown', function(e) {
         }
         }
         e.preventDefault();
         e.preventDefault();
     }
     }
+
+    if (isAltKey && isEnter && !isCtrlKey) {
+        skipButton.click();
+        e.preventDefault();
+    }
+
+    if (isAltKey && isCtrlKey && isEnter) {
+        interruptButton.click();
+        e.preventDefault();
+    }
 });
 });
 
 
 /**
 /**