update: reacts to user input instead of having to hit queue

This commit is contained in:
jitcoder
2023-12-11 13:17:29 +05:00
parent 6cc2058374
commit 349db05a1a
2 changed files with 38 additions and 1 deletions
+23
View File
@@ -1,5 +1,6 @@
import { app } from "../../../scripts/app.js";
import { ComfyWidgets } from "../../scripts/widgets.js";
import { api } from '../../scripts/api.js';
app.registerExtension({
name: "LoraInfo",
@@ -17,6 +18,28 @@ app.registerExtension({
["STRING", { multiline: true }],
app,
).widget;
const [loraNameWidget, baseModelWidget, outputWidget] = this.widgets;
let originalDescriptor = Object.getOwnPropertyDescriptor(loraNameWidget, 'value');
Object.defineProperty(loraNameWidget, 'value', {
get() {
const ret = originalDescriptor.get.call(loraNameWidget);
return ret
},
set(value) {
originalDescriptor.set.call(loraNameWidget, value);
const body = new FormData();
body.append('lora_name',value);
api
.fetchApi("/lora_info", { method: "POST", body, })
.then((response) => response.json())
.then((resp) => {
baseModelWidget.value = resp.baseModel;
outputWidget.value = resp.output;
})
}
});
}
const onExecuted = nodeType.prototype.onExecuted;
+15 -1
View File
@@ -2,6 +2,9 @@ import folder_paths
import hashlib
import requests
import json
import server
from server import PromptServer
from aiohttp import web
def load_json_from_file(file_path):
try:
@@ -99,6 +102,17 @@ def get_lora_info(lora_name):
LORA_LIST = sorted(folder_paths.get_filename_list("loras"), key=str.lower)
@server.PromptServer.instance.routes.post('/lora_info')
async def fetch_lora_info(request):
post = await request.post()
lora_name = post.get("lora_name")
(output, triggerWords, examplePrompt, baseModel) = get_lora_info(lora_name)
return web.json_response({"output": output, "triggerWords": triggerWords, "examplePrompt": examplePrompt, "baseModel": baseModel})
dictionary_of_stuff = {"something":"A text message"}
PromptServer.instance.send_sync("my-message-handle", dictionary_of_stuff)
class LoraInfo:
def __init__(self):
pass
@@ -132,4 +146,4 @@ NODE_DISPLAY_NAME_MAPPINGS = {
"LoraInfo": "Lora Info",
}
WEB_DIRECTORY = "./js"
WEB_DIRECTORY = "./js"