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);