37 lines
1.4 KiB
Python
37 lines
1.4 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']
|
|
print('before:',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)
|
|
print(preset)
|
|
print(json.dumps(preset))
|
|
inputs['choice_preset'] = json.dumps(preset)
|
|
print('after :',inputs)
|
|
|
|
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) |