mirror of
https://git.datalinker.icu/comfyanonymous/ComfyUI
synced 2025-12-09 05:54:24 +08:00
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
from typing_extensions import override
|
|
from comfy_api.latest import ComfyExtension, io
|
|
|
|
|
|
|
|
class SwitchNode(io.ComfyNode):
|
|
@classmethod
|
|
def define_schema(cls):
|
|
template = io.MatchType.Template("switch")
|
|
return io.Schema(
|
|
node_id="ComfySwitchNode",
|
|
display_name="Switch",
|
|
category="logic",
|
|
inputs=[
|
|
io.Boolean.Input("switch"),
|
|
io.MatchType.Input("on_false", template=template, lazy=True),
|
|
io.MatchType.Input("on_true", template=template, lazy=True),
|
|
],
|
|
outputs=[
|
|
io.MatchType.Output("output", template=template, display_name="output"),
|
|
],
|
|
)
|
|
|
|
@classmethod
|
|
def check_lazy_status(cls, switch, on_false=None, on_true=None):
|
|
if switch and on_true is None:
|
|
return ["on_true"]
|
|
if not switch and on_false is None:
|
|
return ["on_false"]
|
|
|
|
@classmethod
|
|
def execute(cls, switch, on_true, on_false) -> io.NodeOutput:
|
|
return io.NodeOutput(on_true if switch else on_false)
|
|
|
|
|
|
class LogicExtension(ComfyExtension):
|
|
@override
|
|
async def get_node_list(self) -> list[type[io.ComfyNode]]:
|
|
return [
|
|
SwitchNode,
|
|
]
|
|
|
|
async def comfy_entrypoint() -> LogicExtension:
|
|
return LogicExtension()
|