> ## Documentation Index
> Fetch the complete documentation index at: https://dripart-mintlify-linear-mode-interface-docs-53934.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 节点

> 了解 ComfyUI 中节点的概念。

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

<img src="https://mintcdn.com/dripart-mintlify-linear-mode-interface-docs-53934/KGfBPdkzkTj_-gwc/images/comfy_core/sampling/k_sampler.jpg?fit=max&auto=format&n=KGfBPdkzkTj_-gwc&q=85&s=47d8ccf3f9a092af5e002fe4db815f0a" alt="Comfy Core K-Sampler 节点" width="854" height="767" data-path="images/comfy_core/sampling/k_sampler.jpg" />

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

<Note>
  ComfyUI 正在持续开发中，文档中的部分内容可能已过时。如果你发现任何变化，欢迎[帮助我们更新文档](https://github.com/Comfy-Org/docs)。
</Note>

## 节点的的不同状态

<img src="https://mintcdn.com/dripart-mintlify-linear-mode-interface-docs-53934/trjrscabFtH0Z3-K/images/concepts/node/status.jpg?fit=max&auto=format&n=trjrscabFtH0Z3-K&q=85&s=844aa928e8f5b8e548e3f5fea43b54d7" alt="节点状态" width="3167" height="900" data-path="images/concepts/node/status.jpg" />

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

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

## 节点之间的连接

在 ComfyUI 中，节点通过[连线](/zh-CN/development/core-concepts/links)连接，从而让相同的数据类型在不同的处理单元之间进行流转处理,从而获得最终的结果。

<img src="https://mintcdn.com/dripart-mintlify-linear-mode-interface-docs-53934/trjrscabFtH0Z3-K/images/concepts/node/inpaint.jpg?fit=max&auto=format&n=trjrscabFtH0Z3-K&q=85&s=2f385947580d22ce3d59d8cbf5bfb555" alt="ComfyUI 节点连线" width="2000" height="1108" data-path="images/concepts/node/inpaint.jpg" />

每个节点都会接收一些输入内容，然后经过模块处理将他们转换为对应的输出，不同的节点链接之间，必须符合数据类型规定的要求，在 ComfyUI 中，我们使用不同的颜色来区分节点的数据类型,下面是一些基础的数据类型。

<img src="https://mintcdn.com/dripart-mintlify-linear-mode-interface-docs-53934/trjrscabFtH0Z3-K/images/concepts/node/data_type.jpg?fit=max&auto=format&n=trjrscabFtH0Z3-K&q=85&s=4163be27b1cecbfe50636460089127cc" alt="ComfyUI 节点数据类型" width="685" height="356" data-path="images/concepts/node/data_type.jpg" />

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

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

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

<img src="https://mintcdn.com/dripart-mintlify-linear-mode-interface-docs-53934/trjrscabFtH0Z3-K/images/concepts/node/link_nodes.gif?s=910714f00270c9a4c4f40ad5c0abb74f" alt="ComfyUI 节点连接" width="820" height="724" data-path="images/concepts/node/link_nodes.gif" />

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

## 节点的外观

<img src="https://mintcdn.com/dripart-mintlify-linear-mode-interface-docs-53934/CxiB36sWpUksk17n/images/zh/core-concept/node/node.jpg?fit=max&auto=format&n=CxiB36sWpUksk17n&q=85&s=ef2f3fcc30ac7f92dc515c380dea1feb" alt="节点外观" width="1261" height="896" data-path="images/zh/core-concept/node/node.jpg" />

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

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

<video controls className="w-full aspect-video" src="https://mintcdn.com/dripart-mintlify-linear-mode-interface-docs-53934/trjrscabFtH0Z3-K/images/concepts/node/node_appearance.mp4?fit=max&auto=format&n=trjrscabFtH0Z3-K&q=85&s=1c01dd79e529c19c87ec9707871f5ad0" data-path="images/concepts/node/node_appearance.mp4" />

### 节点标签 Badges

<img src="https://mintcdn.com/dripart-mintlify-linear-mode-interface-docs-53934/trjrscabFtH0Z3-K/images/concepts/node/badge.jpg?fit=max&auto=format&n=trjrscabFtH0Z3-K&q=85&s=f7bf2e7ad3f10fe25d2b66112ec6ceb3" alt="节点标签" width="1207" height="606" data-path="images/concepts/node/badge.jpg" />

我们提供了多个节点标签（Badges）的显示功能，比如：

* 节点ID
* 节点来源

目前 **Comfy Core 节点** 采用小狐狸的图标来展示，自定义节点则采用其名称，这样你可以快速了解到对应节点是来自哪个节点包。

你可以在菜单中设置对应的显示：

<img src="https://mintcdn.com/dripart-mintlify-linear-mode-interface-docs-53934/CxiB36sWpUksk17n/images/zh/core-concept/node/badge_setting.jpg?fit=max&auto=format&n=CxiB36sWpUksk17n&q=85&s=89a565be9670d2d50213896df4c3b10a" alt="标签设置" width="1500" height="586" data-path="images/zh/core-concept/node/badge_setting.jpg" />

## 节点上下文菜单

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

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

### 节点的上下文菜单

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

<img src="https://mintcdn.com/dripart-mintlify-linear-mode-interface-docs-53934/CxiB36sWpUksk17n/images/zh/core-concept/node/context_menus_1.jpg?fit=max&auto=format&n=CxiB36sWpUksk17n&q=85&s=8583f40c4647a7e4f170388c0bc7f3fe" alt="节点上下文菜单" width="2000" height="1930" data-path="images/zh/core-concept/node/context_menus_1.jpg" />

在节点的右键上下文菜单中你可以

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

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

* **模式（Mode）**： 设置节点的模式，Always、Never、绕过（Bypass）

#### 模式（Mode）

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

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

下面是对于 `Never` 和 `Bypass` 模式的对比：

<img src="https://mintcdn.com/dripart-mintlify-linear-mode-interface-docs-53934/trjrscabFtH0Z3-K/images/concepts/node/never_vs_bypass.jpg?fit=max&auto=format&n=trjrscabFtH0Z3-K&q=85&s=178a7dc94d3afe3e44b3351a81bb5ddd" alt="Never 和 Bypass 模式" width="3000" height="1092" data-path="images/concepts/node/never_vs_bypass.jpg" />

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

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

### 输入 / 输出的上下文菜单

这里上下文菜单主要和对应输入输出的数据类型相关

<img src="https://mintcdn.com/dripart-mintlify-linear-mode-interface-docs-53934/trjrscabFtH0Z3-K/images/concepts/node/context_menus_2.jpg?fit=max&auto=format&n=trjrscabFtH0Z3-K&q=85&s=cf7a54afe71382df14f1bd8e52cf28ef" alt="节点输入输出上下文菜单" width="1774" height="910" data-path="images/concepts/node/context_menus_2.jpg" />

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

<img src="https://mintcdn.com/dripart-mintlify-linear-mode-interface-docs-53934/CxiB36sWpUksk17n/images/zh/core-concept/node/node_suggestions.jpg?fit=max&auto=format&n=CxiB36sWpUksk17n&q=85&s=83b4b1a0086d800c6bc1557cd73c6b6f" alt="节点建议数量" width="1000" height="314" data-path="images/zh/core-concept/node/node_suggestions.jpg" />

## 节点选择工具箱

<video controls className="w-full aspect-video" src="https://mintcdn.com/dripart-mintlify-linear-mode-interface-docs-53934/trjrscabFtH0Z3-K/images/concepts/node/selection_toolbox.mp4?fit=max&auto=format&n=trjrscabFtH0Z3-K&q=85&s=9981acba3b2fafe35f3ea0993a61c018" data-path="images/concepts/node/selection_toolbox.mp4" />

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

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

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

<img src="https://mintcdn.com/dripart-mintlify-linear-mode-interface-docs-53934/CxiB36sWpUksk17n/images/zh/core-concept/node/setting_selection_toolbox.jpg?fit=max&auto=format&n=CxiB36sWpUksk17n&q=85&s=2d83543fdff325886ac6fdf6ef4d7fb7" alt="关闭节点选择工具箱" width="1067" height="267" data-path="images/zh/core-concept/node/setting_selection_toolbox.jpg" />

## 节点组

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