节点
节点是 ComfyUI 的基本构建块:通过连线连接的独立 Comfy Core 或自定义模块,用来组装复杂工作流。
在 ComfyUI 中,节点是我们执行任务的单元,他们是构建好的一个个独立的模块,无论是 Comfy Core 还是 自定义节点 ,每个节点都是一个独立的模块,有着自己独特的功能,节点之间通过连线连接,我们可以像搭乐高积木一样搭建起来复杂的功能。 可以说,不同的节点组合构建出了 ComfyUI 的无限可能。
例如在 K-Sampler 节点中,你可以看到它有多个输入和输出,也同时包含多个参数设置,这些参数决定了节点执行的逻辑,它的背后是对应编写好的 Python 逻辑,从而可以让你不用去接触代码就可以实现对应的功能。
ComfyUI 正在持续开发中,文档中的部分内容可能已过时。如果你发现任何变化,欢迎帮助我们更新文档。
节点如何运作
在计算机科学中,节点通常指承载信息的单元,其中往往包含用于完成某项任务的程序指令。节点很少孤立存在,在图网络中几乎总会与其他节点相连。在 ComfyUI 中,节点以可相互连接的方框形式呈现。
ComfyUI 中的节点通常是函 数算子:它们对数据进行处理以完成某种功能;功能可以理解为接收输入数据、对其运算并产生输出数据的过程。换句话说,节点承担具体工作,共同完成例如生成图像等任务。因此 ComfyUI 节点几乎总至少有一个输入或输出,多数情况下同时具有多个输入与输出。
节点的不同状态
在 ComfyUI 中,节点有多种状态,下面是一些常见的节点状态:
- 正常(Normal)状态: 正常状态
- 运行(Running)状态: 运行中状态,通常在你开始运行工作流后,正在执行的节点会显示这个状态
- 错误(Error)状态: 节点错误,通常在运行工作流后,如果对应的节点输入存在问题,导致了错误会显示这个状态,并用红色标识对应出错的输入节点,你需要解决对应出错的输入来保证工作流正常运行
- 丢失(Missing)状态: 这个状态通常在你导入了一些工作流后会出现,存在两种可能
- ComfyCore 原生节点丢失: 这通常是因为 ComfyUI 的版本更新了,而你当前使用的 ComfyUI 版本较旧,你需要更新 ComfyUI 来解决这个问题
- 自定义节点丢失: 工作流使用了第三方作者开发的自定义节点,而本地尚未安装对应扩展。可使用 ComfyUI Manager 查找并安装,或参阅 如何安 装自定义节点 了解其它方式
节点之间的连接
在 ComfyUI 中,节点通过连线连接,从而让相同的数据类型在不同的处理单元之间进行流转处理,从而获得最终的结果。
每个节点都会接收一些输入内容,然后经过模块处理将他们转换为对应的输出,不同的节点链接之间,必须符合数据类型规定的要求,在 ComfyUI 中,我们使用不同的颜色来区分节点的数据类型,下面是一些基础的数据类型。
| 数据类型 | 颜色 |
|---|---|
| 扩散模型 | 薰衣草色 |
| CLIP 模型 | 黄色 |
| VAE 模型 | 玫瑰色 |
| 条件化 | 橙色 |
| 潜在图像 | 粉色 |
| 像素图像 | 蓝色 |
| 蒙版 | 绿色 |
| 数字 (整数或浮点数) | 浅绿色 |
| 网格(Mesh) | 亮绿色 |
随着 ComfyUI 的迭代,我们可能会拓展更多的数据类型,以符合更多场景的需求。