From 41af05769bf0d8f8f553e2d9410f5f13f28dfc3f Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Thu, 1 Aug 2024 23:57:24 +0300 Subject: [PATCH 1/4] Add separate imagegen stop button Closes #2591 --- .../extensions/stable-diffusion/button.html | 6 +++++- .../scripts/extensions/stable-diffusion/index.js | 16 ++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/public/scripts/extensions/stable-diffusion/button.html b/public/scripts/extensions/stable-diffusion/button.html index d679e6225..803d0ca5a 100644 --- a/public/scripts/extensions/stable-diffusion/button.html +++ b/public/scripts/extensions/stable-diffusion/button.html @@ -1,4 +1,8 @@
- Generate Image + Generate Image +
+
+
+ Stop Image Generation
diff --git a/public/scripts/extensions/stable-diffusion/index.js b/public/scripts/extensions/stable-diffusion/index.js index 008ef0f15..92d4ae30f 100644 --- a/public/scripts/extensions/stable-diffusion/index.js +++ b/public/scripts/extensions/stable-diffusion/index.js @@ -37,6 +37,7 @@ const MODULE_NAME = 'sd'; const UPDATE_INTERVAL = 1000; // This is a 1x1 transparent PNG const PNG_PIXEL = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII='; +const CUSTOM_STOP_EVENT = 'sd_stop_generation'; const sources = { extras: 'extras', @@ -2290,6 +2291,7 @@ async function generatePicture(initiator, args, trigger, message, callback) { const dimensions = setTypeSpecificDimensions(generationType); const abortController = new AbortController(); + const stopButton = document.getElementById('sd_stop_gen'); let negativePromptPrefix = args?.negative || ''; let imagePath = ''; @@ -2300,9 +2302,8 @@ async function generatePicture(initiator, args, trigger, message, callback) { const prompt = await getPrompt(generationType, message, trigger, quietPrompt, combineNegatives); console.log('Processed image prompt:', prompt); - eventSource.once(event_types.GENERATION_STOPPED, stopListener); - context.deactivateSendButtons(); - hideSwipeButtons(); + $(stopButton).show(); + eventSource.once(CUSTOM_STOP_EVENT, stopListener); if (typeof args?._abortController?.addEventListener === 'function') { args._abortController.addEventListener('abort', stopListener); @@ -2314,10 +2315,9 @@ async function generatePicture(initiator, args, trigger, message, callback) { throw new Error('SD prompt text generation failed.'); } finally { + $(stopButton).hide(); restoreOriginalDimensions(dimensions); - eventSource.removeListener(event_types.GENERATION_STOPPED, stopListener); - context.activateSendButtons(); - showSwipeButtons(); + eventSource.removeListener(CUSTOM_STOP_EVENT, stopListener); } return imagePath; @@ -3425,6 +3425,10 @@ async function addSDGenButtons() { generatePicture(initiators.wand, {}, param); } }); + + const stopGenButton = $('#sd_stop_gen'); + stopGenButton.hide(); + stopGenButton.on('click', () => eventSource.emit(CUSTOM_STOP_EVENT)); } function isValidState() { From 7498018ac6a3ebb55ec7d94c7ba4f6a018dc46c1 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Fri, 2 Aug 2024 00:07:30 +0300 Subject: [PATCH 2/4] Fix incorrectly self-closed div tags --- public/scripts/extensions/stable-diffusion/button.html | 2 +- public/scripts/extensions/translate/buttons.html | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/public/scripts/extensions/stable-diffusion/button.html b/public/scripts/extensions/stable-diffusion/button.html index 803d0ca5a..578fa8276 100644 --- a/public/scripts/extensions/stable-diffusion/button.html +++ b/public/scripts/extensions/stable-diffusion/button.html @@ -1,5 +1,5 @@
-
+
Generate Image
diff --git a/public/scripts/extensions/translate/buttons.html b/public/scripts/extensions/translate/buttons.html index 7f1549f40..35e4f400d 100644 --- a/public/scripts/extensions/translate/buttons.html +++ b/public/scripts/extensions/translate/buttons.html @@ -1,8 +1,8 @@
-
+
Translate Chat
-
+
Translate Input -
\ No newline at end of file +
From 7d46ca212b7ae6c9b8199b159b9d0058769c22ac Mon Sep 17 00:00:00 2001 From: Wolfsblvt Date: Sat, 3 Aug 2024 00:06:48 +0200 Subject: [PATCH 3/4] Expand/show DS prompt gen error --- public/scripts/extensions/stable-diffusion/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/public/scripts/extensions/stable-diffusion/index.js b/public/scripts/extensions/stable-diffusion/index.js index 92d4ae30f..83ec179ad 100644 --- a/public/scripts/extensions/stable-diffusion/index.js +++ b/public/scripts/extensions/stable-diffusion/index.js @@ -2312,7 +2312,8 @@ async function generatePicture(initiator, args, trigger, message, callback) { imagePath = await sendGenerationRequest(generationType, prompt, negativePromptPrefix, characterName, callback, initiator, abortController.signal); } catch (err) { console.trace(err); - throw new Error('SD prompt text generation failed.'); + toastr.error('SD prompt text generation failed. Reason: ' + err, 'Image Generation'); + throw new Error('SD prompt text generation failed. Reason: ' + err); } finally { $(stopButton).hide(); From d84fef047821d2202cda629735e4ddcc8e9ff7d6 Mon Sep 17 00:00:00 2001 From: Wolfsblvt Date: Sat, 3 Aug 2024 00:10:46 +0200 Subject: [PATCH 4/4] Fix SD wand entry not always being clickable --- public/scripts/extensions/stable-diffusion/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/scripts/extensions/stable-diffusion/index.js b/public/scripts/extensions/stable-diffusion/index.js index 83ec179ad..cc385f60a 100644 --- a/public/scripts/extensions/stable-diffusion/index.js +++ b/public/scripts/extensions/stable-diffusion/index.js @@ -3396,7 +3396,7 @@ async function addSDGenButtons() { $(document).on('click touchend', function (e) { const target = $(e.target); if (target.is(dropdown) || target.closest(dropdown).length) return; - if (target.is(button) && !dropdown.is(':visible') && $('#send_but').is(':visible')) { + if ((target.is(button) || target.closest(button).length) && !dropdown.is(':visible') && $('#send_but').is(':visible')) { e.preventDefault(); dropdown.fadeIn(animation_duration);