> ## Documentation Index
> Fetch the complete documentation index at: https://dripart-codex-simplify-get-started.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Nodes

> Learn what ComfyUI nodes do, how to read their inputs and outputs, and what common node states mean.

A **node** is a box that performs one step in a workflow. One node might load a model, another might read your text prompt, and another might save the finished image. Connect nodes to pass results between those steps.

Start with a [workflow template](/interface/features/template) to see nodes working together. You can run a template before learning how to add or connect nodes yourself.

For a short explanation of how nodes fit into a complete workflow, read [How ComfyUI works](/get_started/how-comfyui-works). The sections below cover node states, connections, controls, and menus in more detail.

<img src="https://mintcdn.com/dripart-codex-simplify-get-started/7tmfMYNvG4CDl41_/images/comfy_core/sampling/k_sampler.png?fit=max&auto=format&n=7tmfMYNvG4CDl41_&q=85&s=1e568c211275be99bdcf2c6b35693036" alt="Comfy Core K-Sampler Node" width="974" height="1076" data-path="images/comfy_core/sampling/k_sampler.png" />

In the KSampler example, connections on the left provide inputs, settings inside the box control generation, and the connection on the right passes its result onward. You can change settings without writing code.

<Note>
  ComfyUI is under active development, so some details here may be outdated. If you spot something that's changed, feel free to [help us update the docs](https://github.com/Comfy-Org/docs).
</Note>

## Nodes perform operations

Most nodes accept input, do a job, and produce output. A **Load Checkpoint** node, for example, loads a model that other nodes can use. A **Save Image** node receives the final image and saves it. The connecting lines are called [links](/basic-concepts/links).

## Different Node States

<img src="https://mintcdn.com/dripart-codex-simplify-get-started/VAVK5xegp62x4Hhp/images/concepts/node/status.jpg?fit=max&auto=format&n=VAVK5xegp62x4Hhp&q=85&s=27c99838d21d4f2d421f618817628c7f" alt="Node States" width="3167" height="900" data-path="images/concepts/node/status.jpg" />

In ComfyUI, nodes have multiple states. Here are some common node states:

1. **Normal State**: The default state
2. **Running State**: The running state, typically displayed when a node is executing after you start running the workflow
3. **Error State**: Node error, typically displayed after running the workflow if there's a problem with the node's input, indicated by red marking of the erroneous input node. You need to fix the problematic input to ensure the workflow runs correctly
4. **Missing State**: This state usually appears after importing workflows, with two possibilities:
   * Comfy Core native node missing: This usually happens because ComfyUI has been updated, but you're using an older version of ComfyUI. You need to update ComfyUI to resolve this issue
   * Custom node missing: The workflow uses custom nodes developed by third-party authors, but your local ComfyUI version doesn't have these custom nodes installed. You can use [ComfyUI Manager](/manager/overview) to find and install them, or follow [How to install custom nodes](/installation/install_custom_node) for other methods

## Connections Between Nodes

In ComfyUI, nodes are connected through [links](/basic-concepts/links), allowing data of the same type to flow between different processing units to achieve the final result.

<img src="https://mintcdn.com/dripart-codex-simplify-get-started/VAVK5xegp62x4Hhp/images/concepts/node/inpaint.jpg?fit=max&auto=format&n=VAVK5xegp62x4Hhp&q=85&s=6a18f9c2880dcdcd3b82a0cb1ecb1b4b" alt="ComfyUI Node Links" width="2000" height="1108" data-path="images/concepts/node/inpaint.jpg" />

Each node receives some input, processes it through its module, and converts it to corresponding output. Connections between different nodes must conform to the data type requirements. In ComfyUI, we use different colors to distinguish node data types. Below are some basic data types:

<img src="https://mintcdn.com/dripart-codex-simplify-get-started/VAVK5xegp62x4Hhp/images/concepts/node/data_type.jpg?fit=max&auto=format&n=VAVK5xegp62x4Hhp&q=85&s=34037b92e0a00abe1d69232df46e8fa5" alt="ComfyUI Node Data Types" width="685" height="356" data-path="images/concepts/node/data_type.jpg" />

| Data type                 | Color        |
| ------------------------- | ------------ |
| diffusion model           | lavender     |
| CLIP model                | yellow       |
| VAE model                 | rose         |
| conditioning              | orange       |
| latent image              | pink         |
| pixel image               | blue         |
| mask                      | green        |
| number (integer or float) | light green  |
| mesh                      | bright green |

