
As ComfyUI is still in rapid iteration and development, we are continuously improving it every day. Therefore, some operations mentioned in this article may change or be omitted. Please refer to the actual interface. If you find changes in actual operations, it may be due to our iterative updates. You can also fork this repo and help us improve this documentation.
Nodes perform operations
In computer science, a node is a container for information, usually including programmed instructions to perform some task. Nodes almost never exist in isolation, they’re almost always connected to other nodes in a networked graph. In ComfyUI, nodes take the visual form of boxes that are connected to each other. ComfyUI nodes are usually function operators. This means that they operate on some data to perform a function. A function is a process that accepts input data, performs some operation on it, and produces output data. In other words, nodes do some work, contributing to the completion of a task such as generating an image. So ComfyUI nodes almost always have at least one input or output, and usually have multiple inputs and outputs.Different Node States

- Normal State: The default state
- Running State: The running state, typically displayed when a node is executing after you start running the workflow
- 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
- 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 to find and install the missing custom nodes
Connections Between Nodes
In ComfyUI, nodes are connected through links, allowing data of the same type to flow between different processing units to achieve the final result.

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 |
Connecting and Disconnecting Nodes

Node Appearance

- Modify styles
- Double-click the node title to modify the node name
- Switch node inputs between input sockets and widgets through the context menu
- Resize the node using the bottom right corner
Node Badges

- Node ID
- Node source

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:
- Adjust the node’s color style
- Modify the title
- Clone, copy, or delete the node
- Set the node’s mode
- Mode: Set the node’s mode: Always, Never, Bypass
- Toggle between Widget and Input mode for node inputs: Switch between widget and input mode for node inputs
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
Never
and Bypass
modes:

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 firstLoad LoRA
node, allowing the subsequent workflow to continue running normally
Switching Between Widget and Input Mode for Node Inputs
In some cases, we need to use output results from other nodes as input. In this case, we can switch between widget and input mode for node inputs. Here’s a very simple example:

After frontend version v1.16.0, we improved this feature. Now you only need to directly connect the input line to the corresponding widget to complete this process
Say goodbye to annoying widget <> socket conversion starting from frontend version v1.16.0! Now each widget just always have an associated input socket by default #ComfyUI pic.twitter.com/sP9HHKyGYW
— Chenlei Hu (@HclHno3) April 7, 2025
Input/Output Context Menu
This context menu is mainly related to the data type of the corresponding input/output:

Node Selection Toolbox
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

Node Groups
In ComfyUI, you can select multiple parts of a workflow simultaneously, then use the right-click menu to merge them into a node group, making that part a reusable module that can be repeatedly called in your ComfyUI.Custom Nodes
ComfyUI includes many powerful nodes in the base installation package. These are known as Comfy Core nodes. Additionally, the ComfyUI community has created an amazing array of custom nodes to perform a wide variety of functions.ComfyUI Manager
