From e6646ff39a9ef0f24dd5c0f45b6aa18f3ba6d772 Mon Sep 17 00:00:00 2001 From: Yousef Rafat <81116377+yousef-rafat@users.noreply.github.com> Date: Wed, 24 Jun 2026 18:48:38 +0300 Subject: [PATCH 1/3] Simple Seed --- comfy_extras/nodes_seed.py | 41 ++++++++++++++++++++++++++++++++++++++ nodes.py | 1 + 2 files changed, 42 insertions(+) create mode 100644 comfy_extras/nodes_seed.py diff --git a/comfy_extras/nodes_seed.py b/comfy_extras/nodes_seed.py new file mode 100644 index 000000000..02518de01 --- /dev/null +++ b/comfy_extras/nodes_seed.py @@ -0,0 +1,41 @@ +from typing_extensions import override + +from comfy_api.latest import ComfyExtension, io + +class SimpleSeedNode(io.ComfyNode): + @classmethod + @override + def define_schema(cls) -> io.Schema: + return io.Schema( + node_id="SimpleSeedNode", + display_name="Simple Seed", + category="utils/seed", + search_aliases=["seed", "random", "global seed", "master seed"], + inputs=[ + io.Int.Input( + "seed", + default=0, + min=0, + max=0xffffffffffffffff, + control_after_generate=io.ControlAfterGenerate.fixed, + tooltip="Master seed value supplied to all reachable nodes.", + ), + ], + outputs=[ + io.Int.Output(display_name="seed"), + ], + ) + + @classmethod + @override + def execute(cls, seed: int, **kwargs) -> io.NodeOutput: + return io.NodeOutput(seed) + +class SeedExtension(ComfyExtension): + @override + async def get_node_list(self) -> list[type[io.ComfyNode]]: + return [SimpleSeedNode] + + +async def comfy_entrypoint() -> SeedExtension: + return SeedExtension() diff --git a/nodes.py b/nodes.py index 166e02d3d..ad172890d 100644 --- a/nodes.py +++ b/nodes.py @@ -2473,6 +2473,7 @@ async def init_builtin_extra_nodes(): "nodes_gaussian_splat.py", "nodes_triposplat.py", "nodes_depth_anything_3.py", + "nodes_seed.py", ] import_failed = [] From a1e42c77e9224e26aee690d09ae3fd8c5f8611a1 Mon Sep 17 00:00:00 2001 From: Alexis Rolland Date: Thu, 25 Jun 2026 09:01:53 +0800 Subject: [PATCH 2/3] Update seed node --- comfy_extras/nodes_seed.py | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/comfy_extras/nodes_seed.py b/comfy_extras/nodes_seed.py index 02518de01..e64f1d7e3 100644 --- a/comfy_extras/nodes_seed.py +++ b/comfy_extras/nodes_seed.py @@ -1,40 +1,32 @@ +import sys from typing_extensions import override from comfy_api.latest import ComfyExtension, io -class SimpleSeedNode(io.ComfyNode): + +class SeedNode(io.ComfyNode): @classmethod - @override - def define_schema(cls) -> io.Schema: + def define_schema(cls): return io.Schema( - node_id="SimpleSeedNode", - display_name="Simple Seed", - category="utils/seed", - search_aliases=["seed", "random", "global seed", "master seed"], + node_id="SeedNode", + display_name="Seed", + search_aliases=["seed", "random"], + category="utilities", inputs=[ - io.Int.Input( - "seed", - default=0, - min=0, - max=0xffffffffffffffff, - control_after_generate=io.ControlAfterGenerate.fixed, - tooltip="Master seed value supplied to all reachable nodes.", - ), - ], - outputs=[ - io.Int.Output(display_name="seed"), + io.Int.Input("seed", min=0, max=sys.maxsize, control_after_generate=io.ControlAfterGenerate.fixed), ], + outputs=[io.Int.Output(display_name="seed")], ) @classmethod - @override - def execute(cls, seed: int, **kwargs) -> io.NodeOutput: + def execute(cls, seed: int) -> io.NodeOutput: return io.NodeOutput(seed) + class SeedExtension(ComfyExtension): @override async def get_node_list(self) -> list[type[io.ComfyNode]]: - return [SimpleSeedNode] + return [SeedNode] async def comfy_entrypoint() -> SeedExtension: From 80beac4d7f9038c1f6123114e3051227342547cc Mon Sep 17 00:00:00 2001 From: Alexis Rolland Date: Thu, 25 Jun 2026 18:01:50 +0800 Subject: [PATCH 3/3] Add component to Int input --- comfy_api/latest/_io.py | 4 +++- comfy_extras/nodes_seed.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/comfy_api/latest/_io.py b/comfy_api/latest/_io.py index 012fae3ac..31f70b639 100644 --- a/comfy_api/latest/_io.py +++ b/comfy_api/latest/_io.py @@ -272,13 +272,14 @@ class Int(ComfyTypeIO): '''Integer input.''' def __init__(self, id: str, display_name: str=None, optional=False, tooltip: str=None, lazy: bool=None, default: int=None, min: int=None, max: int=None, step: int=None, control_after_generate: bool | ControlAfterGenerate=None, - display_mode: NumberDisplay=None, socketless: bool=None, force_input: bool=None, extra_dict=None, raw_link: bool=None, advanced: bool=None): + display_mode: NumberDisplay=None, component: str=None, socketless: bool=None, force_input: bool=None, extra_dict=None, raw_link: bool=None, advanced: bool=None): super().__init__(id, display_name, optional, tooltip, lazy, default, socketless, None, force_input, extra_dict, raw_link, advanced) self.min = min self.max = max self.step = step self.control_after_generate = control_after_generate self.display_mode = display_mode + self.component = component self.default: int def as_dict(self): @@ -288,6 +289,7 @@ class Int(ComfyTypeIO): "step": self.step, "control_after_generate": self.control_after_generate, "display": self.display_mode.value if self.display_mode else None, + "component": self.component, }) @comfytype(io_type="FLOAT") diff --git a/comfy_extras/nodes_seed.py b/comfy_extras/nodes_seed.py index e64f1d7e3..7eddbca45 100644 --- a/comfy_extras/nodes_seed.py +++ b/comfy_extras/nodes_seed.py @@ -13,7 +13,7 @@ class SeedNode(io.ComfyNode): search_aliases=["seed", "random"], category="utilities", inputs=[ - io.Int.Input("seed", min=0, max=sys.maxsize, control_after_generate=io.ControlAfterGenerate.fixed), + io.Int.Input("seed", min=0, max=sys.maxsize, control_after_generate=io.ControlAfterGenerate.fixed, component="SetRandomInt"), ], outputs=[io.Int.Output(display_name="seed")], )