As ComfyUI evolves, we may expand to more data types to meet the needs of more scenarios.

### Connecting and Disconnecting Nodes

<img src="https://mintcdn.com/dripart-codex-simplify-get-started/VAVK5xegp62x4Hhp/images/concepts/node/link_nodes.gif?s=a77c0cc610a259c65b35eb5c61eda1e3" alt="ComfyUI Node Connecting" width="820" height="724" data-path="images/concepts/node/link_nodes.gif" />

**Connecting**: Drag from the output point of one node to the input of the same color on another node to connect them
**Disconnecting**: Click on the input endpoint and drag the mouse left button to disconnect, or cancel the connection through the midpoint menu of the link

## Node Appearance

<img src="https://mintcdn.com/dripart-codex-simplify-get-started/VAVK5xegp62x4Hhp/images/index/node.jpg?fit=max&auto=format&n=VAVK5xegp62x4Hhp&q=85&s=dfc0e0b96e9ad30c3d26ecaf5050ce92" alt="Node Appearance" width="950" height="560" data-path="images/index/node.jpg" />

We provide various style settings for you to customize the appearance of nodes:

* Modify styles
* Double-click the node title to modify the node name
* Resize the node by dragging any corner

<video controls className="w-full aspect-video" src="https://mintcdn.com/dripart-codex-simplify-get-started/VAVK5xegp62x4Hhp/images/concepts/node/node_appearance.mp4?fit=max&auto=format&n=VAVK5xegp62x4Hhp&q=85&s=bd1089e7af284da071bd4f73c81d308a" data-path="images/concepts/node/node_appearance.mp4" />

### Node Badges

<img src="https://mintcdn.com/dripart-codex-simplify-get-started/VAVK5xegp62x4Hhp/images/concepts/node/badge.jpg?fit=max&auto=format&n=VAVK5xegp62x4Hhp&q=85&s=f8e7f19bcffb930cb4bbf429bcb66a9f" alt="Node Badges" width="1207" height="606" data-path="images/concepts/node/badge.jpg" />

We provide multiple node badge display features, such as:

* Node ID
* Node source

Currently, **Comfy Core nodes** use a fox icon for display, while custom nodes use their names. This way you can quickly understand which node package a node comes from.

You can set the corresponding display in the menu:

<img src="https://mintcdn.com/dripart-codex-simplify-get-started/VAVK5xegp62x4Hhp/images/concepts/node/badge_setting.jpg?fit=max&auto=format&n=VAVK5xegp62x4Hhp&q=85&s=690e542cf85832a2880ecc79427d2774" alt="Badge Settings" width="1500" height="561" data-path="images/concepts/node/badge_setting.jpg" />

## Node Context Menus

Node context menus are mainly divided into two types:

* Context menu for the node itself
* Context menu for inputs/outputs

### Node Context Menu

By right-clicking on a node, you can expand the corresponding node context menu:

<img src="https://mintcdn.com/dripart-codex-simplify-get-started/VAVK5xegp62x4Hhp/images/concepts/node/context_menus_1.jpg?fit=max&auto=format&n=VAVK5xegp62x4Hhp&q=85&s=740b252a7e5fed69aaeffd5863042ed6" alt="Node Context Menu" width="2100" height="1832" data-path="images/concepts/node/context_menus_1.jpg" />

In the node's right-click context menu, you can:

* Adjust the node's color style
* Modify the title
* Clone, copy, or delete the node
* Set the node's mode

In this menu, besides appearance-related settings, the following menu operations are important:

* **Mode**: Set the node's mode: Always, Never, Bypass

#### Mode

For modes, you may notice that we currently provide: Always, Never, On Event, On Trigger - four modes, but actually only **Always** and **Never** are effective. **On Event** and **On Trigger** are currently ineffective as we haven't fully implemented this feature. Additionally, you can understand **Bypass** as a mode. Below is an explanation of the available modes:

* **Always**: The default node mode. The node will execute whenever it runs for the first time or when any of its inputs change since the last execution
* **Never**: The node will never execute under any circumstances, as if it's been deleted. Subsequent nodes cannot read or receive any data from it
* **Bypass**: The node will never execute under any circumstances, but subsequent nodes can still try to obtain data that hasn't been processed by this node

Below is a comparison of the `Never` and `Bypass` modes:

