ComfyUI 桌面版:一键安装,告别繁琐设置!

之前写过一篇 Stable Diffusion 入门篇,之后便很少折腾这些了。如果有朋友喜欢这方面内容,我后续也可以考虑更新此系列。时间比较仓促,我先将自己了解的一些信息做个简单整理。

桌面应用

ComfyUI 安装步骤繁琐,用户需了解 git、python、命令行等概念。为了给非技术用户提供更加流畅的操作体验,官方推出套壳应用(了解更多 ComfyUI V1 Release[1])。主要有以下亮点:

  • 代码签名与安全保障:新版应用已通过代码签名,启动时不再触发安全警告,确保每个版本均为官方发布。

  • 自动更新:保持在稳定版本的自动更新机制,无需手动干预。

  • 轻量级打包:安装包仅 200MB,减少系统资源占用。

  • 推荐 Python 环境:无需再为手动配置 Python 环境而烦恼,安装包中包含了推荐的 Python 环境,简化了安装流程。

  • 内置 ComfyUI 管理器:默认包含 ComfyUI 节点管理器,可以直接从官方注册表安装最新的节点,支持语义版本控制。开发者依然可以通过最新的 Git 提交获取每夜版(Nightly)。

  • 多标签页支持:用户现在可以通过标签页同时打开多个工作流程,自由切换,提高工作效率。

  • 自定义键绑定:用户可根据个人习惯定义自定义键绑定,不受浏览器快捷键的限制。

  • 自动资源导入:用户可在安装时选择已有的 ComfyUI 目录,应用将自动导入用户的输入数据、模型和输出结果。

  • 集成日志查看器:为开发者或高级用户提供调试支持,便捷查看服务器日志。

全新 UI

ComfyUI V1 桌面应用引入了全新界面设计,用户在更新后即可体验。官方计划在 V1 正式公开发布时,将所有现有用户切换到新版界面。相较于测试版应用,主要带来以下改进:

  • 顶部菜单栏优化:许多操作被整合到了顶部菜单栏中,扩展开发者也可以轻松添加自定义菜单项。

  • 模型与日志便捷访问:通过右键托盘图标,用户可以快速访问模型、节点、输出文件和日志。

  • 模型库:用户可在模型库中轻松浏览模型,并将其拖拽到检查点加载器中。

  • 工作流程浏览器:支持保存工作流程供快速访问,或导出到其他目录。

启用新 UI

要使用 V1 UI,需先更新 ComfyUI,然后在设置菜单中启用。

图片

Comfy 节点注册表(CNR)

过去几个月,官方一直致力于构建自定义节点的注册表系统(Comfy Registry[2]),类似于 NPM[3],通过语义版本控制发布节点。旨在为 ComfyUI 用户提供更安全、更稳定的自定义节点体验。到目前为止,已有超过 600 个节点发布,并且已有 2000 多个节点版本上线。

图片

通过与注册表的集成,ComfyUI 的 Electron 桌面应用率先支持直接从注册表中安装节点。未来的计划包括:

  • 安全扫描:官方正在测试自动扫描节点中的恶意行为功能。未来,所有自定义节点将进行安全扫描,恶意节点将被禁用,安装了这些节点的用户也会收到通知。

  • 改进依赖解析:官方正在开发一系列工具,帮助用户可靠地安装自定义节点并运行现有的工作流程。

📌 NPM

NPM(Node Package Manager)是 JavaScript 生态系统中广泛使用的包管理和分发平台。它为开发者提供了一个集中式的存储库,允许发布、安装和管理数百万个开源的 JavaScript 包。通过 NPM,开发者可以轻松管理项目中的依赖关系、版本控制,并实现模块化开发,确保应用程序构建的高效性与可维护性。NPM 还支持自动化脚本执行,使得开发流程更加流畅和集成化,是现代前端和后端开发中不可或缺的工具之一。

常见问题

  • 标准的网页版 ComfyUI 还会继续开发吗?
    Electron 应用只是对现有 ComfyUI 网页应用的简单封装。它让我们能够添加与安装及文件系统相关的功能。虽然有时也会为桌面应用开发一些特殊功能(例如标签页支持),但所有主要功能仍将优先在 ComfyUI[4]ComfyUI_frontend[5] 中开发,并同时发布到 Electron 桌面应用中。

  • 便携版的独立程序还会继续提供吗?
    便携版独立程序将在 Electron 桌面应用稳定之前继续支持。

  • 桌面应用会开源吗?
    计划在几周内的公开测试期开始时开源代码。

  • 原始界面还会继续开发吗?
    新的 V1 UI 将成为未来的默认用户体验。原始 UI 目前处于维护模式,不会再有新功能开发。鼓励所有自定义节点和扩展开发者支持新版 UI。

