Files
2024-02-21 22:57:30 +09:00

49 lines
1.5 KiB
Python

import json
from aiohttp import web
import server
from .preset import PresetManager, PresetManagerAdvanced
@server.PromptServer.instance.routes.post("/prompt_utilities/refresh")
async def refresh_preset_manager(request):
PresetManager.load_presets()
PresetManagerAdvanced.load_presets()
return web.Response(status=200)
def on_prompt(json_data):
prompt = json_data["prompt"]
for k, v in prompt.items():
if "class_type" in v and (
v["class_type"]
in ["PromptUtilitiesRandomPreset", "PromptUtilitiesRandomPresetAdvanced"]
):
inputs = v["inputs"]
input_seed = int(inputs["seed"])
input_filename = inputs["filename"]
if v["class_type"] == "PromptUtilitiesRandomPreset":
inputs["choice_preset"] = PresetManager.random_preset(
input_filename, input_seed
)
elif v["class_type"] == "PromptUtilitiesRandomPresetAdvanced":
preset = PresetManagerAdvanced.random_preset(input_filename, input_seed)
inputs["choice_preset"] = json.dumps(preset)
server.PromptServer.instance.send_sync(
"prompt-utilities-feedback",
{
"node_id": k,
"widget_name": "choice_preset",
"type": "STRING",
"value": inputs["choice_preset"],
},
)
return json_data
server.PromptServer.instance.add_on_prompt_handler(on_prompt)