ComfyUI Comfy-Pack 插件完全教程
1. 插件简介
插件地址: https://github.com/bentoml/comfy-pack
Comfy-Pack 是一个超级实用的 ComfyUI 插件,就像给你的工作流程装了一个"万能打包机"。它能帮你做三件特别厉害的事情:
- 打包工作流 - 把你的整个工作流程(包括用到的模型、设置、依赖包等)全部装进一个压缩包里,就像把整个房间的东西都装进一个行李箱
- 解包工作流 - 别人给你一个打包好的工作流,你可以一键还原出完全一样的环境,就像拿到别人的行李箱后能完美复制出他的房间
- 部署为网络服务 - 把你的工作流变成一个网站接口,别人可以通过网页或程序来使用你的 AI 功能
这个插件最大的好处是解决了分享工作流时经常遇到的问题:
- "找不到这个自定义节点"
- "模型文件不对"
- "缺少某个依赖包"
有了 Comfy-Pack,这些问题统统不存在了!
2. 如何安装
方法一:通过 ComfyUI Manager 安装(推荐)
- 打开 ComfyUI,点击右侧的 "Manager" 按钮
- 在搜索框里输入 "comfy-pack"
- 找到插件后点击 "Install" 安装
- 重启 ComfyUI 服务器
- 刷新网页界面
方法二:手动下载安装
- 打开终端/命令行
- 进入 ComfyUI 的 custom_nodes 文件夹
- 运行命令:
git clone https://github.com/bentoml/comfy-pack.git - 重启 ComfyUI
3. 节点详细解析
3.1 CPackInputImage(图片输入节点)
这个节点就像一个"图片接收器",专门用来接收外部传入的图片。当你把工作流部署成网络服务时,别人就可以通过这个节点上传图片。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 文件列表 | 选择你要处理的图片 | 选择要处理的图片文件 | 从输入目录中选择图像文件进行处理 | 点击下拉菜单选择已上传的图片,或者拖拽图片到这里 |
3.2 CPackInputString(文字输入节点)
这个节点像一个"文字接收盒",专门接收文字内容,比如提示词、描述等。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| value | value | 文本字符串 | 输入你想要的文字 | 输入任何文字内容 | 接收字符串类型的输入参数 | 在文本框里输入"一只可爱的小猫"作为绘画提示词 |
3.3 CPackInputInt(数字输入节点)
这个节点像一个"数字调节器",专门接收数字参数,比如图片尺寸、种子值等。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| value | value | 整数 | 根据用途设定 | 输入一个整数 | 接收整数类型的输入参数 | 输入512设置图片宽度,或输入42作为随机种子 |
| min | min | 整数 | 可选,设置最小值 | 设置这个数字的最小限制 | 设置输入值的最小边界 | 设置为1,表示数字不能小于1 |
| max | max | 整数 | 可选,设置最大值 | 设置这个数字的最大限制 | 设置输入值的最大边界 | 设置为2048,表示图片尺寸不能超过2048 |
3.4 CPackInputFile(文件输入节点)
这个节点像一个"万能文件接收器",可以接收各种类型的文件。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| path | path | 文件路径 | 输入文件的完整路径 | 指定要处理的文件位置 | 接收文件路径作为输入参数 | 输入"/path/to/myfile.txt"来指定要处理的文件 |
3.5 CPackInputAny(万能输入节点)
这个节点像一个"变形金刚",可以根据连接的节点自动变成对应的类型。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| input | input | 任意类型 | 根据连接的节点自动确定 | 可以接收任何类型的数据 | 动态适配不同数据类型的输入 | 连接到文字节点时变成文字输入,连接到数字节点时变成数字输入 |
3.6 CPackOutputImage(图片输出节点)
这个节点像一个"图片保存器",把生成的图片保存到指定位置。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | 图片数据 | 连接生成图片的节点 | 接收要保存的图片 | 接收图像张量数据进行保存 | 连接 KSampler 节点的输出来保存生成的图片 |
| filename_prefix | filename_prefix | 文件名前缀 | cpack_output_ | 设置保存文件的名字开头 | 设置输出文件的命名前缀 | 设置为"my_art_",保存的文件就叫"my_art_00001.png" |
3.7 CPackOutputAudio(音频输出节点)
这个节点像一个"录音机",专门保存音频文件。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio | audio | 音频数据 | 连接音频生成节点 | 接收要保存的音频 | 接收音频数据进行保存 | 连接音频生成节点的输出来保存生成的音乐 |
| filename_prefix | filename_prefix | 文件名前缀 | cpack_output_ | 设置保存音频文件的名字开头 | 设置输出音频文件的命名前缀 | 设置为"music_",保存的文件就叫"music_00001.wav" |
3.8 CPackOutputVideo(视频输出节点)
这个节点像一个"摄像机",专门保存视频文件。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | 图片序列 | 连接视频帧序列 | 接收一系列图片来制作视频 | 接收图像序列数据生成视频 | 连接动画生成节点的输出来保存生成的视频 |
| frame_rate | frame_rate | 帧率数值 | 8 | 设置视频播放速度 | 设置视频的帧率参数 | 设置为24表示每秒播放24帧,视频更流畅 |
| loop_count | loop_count | 循环次数 | 0 | 设置视频循环播放次数 | 设置视频循环播放的次数 | 设置为0表示无限循环,设置为3表示循环3次 |
| filename_prefix | filename_prefix | 文件名前缀 | cpack_output_ | 设置保存视频文件的名字开头 | 设置输出视频文件的命名前缀 | 设置为"video_",保存的文件就叫"video_00001.mp4" |
3.9 CPackOutputFile(文件输出节点)
这个节点像一个"文件复制器",把文件复制到指定位置并重命名。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| filename | filename | 文件路径 | 连接文件路径输入 | 指定要复制的源文件 | 接收源文件路径进行文件操作 | 连接文件输入节点,指定要复制的文件 |
| filename_prefix | filename_prefix | 文件名前缀 | cpack_output_ | 设置复制后文件的名字开头 | 设置输出文件的命名前缀 | 设置为"result_",复制的文件就叫"result_原文件名" |
3.10 CPackOutputZip(压缩包输出节点)
这个节点像一个"打包机",把图片和文字打包成一个压缩文件。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | 图片数据 | 连接生成图片的节点 | 要打包的图片 | 接收图像数据进行压缩打包 | 连接图片生成节点,把生成的图片打包 |
| filename_prefix | filename_prefix | 文件名前缀 | cpack_output_ | 设置压缩包的名字开头 | 设置输出压缩包的命名前缀 | 设置为"batch_",压缩包就叫"batch_00001.zip" |
| text | text | 文本内容 | 输入要保存的文字 | 要和图片一起打包的文字说明 | 与图像一起打包的文本内容 | 输入"这是我的作品描述",会和图片一起保存在压缩包里 |
3.11 CPackOutputZipSwitch(压缩包开关节点)
这个节点像一个"开关",用来控制是否启用压缩包功能。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 无参数 | 无参数 | 无 | 无 | 这是一个控制开关 | 控制压缩包输出功能的开关节点 | 添加到工作流中来启用压缩包输出功能 |
3.12 CPackOutputTextFile(文本文件输出节点)
这个节点像一个"文字记录器",把文字内容保存成文本文件。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text | text | 文本内容 | 连接文字输入节点 | 要保存的文字内容 | 接收文本数据进行文件保存 | 连接提示词生成节点,把生成的提示词保存成txt文件 |
| filename_prefix | filename_prefix | 文件名前缀 | cpack_output_ | 设置文本文件的名字开头 | 设置输出文本文件的命名前缀 | 设置为"prompt_",保存的文件就叫"prompt_0001.txt" |
| file_extension | file_extension | 文件扩展名 | .txt | 设置文件的后缀名 | 设置输出文件的扩展名 | 设置为".md"可以保存为Markdown格式文件 |
4. 使用技巧和建议
4.1 打包工作流的最佳实践
- 选择必要的模型 - 不要把所有模型都打包,只选择工作流真正用到的
- 合理命名 - 给打包文件起个有意义的名字,比如"人像生成器_v1.0"
- 添加说明文字 - 在压缩包输出节点里添加使用说明
4.2 部署网络服务的技巧
- 合理设置端口 - 默认3000端口,如果被占用可以改成其他数字
- 输入节点命名 - 给输入节点起个好懂的名字,这个名字就是接口参数名
- 测试接口 - 部署后先自己测试一下,确保功能正常
4.3 节点连接建议
- 输入节点放左边 - 把所有输入节点放在工作流的左侧,方便管理
- 输出节点放右边 - 把输出节点放在右侧,形成清晰的数据流向
- 合理分组 - 相关的节点放在一起,用框框圈起来
5. 常见问题解答
Q1: 为什么我的工作流打包后很大?
A: 可能是选择了太多不必要的模型。在打包时只选择工作流真正使用的模型,不要全选。
Q2: 解包时提示找不到模型怎么办?
A: 确保网络连接正常,插件会自动从网上下载缺失的模型。如果是私有模型,需要手动放到对应文件夹。
Q3: 部署的网络服务别人访问不了?
A: 检查防火墙设置,确保端口没有被阻挡。如果需要外网访问,要勾选"允许外部访问"选项。
Q4: 输入节点不显示我想要的类型?
A: 使用"万能输入节点"(CPackInputAny),它会根据连接的节点自动变成对应类型。
Q5: 如何批量处理多个文件?
A: 使用压缩包输出节点,可以把多个图片和对应的文字说明打包在一起。
6. 高级功能
6.1 云端部署
插件支持部署到 BentoCloud 云平台,让你的工作流可以在云端运行:
- 注册 BentoCloud 账号
- 获取 API 密钥
- 在部署界面填入相关信息
- 一键部署到云端
6.2 自定义系统包
在打包时可以添加自定义的系统依赖包:
- 在打包界面展开"系统包"选项
- 点击"添加包"按钮
- 输入 Ubuntu 系统中的包名
- 可以添加多个包
6.3 文件管理
插件会智能管理相关文件:
- 自动检测工作流中使用的文件
- 支持符号链接,避免重复存储
- 智能计算文件哈希值,确保完整性
7. 总结
Comfy-Pack 是一个功能强大的工作流管理插件,它解决了 ComfyUI 用户在分享和部署工作流时遇到的各种问题。通过12个专门设计的节点,你可以轻松地:
- 创建可分享的工作流包
- 部署工作流为网络服务
- 管理输入输出数据
- 批量处理文件
无论你是 ComfyUI 新手还是高级用户,这个插件都能大大提升你的工作效率。记住,熟练使用这些节点需要一些练习,建议从简单的工作流开始,逐步掌握各个功能。
希望这个教程能帮助你更好地使用 Comfy-Pack 插件!如果遇到问题,可以查看插件的 GitHub 页面或者在社区寻求帮助。