ComfyMath 插件完全教程
1. 插件简介
插件地址: https://github.com/evanspearman/ComfyMath
这个插件就像给你的 ComfyUI 添加了一个超级强大的计算器工具箱!它专门提供各种数学计算功能,让你可以在工作流程中进行复杂的数学运算。
这个插件能给我们带来什么效果?
- 提供各种数学计算功能(就像科学计算器)
- 支持布尔逻辑运算(就像电路开关控制)
- 提供整数和小数的各种运算(加减乘除、三角函数等)
- 支持向量计算(就像3D坐标运算)
- 提供数据类型转换功能(就像格式转换器)
- 内置常用分辨率选择器(专为SDXL优化)
2. 如何安装
方法一:通过 ComfyUI Manager 安装(推荐)
- 打开 ComfyUI Manager
- 搜索 "ComfyMath"
- 点击安装即可
方法二:手动安装
- 打开你的 ComfyUI 安装目录
- 进入
custom_nodes文件夹 - 在命令行中运行:
git clone https://github.com/evanspearman/ComfyMath.git
- 重启 ComfyUI
3. 节点详细解析
3.1 BoolUnaryOperation(布尔单元运算)
这个节点是干嘛的?
就像一个逻辑开关控制器,可以对一个开关状态进行反转操作。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | Not | Not | 就像一个反转开关,把"开"变成"关",把"关"变成"开" | 布尔逻辑非运算 | 输入True会输出False |
| A | a | 开关状态 | False | 就像要处理的开关状态 | 布尔值输入 | 连接其他节点的开关输出 |
3.2 BoolBinaryOperation(布尔双元运算)
这个节点是干嘛的?
就像一个双开关控制器,可以把两个开关按照不同的逻辑规则组合起来。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | 多种选项 | And | 就像选择两个开关的组合方式 | 布尔逻辑运算类型 | And表示两个都开才输出开 |
| A | a | 开关状态 | False | 就像第一个开关的状态 | 第一个布尔值 | 连接第一个开关节点 |
| B | b | 开关状态 | False | 就像第二个开关的状态 | 第二个布尔值 | 连接第二个开关节点 |
可选的运算类型:
- And:两个都开才输出开(就像串联开关)
- Or:任意一个开就输出开(就像并联开关)
- Xor:只有一个开才输出开(就像互斥开关)
- Nand:两个都开时输出关(And的反向)
- Nor:两个都关才输出开(Or的反向)
- Xnor:两个状态相同才输出开(Xor的反向)
- Eq:两个状态相等时输出开
- Neq:两个状态不等时输出开
3.3 IntUnaryOperation(整数单元运算)
这个节点是干嘛的?
就像一个专门处理整数的单功能计算器,可以对一个整数进行各种运算。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | 多种选项 | Abs | 就像选择要对数字做什么运算 | 整数单元运算类型 | Abs表示取绝对值 |
| A | a | 整数 | 0 | 就像要计算的数字 | 整数输入值 | 输入-5,选择Abs会得到5 |
可选的运算类型:
- Abs:取绝对值(就像去掉负号)
- Neg:取相反数(就像加上负号)
- Inc:加1(就像计数器加一)
- Dec:减1(就像计数器减一)
- Sqr:平方(就像数字乘以自己)
- Cube:立方(就像数字乘以自己两次)
- Not:按位取反(就像二进制翻转)
- Factorial:阶乘(就像1×2×3×...×n)
3.4 IntUnaryCondition(整数单元条件判断)
这个节点是干嘛的?
就像一个数字检查器,可以检查一个整数是否符合某种条件。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | 多种选项 | IsZero | 就像选择要检查什么条件 | 整数条件判断类型 | IsZero检查是否为0 |
| A | a | 整数 | 0 | 就像要检查的数字 | 整数输入值 | 输入0,选择IsZero会返回True |
可选的条件类型:
- IsZero:是否为0
- IsNonZero:是否不为0
- IsPositive:是否为正数
- IsNegative:是否为负数
- IsEven:是否为偶数
- IsOdd:是否为奇数
3.5 IntBinaryOperation(整数双元运算)
这个节点是干嘛的?
就像一个双输入计算器,可以对两个整数进行各种运算。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | 多种选项 | Add | 就像选择两个数字要做什么运算 | 整数双元运算类型 | Add表示加法 |
| A | a | 整数 | 0 | 就像第一个数字 | 第一个整数输入 | 输入5 |
| B | b | 整数 | 0 | 就像第二个数字 | 第二个整数输入 | 输入3,Add运算得到8 |
可选的运算类型:
- Add:加法(5+3=8)
- Sub:减法(5-3=2)
- Mul:乘法(5×3=15)
- Div:整数除法(5÷3=1)
- Mod:取余数(5÷3余2)
- Pow:乘方(5³=125)
- Max:取最大值(max(5,3)=5)
- Min:取最小值(min(5,3)=3)
- And/Or/Xor:按位运算(二进制操作)
- Shl/Shr:左移/右移(二进制位移)
3.6 IntBinaryCondition(整数双元条件判断)
这个节点是干嘛的?
就像一个数字比较器,可以比较两个整数的大小关系。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | 多种选项 | Eq | 就像选择要比较什么关系 | 整数比较运算类型 | Eq表示相等比较 |
| A | a | 整数 | 0 | 就像第一个要比较的数字 | 第一个整数输入 | 输入5 |
| B | b | 整数 | 0 | 就像第二个要比较的数字 | 第二个整数输入 | 输入5,Eq比较返回True |
可选的比较类型:
- Eq:相等(5==5为True)
- Neq:不相等(5!=3为True)
- Gt:大于(5>3为True)
- Lt:小于(3<5为True)
- Geq:大于等于(5>=5为True)
- Leq:小于等于(3<=5为True)
3.7 FloatUnaryOperation(小数单元运算)
这个节点是干嘛的?
就像一个科学计算器,可以对小数进行各种高级数学运算。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | 多种选项 | Sin | 就像选择要对数字做什么高级运算 | 浮点数单元运算类型 | Sin表示正弦函数 |
| A | a | 小数 | 0.0 | 就像要计算的小数 | 浮点数输入值 | 输入1.57,Sin运算约等于1 |
可选的运算类型(超多选择):
- 基础运算:Neg(取负)、Inc(加1)、Dec(减1)、Abs(绝对值)
- 幂运算:Sqr(平方)、Cube(立方)、Sqrt(开方)、Pow(乘方)
- 指数对数:Exp(e的x次方)、Ln(自然对数)、Log10(常用对数)、Log2(二进制对数)
- 三角函数:Sin(正弦)、Cos(余弦)、Tan(正切)
- 反三角函数:Asin、Acos、Atan
- 双曲函数:Sinh、Cosh、Tanh、Asinh、Acosh、Atanh
- 取整函数:Round(四舍五入)、Floor(向下取整)、Ceil(向上取整)、Trunc(截断)
- 特殊函数:Erf(误差函数)、Gamma(伽马函数)
- 角度转换:Radians(度转弧度)、Degrees(弧度转度)
3.8 FloatUnaryCondition(小数单元条件判断)
这个节点是干嘛的?
就像一个小数检查器,可以检查小数是否符合各种特殊条件。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | 多种选项 | IsZero | 就像选择要检查小数的什么特性 | 浮点数条件判断类型 | IsZero检查是否为0.0 |
| A | a | 小数 | 0.0 | 就像要检查的小数 | 浮点数输入值 | 输入0.0,IsZero返回True |
可选的条件类型:
- 基础判断:IsZero、IsPositive、IsNegative、IsNonZero
- 特殊值判断:IsNaN(是否为非数字)、IsFinite(是否有限)、IsInfinite(是否无穷)
- 无穷判断:IsPositiveInfinity、IsNegativeInfinity
- 奇偶判断:IsEven、IsOdd
3.9 FloatBinaryOperation(小数双元运算)
这个节点是干嘛的?
就像一个双输入科学计算器,可以对两个小数进行各种运算。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | 多种选项 | Add | 就像选择两个小数要做什么运算 | 浮点数双元运算类型 | Add表示加法 |
| A | a | 小数 | 0.0 | 就像第一个小数 | 第一个浮点数输入 | 输入3.14 |
| B | b | 小数 | 0.0 | 就像第二个小数 | 第二个浮点数输入 | 输入2.0,Add得到5.14 |
可选的运算类型:
- 基础运算:Add(加)、Sub(减)、Mul(乘)、Div(除)
- 高级运算:Mod(取余)、Pow(乘方)、FloorDiv(整数除法)
- 比较运算:Max(最大值)、Min(最小值)
- 特殊函数:Log(以b为底a的对数)、Atan2(双参数反正切)
3.10 FloatBinaryCondition(小数双元条件判断)
这个节点是干嘛的?
就像一个小数比较器,可以比较两个小数的大小关系。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | 多种选项 | Eq | 就像选择要比较什么关系 | 浮点数比较运算类型 | Eq表示相等比较 |
| A | a | 小数 | 0.0 | 就像第一个要比较的小数 | 第一个浮点数输入 | 输入3.14 |
| B | b | 小数 | 0.0 | 就像第二个要比较的小数 | 第二个浮点数输入 | 输入3.14,Eq返回True |
可选的比较类型:
- Eq:相等
- Neq:不相等
- Gt:大于
- Gte:大于等于
- Lt:小于
- Lte:小于等于
3.11 NumberUnaryOperation(数字单元运算)
这个节点是干嘛的?
就像一个通用数字处理器,可以接受整数或小数,并进行各种运算。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | 多种选项 | Abs | 就像选择要对数字做什么运算 | 数字单元运算类型 | 与FloatUnaryOperation相同 |
| A | a | 数字 | 0.0 | 就像要处理的数字(可以是整数或小数) | 数字输入值 | 可以输入5或5.5 |
注:运算类型与FloatUnaryOperation完全相同
3.12 NumberUnaryCondition(数字单元条件判断)
这个节点是干嘛的?
就像一个通用数字检查器,可以检查任何数字是否符合条件。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | 多种选项 | IsZero | 就像选择要检查数字的什么特性 | 数字条件判断类型 | 与FloatUnaryCondition相同 |
| A | a | 数字 | 0.0 | 就像要检查的数字 | 数字输入值 | 可以输入整数或小数 |
注:条件类型与FloatUnaryCondition完全相同
3.13 NumberBinaryOperation(数字双元运算)
这个节点是干嘛的?
就像一个通用双输入计算器,可以对任意两个数字进行运算。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | 多种选项 | Add | 就像选择两个数字要做什么运算 | 数字双元运算类型 | 与FloatBinaryOperation相同 |
| A | a | 数字 | 0.0 | 就像第一个数字 | 第一个数字输入 | 可以是整数或小数 |
| B | b | 数字 | 0.0 | 就像第二个数字 | 第二个数字输入 | 可以是整数或小数 |
注:运算类型与FloatBinaryOperation完全相同
3.14 NumberBinaryCondition(数字双元条件判断)
这个节点是干嘛的?
就像一个通用数字比较器,可以比较任意两个数字。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | 多种选项 | Eq | 就像选择要比较什么关系 | 数字比较运算类型 | 与FloatBinaryCondition相同 |
| A | a | 数字 | 0.0 | 就像第一个要比较的数字 | 第一个数字输入 | 可以是整数或小数 |
| B | b | 数字 | 0.0 | 就像第二个要比较的数字 | 第二个数字输入 | 可以是整数或小数 |
注:比较类型与FloatBinaryCondition完全相同
继续下一部分...
3.15 Vec2UnaryOperation(二维向量单元运算)
这个节点是干嘛的?
就像一个2D坐标处理器,可以对一个二维坐标点进行各种运算。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | Neg/Normalize | Normalize | 就像选择对坐标点做什么处理 | 二维向量单元运算 | Normalize让向量长度变为1 |
| A | a | 二维坐标 | (0.0, 0.0) | 就像一个2D坐标点(x, y) | 二维向量输入 | 输入(3.0, 4.0) |
可选的运算类型:
- Neg:取相反向量(就像坐标点关于原点对称)
- Normalize:标准化向量(就像把向量长度调整为1,但方向不变)
3.16 Vec2ToScalarUnaryOperation(二维向量转标量单元运算)
这个节点是干嘛的?
就像一个2D坐标测量器,可以测量坐标点的某些属性并输出一个数字。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | Norm | Norm | 就像选择要测量坐标点的什么属性 | 向量到标量运算 | Norm计算向量长度 |
| A | a | 二维坐标 | (0.0, 0.0) | 就像要测量的2D坐标点 | 二维向量输入 | 输入(3.0, 4.0),Norm输出5.0 |
可选的运算类型:
- Norm:计算向量长度(就像测量从原点到这个坐标点的距离)
3.17 Vec2UnaryCondition(二维向量单元条件判断)
这个节点是干嘛的?
就像一个2D坐标检查器,可以检查坐标点是否符合某些条件。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | 多种选项 | IsZero | 就像选择要检查坐标点的什么特性 | 二维向量条件判断 | IsZero检查是否为原点 |
| A | a | 二维坐标 | (0.0, 0.0) | 就像要检查的2D坐标点 | 二维向量输入 | 输入(0.0, 0.0),IsZero返回True |
可选的条件类型:
- IsZero:是否为零向量(原点)
- IsNotZero:是否不为零向量
- IsNormalized:是否为单位向量(长度为1)
- IsNotNormalized:是否不为单位向量
3.18 Vec2BinaryOperation(二维向量双元运算)
这个节点是干嘛的?
就像一个2D坐标计算器,可以对两个坐标点进行运算。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | Add/Sub/Cross | Add | 就像选择两个坐标点要做什么运算 | 二维向量双元运算 | Add表示坐标相加 |
| A | a | 二维坐标 | (0.0, 0.0) | 就像第一个坐标点 | 第一个二维向量 | 输入(1.0, 2.0) |
| B | b | 二维坐标 | (0.0, 0.0) | 就像第二个坐标点 | 第二个二维向量 | 输入(3.0, 4.0),Add得到(4.0, 6.0) |
可选的运算类型:
- Add:向量相加(坐标分别相加)
- Sub:向量相减(坐标分别相减)
- Cross:叉积运算(计算两向量的垂直程度)
3.19 Vec2ToScalarBinaryOperation(二维向量转标量双元运算)
这个节点是干嘛的?
就像一个2D坐标关系测量器,可以测量两个坐标点之间的关系并输出数字。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | Dot/Distance | Distance | 就像选择要测量两个坐标点的什么关系 | 向量到标量双元运算 | Distance计算两点距离 |
| A | a | 二维坐标 | (0.0, 0.0) | 就像第一个坐标点 | 第一个二维向量 | 输入(0.0, 0.0) |
| B | b | 二维坐标 | (0.0, 0.0) | 就像第二个坐标点 | 第二个二维向量 | 输入(3.0, 4.0),Distance输出5.0 |
可选的运算类型:
- Dot:点积运算(测量两向量的相似程度)
- Distance:距离计算(测量两点之间的直线距离)
3.20 Vec2BinaryCondition(二维向量双元条件判断)
这个节点是干嘛的?
就像一个2D坐标比较器,可以比较两个坐标点是否相等。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | Eq/Neq | Eq | 就像选择要比较两个坐标点的什么关系 | 二维向量比较运算 | Eq检查两点是否相同 |
| A | a | 二维坐标 | (0.0, 0.0) | 就像第一个坐标点 | 第一个二维向量 | 输入(1.0, 2.0) |
| B | b | 二维坐标 | (0.0, 0.0) | 就像第二个坐标点 | 第二个二维向量 | 输入(1.0, 2.0),Eq返回True |
可选的比较类型:
- Eq:相等(两个坐标点完全相同)
- Neq:不相等(两个坐标点不同)
3.21 Vec2ScalarOperation(二维向量标量运算)
这个节点是干嘛的?
就像一个2D坐标缩放器,可以用一个数字来缩放坐标点。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Op | op | Mul/Div | Mul | 就像选择用数字对坐标做什么运算 | 向量标量运算类型 | Mul表示缩放 |
| A | a | 二维坐标 | (0.0, 0.0) | 就像要处理的坐标点 | 二维向量输入 | 输入(2.0, 3.0) |
| B | b | 小数 | 0.0 | 就像缩放倍数 | 标量输入 | 输入2.0,Mul得到(4.0, 6.0) |
可选的运算类型:
- Mul:乘法(放大坐标)
- Div:除法(缩小坐标)
3.22-3.35 Vec3系列节点(三维向量运算)
这些节点是干嘛的?
就像Vec2系列的3D版本,处理三维坐标点(x, y, z)。功能和Vec2完全相同,只是多了一个z坐标。
包含以下节点:
- Vec3UnaryOperation(三维向量单元运算)
- Vec3ToScalarUnaryOperation(三维向量转标量单元运算)
- Vec3UnaryCondition(三维向量单元条件判断)
- Vec3BinaryOperation(三维向量双元运算)
- Vec3ToScalarBinaryOperation(三维向量转标量双元运算)
- Vec3BinaryCondition(三维向量双元条件判断)
- Vec3ScalarOperation(三维向量标量运算)
注:所有参数和功能与Vec2系列完全相同,只是处理的是三维坐标(x, y, z)
3.36-3.42 Vec4系列节点(四维向量运算)
这些节点是干嘛的?
就像Vec2系列的4D版本,处理四维坐标点(x, y, z, w)。功能和Vec2完全相同,只是多了z和w坐标。
包含以下节点:
- Vec4UnaryOperation(四维向量单元运算)
- Vec4ToScalarUnaryOperation(四维向量转标量单元运算)
- Vec4UnaryCondition(四维向量单元条件判断)
- Vec4BinaryOperation(四维向量双元运算)
- Vec4ToScalarBinaryOperation(四维向量转标量双元运算)
- Vec4BinaryCondition(四维向量双元条件判断)
- Vec4ScalarOperation(四维向量标量运算)
注:所有参数和功能与Vec2系列完全相同,只是处理的是四维坐标(x, y, z, w)
3.43 BoolToInt(布尔值转整数)
这个节点是干嘛的?
就像一个开关状态转换器,把开关状态转换成数字。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| A | a | 开关状态 | False | 就像要转换的开关状态 | 布尔值输入 | 输入True会输出1,False输出0 |
3.44 IntToBool(整数转布尔值)
这个节点是干嘛的?
就像一个数字状态转换器,把数字转换成开关状态。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| A | a | 整数 | 0 | 就像要转换的数字 | 整数输入 | 输入0会输出False,非0输出True |
3.45 FloatToInt(小数转整数)
这个节点是干嘛的?
就像一个小数截断器,把小数变成整数。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| A | a | 小数 | 0.0 | 就像要转换的小数 | 浮点数输入 | 输入3.14会输出3(直接截断小数部分) |
3.46 IntToFloat(整数转小数)
这个节点是干嘛的?
就像一个数字格式转换器,把整数变成小数格式。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| A | a | 整数 | 0 | 就像要转换的整数 | 整数输入 | 输入5会输出5.0 |
3.47 ComposeVec2(组合二维向量)
这个节点是干嘛的?
就像一个2D坐标组装器,把两个数字组合成一个坐标点。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| X | x | 小数 | 0.0 | 就像坐标点的横坐标 | X轴坐标值 | 输入3.0 |
| Y | y | 小数 | 0.0 | 就像坐标点的纵坐标 | Y轴坐标值 | 输入4.0,组合成(3.0, 4.0) |
3.48 BreakoutVec2(分解二维向量)
这个节点是干嘛的?
就像一个2D坐标拆分器,把一个坐标点拆分成两个数字。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| A | a | 二维坐标 | (0.0, 0.0) | 就像要拆分的坐标点 | 二维向量输入 | 输入(3.0, 4.0)会输出x=3.0, y=4.0 |
3.49 IntToNumber(整数转数字)
这个节点是干嘛的?
就像一个数字格式转换器,把整数转换成通用数字格式。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| A | a | 整数 | 0 | 就像要转换的整数 | 整数输入 | 输入5会输出5(数字格式) |
3.50 NumberToInt(数字转整数)
这个节点是干嘛的?
就像一个数字截断器,把通用数字转换成整数。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| A | a | 数字 | 0.0 | 就像要转换的数字 | 数字输入 | 输入5.7会输出5 |
3.51 FloatToNumber(小数转数字)
这个节点是干嘛的?
就像一个数字格式转换器,把小数转换成通用数字格式。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| A | a | 小数 | 0.0 | 就像要转换的小数 | 浮点数输入 | 输入3.14会输出3.14(数字格式) |
3.52 NumberToFloat(数字转小数)
这个节点是干嘛的?
就像一个数字格式转换器,把通用数字转换成小数格式。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| A | a | 数字 | 0.0 | 就像要转换的数字 | 数字输入 | 输入5会输出5.0 |
3.53 FillVec2(填充二维向量)
这个节点是干嘛的?
就像一个2D坐标复制器,用一个数字填充成相同的x和y坐标。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| A | a | 小数 | 0.0 | 就像要复制的数字 | 浮点数输入 | 输入3.0会输出(3.0, 3.0) |
3.54 ComposeVec3(组合三维向量)
这个节点是干嘛的?
就像一个3D坐标组装器,把三个数字组合成一个三维坐标点。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| X | x | 小数 | 0.0 | 就像坐标点的X坐标 | X轴坐标值 | 输入1.0 |
| Y | y | 小数 | 0.0 | 就像坐标点的Y坐标 | Y轴坐标值 | 输入2.0 |
| Z | z | 小数 | 0.0 | 就像坐标点的Z坐标 | Z轴坐标值 | 输入3.0,组合成(1.0, 2.0, 3.0) |
3.55 FillVec3(填充三维向量)
这个节点是干嘛的?
就像一个3D坐标复制器,用一个数字填充成相同的x、y、z坐标。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| A | a | 小数 | 0.0 | 就像要复制的数字 | 浮点数输入 | 输入2.0会输出(2.0, 2.0, 2.0) |
3.56 BreakoutVec3(分解三维向量)
这个节点是干嘛的?
就像一个3D坐标拆分器,把一个三维坐标点拆分成三个数字。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| A | a | 三维坐标 | (0.0, 0.0, 0.0) | 就像要拆分的坐标点 | 三维向量输入 | 输入(1.0, 2.0, 3.0)会输出x=1.0, y=2.0, z=3.0 |
3.57 ComposeVec4(组合四维向量)
这个节点是干嘛的?
就像一个4D坐标组装器,把四个数字组合成一个四维坐标点。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| X | x | 小数 | 0.0 | 就像坐标点的X坐标 | X轴坐标值 | 输入1.0 |
| Y | y | 小数 | 0.0 | 就像坐标点的Y坐标 | Y轴坐标值 | 输入2.0 |
| Z | z | 小数 | 0.0 | 就像坐标点的Z坐标 | Z轴坐标值 | 输入3.0 |
| W | w | 小数 | 0.0 | 就像坐标点的W坐标 | W轴坐标值 | 输入4.0,组合成(1.0, 2.0, 3.0, 4.0) |
3.58 FillVec4(填充四维向量)
这个节点是干嘛的?
就像一个4D坐标复制器,用一个数字填充成相同的x、y、z、w坐标。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| A | a | 小数 | 0.0 | 就像要复制的数字 | 浮点数输入 | 输入1.5会输出(1.5, 1.5, 1.5, 1.5) |
3.59 BreakoutVec4(分解四维向量)
这个节点是干嘛的?
就像一个4D坐标拆分器,把一个四维坐标点拆分成四个数字。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| A | a | 四维坐标 | (0.0, 0.0, 0.0, 0.0) | 就像要拆分的坐标点 | 四维向量输入 | 输入(1.0, 2.0, 3.0, 4.0)会输出x=1.0, y=2.0, z=3.0, w=4.0 |
3.60 SDXLResolution(SDXL分辨率选择器)
这个节点是干嘛的?
就像一个专门为SDXL模型设计的分辨率菜单,提供最适合的图片尺寸选择。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Resolution | resolution | 多种选项 | 1024x1024 | 就像从菜单中选择图片尺寸 | SDXL支持的分辨率选项 | 选择1024x1024会输出宽1024,高1024 |
可选的分辨率:
- 1024x1024(正方形)
- 1152x896(横向)
- 896x1152(竖向)
- 1216x832(宽屏)
- 832x1216(高屏)
- 1344x768(超宽屏)
- 768x1344(超高屏)
- 1536x640(极宽屏)
- 640x1536(极高屏)
3.61 NearestSDXLResolution(最近SDXL分辨率)
这个节点是干嘛的?
就像一个智能分辨率推荐器,根据输入图片自动选择最合适的SDXL分辨率。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Image | image | 图片 | - | 就像要分析的参考图片 | 图像输入 | 输入一张800x600的图片,会推荐最接近的SDXL分辨率 |
3.62 SDXLExtendedResolution(SDXL扩展分辨率选择器)
这个节点是干嘛的?
就像一个增强版的SDXL分辨率菜单,提供更多分辨率选择,包括超宽屏和超高屏格式。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Resolution | resolution | 多种选项 | 1024x1024 | 就像从扩展菜单中选择图片尺寸 | SDXL扩展分辨率选项 | 包含更多比例选择,如2048x512等 |
可选的扩展分辨率(部分):
- 512x2048(超高屏)
- 640x1536(高屏)
- 768x1344(标准高屏)
- 1024x1024(正方形)
- 1344x768(标准宽屏)
- 1536x640(宽屏)
- 2048x512(超宽屏)
3.63 NearestSDXLExtendedResolution(最近SDXL扩展分辨率)
这个节点是干嘛的?
就像一个智能扩展分辨率推荐器,根据输入图片从扩展分辨率列表中自动选择最合适的。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| Image | image | 图片 | - | 就像要分析的参考图片 | 图像输入 | 输入图片后会从扩展分辨率列表中推荐最匹配的 |
4. 使用技巧和建议
4.1 数学运算节点使用技巧
- 整数运算:适合处理步数、种子值等离散数值
- 小数运算:适合处理强度、比例等连续数值
- Number类型:当你不确定输入是整数还是小数时使用
4.2 向量运算应用场景
- Vec2:适合处理2D坐标、图片尺寸、UV坐标等
- Vec3:适合处理3D坐标、RGB颜色值等
- Vec4:适合处理RGBA颜色值、四元数等
4.3 逻辑运算实用技巧
- And运算:用于多条件同时满足的判断
- Or运算:用于多选一的条件判断
- Xor运算:用于互斥条件的判断
4.4 类型转换最佳实践
- 先确定目标节点需要什么类型的输入
- 使用对应的转换节点进行类型匹配
- 注意小数转整数会丢失精度
4.5 分辨率选择建议
- 使用SDXLResolution获得标准分辨率
- 使用NearestSDXLResolution自动匹配最佳分辨率
- 扩展版本提供更多分辨率选择
5. 常见问题解答
Q1: 为什么我的数学运算结果不对?
A: 检查输入的数据类型是否正确,确保整数运算使用整数节点,小数运算使用小数节点。
Q2: 向量运算出现错误怎么办?
A: 确认向量的维度匹配,Vec2只能与Vec2运算,Vec3只能与Vec3运算。
Q3: 类型转换后数据丢失怎么办?
A: 这是正常现象,比如小数转整数会截断小数部分,这是设计行为。
Q4: 三角函数结果不对?
A: 检查输入的角度单位,Sin/Cos等函数使用弧度制,如需度数请先用Radians转换。
Q5: 布尔逻辑运算结果不符合预期?
A: 仔细检查逻辑运算的定义,比如Nand是And的反向,Xor是异或运算。
6. 总结
ComfyMath 插件提供了53个强大的数学运算节点,涵盖了从基础的加减乘除到高级的向量运算、三角函数等各个方面。这些节点就像给你的ComfyUI添加了一个完整的数学工具箱,让你可以在工作流程中进行各种复杂的数值计算。
主要特色:
- 完整的数学运算:支持整数、小数、向量等多种数据类型
- 丰富的函数库:包含三角函数、对数函数、特殊函数等
- 灵活的类型转换:支持各种数据类型之间的转换
- 向量运算支持:支持2D、3D、4D向量的各种运算
- 逻辑运算完备:提供完整的布尔逻辑运算
- SDXL优化:内置SDXL最佳分辨率选择
无论你是需要简单的数值计算,还是复杂的向量运算,这个插件都能满足你的需求。建议从基础的加减乘除开始学习,逐步掌握更高级的功能。记住,数学是AI艺术创作的基础工具!