| class ShowText: |
| @classmethod |
| def INPUT_TYPES(s): |
| return { |
| "required": { |
| "text": ("STRING", {"forceInput": True}), |
| }, |
| "hidden": { |
| "unique_id": "UNIQUE_ID", |
| "extra_pnginfo": "EXTRA_PNGINFO", |
| }, |
| } |
|
|
| INPUT_IS_LIST = True |
| RETURN_TYPES = ("STRING",) |
| FUNCTION = "notify" |
| OUTPUT_NODE = True |
| OUTPUT_IS_LIST = (True,) |
|
|
| CATEGORY = "utils" |
|
|
| def notify(self, text, unique_id=None, extra_pnginfo=None): |
| if unique_id is not None and extra_pnginfo is not None: |
| if not isinstance(extra_pnginfo, list): |
| print("Error: extra_pnginfo is not a list") |
| elif ( |
| not isinstance(extra_pnginfo[0], dict) |
| or "workflow" not in extra_pnginfo[0] |
| ): |
| print("Error: extra_pnginfo[0] is not a dict or missing 'workflow' key") |
| else: |
| workflow = extra_pnginfo[0]["workflow"] |
| node = next( |
| (x for x in workflow["nodes"] if str(x["id"]) == str(unique_id[0])), |
| None, |
| ) |
| if node: |
| node["widgets_values"] = [text] |
|
|
| return {"ui": {"text": text}, "result": (text,)} |
|
|
|
|
| NODE_CLASS_MAPPINGS = { |
| "ShowText|pysssss": ShowText, |
| } |
|
|
| NODE_DISPLAY_NAME_MAPPINGS = { |
| "ShowText|pysssss": "Show Text 🐍", |
| } |
|
|