diff --git a/comfy_extras/nodes_constant_values.py b/comfy_extras/nodes_constant_values.py new file mode 100644 index 000000000..259d23697 --- /dev/null +++ b/comfy_extras/nodes_constant_values.py @@ -0,0 +1,107 @@ +class _CONSTANT_BASE: + def __init__(self): + pass + + @classmethod + def INPUT_TYPES(s) -> dict: + raise NotImplementedError + + RETURN_TYPES: tuple = () + RETURN_NAMES: tuple = () + + CATEGORY: str = "constants" + + FUNCTION: str = "process" + + OUTPUT_NODE: bool = False + + def process(self, value) -> tuple: + return (value,) + + +class ConstantFloat(_CONSTANT_BASE): + @classmethod + def INPUT_TYPES(s) -> dict: + return { + "required": { + "value": ("FLOAT", {"default": 0.0}) + } + } + + RETURN_TYPES = ("FLOAT",) + RETURN_NAMES = ("float",) + + +class ConstantInteger(_CONSTANT_BASE): + @classmethod + def INPUT_TYPES(s) -> dict: + return { + "required": { + "value": ("INT", {"default": 0}) + } + } + + RETURN_TYPES = ("INT",) + RETURN_NAMES = ("int",) + + +class ConstantString(_CONSTANT_BASE): + @classmethod + def INPUT_TYPES(s) -> dict: + return { + "required" : { + "value": ("STRING", {"multiline": False, "dynamicPrompts": True}) + } + } + + RETURN_TYPES = ("STRING",) + RETURN_NAMES = ("string",) + + +class ConstantStringMultiline(_CONSTANT_BASE): + @classmethod + def INPUT_TYPES(s) -> dict: + return { + "required": { + "value": ("STRING", {"multiline": True, "dynamicPrompts": True}) + } + } + + RETURN_TYPES = ("STRING",) + RETURN_NAMES = ("string",) + + +class ConstantNonDynamicString(_CONSTANT_BASE): + @classmethod + def INPUT_TYPES(s) -> dict: + return { + "required" : { + "value": ("STRING", {"multiline": False, "dynamicPrompts": False}) + } + } + + RETURN_TYPES = ("STRING",) + RETURN_NAMES = ("string",) + + +class ConstantNonDynamicStringMultiline(_CONSTANT_BASE): + @classmethod + def INPUT_TYPES(s) -> dict: + return { + "required": { + "value": ("STRING", {"multiline": True, "dynamicPrompts": False}) + } + } + + RETURN_TYPES = ("STRING",) + RETURN_NAMES = ("string",) + + +NODE_CLASS_MAPPINGS = { + "ConstantFloat": ConstantFloat, + "ConstantInteger": ConstantInteger, + "ConstantString": ConstantString, + "ConstantStringMultiline": ConstantStringMultiline, + "ConstantNonDynamicString": ConstantNonDynamicString, + "ConstantNonDynamicStringMultiline": ConstantNonDynamicStringMultiline +} diff --git a/nodes.py b/nodes.py index 15a783529..7b10d3d7e 100644 --- a/nodes.py +++ b/nodes.py @@ -2111,6 +2111,7 @@ def init_builtin_extra_nodes(): "nodes_flux.py", "nodes_lora_extract.py", "nodes_torch_compile.py", + "nodes_constant_values.py", ] import_failed = []