ComfyUI 简介

ComfyUI 是一款专为 Stable Diffusion 设计的 基于节点的图形用户界面(GUI),允许用户通过组合不同的节点模块,创建灵活的图像生成工作流程。

图片

工作原理

ComfyUI 通过将图像生成过程分解为不同的节点(如:加载模型、输入提示词、指定采样器等),用户可以自由组合这些节点来创建个性化的工作流程。每个节点代表一个功能单元,用户可以通过拖放节点,轻松构建、调整和优化图像生成过程。

自定义节点

它是 Comfy 的一大亮点,允许用户在内置节点的基础上扩展功能,开发新的工作流程并与社区共享。每个自定义节点都接受输入,进行处理并输出结果。其复杂度可以从简单的单一任务(如图像反转)到复杂的处理操作不等。

图片

ComfyUI 采用 客户端-服务器模型(Client-Server Model):服务器由 Python 编写,负责核心工作;客户端由 JavaScript 编写,处理用户界面。此外,还支持 API 模式,允许第三方客户端发送工作流程。

自定义节点分为四类:

  1. 仅服务器端:通过 Python 类定义输入、输出和处理函数。

  2. 仅客户端:修改用户界面,无需增加核心功能或新节点。

  3. 独立客户端与服务器:提供服务器和 UI 的扩展功能,客户端与服务器通过数据流控制通信。

  4. 连接客户端与服务器:在某些情况下,UI 与服务器需要直接交互。

这种分类为用户提供了灵活的定制和扩展选项。

安装方式

要使用 ComfyUI,用户则需要完成软件安装。主要有以下两种方式:

  • 本地安装:在 Mac、Windows、Linux 上安装,请参考安装指南 ComfyUI Installing[6]

  • Google Colab:使用 Colab 安装 Jupyter Notebook(comfyui_colab.ipynb[7]),按需获取硬件资源。Colab 免费可用,但图像生成需要耗费巨大的计算资源,建议选择适合自己的付费计划 Colab plan[8]

注:推荐使用 Colab Pro 计划。每月提供 100 个 T4 计算单元,相当于标准 GPU 上的 50 小时(比较划算)。

图片

与 AUTOMATIC1111 的区别

AUTOMATIC1111 是目前 Stable Diffusion 的默认 GUI,但 ComfyUI 独具特色。

AUTOMATIC1111(Stable Diffusion web UI[9])和 ComfyUI 两者都是用于 Stable Diffusion 图像生成的常用工具,但它们的设计目标和适用用户有所不同。

AUTOMATIC1111 适合那些需要高度精确控制图像生成过程的高级用户。它提供了广泛的自定义选项,包括复杂的参数调整和脚本功能,能够精细调控每个图像生成的细节。由于其复杂性,AUTOMATIC1111 具有较高的学习曲线,但对于那些对深度学习和图像合成有较深入了解的用户,它提供了几乎无穷的创作可能。此外,AUTOMATIC1111 拥有庞大的社区支持,用户可以通过社区获得帮助和共享工作流。

图片

相比之下,ComfyUI 使用的是基于节点的界面,提供了更加直观和模块化的工作流构建方式。通过拖放节点,用户可以轻松地搭建和调整图像生成工作流,适合那些希望快速原型和试验不同设置的用户。ComfyUI 在处理高分辨率图像时也表现出色,因其内存效率更高,能够更好地避免显存不足的错误。尽管其灵活性非常强,但对于不熟悉节点系统的用户而言,初始设置可能需要更多学习。

在性能方面,ComfyUI 通常被认为更能有效地处理 VRAM 和 RAM 问题,尤其在硬件资源有限的情况下表现优异。然而,如果用户更倾向于使用一个更直接、易于上手的界面,那么 AUTOMATIC1111 可能是更好的选择。

总的来说,AUTOMATIC1111 更适合高级用户,提供更精细的控制,而 ComfyUI 则适合那些喜欢通过更直观、模块化的方式来调整工作流的用户。

优势:

  • 轻量且高效:运行速度快,资源占用少。

  • 灵活可配置:用户可以根据需要自由调整工作流程。

  • 数据透明性高:所有数据流都在界面中可见,方便用户理解和调整。

  • 便于共享与复现:每个文件都是可复现的工作流程,便于分享和再现结果。

  • 原型设计友好:无需编码,用户可以通过图形界面快速创建工作流程原型。

劣势:

  • 界面不一致:不同的工作流程可能在节点布局上有差异,用户需要自行摸索如何调整。

  • 过于详细:对于普通用户来说,了解底层节点连接的方式可能不必要,可能增加使用难度。

References

[1][2][3][4][5][6][7][8][9]