About Custom Nodes

After installing ComfyUI, you’ll discover that it includes many built-in nodes. These native nodes are called Comfy Core nodes, which are officially maintained by ComfyUI.

Additionally, there are numerous custom nodes created by various authors from the ComfyUI community. These custom nodes bring extensive functionality to ComfyUI, greatly expanding its capabilities and feature boundaries.

In this guide, we’ll cover various operations related to custom nodes, including installation, updates, disabling, uninstalling, and dependency installation.

Anyone can develop their own custom extensions for ComfyUI and share them with others. You can find many community custom nodes here. If you want to develop your own custom nodes, visit the section below to get started:

Start Developing Custom Nodes

Learn how to start developing a custom node

Custom Node Management

In this section we will cover:

  • Installing custom nodes
  • Installing node dependencies
  • Custom node version control
  • Uninstalling custom nodes
  • Temporarily disabling custom nodes
  • Handling custom node dependency conflicts

1. Installing Custom Nodes

Currently, ComfyUI supports installing custom nodes through multiple methods, including:

We recommend installing custom nodes through ComfyUI Manager, which is a highly significant tool in the ComfyUI custom node ecosystem. It makes custom node management (such as searching, installing, updating, disabling, and uninstalling) simple - you just need to search for the node you want to install in ComfyUI Manager and click install.

However, since all custom nodes are currently stored on GitHub, for regions that cannot access GitHub normally, we have written detailed instructions for different custom node installation methods in this guide.

Additionally, since we recommend using ComfyUI Manager for plugin management, we recommend using this tool for plugin management. You can find its source code here. Therefore, in this documentation, we will use installing ComfyUI Manager as a custom node installation example, and supplement how to use it for node management in the relevant introduction sections.

Since ComfyUI Manager has very rich functionality, we will use a separate document to introduce the ComfyUI Manager installation chapter. Please visit the link below to learn how to use ComfyUI Manager to install custom nodes.

Install Custom Nodes with ComfyUI Manager

Learn how to use ComfyUI Manager to install custom nodes

2. Installing Node Dependencies

Custom nodes all require the installation of related dependencies. For example, for ComfyUI-Manager, you can visit the requirements.txt file to view the dependency package requirements.

In the previous steps, we only cloned the custom node code locally and did not install the corresponding dependencies, so next we need to install the corresponding dependencies.

Actually, if you use ComfyUI-Manager to install plugins, ComfyUI Manager will automatically help you complete the dependency installation. You just need to restart ComfyUI after installing the plugin. This is why we strongly recommend using ComfyUI Manager to install custom nodes.

But perhaps you may not be able to use ComfyUI Manager to install custom nodes smoothly in some situations, so we provide this more detailed dependency installation guide.

In the Dependencies chapter, we introduced the relevant content about dependencies in ComfyUI. ComfyUI is a Python-based project, and we built an independent Python runtime environment for running ComfyUI. All related dependencies need to be installed in this independent Python runtime environment.

If you run pip install -r requirements.txt directly in the system-level terminal, the corresponding dependencies may be installed in the system-level Python environment, which will cause the dependencies to still be missing in ComfyUI’s environment, preventing the corresponding custom nodes from running normally.

So next we need to use ComfyUI’s independent Python runtime environment to complete the dependency installation.

Depending on different ComfyUI versions, we will use different methods to install the corresponding dependencies:

For ComfyUI Portable version, it uses an embedded Python located in the \ComfyUI_windows_portable\python_embeded directory. We need to use this Python to complete the dependency installation.

First, start the terminal in the portable version directory, or use the cd command to navigate to the \ComfyUI_windows_portable\ directory after starting the terminal.

Ensure that the terminal directory is \ComfyUI_windows_portable\, as shown below for D:\ComfyUI_windows_portable\

Then use python_embeded\python.exe to complete the dependency installation:

python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\ComfyUI-Manager\requirements.txt

Of course, you can replace ComfyUI-Manager with the name of the custom node you actually installed, but make sure that a requirements.txt file exists in the corresponding node directory.

Custom Node Version Control

Custom node version control is actually based on Git version control. You can manage node versions through Git, but ComfyUI Manager has already integrated this version management functionality very well. Many thanks to @Dr.Lt.Data for bringing us such a convenient tool.

In this section, we will still explain these two different plugin version management methods for you, but if you use ZIP packages for manual installation, the corresponding git version history information will be lost, making it impossible to perform version management.

Since we are iterating on ComfyUI Manager, the actual latest interface and steps may change significantly
1

Enter Node Management Interface

Perform the corresponding operations as shown to enter the ComfyUI Manager interface

2

Find the Corresponding Custom Node Package

You can use the corresponding filters to filter out installed node packages and then perform the corresponding node management

3

Perform Version Switching

Switch to the corresponding version. Manager will help you complete the corresponding dependency updates and installation. Usually, you need to restart ComfyUI after switching versions for the changes to take effect.

Uninstalling Custom Nodes

To be updated

Temporarily Disabling Custom Nodes

To be updated

Custom Node Dependency Conflicts

To be updated

ComfyUI Manager

This tool is currently included by default in the Desktop version, while in the Portable version, you need to refer to the installation instructions in the Install Manager section of this document.

As ComfyUI continues to develop, ComfyUI Manager plays an increasingly important role in ComfyUI. Currently, ComfyUI-Manager has officially joined the Comfy Org organization, officially becoming part of ComfyUI’s core dependencies, and continues to be maintained by the original author Dr.Lt.Data. You can read this blog post for more information. In future iterations, we will greatly optimize the use of ComfyUI Manager, so the interface shown in this documentation may differ from the latest version of ComfyUI Manager.

Installing the Manager

If you are running the ComfyUI server application, you need to install the manager. If ComfyUI is running, please close it before continuing.

The first step is to install Git, which is a command-line application for software version control. Git will download the ComfyUI manager from github.com. Download and install Git from git-scm.com.

After installing Git, navigate to the ComfyUI server program directory and enter the folder labeled custom_nodes. Open a command window or terminal. Make sure the command line shows the current directory path as custom_nodes. Enter the following command. This will download the manager. Technically, this is called cloning a Git repository.

Detecting Missing Nodes

After installing the manager, you can detect missing nodes in the manager.

Developing a Custom Node

If you have some development capabilities, please start with the documentation below to learn how to begin developing a custom node.

Start Developing Custom Nodes

Learn how to start developing a custom node