ComfyUI Various 插件完全教程
1. 插件简介
ComfyUI Various 是一个功能丰富的 ComfyUI 插件包,包含了 99 个实用节点。这个插件就像一个工具箱,里面装满了各种小工具,能帮你处理图片、文字、数字等各种任务。
插件地址: https://github.com/jamesWalker55/comfyui-various
主要功能:
- 图片处理:加载、保存、调整大小、翻转等
- 数字计算:加减乘除、格式转换等
- 文字处理:拼接、替换、分割等
- 序列处理:批量加载图片、处理图片序列
- 颜色调整:对比度、饱和度、色阶调整
- 音频处理:加载、混合、保存音频文件
2. 如何安装
方法一:单独下载文件(推荐)
- 进入 ComfyUI/custom_nodes 文件夹
- 从 GitHub 下载你需要的 .py 文件
- 重启 ComfyUI
方法二:完整克隆
cd ComfyUI/custom_nodes
git clone https://github.com/jamesWalker55/comfyui-various
注意: 如果要使用 RAFT 相关节点,需要安装额外依赖:
pip install OpenEXR
3. 节点详细解析
3.1 图片加载节点
JWImageLoadRGB - 加载RGB图片
这个节点就像一个图片阅读器,能把电脑里的图片文件读取到ComfyUI里使用。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| path | path | 文本 | ./image.png | 图片文件的位置路径 | 图片文件的绝对或相对路径 | 输入 "D:/my_photo.jpg" 加载桌面图片 |
JWImageLoadRGBA - 加载带透明度的图片
这个节点能读取带透明背景的图片,比如PNG格式的图标。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| path | path | 文本 | ./image.png | 图片文件的位置路径 | 支持透明通道的图片路径 | 加载PNG图标文件,自动分离颜色和透明度 |
JWLoadImagesFromString - 从文本列表加载多张图片
这个节点就像一个批量图片加载器,你给它一个图片路径清单,它就能一次性加载所有图片。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| paths | paths | 多行文本 | ./frame000001.png ./frame000002.png | 每行一个图片路径 | 换行分隔的图片路径列表 | 制作动画时批量加载帧图片 |
| ignore_missing_images | ignore_missing_images | 选择 | false | 是否跳过不存在的图片 | 遇到缺失文件时的处理方式 | 设为true可以跳过损坏的图片文件 |
JWImageLoadRGBFromClipboard - 从剪贴板加载图片
这个节点能直接读取你复制到剪贴板的图片,就像粘贴功能一样。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 无参数 | - | - | - | 直接读取剪贴板内容 | 获取系统剪贴板中的图像数据 | 截图后直接在ComfyUI中使用 |
JWImageLoadRGBA From Clipboard - 从剪贴板加载带透明度图片
和上面类似,但能保留图片的透明信息。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 无参数 | - | - | - | 读取剪贴板并保留透明度 | 获取剪贴板图像的RGBA通道 | 复制PNG图标后直接使用 |
3.2 图片保存节点
JWImageSaveToPath - 保存图片到指定路径
这个节点就像一个图片保存器,能把处理好的图片保存到电脑的任何位置。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| path | path | 文本 | ./image.png | 保存图片的位置和文件名 | 输出文件的完整路径 | 输入 "D:/output/result.jpg" 保存到桌面 |
| image | image | 图片 | - | 要保存的图片数据 | IMAGE类型的图像张量 | 连接前面节点处理好的图片 |
| overwrite | overwrite | 选择 | true | 是否覆盖同名文件 | 文件存在时的覆盖策略 | 设为false可以避免意外覆盖重要文件 |
3.3 图片基础处理节点
JWImageExtractFromBatch - 从图片组中提取单张图片
这个节点就像从一摞照片中抽出其中一张,用于从多张图片中选择特定的一张。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | 图片组 | - | 一组图片数据 | 批量图像张量 | 连接批量加载的图片 |
| index | index | 整数 | 0 | 要提取的图片序号(从0开始) | 图像在批次中的索引位置 | 输入2提取第3张图片 |
JWImageBatchCount - 获取图片组数量
这个节点就像一个计数器,告诉你一组图片里总共有多少张。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | 图片组 | - | 要计数的图片组 | 批量图像张量 | 用于了解批次中包含多少张图片 |
JWImageResize - 调整图片尺寸
这个节点就像一个尺寸调节器,能把图片变大或变小到你想要的尺寸。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图片 | - | 要调整的图片 | 输入图像张量 | 连接需要改变尺寸的图片 |
| height | height | 整数 | 512 | 新的图片高度(像素) | 目标图像高度 | 设为1024制作高清图片 |
| width | width | 整数 | 512 | 新的图片宽度(像素) | 目标图像宽度 | 设为1024制作高清图片 |
| interpolation_mode | interpolation_mode | 选择 | bicubic | 缩放时的画质处理方式 | 图像插值算法 | bicubic质量最好,nearest速度最快 |
JWImageFlip - 翻转图片
这个节点就像一面镜子,能把图片水平或垂直翻转。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图片 | - | 要翻转的图片 | 输入图像张量 | 连接需要翻转的图片 |
| direction | direction | 选择 | horizontal | 翻转方向 | 图像翻转轴向 | horizontal左右翻转,vertical上下翻转 |
JWImageResizeToSquare - 调整为正方形
这个节点能把任何尺寸的图片变成正方形,就像把长方形照片裁剪成方形头像。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图片 | - | 要处理的图片 | 输入图像张量 | 连接任意尺寸的图片 |
| size | size | 整数 | 512 | 正方形的边长(像素) | 输出正方形图像的尺寸 | 设为1024制作高清正方形图片 |
| interpolation_mode | interpolation_mode | 选择 | bicubic | 缩放时的画质处理方式 | 图像插值算法 | bicubic质量最好 |
JWImageResizeByFactor - 按比例缩放图片
这个节点就像一个放大镜或缩小镜,按倍数来改变图片大小。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图片 | - | 要缩放的图片 | 输入图像张量 | 连接需要缩放的图片 |
| factor | factor | 小数 | 1.0 | 缩放倍数 | 缩放因子 | 2.0放大一倍,0.5缩小一半 |
| interpolation_mode | interpolation_mode | 选择 | bicubic | 缩放时的画质处理方式 | 图像插值算法 | bicubic质量最好 |
JWImageResizeByShorterSide - 按短边调整尺寸
这个节点会保持图片比例,根据短边来调整整体尺寸。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图片 | - | 要调整的图片 | 输入图像张量 | 连接需要调整的图片 |
| size | size | 整数 | 512 | 短边的目标长度 | 较短边的像素尺寸 | 设为1024让短边变成1024像素 |
| interpolation_mode | interpolation_mode | 选择 | bicubic | 缩放时的画质处理方式 | 图像插值算法 | bicubic质量最好 |
JWImageResizeByLongerSide - 按长边调整尺寸
这个节点会保持图片比例,根据长边来调整整体尺寸。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图片 | - | 要调整的图片 | 输入图像张量 | 连接需要调整的图片 |
| size | size | 整数 | 512 | 长边的目标长度 | 较长边的像素尺寸 | 设为1024让长边变成1024像素 |
| interpolation_mode | interpolation_mode | 选择 | bicubic | 缩放时的画质处理方式 | 图像插值算法 | bicubic质量最好 |
JWImageResizeToClosestSDXLResolution - 调整到最接近的SDXL尺寸
这个节点专门为SDXL模型设计,能把图片调整到最适合SDXL的标准尺寸。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图片 | - | 要调整的图片 | 输入图像张量 | 连接需要适配SDXL的图片 |
| interpolation_mode | interpolation_mode | 选择 | bicubic | 缩放时的画质处理方式 | 图像插值算法 | bicubic质量最好 |
3.4 遮罩处理节点
JWMaskResize - 调整遮罩尺寸
这个节点专门用来调整遮罩(黑白图)的大小,就像调整图片尺寸一样。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mask | mask | 遮罩 | - | 要调整的遮罩 | 输入遮罩张量 | 连接需要改变尺寸的遮罩 |
| height | height | 整数 | 512 | 新的遮罩高度 | 目标遮罩高度 | 设为1024制作高清遮罩 |
| width | width | 整数 | 512 | 新的遮罩宽度 | 目标遮罩宽度 | 设为1024制作高清遮罩 |
| interpolation_mode | interpolation_mode | 选择 | bicubic | 缩放时的处理方式 | 插值算法 | bicubic质量最好 |
JWMaskLikeImageSize - 创建与图片同尺寸的遮罩
这个节点能创建一个和指定图片完全一样大小的遮罩。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图片 | - | 参考图片 | 用于确定尺寸的图像 | 连接要匹配尺寸的图片 |
| value | value | 小数 | 1.0 | 遮罩的填充值 | 遮罩像素值(0-1) | 1.0全白遮罩,0.0全黑遮罩 |
3.5 数字处理节点
JWInteger - 整数输入
这个节点就像一个数字输入框,用来输入整数。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| value | value | 整数 | 0 | 要输入的整数 | 整型数值 | 输入42作为参数传递 |
JWIntegerToFloat - 整数转小数
这个节点能把整数变成小数,比如把5变成5.0。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| value | value | 整数 | 0 | 要转换的整数 | 输入整型数值 | 输入5输出5.0 |
JWIntegerToString - 整数转文字
这个节点能把数字变成文字,还能设置格式。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| value | value | 整数 | 0 | 要转换的数字 | 输入整型数值 | 输入123 |
| format_string | format_string | 文本 | {:04d} | 格式化模板 | Python字符串格式化模板 | {:04d}会把5变成0005 |
JWIntegerAdd - 整数加法
这个节点就像一个计算器的加号,能把两个数字相加。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| a | a | 整数 | 0 | 第一个数字 | 加数 | 输入10 |
| b | b | 整数 | 0 | 第二个数字 | 被加数 | 输入5,结果是15 |
JWIntegerSub - 整数减法
这个节点能计算两个数字的差。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| a | a | 整数 | 0 | 被减数 | 减法中的被减数 | 输入10 |
| b | b | 整数 | 0 | 减数 | 减法中的减数 | 输入3,结果是7 |
JWIntegerMul - 整数乘法
这个节点能计算两个数字的乘积。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| a | a | 整数 | 0 | 第一个数字 | 乘数 | 输入6 |
| b | b | 整数 | 0 | 第二个数字 | 被乘数 | 输入7,结果是42 |
JWIntegerDiv - 整数除法
这个节点能计算两个数字相除的结果。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| a | a | 整数 | 0 | 被除数 | 除法中的被除数 | 输入20 |
| b | b | 整数 | 0 | 除数 | 除法中的除数 | 输入4,结果是5.0 |
JWIntegerAbsolute - 整数绝对值
这个节点能把负数变成正数,正数保持不变。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| value | value | 整数 | 0 | 要处理的数字 | 输入整型数值 | 输入-5输出5 |
JWIntegerMin - 取两个整数中的最小值
这个节点能从两个数字中选出较小的那个。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| a | a | 整数 | 0 | 第一个数字 | 比较数值A | 输入10 |
| b | b | 整数 | 0 | 第二个数字 | 比较数值B | 输入5,输出5 |
JWIntegerMax - 取两个整数中的最大值
这个节点能从两个数字中选出较大的那个。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| a | a | 整数 | 0 | 第一个数字 | 比较数值A | 输入10 |
| b | b | 整数 | 0 | 第二个数字 | 比较数值B | 输入5,输出10 |
3.6 小数处理节点
JWFloat - 小数输入
这个节点用来输入小数,就像一个小数输入框。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| value | value | 小数 | 0.0 | 要输入的小数 | 浮点数值 | 输入3.14作为参数 |
JWFloatToInteger - 小数转整数
这个节点能把小数变成整数,有三种转换方式。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| value | value | 小数 | 0.0 | 要转换的小数 | 输入浮点数值 | 输入3.7 |
| mode | mode | 选择 | round | 转换方式 | 数值转换模式 | round四舍五入,floor向下取整,ceiling向上取整 |
JWFloatToString - 小数转文字
这个节点能把小数变成文字,可以控制显示格式。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| value | value | 小数 | 0.0 | 要转换的小数 | 输入浮点数值 | 输入3.14159 |
| format_string | format_string | 文本 | {:.6g} | 格式化模板 | Python字符串格式化模板 | {:.2f}显示两位小数 |
JWFloatAdd - 小数加法
计算两个小数的和。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| a | a | 小数 | 0.0 | 第一个数字 | 加数 | 输入1.5 |
| b | b | 小数 | 0.0 | 第二个数字 | 被加数 | 输入2.3,结果3.8 |
JWFloatSub - 小数减法
计算两个小数的差。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| a | a | 小数 | 0.0 | 被减数 | 减法中的被减数 | 输入5.5 |
| b | b | 小数 | 0.0 | 减数 | 减法中的减数 | 输入2.2,结果3.3 |
JWFloatMul - 小数乘法
计算两个小数的乘积。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| a | a | 小数 | 0.0 | 第一个数字 | 乘数 | 输入2.5 |
| b | b | 小数 | 0.0 | 第二个数字 | 被乘数 | 输入4.0,结果10.0 |
JWFloatDiv - 小数除法
计算两个小数相除的结果。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| a | a | 小数 | 0.0 | 被除数 | 除法中的被除数 | 输入10.0 |
| b | b | 小数 | 0.0 | 除数 | 除法中的除数 | 输入2.5,结果4.0 |
JWFloatAbsolute - 小数绝对值
把负的小数变成正的。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| value | value | 小数 | 0.0 | 要处理的小数 | 输入浮点数值 | 输入-3.14输出3.14 |
JWFloatMin - 取两个小数中的最小值
从两个小数中选出较小的。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| a | a | 小数 | 0.0 | 第一个数字 | 比较数值A | 输入3.14 |
| b | b | 小数 | 0.0 | 第二个数字 | 比较数值B | 输入2.71,输出2.71 |
JWFloatMax - 取两个小数中的最大值
从两个小数中选出较大的。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| a | a | 小数 | 0.0 | 第一个数字 | 比较数值A | 输入3.14 |
| b | b | 小数 | 0.0 | 第二个数字 | 比较数值B | 输入2.71,输出3.14 |
3.7 文字处理节点
JWString - 文字输入
这个节点用来输入文字,就像一个文本框。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text | text | 文本 | "" | 要输入的文字 | 字符串内容 | 输入"Hello World" |
JWStringToInteger - 文字转整数
把文字形式的数字变成真正的数字。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text | text | 文本 | "0" | 要转换的文字数字 | 数字字符串 | 输入"123"输出123 |
JWStringToFloat - 文字转小数
把文字形式的小数变成真正的小数。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text | text | 文本 | "0.0" | 要转换的文字小数 | 小数字符串 | 输入"3.14"输出3.14 |
JWStringMultiline - 多行文字输入
这个节点能输入多行文字,就像一个大的文本编辑框。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text | text | 多行文本 | "" | 要输入的多行文字 | 多行字符串内容 | 输入长篇提示词或说明文字 |
JWStringConcat - 文字拼接
这个节点能把两段文字连接在一起。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| a | a | 文本 | "" | 第一段文字 | 字符串A | 输入"Hello " |
| b | b | 文本 | "" | 第二段文字 | 字符串B | 输入"World",结果"Hello World" |
JWStringReplace - 文字替换
这个节点能在文字中找到特定内容并替换成新内容。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| source | source | 文本 | "" | 原始文字 | 源字符串 | 输入"Hello World" |
| to_replace | to_replace | 文本 | "" | 要替换的内容 | 查找目标 | 输入"World" |
| replace_with | replace_with | 文本 | "" | 替换成的内容 | 替换内容 | 输入"ComfyUI",结果"Hello ComfyUI" |
JWStringSplit - 文字分割
这个节点能把一段文字按指定符号分割成两部分。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| source | source | 文本 | "a,b" | 要分割的文字 | 源字符串 | 输入"apple,banana" |
| split_by | split_by | 文本 | "," | 分割符号 | 分隔符 | 输入","按逗号分割 |
| from_right | from_right | 选择 | false | 是否从右边开始分割 | 分割方向 | true从右边开始,false从左边开始 |
JWStringGetLine - 获取指定行的文字
这个节点能从多行文字中提取特定行的内容。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| source | source | 文本 | "" | 多行文字 | 多行字符串 | 输入多行文本 |
| line_index | line_index | 整数 | 0 | 行号(从0开始) | 行索引 | 输入1获取第2行内容 |
JWStringUnescape - 文字转义处理
这个节点能把文字中的转义符号变成真正的特殊字符。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text | text | 文本 | "" | 包含转义符的文字 | 转义字符串 | 输入"Hello\nWorld"输出换行的文字 |
3.8 颜色调整节点
JWImageMix - 图片混合
这个节点能把两张图片混合在一起,就像调色板混合颜料。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| blend_type | blend_type | 选择 | mix | 混合方式 | 图像混合模式 | mix普通混合,multiply相乘混合 |
| factor | factor | 小数 | 0.5 | 混合比例 | 混合因子(0-1) | 0.5各占一半,0.8第二张图占80% |
| image_a | image_a | 图片 | - | 第一张图片 | 输入图像A | 连接底层图片 |
| image_b | image_b | 图片 | - | 第二张图片 | 输入图像B | 连接要混合的图片 |
JWImageContrast - 调整对比度
这个节点能调整图片的对比度,让图片更鲜明或更柔和。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图片 | - | 要调整的图片 | 输入图像张量 | 连接需要调整对比度的图片 |
| factor | factor | 小数 | 1.0 | 对比度倍数 | 对比度调整因子 | 1.5增强对比度,0.5降低对比度 |
JWImageSaturation - 调整饱和度
这个节点能调整图片的色彩饱和度,让颜色更鲜艳或更灰暗。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图片 | - | 要调整的图片 | 输入图像张量 | 连接需要调整饱和度的图片 |
| factor | factor | 小数 | 1.0 | 饱和度倍数 | 饱和度调整因子 | 1.5颜色更鲜艳,0.5颜色更灰暗 |
JWImageLevels - 调整色阶
这个节点能调整图片的明暗范围,类似PS中的色阶调整。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图片 | - | 要调整的图片 | 输入图像张量 | 连接需要调整色阶的图片 |
| min | min | 小数 | 0.0 | 最暗值 | 输入色阶最小值 | 0.1让最暗部分变亮一点 |
| max | max | 小数 | 1.0 | 最亮值 | 输入色阶最大值 | 0.9让最亮部分变暗一点 |
3.9 时间日期节点
JWDatetimeString - 获取当前时间文字
这个节点能获取当前的日期和时间,并转换成文字格式。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| format | format | 文本 | %Y-%m-%dT%H:%M:%S | 时间格式模板 | Python时间格式字符串 | %Y-%m-%d显示2024-01-15 |
3.10 图片序列处理节点
JWLoadImageSequence - 批量加载图片序列
这个节点能按照命名规律批量加载一系列图片,常用于制作动画。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| path_pattern | path_pattern | 文本 | ./frame{:06d}.png | 文件名模板 | 文件路径格式化模板 | ./img{:04d}.jpg加载img0001.jpg等 |
| start_index | start_index | 整数 | 0 | 起始序号 | 开始帧索引 | 从第5帧开始就输入5 |
| frame_count | frame_count | 整数 | 16 | 加载帧数 | 要加载的图像数量 | 加载16张连续图片 |
| ignore_missing_images | ignore_missing_images | 选择 | false | 是否跳过缺失图片 | 缺失文件处理方式 | true跳过不存在的文件 |
JWLoadImageSequenceWithStopIndex - 按范围加载图片序列
这个节点能指定开始和结束序号来加载图片序列。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| path_pattern | path_pattern | 文本 | ./frame{:06d}.png | 文件名模板 | 文件路径格式化模板 | ./img{:04d}.jpg |
| start_index | start_index | 整数 | 0 | 起始序号 | 开始帧索引 | 从第1帧开始 |
| stop_index | stop_index | 整数 | 16 | 结束序号 | 结束帧索引 | 到第20帧结束 |
| inclusive | inclusive | 选择 | false | 是否包含结束序号 | 是否包含结束索引 | true包含结束帧,false不包含 |
| ignore_missing_images | ignore_missing_images | 选择 | false | 是否跳过缺失图片 | 缺失文件处理方式 | true跳过不存在的文件 |
JWImageSequenceExtractFromBatch - 从图片组中提取片段
这个节点能从一组图片中提取指定范围的图片。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | 图片组 | - | 图片组数据 | 批量图像张量 | 连接批量加载的图片 |
| i_start | i_start | 整数 | 0 | 起始位置 | 开始索引 | 从第3张开始就输入2 |
| i_stop | i_stop | 整数 | 0 | 结束位置 | 结束索引 | 到第10张结束就输入10 |
| inclusive | inclusive | 选择 | false | 是否包含结束位置 | 是否包含结束索引 | true包含结束位置的图片 |
JWSaveImageSequence - 批量保存图片序列
这个节点能把一组图片按序号保存成文件。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | 图片组 | - | 要保存的图片组 | 批量图像张量 | 连接要保存的图片序列 |
| path_pattern | path_pattern | 文本 | ./frame{:06d}.png | 保存文件名模板 | 输出文件路径模板 | ./output{:04d}.jpg |
| start_index | start_index | 整数 | 0 | 起始序号 | 开始文件索引 | 从001开始编号就输入1 |
| overwrite | overwrite | 选择 | true | 是否覆盖同名文件 | 文件覆盖策略 | false避免覆盖已有文件 |
JWLoopImageSequence - 循环图片序列
这个节点能把短的图片序列重复播放,达到指定的帧数。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | 图片组 | - | 原始图片序列 | 输入图像序列 | 连接要循环的图片组 |
| target_frames | target_frames | 整数 | 16 | 目标帧数 | 输出序列长度 | 把5帧循环成20帧 |
3.11 遮罩序列处理节点
JWMaskSequenceFromMask - 从遮罩创建遮罩序列
这个节点能把单个遮罩复制多份,创建遮罩序列。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mask | mask | 遮罩 | - | 原始遮罩 | 输入遮罩张量 | 连接要复制的遮罩 |
| batch_size | batch_size | 整数 | 1 | 复制份数 | 批次大小 | 复制10份就输入10 |
JWMaskSequenceJoin - 合并遮罩序列
这个节点能把两个遮罩序列连接成一个更长的序列。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mask_sequence_1 | mask_sequence_1 | 遮罩序列 | - | 第一个遮罩序列 | 输入遮罩序列A | 连接前半部分遮罩 |
| mask_sequence_2 | mask_sequence_2 | 遮罩序列 | - | 第二个遮罩序列 | 输入遮罩序列B | 连接后半部分遮罩 |
JWMaskSequenceApplyToLatent - 将遮罩序列应用到潜在空间
这个节点能把遮罩序列应用到AI生成的潜在数据上。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| samples | samples | 潜在数据 | - | AI生成的潜在数据 | 潜在空间张量 | 连接VAE编码后的数据 |
| mask_sequence | mask_sequence | 遮罩序列 | - | 要应用的遮罩序列 | 遮罩序列张量 | 连接遮罩序列数据 |
3.12 音频处理节点
JWLoadAudio - 加载音频文件
这个节点能加载各种格式的音频文件到ComfyUI中。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| path | path | 文本 | ./audio.mp3 | 音频文件路径 | 音频文件的完整路径 | 输入"D:/music.wav"加载音频 |
| gain_db | gain_db | 小数 | 0 | 音量调整(分贝) | 增益调整值 | 6增大音量,-6减小音量 |
| offset_seconds | offset_seconds | 小数 | 0 | 开始时间(秒) | 音频开始偏移 | 10从第10秒开始播放 |
| duration_seconds | duration_seconds | 小数 | 0 | 持续时间(秒) | 音频持续长度 | 30只加载30秒音频 |
| resample_to_hz | resample_to_hz | 小数 | 0 | 重采样频率 | 目标采样率 | 44100设为CD音质 |
| make_stereo | make_stereo | 布尔 | True | 是否转为立体声 | 声道转换选项 | True单声道变双声道 |
JWAudioBlend - 音频混合
这个节点能把两个音频文件混合在一起。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| a | a | 音频 | - | 第一个音频 | 输入音频A | 连接背景音乐 |
| b | b | 音频 | - | 第二个音频 | 输入音频B | 连接人声音频 |
| ratio | ratio | 小数 | 0.5 | 混合比例 | 混合因子(0-1) | 0.3背景音乐占30% |
| if_durations_differ | if_durations_differ | 选择 | use_longest | 长度不同时的处理 | 时长差异处理策略 | use_longest用较长的时长 |
| if_samplerates_differ | if_samplerates_differ | 选择 | use_highest | 采样率不同时的处理 | 采样率差异处理策略 | use_highest用较高的采样率 |
JWAudioSaveToPath - 保存音频到文件
这个节点能把处理好的音频保存成文件。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio | audio | 音频 | - | 要保存的音频 | 音频数据张量 | 连接处理好的音频 |
| path | path | 文本 | ./audio.mp3 | 保存路径 | 输出文件完整路径 | 输入"D:/output.wav" |
| overwrite | overwrite | 布尔 | True | 是否覆盖同名文件 | 文件覆盖策略 | False避免覆盖重要文件 |
3.13 其他实用节点
JWImageStackChannels - 图片通道堆叠
这个节点能把两张图片的颜色通道合并在一起。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image_a | image_a | 图片 | - | 第一张图片 | 输入图像A | 连接RGB图片 |
| image_b | image_b | 图片 | - | 第二张图片 | 输入图像B | 连接要合并的图片 |
JWImageLoadRGBIfExists - 条件加载图片
这个节点会尝试加载图片,如果文件不存在就使用默认图片。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| default | default | 图片 | - | 默认图片 | 备用图像数据 | 连接备用图片 |
| path | path | 文本 | ./image.png | 要尝试加载的路径 | 目标文件路径 | 输入可能不存在的文件路径 |
4. 使用技巧和建议
4.1 图片处理技巧
- 批量处理:使用图片序列节点可以高效处理大量图片
- 尺寸调整:根据需要选择合适的插值模式,bicubic质量最好但速度较慢
- 格式转换:通过加载和保存节点可以实现格式转换
4.2 数值计算技巧
- 精度控制:使用格式化字符串控制数字显示精度
- 范围限制:使用Min/Max节点限制数值范围
- 类型转换:合理使用整数和小数转换节点
4.3 文字处理技巧
- 动态文件名:结合时间节点和格式化创建唯一文件名
- 批量替换:使用替换节点批量修改提示词
- 多行处理:使用多行文本节点处理长提示词
4.4 音频处理技巧
- 音质保持:注意采样率设置,避免音质损失
- 音量平衡:使用增益调整平衡不同音频的音量
- 格式兼容:选择合适的音频格式确保兼容性
5. 常见问题解答
Q1: 为什么图片加载失败?
A: 检查文件路径是否正确,确保文件存在且格式支持。使用绝对路径可以避免路径问题。
Q2: 如何批量处理大量图片?
A: 使用图片序列节点,设置合适的路径模板和序号范围。注意内存使用,避免一次加载过多图片。
Q3: 数值计算结果不准确怎么办?
A: 注意整数和小数的区别,使用合适的数据类型。浮点运算可能有精度误差。
Q4: 文字替换不生效?
A: 确保要替换的文字完全匹配,注意大小写和空格。
Q5: 音频处理后音质变差?
A: 检查采样率设置,避免不必要的重采样。使用无损格式保存。
Q6: 如何优化工作流程性能?
A:
- 合理使用批处理,避免逐个处理
- 选择合适的图片尺寸,避免过大图片
- 使用条件加载避免不必要的文件操作
6. 总结
ComfyUI Various 插件提供了99个实用节点,覆盖了图片处理、数值计算、文字处理、音频处理等多个方面。这些节点就像乐高积木一样,可以自由组合构建复杂的工作流程。
主要优势:
- 功能全面:涵盖常用的各种处理需求
- 使用简单:每个节点功能单一明确
- 组合灵活:可以自由组合实现复杂功能
- 性能优秀:支持批量处理,效率高
适用场景:
- 批量图片处理和格式转换
- 动画序列制作和处理
- 数值计算和参数控制
- 文字处理和动态命名
- 音频处理和混合
通过合理使用这些节点,可以大大提高ComfyUI的工作效率,实现更复杂的创作需求。建议根据实际需要选择性安装相关模块,避免节点列表过于冗长。