From ca36105994f5d734ce9fd101ddb07e190f92234d Mon Sep 17 00:00:00 2001 From: huchenlei Date: Tue, 20 Aug 2024 15:31:46 -0400 Subject: [PATCH] Add optional deprecated flag to node class --- custom_nodes/example_node.py.example | 9 ++++++--- server.py | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/custom_nodes/example_node.py.example b/custom_nodes/example_node.py.example index 9c68ab769..000ccf943 100644 --- a/custom_nodes/example_node.py.example +++ b/custom_nodes/example_node.py.example @@ -4,14 +4,14 @@ class Example: Class methods ------------- - INPUT_TYPES (dict): + INPUT_TYPES (dict): Tell the main program input parameters of nodes. IS_CHANGED: optional method to control when the node is re executed. Attributes ---------- - RETURN_TYPES (`tuple`): + RETURN_TYPES (`tuple`): The type of each element in the output tuple. RETURN_NAMES (`tuple`): Optional: The name of each output in the output tuple. @@ -23,13 +23,16 @@ class Example: Assumed to be False if not present. CATEGORY (`str`): The category the node should appear in the UI. + DEPRECATED (`bool`): + Indicates whether the node is deprecated. Deprecated nodes are hidden by default in the UI, but remain + functional in existing workflows that use them. execute(s) -> tuple || None: The entry point method. The name of this method must be the same as the value of property `FUNCTION`. For example, if `FUNCTION = "execute"` then this method's name must be `execute`, if `FUNCTION = "foo"` then it must be `foo`. """ def __init__(self): pass - + @classmethod def INPUT_TYPES(s): """ diff --git a/server.py b/server.py index a2bb376a4..841e29c27 100644 --- a/server.py +++ b/server.py @@ -431,6 +431,7 @@ class PromptServer(): 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['deprecated'] = getattr(obj_class, "DEPRECATED", False) info['category'] = 'sd' if hasattr(obj_class, 'OUTPUT_NODE') and obj_class.OUTPUT_NODE == True: info['output_node'] = True