9d57b8afd8
Allow FLOAT and INT types to support negative numbers. Caps the numbers at the user's own system min and max.
82 lines
1.9 KiB
Python
82 lines
1.9 KiB
Python
# Primitive nodes that are evaluated at backend.
|
|
from __future__ import annotations
|
|
|
|
import sys
|
|
|
|
from comfy.comfy_types.node_typing import ComfyNodeABC, InputTypeDict, IO
|
|
|
|
|
|
class String(ComfyNodeABC):
|
|
@classmethod
|
|
def INPUT_TYPES(cls) -> InputTypeDict:
|
|
return {
|
|
"required": {"value": (IO.STRING, {})},
|
|
}
|
|
|
|
RETURN_TYPES = (IO.STRING,)
|
|
FUNCTION = "execute"
|
|
CATEGORY = "utils/primitive"
|
|
|
|
def execute(self, value: str) -> tuple[str]:
|
|
return (value,)
|
|
|
|
|
|
class Int(ComfyNodeABC):
|
|
@classmethod
|
|
def INPUT_TYPES(cls) -> InputTypeDict:
|
|
return {
|
|
"required": {"value": (IO.INT, {"min": -sys.maxsize, "max": sys.maxsize, "control_after_generate": True})},
|
|
}
|
|
|
|
RETURN_TYPES = (IO.INT,)
|
|
FUNCTION = "execute"
|
|
CATEGORY = "utils/primitive"
|
|
|
|
def execute(self, value: int) -> tuple[int]:
|
|
return (value,)
|
|
|
|
|
|
class Float(ComfyNodeABC):
|
|
@classmethod
|
|
def INPUT_TYPES(cls) -> InputTypeDict:
|
|
return {
|
|
"required": {"value": (IO.FLOAT, {"min": -sys.maxsize, "max": sys.maxsize})},
|
|
}
|
|
|
|
RETURN_TYPES = (IO.FLOAT,)
|
|
FUNCTION = "execute"
|
|
CATEGORY = "utils/primitive"
|
|
|
|
def execute(self, value: float) -> tuple[float]:
|
|
return (value,)
|
|
|
|
|
|
class Boolean(ComfyNodeABC):
|
|
@classmethod
|
|
def INPUT_TYPES(cls) -> InputTypeDict:
|
|
return {
|
|
"required": {"value": (IO.BOOLEAN, {})},
|
|
}
|
|
|
|
RETURN_TYPES = (IO.BOOLEAN,)
|
|
FUNCTION = "execute"
|
|
CATEGORY = "utils/primitive"
|
|
|
|
def execute(self, value: bool) -> tuple[bool]:
|
|
return (value,)
|
|
|
|
|
|
NODE_CLASS_MAPPINGS = {
|
|
"PrimitiveString": String,
|
|
"PrimitiveInt": Int,
|
|
"PrimitiveFloat": Float,
|
|
"PrimitiveBoolean": Boolean,
|
|
}
|
|
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
"PrimitiveString": "String",
|
|
"PrimitiveInt": "Int",
|
|
"PrimitiveFloat": "Float",
|
|
"PrimitiveBoolean": "Boolean",
|
|
}
|