diff --git a/server.py b/server.py index 62667ce1..5bd0aa6d 100644 --- a/server.py +++ b/server.py @@ -554,32 +554,27 @@ class PromptServer(): def node_info(node_class): obj_class = nodes.NODE_CLASS_MAPPINGS[node_class] - info = {} - info['input'] = obj_class.INPUT_TYPES() - info['input_order'] = {key: list(value.keys()) for (key, value) in obj_class.INPUT_TYPES().items()} - info['output'] = obj_class.RETURN_TYPES - info['output_is_list'] = obj_class.OUTPUT_IS_LIST if hasattr(obj_class, 'OUTPUT_IS_LIST') else [False] * len(obj_class.RETURN_TYPES) - info['output_name'] = obj_class.RETURN_NAMES if hasattr(obj_class, 'RETURN_NAMES') else info['output'] - info['name'] = node_class - info['display_name'] = nodes.NODE_DISPLAY_NAME_MAPPINGS[node_class] if node_class in nodes.NODE_DISPLAY_NAME_MAPPINGS.keys() else node_class - info['description'] = obj_class.DESCRIPTION if hasattr(obj_class,'DESCRIPTION') else '' - info['python_module'] = getattr(obj_class, "RELATIVE_PYTHON_MODULE", "nodes") - info['category'] = 'sd' - if hasattr(obj_class, 'OUTPUT_NODE') and obj_class.OUTPUT_NODE == True: - info['output_node'] = True - else: - info['output_node'] = False - - if hasattr(obj_class, 'CATEGORY'): - info['category'] = obj_class.CATEGORY - + input_types = obj_class.INPUT_TYPES() + + info = { + 'input': input_types, + 'input_order': {key: list(value.keys()) for key, value in input_types.items()}, + 'output': obj_class.RETURN_TYPES, + 'output_is_list': getattr(obj_class, 'OUTPUT_IS_LIST', [False] * len(obj_class.RETURN_TYPES)), + 'output_name': getattr(obj_class, 'RETURN_NAMES', obj_class.RETURN_TYPES), + 'name': node_class, + 'display_name': nodes.NODE_DISPLAY_NAME_MAPPINGS.get(node_class, node_class), + 'description': getattr(obj_class, 'DESCRIPTION', ''), + 'python_module': getattr(obj_class, "RELATIVE_PYTHON_MODULE", "nodes"), + 'category': getattr(obj_class, 'CATEGORY', 'sd'), + 'output_node': hasattr(obj_class, 'OUTPUT_NODE') and obj_class.OUTPUT_NODE, + 'deprecated': getattr(obj_class, "DEPRECATED", False), + 'experimental': getattr(obj_class, "EXPERIMENTAL", False) + } + if hasattr(obj_class, 'OUTPUT_TOOLTIPS'): info['output_tooltips'] = obj_class.OUTPUT_TOOLTIPS - - if getattr(obj_class, "DEPRECATED", False): - info['deprecated'] = True - if getattr(obj_class, "EXPERIMENTAL", False): - info['experimental'] = True + return info @routes.get("/object_info") @@ -592,8 +587,9 @@ class PromptServer(): except Exception: logging.error(f"[ERROR] An error occurred while retrieving information for the '{x}' node.") logging.error(traceback.format_exc()) - return web.json_response(out) + return web.json_response(out) + @routes.get("/object_info/{node_class}") async def get_object_info_node(request): node_class = request.match_info.get("node_class", None)