4.0 KiB
4.0 KiB
Documentation
- Class name: WAS_Number_Operation
- Category: WAS Suite/Number/Operations
- Output node: False
- Repo Ref: https://github.com/WASasquatch/was-node-suite-comfyui
WAS_Number_Operation节点旨在对两个输入数字执行多种数学运算。它支持加法、减法、除法等操作,为数值计算提供了一种多功能工具。
Input types
Required
- number_a
- 数学运算的第一个操作数,可以是整数或浮点数。它在确定运算结果中起着关键作用。
- Comfy dtype: NUMBER
- Python dtype: Union[int, float]
- number_b
- 数学运算的第二个操作数,也是一个整数或浮点数。它对计算至关重要,并影响最终结果。
- Comfy dtype: NUMBER
- Python dtype: Union[int, float]
Optional
- operation
- 指定要执行的数学运算类型。操作的选择直接影响计算和产生的结果类型。
- Comfy dtype: COMBO['addition', 'subtraction', 'division', 'floor division', 'multiplication', 'exponentiation', 'modulus', 'greater-than', 'greater-than or equals', 'less-than', 'less-than or equals', 'equals', 'does not equal']
- Python dtype: str
Output types
- result
- 数学运算的结果,可以是一个数字、一个浮点值或一个整数,这取决于执行的操作。
- Comfy dtype: COMBO[NUMBER, FLOAT, INT]
- Python dtype: Union[int, float]
Usage tips
- Infra type: CPU
Source code
class WAS_Number_Operation:
def __init__(self):
pass
@classmethod
def INPUT_TYPES(cls):
return {'required': {'number_a': ('NUMBER',), 'number_b': ('NUMBER',), 'operation': (['addition', 'subtraction', 'division', 'floor division', 'multiplication', 'exponentiation', 'modulus', 'greater-than', 'greater-than or equals', 'less-than', 'less-than or equals', 'equals', 'does not equal'],)}}
RETURN_TYPES = ('NUMBER', 'FLOAT', 'INT')
FUNCTION = 'math_operations'
CATEGORY = 'WAS Suite/Number/Operations'
def math_operations(self, number_a, number_b, operation='addition'):
if operation:
if operation == 'addition':
result = number_a + number_b
return (result, result, int(result))
elif operation == 'subtraction':
result = number_a - number_b
return (result, result, int(result))
elif operation == 'division':
result = number_a / number_b
return (result, result, int(result))
elif operation == 'floor division':
result = number_a // number_b
return (result, result, int(result))
elif operation == 'multiplication':
result = number_a * number_b
return (result, result, int(result))
elif operation == 'exponentiation':
result = number_a ** number_b
return (result, result, int(result))
elif operation == 'modulus':
result = number_a % number_b
return (result, result, int(result))
elif operation == 'greater-than':
result = +(number_a > number_b)
return (result, result, int(result))
elif operation == 'greater-than or equals':
result = +(number_a >= number_b)
return (result, result, int(result))
elif operation == 'less-than':
result = +(number_a < number_b)
return (result, result, int(result))
elif operation == 'less-than or equals':
result = +(number_a <= number_b)
return (result, result, int(result))
elif operation == 'equals':
result = +(number_a == number_b)
return (result, result, int(result))
elif operation == 'does not equal':
result = +(number_a != number_b)
return (result, result, int(result))
else:
cstr('Invalid number operation selected.').error.print()
return (number_a, number_a, int(number_a))