aboutsummaryrefslogtreecommitdiff
path: root/javascript/ui.js
diff options
context:
space:
mode:
authorLiam <liamthekerr@gmail.com>2022-09-27 15:56:18 -0400
committerLiam <liamthekerr@gmail.com>2022-09-27 15:56:18 -0400
commit5034f7d7597685aaa4779296983be0f49f4f991f (patch)
treea4d2fe6104e5034fae22476d7705634a551359ff /javascript/ui.js
parentca3e5519e8b6dc020c5e7ae508738afb5dc6f3ec (diff)
added token counter next to txt2img and img2img prompts
Diffstat (limited to 'javascript/ui.js')
-rw-r--r--javascript/ui.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/javascript/ui.js b/javascript/ui.js
index 076e9436..77e0f4c1 100644
--- a/javascript/ui.js
+++ b/javascript/ui.js
@@ -183,4 +183,51 @@ onUiUpdate(function(){
});
json_elem.parentElement.style.display="none"
+
+ let debounce_time = 800
+ if (!txt2img_textarea) {
+ txt2img_textarea = gradioApp().querySelector("#txt2img_prompt > label > textarea")
+ txt2img_textarea?.addEventListener("input", debounce(submit_prompt_text.bind(null, "txt2img"), debounce_time))
+ }
+ if (!img2img_textarea) {
+ img2img_textarea = gradioApp().querySelector("#img2img_prompt > label > textarea")
+ img2img_textarea?.addEventListener("input", debounce(submit_prompt_text.bind(null, "img2img"), debounce_time))
+ }
})
+
+
+let txt2img_textarea, img2img_textarea = undefined;
+function submit_prompt_text(source, e) {
+ let prompt_text;
+ if (source == "txt2img")
+ prompt_text = txt2img_textarea.value;
+ else if (source == "img2img")
+ prompt_text = img2img_textarea.value;
+ if (!prompt_text)
+ return;
+ params = {
+ method: "POST",
+ headers: {
+ "Accept": "application/json",
+ "Content-type": "application/json"
+ },
+ body: JSON.stringify({data:[prompt_text]})
+ }
+ fetch('http://127.0.0.1:7860/api/tokenize/', params)
+ .then((response) => response.json())
+ .then((data) => {
+ if (data?.data.length) {
+ let response_json = data.data[0]
+ if (elem = gradioApp().getElementById(source+"_token_counter")) {
+ if (response_json.token_count > response_json.max_length)
+ elem.classList.add("red");
+ else
+ elem.classList.remove("red");
+ elem.innerText = response_json.token_count + "/" + response_json.max_length;
+ }
+ }
+ })
+ .catch((error) => {
+ console.error('Error:', error);
+ });
+} \ No newline at end of file