77 lines
2.0 KiB
Markdown
77 lines
2.0 KiB
Markdown
# Documentation
|
|
- Class name: NumberCalculator
|
|
- Category: 😺dzNodes/LayerUtility/Data
|
|
- Output node: False
|
|
- Repo Ref: https://github.com/chflame163/ComfyUI_LayerStyle
|
|
|
|
对两个数值进行布尔运算并输出结果*。支持的运算包括==、!=、and、or、xor、not、min、max。
|
|
|
|
* 输入仅支持布尔值、整数和浮点数,强行接入其他数据将导致错误。数值之间的and运算输出较大的数,or运算输出较小的数。
|
|
|
|
# Input types
|
|
## Required
|
|
|
|
- a
|
|
- 输入数值a。
|
|
- Comfy dtype: BOOLEAN, INT, FLOAT
|
|
- Python dtype: bool, int, float
|
|
|
|
- b
|
|
- 输入数值b。
|
|
- Comfy dtype: BOOLEAN, INT, FLOAT
|
|
- Python dtype: bool, int, float
|
|
|
|
- operator
|
|
- 运算符。
|
|
- Comfy dtype: STRING
|
|
- Python dtype: str
|
|
- 可选值: "==", "!=", "and", "or", "xor", "not(a)", "min", "max"
|
|
|
|
# Output types
|
|
|
|
- output
|
|
- 运算结果。
|
|
- Comfy dtype: BOOLEAN
|
|
- Python dtype: bool
|
|
|
|
# Usage tips
|
|
- Infra type: CPU
|
|
|
|
# Source code
|
|
```
|
|
class NumberCalculator:
|
|
def __init__(self):
|
|
pass
|
|
@classmethod
|
|
def INPUT_TYPES(self):
|
|
operator_list = ["+", "-", "*", "/", "**", "//", "%" ]
|
|
return {"required": {
|
|
"a": (any, {}),
|
|
"b": (any, {}),
|
|
"operator": (operator_list,),
|
|
},}
|
|
|
|
RETURN_TYPES = ("INT", "FLOAT",)
|
|
RETURN_NAMES = ("int", "float",)
|
|
FUNCTION = 'number_calculator_node'
|
|
CATEGORY = '😺dzNodes/LayerUtility/Data'
|
|
|
|
def number_calculator_node(self, a, b, operator):
|
|
ret_value = 0
|
|
if operator == "+":
|
|
ret_value = a + b
|
|
if operator == "-":
|
|
ret_value = a - b
|
|
if operator == "*":
|
|
ret_value = a * b
|
|
if operator == "/":
|
|
ret_value = a / b
|
|
if operator == "**":
|
|
ret_value = a ** b
|
|
if operator == "//":
|
|
ret_value = a // b
|
|
if operator == "%":
|
|
ret_value = a % b
|
|
|
|
return (int(ret_value), float(ret_value),)
|
|
``` |