| import json
|
| from .constants import get_category, get_name
|
| from .utils import any_type, get_dict_value
|
|
|
|
|
| class RgthreeDisplayAny:
|
| """Display any data node."""
|
|
|
| NAME = get_name('Display Any')
|
| CATEGORY = get_category()
|
|
|
| @classmethod
|
| def INPUT_TYPES(cls):
|
| return {
|
| "required": {
|
| "source": (any_type, {}),
|
| },
|
| "hidden": {
|
| "unique_id": "UNIQUE_ID",
|
| "extra_pnginfo": "EXTRA_PNGINFO",
|
| },
|
| }
|
|
|
| RETURN_TYPES = ()
|
| FUNCTION = "main"
|
| OUTPUT_NODE = True
|
|
|
| def main(self, source=None, unique_id=None, extra_pnginfo=None):
|
| value = 'None'
|
| if isinstance(source, str):
|
| value = source
|
| elif isinstance(source, (int, float, bool)):
|
| value = str(source)
|
| elif source is not None:
|
| try:
|
| value = json.dumps(source)
|
| except Exception:
|
| try:
|
| value = str(source)
|
| except Exception:
|
| value = 'source exists, but could not be serialized.'
|
|
|
|
|
| if extra_pnginfo and unique_id:
|
| for node in get_dict_value(extra_pnginfo, 'workflow.nodes', []):
|
| if str(node['id']) == str(unique_id):
|
| node['widgets_values'] = [value]
|
| break
|
|
|
| return {"ui": {"text": (value,)}}
|
|
|
|
|
| class RgthreeDisplayInt:
|
| """Old DisplayInt node.
|
|
|
| Can be ported over to DisplayAny if https://github.com/comfyanonymous/ComfyUI/issues/1527 fixed.
|
| """
|
|
|
| NAME = get_name('Display Int')
|
| CATEGORY = get_category()
|
|
|
| @classmethod
|
| def INPUT_TYPES(s):
|
| return {
|
| "required": {
|
| "input": ("INT", {
|
| "forceInput": True
|
| }),
|
| },
|
| }
|
|
|
| RETURN_TYPES = ()
|
| FUNCTION = "main"
|
| OUTPUT_NODE = True
|
|
|
| def main(self, input=None):
|
| return {"ui": {"text": (input,)}}
|
|
|