update: reacts to user input instead of having to hit queue
This commit is contained in:
+23
@@ -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
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user