From 04161071f2a74c0ad87181418aaa8797c216f777 Mon Sep 17 00:00:00 2001 From: karrix Date: Fri, 6 Dec 2024 18:54:56 +0800 Subject: [PATCH] test --- comfy-nodes/external_string_combine.py | 53 ++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 comfy-nodes/external_string_combine.py diff --git a/comfy-nodes/external_string_combine.py b/comfy-nodes/external_string_combine.py new file mode 100644 index 0000000..c264787 --- /dev/null +++ b/comfy-nodes/external_string_combine.py @@ -0,0 +1,53 @@ +import re + + +class StringFunction: + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "action": (["append", "replace"], {}), + "tidy_tags": (["yes", "no"], {}), + }, + "optional": { + "text_a": ("STRING", {"multiline": True, "dynamicPrompts": False}), + "text_b": ("STRING", {"multiline": True, "dynamicPrompts": False}), + "text_c": ("STRING", {"multiline": True, "dynamicPrompts": False}), + }, + } + + RETURN_TYPES = ("STRING",) + FUNCTION = "exec" + CATEGORY = "utils" + OUTPUT_NODE = True + + def exec(self, action, tidy_tags, text_a="", text_b="", text_c=""): + tidy_tags = tidy_tags == "yes" + out = "" + if action == "append": + out = (", " if tidy_tags else "").join( + filter(None, [text_a, text_b, text_c]) + ) + else: + if text_c is None: + text_c = "" + if text_b.startswith("/") and text_b.endswith("/"): + regex = text_b[1:-1] + out = re.sub(regex, text_c, text_a) + else: + out = text_a.replace(text_b, text_c) + if tidy_tags: + out = re.sub(r"\s{2,}", " ", out) + out = out.replace(" ,", ",") + out = re.sub(r",{2,}", ",", out) + out = out.strip() + return {"ui": {"text": (out,)}, "result": (out,)} + + +NODE_CLASS_MAPPINGS = { + "ComfyUIDeployStringCombine": StringFunction, +} + +NODE_DISPLAY_NAME_MAPPINGS = { + "ComfyUIDeployStringCombine": "String Combine (ComfyUI Deploy)", +}