aboutsummaryrefslogtreecommitdiffstats
path: root/javascript
diff options
context:
space:
mode:
authorAUTOMATIC1111 <16777216c@gmail.com>2024-02-17 07:31:16 +0000
committerAUTOMATIC1111 <16777216c@gmail.com>2024-02-17 07:31:16 +0000
commit1466daeafc1cc9dcf0319012a6ec6129d51ebd2c (patch)
tree7af9482f35d87748c6403af201b492fe71bda1a2 /javascript
parentdd1641ecc4bbbdf2c319fb32a3250a8e16dd8c77 (diff)
downloadstable-diffusion-webui-gfx803-1466daeafc1cc9dcf0319012a6ec6129d51ebd2c.tar.gz
stable-diffusion-webui-gfx803-1466daeafc1cc9dcf0319012a6ec6129d51ebd2c.tar.bz2
stable-diffusion-webui-gfx803-1466daeafc1cc9dcf0319012a6ec6129d51ebd2c.zip
Disable prompt token counters option actually disables token counting rather than just hiding results.
Disable prompt token counters option does not require reload UI. token counters do not become visible until they are positioned correctly.
Diffstat (limited to 'javascript')
-rw-r--r--javascript/token-counters.js34
-rw-r--r--javascript/ui.js2
2 files changed, 23 insertions, 13 deletions
diff --git a/javascript/token-counters.js b/javascript/token-counters.js
index 2ecc7d91..5d53fe47 100644
--- a/javascript/token-counters.js
+++ b/javascript/token-counters.js
@@ -48,11 +48,6 @@ function setupTokenCounting(id, id_counter, id_button) {
var counter = gradioApp().getElementById(id_counter);
var textarea = gradioApp().querySelector(`#${id} > label > textarea`);
- if (opts.disable_token_counters) {
- counter.style.display = "none";
- return;
- }
-
if (counter.parentElement == prompt.parentElement) {
return;
}
@@ -61,15 +56,32 @@ function setupTokenCounting(id, id_counter, id_button) {
prompt.parentElement.style.position = "relative";
var func = onEdit(id, textarea, 800, function() {
- gradioApp().getElementById(id_button)?.click();
+ if(counter.classList.contains("token-counter-visible")){
+ gradioApp().getElementById(id_button)?.click();
+ }
});
promptTokenCountUpdateFunctions[id] = func;
promptTokenCountUpdateFunctions[id_button] = func;
}
-function setupTokenCounters() {
- setupTokenCounting('txt2img_prompt', 'txt2img_token_counter', 'txt2img_token_button');
- setupTokenCounting('txt2img_neg_prompt', 'txt2img_negative_token_counter', 'txt2img_negative_token_button');
- setupTokenCounting('img2img_prompt', 'img2img_token_counter', 'img2img_token_button');
- setupTokenCounting('img2img_neg_prompt', 'img2img_negative_token_counter', 'img2img_negative_token_button');
+function toggleTokenCountingVisibility(id, id_counter, id_button) {
+ var counter = gradioApp().getElementById(id_counter);
+
+ counter.style.display = opts.disable_token_counters ? "none" : "block";
+ counter.classList.toggle("token-counter-visible", ! opts.disable_token_counters);
}
+
+function runCodeForTokenCounters(fun){
+ fun('txt2img_prompt', 'txt2img_token_counter', 'txt2img_token_button');
+ fun('txt2img_neg_prompt', 'txt2img_negative_token_counter', 'txt2img_negative_token_button');
+ fun('img2img_prompt', 'img2img_token_counter', 'img2img_token_button');
+ fun('img2img_neg_prompt', 'img2img_negative_token_counter', 'img2img_negative_token_button');
+}
+
+onUiLoaded(function(){
+ runCodeForTokenCounters(setupTokenCounting);
+});
+
+onOptionsChanged(function(){
+ runCodeForTokenCounters(toggleTokenCountingVisibility);
+});
diff --git a/javascript/ui.js b/javascript/ui.js
index 9e66cd24..3d079b3d 100644
--- a/javascript/ui.js
+++ b/javascript/ui.js
@@ -319,8 +319,6 @@ onAfterUiUpdate(function() {
});
json_elem.parentElement.style.display = "none";
-
- setupTokenCounters();
});
onOptionsChanged(function() {