ComfyUI_NetDist_Plus 插件完全新手教程
1. 插件简介
插件原地址:https://github.com/nux1111/ComfyUI_NetDist_Plus
ComfyUI_NetDist_Plus 是一个让你可以同时用多个显卡或多台电脑来处理图片的神奇插件。想象一下,你有两台电脑,一台负责处理图片的前半部分,另一台负责处理后半部分,这样就能大大提高生图速度!
这个插件能带来什么效果?
- 如果你有两个显卡,可以让它们同时工作,生图速度翻倍
- 如果你有两台电脑,可以让它们协作处理一张图片
- 特别适合那些想要对比不同模型效果的朋友
- 可以把耗显存的任务分配给不同的机器,避免显存不够用
2. 如何安装
方法一:通过 ComfyUI 管理器安装(推荐)
- 打开 ComfyUI 界面
- 点击右侧的"Manager"按钮
- 点击"Install Custom Nodes"
- 搜索"NetDist_Plus"
- 点击"Install"按钮
- 重启 ComfyUI
方法二:手动安装
- 打开命令行工具
- 进入 ComfyUI 的 custom_nodes 文件夹
- 输入命令:
git clone https://github.com/nux1111/ComfyUI_NetDist_Plus - 安装依赖:
pip install requests - 重启 ComfyUI
3. 节点详细解析
3.1 QueueRemote 节点(远程队列节点)
这个节点是干嘛的?
QueueRemote 节点就像一个"任务分发员",它把你的图片处理任务打包发送给其他电脑或显卡去处理。想象成你是老板,这个节点就是你的秘书,帮你把工作分配给不同的员工。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 远程地址 | remote_url | 文本输入 | http://127.0.0.1:8188 | 告诉这个节点要把任务发给哪台电脑 | 设置远程ComfyUI实例的网络地址 | 如果是本机的第二个显卡,填127.0.0.1:8188;如果是局域网其他电脑,填那台电脑的IP地址 |
| 本地批次大小 | local_batch_size | 数字 | 1 | 本地电脑一次处理几张图片 | 设置本地实例的批处理大小 | 如果显存够用,可以设置为2或3,一次处理多张图 |
| 远程批次大小 | remote_batch_size | 数字 | 1 | 远程电脑一次处理几张图片 | 设置远程实例的批处理大小 | 根据远程电脑的显存大小来调整 |
| 触发条件 | trigger | 选择菜单 | always | 什么时候启动这个任务分发 | 控制节点的执行条件 | 选择"always"确保每次都会执行;选择"on_change"只在输入改变时执行 |
| 工作流JSON | workflow_json | 文本输入 | 空 | 要在远程电脑上运行的具体任务内容 | 定义在远程实例上执行的工作流 | 可以把整个工作流程保存成JSON格式,让远程电脑按照这个流程处理 |
3.2 FetchRemote 节点(远程获取节点)
这个节点是干嘛的?
FetchRemote 节点就像一个"快递员",它负责从其他电脑或显卡那里把处理好的图片取回来。当远程电脑完成工作后,这个节点会把结果拿回来给你看。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 远程地址 | remote_url | 文本输入 | http://127.0.0.1:8188 | 告诉这个节点要从哪台电脑取结果 | 设置远程ComfyUI实例的网络地址 | 必须和QueueRemote节点的地址一致 |
| 图片名称 | image_name | 文本输入 | final_image | 要取回的图片在远程电脑上叫什么名字 | 指定要获取的图片输出名称 | 通常填"final_image",如果远程工作流有多个输出,可以指定具体名称 |
| 超时时间 | timeout | 数字 | 300 | 等待远程电脑处理的最长时间(秒) | 设置网络请求的超时时间 | 如果远程处理很慢,可以设置更大的数值,比如600(10分钟) |
| 重试次数 | retry_count | 数字 | 3 | 如果网络出问题,重试几次 | 设置网络请求失败时的重试次数 | 网络不稳定时可以设置为5或更多 |
3.3 LoadImageUrl 节点(网络图片加载节点)
这个节点是干嘛的?
LoadImageUrl 节点就像一个"网络下载器",它可以直接从网络上下载图片到你的工作流中。不需要先把图片保存到本地,直接输入网址就能用。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图片网址 | image_url | 文本输入 | 空 | 要下载的图片的网络地址 | 设置要加载的图片URL地址 | 填入完整的图片链接,如https://example.com/image.jpg |
| 缓存模式 | cache_mode | 选择菜单 | enable | 是否把下载的图片暂时存起来 | 控制图片缓存策略 | 选择"enable"可以避免重复下载;选择"disable"每次都重新下载 |
| 超时时间 | timeout | 数字 | 30 | 下载图片的最长等待时间(秒) | 设置网络下载的超时时间 | 网络慢的时候可以设置为60或更多 |
3.4 SaveImageUrl 节点(网络图片保存节点)
这个节点是干嘛的?
SaveImageUrl 节点就像一个"网络上传器",它可以把你处理好的图片直接发送到指定的网络地址,不需要先保存到本地。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 目标网址 | target_url | 文本输入 | 空 | 要把图片发送到哪个网络地址 | 设置接收图片的服务器地址 | 填入你的服务器地址,如https://yourserver.com/upload |
| 文件名前缀 | filename_prefix | 文本输入 | ComfyUI | 上传的图片文件名前缀 | 设置保存图片的文件名前缀 | 比如填"MyImage",保存的文件就会是MyImage_001.png |
| 图片格式 | image_format | 选择菜单 | PNG | 保存图片的格式 | 设置图片的保存格式 | PNG质量好但文件大;JPEG文件小但质量稍差 |
| 图片质量 | image_quality | 数字 | 95 | 图片的清晰度(1-100) | 设置JPEG格式的压缩质量 | 100是最清晰但文件最大;70-90是比较好的平衡点 |
3.5 SaveLatentNumpy 节点(中间数据保存节点)
这个节点是干嘛的?
SaveLatentNumpy 节点就像一个"半成品保存器",它可以把图片处理过程中的中间数据保存起来,这样其他电脑就可以接着处理,不用从头开始。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 文件名前缀 | filename_prefix | 文本输入 | ComfyUI | 保存的中间数据文件名前缀 | 设置潜在空间数据的文件名前缀 | 比如填"Process1",文件就会是Process1_00001_.npy |
| 保存路径 | save_path | 选择菜单 | output | 把中间数据保存到哪个文件夹 | 设置文件保存的目录位置 | "output"是输出文件夹;"input"是输入文件夹 |
| 压缩格式 | compression | 选择菜单 | none | 是否压缩保存的数据 | 设置数据压缩方式 | "none"不压缩速度快;"gzip"压缩后文件小但速度慢 |
3.6 LoadLatentNumpy 节点(中间数据加载节点)
这个节点是干嘛的?
LoadLatentNumpy 节点就像一个"半成品加载器",它可以读取之前保存的中间数据,让你的工作流可以从中间步骤继续处理。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 文件名 | filename | 文本输入 | 空 | 要加载的中间数据文件名 | 指定要加载的潜在空间数据文件 | 填入完整的文件名,如"Process1_00001_.npy" |
| 加载路径 | load_path | 选择菜单 | output | 从哪个文件夹加载中间数据 | 设置文件加载的目录位置 | 通常选择"output",如果文件在输入文件夹选择"input" |
| 自动格式检测 | auto_detect | 布尔值 | true | 是否自动识别文件格式 | 控制是否自动检测文件格式 | 开启后可以自动识别.npy、.safetensors等不同格式 |
3.7 WorkflowToJson 节点(工作流转换节点)
这个节点是干嘛的?
WorkflowToJson 节点就像一个"配方记录器",它可以把你的整个工作流程记录下来,变成一个可以分享或在其他电脑上使用的"配方文件"。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 工作流名称 | workflow_name | 文本输入 | MyWorkflow | 给这个工作流起个名字 | 设置工作流的标识名称 | 比如"人物生成流程"或"风景处理流程" |
| 包含输入 | include_inputs | 布尔值 | true | 是否把输入参数也记录下来 | 控制是否包含输入节点的参数 | 开启后完整记录所有设置;关闭后只记录流程结构 |
| 美化输出 | pretty_print | 布尔值 | true | 是否让输出的文件更容易阅读 | 控制JSON输出的格式化 | 开启后文件有缩进易读;关闭后文件小但难读 |
3.8 JsonToWorkflow 节点(配方加载节点)
这个节点是干嘛的?
JsonToWorkflow 节点就像一个"配方阅读器",它可以读取之前保存的工作流"配方文件",让你可以快速重现之前的处理流程。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| JSON文件路径 | json_path | 文本输入 | 空 | 要加载的配方文件位置 | 指定要加载的工作流JSON文件路径 | 填入完整路径,如"workflows/my_workflow.json" |
| 自动执行 | auto_execute | 布尔值 | false | 加载后是否立即开始处理 | 控制是否自动执行加载的工作流 | 开启后加载完就开始处理;关闭后需要手动启动 |
| 覆盖设置 | override_settings | 文本输入 | {} | 要修改的参数设置 | 允许覆盖原工作流中的特定参数 | 用JSON格式填写要修改的参数,如{"seed": 12345} |
4. 使用技巧和建议
4.1 双显卡设置技巧
- 如果你有两个显卡,在启动第二个ComfyUI时使用:
--port 8288 --cuda-device 1 - 第一个显卡处理复杂任务,第二个显卡处理简单任务
- 确保两个显卡的显存分配合理
4.2 网络设置建议
- 本地使用填写:
http://127.0.0.1:8188 - 局域网使用填写:
http://192.168.1.100:8188(替换为实际IP) - 如果连接失败,检查防火墙设置
4.3 性能优化建议
- 批次大小根据显存调整:8GB显存建议batch_size=1,16GB可以设置为2-3
- 网络不稳定时增加超时时间和重试次数
- 使用缓存功能避免重复下载
4.4 工作流分配策略
- 把耗时的模型加载任务分配给性能好的电脑
- 把简单的后处理任务分配给性能一般的电脑
- 合理利用不同电脑的优势
5. 常见问题解答
Q1: 为什么连接不上远程电脑?
A1:
- 检查IP地址是否正确
- 确认防火墙是否关闭或添加了例外
- 检查端口是否被占用
- 确认远程电脑的ComfyUI是否正常运行
Q2: 为什么处理速度没有提升?
A2:
- 检查网络带宽是否足够
- 确认任务分配是否合理
- 检查是否有性能瓶颈(如硬盘速度)
- 调整批次大小优化性能
Q3: 中间数据保存失败怎么办?
A3:
- 检查磁盘空间是否足够
- 确认文件路径是否正确
- 检查文件权限设置
- 尝试使用不同的保存路径
Q4: 如何知道远程任务是否完成?
A4:
- FetchRemote节点会显示等待状态
- 可以在远程电脑上查看ComfyUI界面
- 设置合适的超时时间避免无限等待
Q5: 可以同时连接多台电脑吗?
A5:
- 可以,但需要为每台电脑设置不同的端口
- 合理分配任务避免资源冲突
- 注意网络带宽的限制
6. 实际应用场景举例
场景1: 双显卡加速生图
- 第一个显卡:运行文本编码和采样
- 第二个显卡:运行VAE解码和后处理
- 速度提升可达50%-80%
场景2: 模型对比测试
- 本地电脑:运行Flux Dev模型
- 远程电脑:运行Flux Schnell模型
- 同时生成便于对比效果
场景3: 资源分离处理
- 高性能电脑:运行计算密集型任务
- 普通电脑:运行简单的图像处理
- 合理利用所有可用资源
通过这个插件,你可以充分利用手头的所有计算资源,让ComfyUI的处理速度更快,效率更高。记住,刚开始使用时建议先在本地双显卡环境下测试,熟悉后再扩展到网络环境。