Editattention setting (#533)

* Add editAttention delta setting

* Update editAttention.js

* Update web/extensions/core/editAttention.js

Co-authored-by: Karun <karun.ellango7@gmail.com>

* Update editAttention.js

* Update editAttention.js

* Fix setting value

---------

Co-authored-by: Karun <karun.ellango7@gmail.com>
This commit is contained in:
missionfloyd 2023-04-18 00:22:05 -06:00 committed by GitHub
parent b9b1df3038
commit a7c7da68dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 4 deletions

View File

@ -2,10 +2,21 @@ import { app } from "/scripts/app.js";
// Allows you to edit the attention weight by holding ctrl (or cmd) and using the up/down arrow keys
const id = "Comfy.EditAttention";
app.registerExtension({
name:id,
name: "Comfy.EditAttention",
init() {
const editAttentionDelta = app.ui.settings.addSetting({
id: "Comfy.EditAttention.Delta",
name: "Ctrl+up/down precision",
type: "slider",
attrs: {
min: 0.01,
max: 2,
step: 0.01,
},
defaultValue: 0.1,
});
function incrementWeight(weight, delta) {
const floatWeight = parseFloat(weight);
if (isNaN(floatWeight)) return weight;
@ -58,7 +69,7 @@ name:id,
function editAttention(event) {
const inputField = event.composedPath()[0];
const delta = 0.025;
const delta = parseFloat(editAttentionDelta.value);
if (inputField.tagName !== "TEXTAREA") return;
if (!(event.key === "ArrowUp" || event.key === "ArrowDown")) return;
@ -125,7 +136,7 @@ name:id,
// Increment the weight
const weightDelta = event.key === "ArrowUp" ? delta : -delta;
const updatedText = selectedText.replace(/(.*:)(\d+(\.\d+)?)(.*)/, (match, prefix, weight, _, suffix) => {
return prefix + incrementWeight(weight, weightDelta) + suffix;
return prefix + incrementWeight(weight, weightDelta) + suffix;
});
inputField.setRangeText(updatedText, start, end, "select");