diff options
author | Greendayle <Greendayle> | 2022-10-07 16:31:49 +0000 |
---|---|---|
committer | Greendayle <Greendayle> | 2022-10-07 16:31:49 +0000 |
commit | 537da7a304adff95fb2ed8337f7a764d08f67c46 (patch) | |
tree | 4a8b2c23d7c870314083d70e2d82edd9acbe677c /javascript/edit-attention.js | |
parent | 4320f386d9641c7c234589c4cb0c0c6cbeb156ad (diff) | |
parent | f7c787eb7c295c27439f4fbdf78c26b8389560be (diff) | |
download | stable-diffusion-webui-gfx803-537da7a304adff95fb2ed8337f7a764d08f67c46.tar.gz stable-diffusion-webui-gfx803-537da7a304adff95fb2ed8337f7a764d08f67c46.tar.bz2 stable-diffusion-webui-gfx803-537da7a304adff95fb2ed8337f7a764d08f67c46.zip |
Merge branch 'master' into dev/deepdanbooru
Diffstat (limited to 'javascript/edit-attention.js')
-rw-r--r-- | javascript/edit-attention.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/javascript/edit-attention.js b/javascript/edit-attention.js new file mode 100644 index 00000000..c67ed579 --- /dev/null +++ b/javascript/edit-attention.js @@ -0,0 +1,41 @@ +addEventListener('keydown', (event) => {
+ let target = event.originalTarget;
+ if (!target.hasAttribute("placeholder")) return;
+ if (!target.placeholder.toLowerCase().includes("prompt")) return;
+
+ let plus = "ArrowUp"
+ let minus = "ArrowDown"
+ if (event.key != plus && event.key != minus) return;
+
+ selectionStart = target.selectionStart;
+ selectionEnd = target.selectionEnd;
+ if(selectionStart == selectionEnd) return;
+
+ event.preventDefault();
+
+ if (selectionStart == 0 || target.value[selectionStart - 1] != "(") {
+ target.value = target.value.slice(0, selectionStart) +
+ "(" + target.value.slice(selectionStart, selectionEnd) + ":1.0)" +
+ target.value.slice(selectionEnd);
+
+ target.focus();
+ target.selectionStart = selectionStart + 1;
+ target.selectionEnd = selectionEnd + 1;
+
+ } else {
+ end = target.value.slice(selectionEnd + 1).indexOf(")") + 1;
+ weight = parseFloat(target.value.slice(selectionEnd + 1, selectionEnd + 1 + end));
+ if (event.key == minus) weight -= 0.1;
+ if (event.key == plus) weight += 0.1;
+
+ weight = parseFloat(weight.toPrecision(12));
+
+ target.value = target.value.slice(0, selectionEnd + 1) +
+ weight +
+ target.value.slice(selectionEnd + 1 + end - 1);
+
+ target.focus();
+ target.selectionStart = selectionStart;
+ target.selectionEnd = selectionEnd;
+ }
+});
|