https://github.com/comfyanonymous/ComfyUI?tab=readme-ov-file

https://www.comflowy.com/zh-CN/introduction/why-learn-ComfyUI

https://comfyui-wiki.com/zh/tutorial

https://docs.comfy.org/zh-CN/get_started/introduction

介绍

为何要学习 ComfyUI?

市面上的AIGC产品,从学习和使用上可以分为两类,融合产品 和 分离产品。

 融合产品,如Midjourney分离产品,如ComfyUI
学习成本低,产品一般对 UX 进行优化,且会配套各种教程。高,产品一般多为开源产品,涉及多个开发者。UX 可能没有优化,且缺少教程。
迁移成本高,当你切换一个产品时,需要重新学习产品的使用方法,同时还需要重新学习与模型相关的知识。低,只需要重新学习模型相关的知识。
自由度低,产品一般都是封闭的,你只能使用产品提供的功能。高,产品一般都是开源的,你可以自由地修改产品,甚至可以自己开发产品。
费用高,一般没有本地运行版本,都需要付费。中,一般都会提供本地版本,如果你使用的是本地版就不需要付费,但你可能需要购置 GPU。

 

SD Web UI VS ComfyUI

那市面上也有很多分离型产品,为何选择 ComfyUI?

我们先来简单看看 SD Web UI 和 ComfyUI 的 UI 界面,你应该就能知道它们的区别了:

img

从上图中可以看到,SD WebUI 的 UI 更像是我们传统使用的产品,有很多输入框,还有多个按钮。而 ComfyUI 的 UI 界面则非常复杂,除了输入框,还有很多一块块的东西,并且还有很多复杂的连线。

的确,从学习成本来看,ComfyUI 的学习成本会比 SD WebUI 高。但是这种连线其实并不复杂,你可以这么理解:

所以,选择 ComfyUI 最核心的原因就在于它的自由和拓展。那这就意味着你可以自己调整 ComfyUI 从而让它切合你的工作流,甚至改造你的工作流。

在现在这种 AI 发展如此迅猛的时代,我认为保持灵活才是最重要的。

 

官方文档

ComfyUI

最强大和模块化的Stable Diffusion GUI 和后端。

 

ComfyUI安装

https://docs.comfy.org/zh-CN/installation/manual_install

可以看到它Git上显示为99.6%的python开发

ComfyUI初试

本部分教程将会带你完成首次 ComfyUI 的图片生成,了解并熟悉 ComfyUI 中的一些界面基础操作,如工作流加载、模型安装、图片生成等

