ComfyUI

节点

在 ComfyUI 中,节点是我们执行任务的单元,他们是构建好的一个个独立的模块,无论是 Comfy Core 还是 自定义节点 ,每个节点都是一个独立的模块,有着自己独特的功能,节点之间通过连线连接,我们可以像搭乐高积木一样搭建起来复杂的功能。
可以说,不同的节点组合构建出了 ComfyUI 的无限可能。

Comfy Core K-Sampler 节点
例如在 K-Sampler 节点中,你可以看到它有多个输入和输出,也同时包含多个参数设置,这些参数决定了节点执行的逻辑,它的背后是对应编写好的 Python 逻辑,从而可以让你不用去接触代码就可以实现对应的功能。

ComfyUI 正在持续开发中,文档中的部分内容可能已过时。如果你发现任何变化,欢迎帮助我们更新文档

节点的的不同状态

节点状态
在 ComfyUI 中,节点有多种状态,下面是一些常见的节点状态:

  1. 正常(Normal)状态: 正常状态
  2. 运行(Running)状态: 运行中状态,通常在你开始运行工作流后,正在执行的节点会显示这个状态
  3. 错误(Error)状态: 节点错误,通常在运行工作流后,如果对应的节点输入存在问题,导致了错误会显示这个状态,并用红色标识对应出错的输入节点,你需要解决对应出错的输入来保证工作流正常运行
  4. 丢失(Missing)状态: 这个状态通常在你导入了一些工作流后会出现,存在两种可能
    • ComfyCore 原生节点丢失: 这通常是因为 ComfyUI 的版本更新了,而你当前使用的 ComfyUI 版本较旧,你需要更新 ComfyUI 来解决这个问题
    • 自定义节点丢失: 工作流中是用了第三方作者开发的自定义节点,而你的本地的 ComfyUI 版本没有安装对应的自定义节点,你可以使用 ComfyUI-Manager 来查找丢失的自定义节点

节点之间的连接

在 ComfyUI 中,节点通过连线连接,从而让相同的数据类型在不同的处理单元之间进行流转处理,从而获得最终的结果。
ComfyUI 节点连线
每个节点都会接收一些输入内容,然后经过模块处理将他们转换为对应的输出,不同的节点链接之间,必须符合数据类型规定的要求,在 ComfyUI 中,我们使用不同的颜色来区分节点的数据类型,下面是一些基础的数据类型。
ComfyUI 节点数据类型

数据类型 颜色
扩散模型 薰衣草色
CLIP 模型 黄色
VAE 模型 玫瑰色
条件化 橙色
潜在图像 粉色
像素图像 蓝色
蒙版 绿色
数字 (整数或浮点数) 浅绿色
网格(Mesh) 亮绿色

随着 ComfyUI 的迭代,我们可能会拓展更多的数据类型,以符合更多场景的需求。

节点之间的连接和取消连接

ComfyUI 节点连接
连接: 在上一个节点的输出点中拖拽到下一个节点相同颜色的输入中,即可连接
取消连接: 在被输入的端点,点击后鼠标左键拖拽输入,即可取消连接,或者通过连线的中点菜单来取消连接。

节点的外观

节点外观
我们为提供了多种样式设置,你可以根据你的需求来设置节点的外观:

  • 修改样式
  • 双击节点标题修改节点名称
  • 通过拖拽节点任意角来缩放节点尺寸

节点标签 Badges

节点标签
我们提供了多个节点标签(Badges)的显示功能,比如:

  • 节点ID
  • 节点来源

目前 Comfy Core 节点 采用小狐狸的图标来展示,自定义节点则采用其名称,这样你可以快速了解到对应节点是来自哪个节点包。
你可以在菜单中设置对应的显示:
标签设置

节点上下文菜单

节点的上下文菜单主要分为两种

  • 针对节点本身的上下文菜单
  • 针对输入 / 输出的上下文菜单

节点的上下文菜单

通过在节点上点击鼠标右键,你可以展开对应的节点上下文菜单,下面是对应的菜单截图:
节点上下文菜单
在节点的右键上下文菜单中你可以

  • 调整节点的颜色样式
  • 修改标题
  • 克隆、复制、删除节点
  • 设置节点的模式

在这个菜单中,除了外观相关的设置比较重要的是下面的菜单操作

  • 模式(Mode): 设置节点的模式,Always、Never、绕过(Bypass)

模式(Mode)

对于模式,你可能注意到目前我们提供了:Always、Never、On Event、On Trigger 四种模式,但实际上只有 AlwaysNever 是有效的,On EventOn Trigger 实际上是无效的,目前我们尚未完全实现这个功能,另外你可以把 绕过(Bypass) 也理解为一种模式,下面是对于几种可用模式的解释

  • Always: 节点默认模式,当节点首次运行或者自上一次执行后,对应输入有变化对应节点都会执行
  • Never: 节点在任何情况下都不会执行,就像节点被删除了,后续节点无法读取接收到任何来自它的数据
  • 绕过(Bypass): 节点在任何情况下都不会执行,但是后续的节点仍旧可以试着获取到未经这个节点的处理的数据

下面是对于 NeverBypass 模式的对比:
Never 和 Bypass 模式
在这个对比的例子中,你可以看到,两个工作流都是同时应用了两个 LoRA 模型,差异在于其中一个Load LoRA 节点被设置为 Never 模式而另一个被设置为Bypass 模式。

  • 被设置为 Never 模式的节点,后续的节点由于接收不到任何的输入数据而出现了报错
  • 被设置为 Bypass 模式的节点,后续的节点仍旧可以获取到未经这个节点处理的数据,从而加载了第一个Load LoRA 节点的输出数据,所以后续的工作流依旧可以正常运行

输入 / 输出的上下文菜单

这里上下文菜单主要和对应输入输出的数据类型相关
节点输入输出上下文菜单
在拖动节点的输入 / 输出的时候,当有连线出现,但你未连接到其它节点的输入或输出的时候,此时释放鼠标则会弹出针对输入 / 输出的上下文菜单,用于快速添加相关类型的节点。
你可以在设置中调整对应的节点建议的数量

节点建议数量

节点选择工具箱


节点选择工具箱(Selection tool box) 是一个为节点提供快速操作的一个浮层工具,当你选中一个节点的时候,它会悬浮在选中的节点上方,通过这个节点你可以:

  • 修改节点的颜色
  • 快速设置节点为 Bypass 模式(在运行时候不执行)
  • 固定节点
  • 删除节点

当然,这些功能在对应节点的右键菜单中也可以找到,节点选择工具箱只是提供了一个快捷操作,如果你想要关闭这个功能,可以在设置中关闭。
关闭节点选择工具箱

节点组

在 ComfyUI 中,你可以将一个工具流的部分,同时选用,再使用右键菜单将它们合并成一个节点组,使得对应的部分可以成为一个可复用的模块,从而在你的 ComfyUI 中进行重复调用

主题授权提示:请在后台主题设置-主题授权-激活主题的正版授权,授权购买:RiTheme官网