Files
Zuellni-ComfyUI-ExLlama-Nodes/text.py
T

68 lines
1.7 KiB
Python

class Previewer:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"text": ("STRING", {"forceInput": True}),
},
"hidden": {
"info": "EXTRA_PNGINFO",
"id": "UNIQUE_ID",
},
}
CATEGORY = "Zuellni/Text"
FUNCTION = "preview"
OUTPUT_NODE = True
RETURN_TYPES = ()
def preview(self, text, info=None, id=None):
if id and info and "workflow" in info:
nodes = info["workflow"]["nodes"]
node = next((n for n in nodes if str(n["id"]) == id), None)
if node:
node["widgets_values"] = [text]
return {"ui": {"text": [text]}}
class Replacer:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"text": ("STRING", {"multiline": True}),
},
"optional": {
"a": ("STRING", {"forceInput": True, "multiline": True}),
"b": ("STRING", {"forceInput": True, "multiline": True}),
"c": ("STRING", {"forceInput": True, "multiline": True}),
"d": ("STRING", {"forceInput": True, "multiline": True}),
},
}
CATEGORY = "Zuellni/Text"
FUNCTION = "replace"
RETURN_NAMES = ("TEXT",)
RETURN_TYPES = ("STRING",)
def replace(self, text, **vars):
for key, value in vars.items():
text = text.replace(f"[{key}]", value)
return (text,)
NODE_CLASS_MAPPINGS = {
"ZuellniTextPreviewer": Previewer,
"ZuellniTextReplacer": Replacer,
}
NODE_DISPLAY_NAME_MAPPINGS = {
"ZuellniTextPreviewer": "Preview Text",
"ZuellniTextReplacer": "Replace Text",
}
WEB_DIRECTORY = "."