<img src="https://mintcdn.com/dripart-codex-simplify-get-started/VAVK5xegp62x4Hhp/images/concepts/node/never_vs_bypass.jpg?fit=max&auto=format&n=VAVK5xegp62x4Hhp&q=85&s=b401d5b9908000192134b13dcbb72039" alt="Never vs Bypass Mode" width="2887" height="1016" data-path="images/concepts/node/never_vs_bypass.jpg" />

In this comparison example, you can see that both workflows apply two LoRA models simultaneously, with the difference being that one `Load LoRA` node is set to `Never` mode while the other is set to `Bypass` mode.

* The node set to `Never` mode causes subsequent nodes to show errors because they don't receive any input data
* The node set to `Bypass` mode still allows subsequent nodes to receive unprocessed data, so they load the output data from the first `Load LoRA` node, allowing the subsequent workflow to continue running normally

### Input/Output Context Menu

This context menu is mainly related to the data type of the corresponding input/output:

<img src="https://mintcdn.com/dripart-codex-simplify-get-started/VAVK5xegp62x4Hhp/images/concepts/node/context_menus_2.jpg?fit=max&auto=format&n=VAVK5xegp62x4Hhp&q=85&s=c9a08b9ea3b133a9b03119ebc072f6c7" alt="Node Input/Output Context Menu" width="1774" height="910" data-path="images/concepts/node/context_menus_2.jpg" />

When dragging the input/output of a node, if a connection appears but you haven't connected to another node's input or output, releasing the mouse will pop up a context menu for the input/output, used to quickly add related types of nodes.
You can adjust the number of node suggestions in the settings:

<img src="https://mintcdn.com/dripart-codex-simplify-get-started/VAVK5xegp62x4Hhp/images/concepts/node/node_suggestions.jpg?fit=max&auto=format&n=VAVK5xegp62x4Hhp&q=85&s=dda3c8f64785a47798313a912ee097ba" alt="Node Suggestion Count" width="1000" height="314" data-path="images/concepts/node/node_suggestions.jpg" />

## Node Selection Toolbox

<video controls className="w-full aspect-video" src="https://mintcdn.com/dripart-codex-simplify-get-started/VAVK5xegp62x4Hhp/images/concepts/node/selection_toolbox.mp4?fit=max&auto=format&n=VAVK5xegp62x4Hhp&q=85&s=2462aa251ca661905d7e45a2ef9891ac" data-path="images/concepts/node/selection_toolbox.mp4" />

The **Node Selection Toolbox** is a floating tool that provides quick operations for nodes. When you select a node, it hovers above the selected node. Through this toolbox, you can:

* Change the node's color
* Quickly set the node to Bypass mode (not execute during runtime)
* Lock the node
* Delete the node

Of course, these functions can also be found in the right-click menu of the corresponding node. The node selection toolbox just provides a shortcut operation. If you want to disable this feature, you can turn it off in the settings.

<img src="https://mintcdn.com/dripart-codex-simplify-get-started/VAVK5xegp62x4Hhp/images/concepts/node/setting_selection_toolbox.jpg?fit=max&auto=format&n=VAVK5xegp62x4Hhp&q=85&s=6af1a03b075842b24fd29caede3dc2e1" alt="Disable Node Selection Toolbox" width="1067" height="324" data-path="images/concepts/node/setting_selection_toolbox.jpg" />

## Subgraphs

You can collapse a selection of nodes into one reusable subgraph node to tidy complex graphs and reuse the same structure across workflows.

<Card title="Subgraph" icon="share-nodes" href="/interface/features/subgraph">
  Learn how to create, edit, nest, and publish subgraph blueprints to the node library.
</Card>

## Custom Nodes

ComfyUI includes many **Comfy Core** nodes in the base installation. The community also maintains a large catalog of [**custom nodes**](https://registry.comfy.org) for specialized workflows.

For a full summary of how to install custom nodes—**ComfyUI Manager**, Git clone, ZIP download, dependencies, and safety tips—see [How to install custom nodes](/installation/install_custom_node).

### ComfyUI Manager

Use **ComfyUI Manager** for everyday custom node work: search and install from the registry, update or disable packages, detect missing nodes from imported workflows, and manage models and snapshots alongside extensions. Desktop builds ship with it enabled; portable and manual installs may need to turn it on first.

<Card title="ComfyUI Manager" icon="puzzle-piece" href="/manager/overview">
  Overview, enabling the Manager, and node installation workflows
</Card>
