39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
import os
|
|
import json
|
|
import nodes
|
|
|
|
nodes.EXTENSION_WEB_DIRS["ComfyUI_AnimeCharacterSelect"] = os.path.join(os.path.dirname(__file__), "js")
|
|
|
|
class ActionPromptNode:
|
|
ACTION_JSON = os.path.join(os.path.dirname(__file__), "action.json")
|
|
ACTION_LABELS = []
|
|
ACTION_PROMPTS = {}
|
|
|
|
try:
|
|
with open(ACTION_JSON, "r", encoding="utf-8") as f:
|
|
_data = json.load(f)
|
|
ACTION_LABELS = list(_data.keys())
|
|
ACTION_PROMPTS = _data
|
|
except Exception as e:
|
|
print("Error loading action.json:", e)
|
|
ACTION_LABELS = ["No actions found"]
|
|
ACTION_PROMPTS = {}
|
|
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"action_selector": (cls.ACTION_LABELS,),
|
|
"action_prompt": ("STRING", {"multiline": True, "default": ""}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("STRING",)
|
|
RETURN_NAMES = ("action_prompt",)
|
|
FUNCTION = "set_prompt"
|
|
CATEGORY = "Prompting/Anime"
|
|
|
|
def set_prompt(self, action_selector, action_prompt):
|
|
# Always output the editable prompt field, not the selector
|
|
return (action_prompt,)
|