Download ComfyUI-Crystools/nodes/debugger.py from MarkLilly/mis-custom-nodes: direct link, hf CLI and curl.
- Browser
- Download file 3.62 kB
-
https://huggingface.co/MarkLilly/mis-custom-nodes/resolve/main/ComfyUI-Crystools/nodes/debugger.py
- Command line
-
hf download hf://MarkLilly/mis-custom-nodes/ComfyUI-Crystools/nodes/debugger.py
-
curl -L -o debugger.py https://huggingface.co/MarkLilly/mis-custom-nodes/resolve/main/ComfyUI-Crystools/nodes/debugger.py
3.62 kB
| import json | |
| from ..core import CONFIG, CATEGORY, BOOLEAN, BOOLEAN_FALSE, KEYS, TEXTS, STRING, logger, any | |
| class CConsoleAny: | |
| def __init__(self): | |
| pass | |
| def INPUT_TYPES(cls): | |
| return { | |
| "required": { | |
| }, | |
| "optional": { | |
| "any_value": (any,), | |
| "console": BOOLEAN_FALSE, | |
| "display": BOOLEAN, | |
| KEYS.PREFIX.value: STRING, | |
| }, | |
| "hidden": { | |
| # "unique_id": "UNIQUE_ID", | |
| # "extra_pnginfo": "EXTRA_PNGINFO", | |
| }, | |
| } | |
| CATEGORY = CATEGORY.MAIN.value + CATEGORY.DEBUGGER.value | |
| INPUT_IS_LIST = True | |
| RETURN_TYPES = () | |
| OUTPUT_NODE = True | |
| FUNCTION = "execute" | |
| def execute(self, any_value=None, console=False, display=True, prefix=None): | |
| console = console[0] | |
| display = display[0] | |
| prefix = prefix[0] | |
| text = "" | |
| textToDisplay = TEXTS.INACTIVE_MSG.value | |
| if any_value is not None: | |
| try: | |
| if type(any_value) == list: | |
| for item in any_value: | |
| try: | |
| text += str(item) | |
| except Exception as e: | |
| text += "source exists, but could not be serialized.\n" | |
| logger.warn(e) | |
| else: | |
| logger.warn("any_value is not a list") | |
| except Exception: | |
| try: | |
| text = json.dumps(any_value)[1:-1] | |
| except Exception: | |
| text = 'source exists, but could not be serialized.' | |
| logger.debug(f"Show any to console is running...") | |
| if console: | |
| if prefix is not None and prefix != "": | |
| print(f"{prefix}: {text}") | |
| else: | |
| print(text) | |
| if display: | |
| textToDisplay = text | |
| value = [console, display, prefix, textToDisplay] | |
| # setWidgetValues(value, unique_id, extra_pnginfo) | |
| return {"ui": {"text": value}} | |
| class CConsoleAnyToJson: | |
| def __init__(self): | |
| pass | |
| def INPUT_TYPES(cls): | |
| return { | |
| "required": { | |
| }, | |
| "optional": { | |
| "any_value": (any,), | |
| }, | |
| } | |
| CATEGORY = CATEGORY.MAIN.value + CATEGORY.DEBUGGER.value | |
| INPUT_IS_LIST = True | |
| RETURN_TYPES = ("STRING",) | |
| RETURN_NAMES = ("string",) | |
| OUTPUT_NODE = True | |
| FUNCTION = "execute" | |
| def execute(self, any_value=None): | |
| text = TEXTS.INACTIVE_MSG.value | |
| if any_value is not None and isinstance(any_value, list): | |
| item = any_value[0] | |
| if isinstance(item, dict): | |
| try: | |
| text = json.dumps(item, indent=CONFIG["indent"]) | |
| except Exception as e: | |
| text = "The input is a dict, but could not be serialized.\n" | |
| logger.warn(e) | |
| elif isinstance(item, list): | |
| try: | |
| text = json.dumps(item, indent=CONFIG["indent"]) | |
| except Exception as e: | |
| text = "The input is a list, but could not be serialized.\n" | |
| logger.warn(e) | |
| else: | |
| text = str(item) | |
| logger.debug(f"Show any-json to console is running...") | |
| return {"ui": {"text": [text]}, "result": (text,)} | |