Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
Python Linting / Run Pylint (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.10, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.11, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.12, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-unix-nightly (12.1, , linux, 3.11, [self-hosted Linux], nightly) (push) Has been cancelled
Execution Tests / test (macos-latest) (push) Has been cancelled
Execution Tests / test (ubuntu-latest) (push) Has been cancelled
Execution Tests / test (windows-latest) (push) Has been cancelled
Test server launches without errors / test (push) Has been cancelled
Unit Tests / test (macos-latest) (push) Has been cancelled
Unit Tests / test (ubuntu-latest) (push) Has been cancelled
Unit Tests / test (windows-2022) (push) Has been cancelled
Includes 30 custom nodes committed directly, 7 Civitai-exclusive loras stored via Git LFS, and a setup script that installs all dependencies and downloads HuggingFace-hosted models on vast.ai. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
60 lines
1.5 KiB
Python
60 lines
1.5 KiB
Python
from typing import Any, Callable, Mapping
|
|
|
|
DEFAULT_BOOL = ("BOOLEAN", {"default": False})
|
|
|
|
|
|
BOOL_UNARY_OPERATIONS: Mapping[str, Callable[[bool], bool]] = {
|
|
"Not": lambda a: not a,
|
|
}
|
|
|
|
BOOL_BINARY_OPERATIONS: Mapping[str, Callable[[bool, bool], bool]] = {
|
|
"Nor": lambda a, b: not (a or b),
|
|
"Xor": lambda a, b: a ^ b,
|
|
"Nand": lambda a, b: not (a and b),
|
|
"And": lambda a, b: a and b,
|
|
"Xnor": lambda a, b: not (a ^ b),
|
|
"Or": lambda a, b: a or b,
|
|
"Eq": lambda a, b: a == b,
|
|
"Neq": lambda a, b: a != b,
|
|
}
|
|
|
|
|
|
class BoolUnaryOperation:
|
|
@classmethod
|
|
def INPUT_TYPES(cls) -> Mapping[str, Any]:
|
|
return {
|
|
"required": {"op": (list(BOOL_UNARY_OPERATIONS.keys()),), "a": DEFAULT_BOOL}
|
|
}
|
|
|
|
RETURN_TYPES = ("BOOLEAN",)
|
|
FUNCTION = "op"
|
|
CATEGORY = "math/bool"
|
|
|
|
def op(self, op: str, a: bool) -> tuple[bool]:
|
|
return (BOOL_UNARY_OPERATIONS[op](a),)
|
|
|
|
|
|
class BoolBinaryOperation:
|
|
@classmethod
|
|
def INPUT_TYPES(cls) -> Mapping[str, Any]:
|
|
return {
|
|
"required": {
|
|
"op": (list(BOOL_BINARY_OPERATIONS.keys()),),
|
|
"a": DEFAULT_BOOL,
|
|
"b": DEFAULT_BOOL,
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("BOOLEAN",)
|
|
FUNCTION = "op"
|
|
CATEGORY = "math/bool"
|
|
|
|
def op(self, op: str, a: bool, b: bool) -> tuple[bool]:
|
|
return (BOOL_BINARY_OPERATIONS[op](a, b),)
|
|
|
|
|
|
NODE_CLASS_MAPPINGS = {
|
|
"CM_BoolUnaryOperation": BoolUnaryOperation,
|
|
"CM_BoolBinaryOperation": BoolBinaryOperation,
|
|
}
|