Files
ComfyUI/comfy_extras/nodes_primitive.py
T

111 lines
2.8 KiB
Python
Raw Normal View History

2025-04-21 18:51:31 -04:00
import sys
from typing_extensions import override
2025-04-21 18:51:31 -04:00
from comfy_api.latest import ComfyExtension, io
2025-03-21 01:47:18 -04:00
class String(io.ComfyNode):
2025-03-21 01:47:18 -04:00
@classmethod
def define_schema(cls):
return io.Schema(
node_id="PrimitiveString",
display_name="String",
category="utils/primitive",
inputs=[
io.String.Input("value"),
],
outputs=[io.String.Output()],
)
2025-03-21 01:47:18 -04:00
@classmethod
def execute(cls, value: str) -> io.NodeOutput:
return io.NodeOutput(value)
2025-03-21 01:47:18 -04:00
class StringMultiline(io.ComfyNode):
2025-05-06 03:23:00 -05:00
@classmethod
def define_schema(cls):
return io.Schema(
node_id="PrimitiveStringMultiline",
display_name="String (Multiline)",
category="utils/primitive",
essentials_category="Basics",
inputs=[
io.String.Input("value", multiline=True),
],
outputs=[io.String.Output()],
)
2025-05-06 03:23:00 -05:00
@classmethod
def execute(cls, value: str) -> io.NodeOutput:
return io.NodeOutput(value)
2025-05-06 03:23:00 -05:00
class Int(io.ComfyNode):
2025-03-21 01:47:18 -04:00
@classmethod
def define_schema(cls):
return io.Schema(
node_id="PrimitiveInt",
display_name="Int",
category="utils/primitive",
inputs=[
io.Int.Input("value", min=-sys.maxsize, max=sys.maxsize, control_after_generate=True),
],
outputs=[io.Int.Output()],
)
2025-03-21 01:47:18 -04:00
@classmethod
def execute(cls, value: int) -> io.NodeOutput:
return io.NodeOutput(value)
2025-03-21 01:47:18 -04:00
class Float(io.ComfyNode):
2025-03-21 01:47:18 -04:00
@classmethod
def define_schema(cls):
return io.Schema(
node_id="PrimitiveFloat",
display_name="Float",
category="utils/primitive",
inputs=[
io.Float.Input("value", min=-sys.maxsize, max=sys.maxsize, step=0.1),
],
outputs=[io.Float.Output()],
)
2025-03-21 01:47:18 -04:00
@classmethod
def execute(cls, value: float) -> io.NodeOutput:
return io.NodeOutput(value)
2025-03-21 01:47:18 -04:00
class Boolean(io.ComfyNode):
@classmethod
def define_schema(cls):
return io.Schema(
node_id="PrimitiveBoolean",
display_name="Boolean",
category="utils/primitive",
inputs=[
io.Boolean.Input("value"),
],
outputs=[io.Boolean.Output()],
)
2025-03-21 01:47:18 -04:00
@classmethod
def execute(cls, value: bool) -> io.NodeOutput:
return io.NodeOutput(value)
class PrimitivesExtension(ComfyExtension):
@override
async def get_node_list(self) -> list[type[io.ComfyNode]]:
return [
String,
StringMultiline,
Int,
Float,
Boolean,
]
async def comfy_entrypoint() -> PrimitivesExtension:
return PrimitivesExtension()