本篇的主要目的是带你初步了解 ComfyUI 熟悉 ComfyUI 的一些基础操作,并引导你首次的图片生成

  1. 加载工作流

    • 默认会加载文生图工作流

    • 从示例模版中加载

    • 从带有metadata 的图片中加载

      所有用 ComfyUI 生成的图片,都会带有 metadata 信息

    • 从导出的工作流json中加载

  2. 指导你完成模型

    • 自动安装模型(加载工作流时会提示)

    • 手动安装模型(自行从huggingface下载,存放于ComfyUI/models/checkpoints

    • 使用 ComfyUI Manager ,它是ComfyUI的扩展、插件,在ComfyUI/custom_nodes clone该项目就可以。

  3. 进行一次文本到图片的生成

ComfyUI核心概念

工作流

1.1 节点图

ComfyUI 是一个用于构建和运行生成内容工作流的环境。在这个语境中,工作流被定义为一组称为节点的程序对象,这些节点相互连接,形成一个网络。这个网络也被称为

ComfyUI 工作流程可以生成任何类型的媒体:图像、视频、音频、AI模型、AI代理等等。

1.2 示例工作流

  1. 官方工作流

  1. ComfyUI有一个繁荣的社区,创建了丰富的生态系统

1.3 可视化程序

像 ComfyUI 这样的基于节点的计算机程序提供了一种传统菜单和按钮驱动型应用程序无法实现的强大功能和灵活性。它是一个高级可视化编程环境,允许用户无需编写程序代码或理解高级数学即可设计复杂系统。

许多其他计算机应用程序也采用了这种相同的节点图范式。例如包括合成应用程序 Nuke、3D 程序 Maya 和 Blender、虚幻(Unreal)引擎以及交互式媒体创作程序 Max。

1.4 程序化框架

用于描述基于节点的应用程序的另一个术语是程序化框架。程序化意味着生成式的:采用某种程序或算法来生成诸如 3D 模型或音乐作品之类的内容。

ComfyUI 就是所有这些东西:一个节点图、一个可视化编程环境,以及一个程序化框架。让 ComfyUI 与众不同(且令人惊叹!)的是,其极其开放的结构使我们能够生成任何类型的媒体资产,比如图片、电影、声音、3D 模型、AI 模型等。

在 ComfyUI 的语境中,“工作流” 这一术语是节点网络或节点图的同义词。它相当于 3D 或多媒体程序中的场景图:某个特定磁盘文件中所有节点的网络。3D 程序将这种文件称为场景文件

类似godot的tscn文件。

1.5 保存工作流

工作流会自动保存在生成图片的metadata里,用户无需逆向工程就能获得工作流。工作流也可保存在json文件。

 

节点

1.1 节点执行操作

在计算机科学中,节点是存储信息的容器,通常包含用于执行特定任务的程序化指令。节点几乎不会孤立存在,它们总是以网络图的形式与其他节点连接。在ComfyUI中,节点以相互连接的方框形式进行可视化呈现。

ComfyUI的节点通常是功能操作单元。这意味着它们通过对数据进行操作来实现特定功能。所谓功能(function),即是一个接收输入数据、执行处理操作并产生输出数据的过程。简而言之,节点通过执行具体工作来推动任务的完成(例如图像生成)。因此,ComfyUI的节点几乎都至少具备一个输入或输出接口,且通常具有多个输入和输出端口。

1.2 自定义节点

ComfyUI在基础安装包中已内置众多功能强大的官方核心节点(Comfy Core nodes)。更值得一提的是,社区开发者还创建了丰富多样的自定义节点,能够实现各种扩展功能。

自定义节点的管理可以使用ComfyUI Manager工具。

属性

1.1 节点作为属性容器

节点通常包含可配置属性(properties)(也被称作parameters or attributes),这些属性本质上是可供修改的变量。用户可通过控件组件(widget)手动调整部分属性,也可通过连接其他节点到属性输入端口(input slot or port)实现自动控制。大多数属性支持在控件与输入端口之间自由切换,从而为用户提供手动或自动控制属性的灵活性。

节点属性具有多元化的表现形式,可承载各类信息。例如:

1.2 数据类型

虽然底层采用弱类型的Python脚本语言开发,但ComfyUI运行环境具有严格的数据类型约束。这意味着不同数据类型不可混用,例如:禁止将图像输出连接到整数输入端口。这种强类型设计显著提升了用户体验,既能引导用户建立规范的工作流,又能有效预防程序错误。

连接

1.1 节点的连接

在ComfyUI中,节点间的连接线(Links/Connections/Wires)具有多种可视化形态:直线模式(默认)、贝塞尔曲线模式或完全隐藏模式。用户可通过ComfyUI设置窗口或界面右下角的切换(Toggle)连接线可见性按钮进行显示控制。

连接线的可视化呈现具有重要实践意义:

这种智能化的显示策略既保证了系统透明度,又适应了不同使用场景的交互需求。

1.2 重新路由节点

如果图结构的可读性很重要,那么连接线可以在图的二维空间中通过一个称为“重新路由”的小节点进行手动路由。其目的是定位连接线的起始点和/或终止点,以确保其可见性。我们可以设计一个工作流程,使得连接线不会经过节点下面、不会交叉其他连接线等等。

1.3 颜色编码

节点属性的数据类型通过输入/输出端口和链接连接线的颜色编码来表示。我们可以通过颜色轻松识别哪些输入和输出可以相互连接。端口只能连接到相同颜色的其他端口。

常见数据类型:

数据类型颜色
扩散模型淡紫色
CLIP 模型黄色
VAE 模型玫瑰色
条件橙色
潜在图像粉色
像素图像蓝色
掩膜绿色
数字(整数或浮点数)浅绿色

模型

1.1 模型是必不可少的

模型是媒体生成工作流的重要构件。它们可以组合和混合,以实现不同的创意效果。

“模型”这个词有多种不同的含义。在这里,它指的是一个数据文件,包含节点图执行其工作的所需信息。具体来说,它是一个模拟某种功能的数据结构。作为动词,"建模"意味着表示某物或提供一个示例。

在 ComfyUI 中,模型数据文件的主要示例是 AI 扩散模型。这是一组大型数据,表示文本字符串和图像之间的复杂关系,使得将文字转换为图像或反之成为可能。其他常用的图像生成模型示例包括语言模型,如 CLIP,以及图像放大模型,如 RealESRGAN。

1.2 模型文件

模型文件对于生成媒体制作是绝对必要的。如果找不到模型文件,工作流程将无法进行。模型不包含在 ComfyUI 的安装中,但 ComfyUI 通常可以自动下载和安装缺失的模型文件。许多模型可以从 ComfyUI 管理窗口下载和安装。模型也可以在诸如 huggingface.co、civitai.green 和 github.com 等网站上找到。

依赖