From cef73c75fb3b9f3388fb1813188cae58c9c2ccc0 Mon Sep 17 00:00:00 2001 From: Jedrzej Kosinski Date: Fri, 27 Jun 2025 14:00:20 -0700 Subject: [PATCH] Fix recognizing ComfyNodeV3 class by using issubclass, removed override decorator as it was only introduced in py3.12 --- comfy_api/v3/io.py | 3 +-- comfy_extras/nodes_v3_test.py | 2 +- server.py | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/comfy_api/v3/io.py b/comfy_api/v3/io.py index b0a4931c7..e73b86dd8 100644 --- a/comfy_api/v3/io.py +++ b/comfy_api/v3/io.py @@ -1,5 +1,5 @@ from __future__ import annotations -from typing import Any, Literal, TYPE_CHECKING, TypeVar, Callable, Optional, cast, override +from typing import Any, Literal, TYPE_CHECKING, TypeVar, Callable, Optional, cast from enum import Enum from abc import ABC, abstractmethod from dataclasses import dataclass, asdict @@ -561,7 +561,6 @@ class MultiType: str_types.insert(0, self.input_override.get_io_type_V1()) return ",".join(list(dict.fromkeys(str_types))) - @override def as_dict_V1(self): if self.input_override is not None: return self.input_override.as_dict_V1() | super().as_dict_V1() diff --git a/comfy_extras/nodes_v3_test.py b/comfy_extras/nodes_v3_test.py index 9f385f952..1bfc8dc37 100644 --- a/comfy_extras/nodes_v3_test.py +++ b/comfy_extras/nodes_v3_test.py @@ -36,7 +36,7 @@ class V3TestNode(io.ComfyNodeV3): io.Image.Input("image", display_name="new_image"), XYZ.Input("xyz", optional=True), io.Custom("JKL").Input("jkl", optional=True), - io.Mask.Input("mask", optional=True), + io.Mask.Input("mask", display_name="mask haha", optional=True), io.Int.Input("some_int", display_name="new_name", min=0, max=127, default=42, tooltip="My tooltip 😎", display_mode=io.NumberDisplay.slider), io.Combo.Input("combo", options=["a", "b", "c"], tooltip="This is a combo input"), diff --git a/server.py b/server.py index 1a135fca7..28cf6b5ae 100644 --- a/server.py +++ b/server.py @@ -555,7 +555,7 @@ class PromptServer(): def node_info(node_class): obj_class = nodes.NODE_CLASS_MAPPINGS[node_class] - if isinstance(obj_class, ComfyNodeV3): + if issubclass(obj_class, ComfyNodeV3): return obj_class.GET_NODE_INFO_V1() info = {} info['input'] = obj_class.INPUT_TYPES()