Skip to main content
Learn how to extend ComfyUI’s functionality by installing custom nodes and extensions from the community.

Installation Methods

There are three primary ways to install custom nodes:

ComfyUI Manager

Easiest method with GUI

Manual Git Clone

Direct installation

comfy-cli

Command-line tool

Using ComfyUI Manager

The recommended method for most users.

Setup

1

Install Manager Requirements

pip install -r manager_requirements.txt
2

Enable Manager

python main.py --enable-manager
3

Access Manager UI

Open ComfyUI and click the Manager button

Installing Nodes

1

Browse Extensions

Search or browse available custom nodes in the Manager
2

Select Extension

Click on the extension you want to install
3

Install

Click the Install button
4

Restart ComfyUI

Restart ComfyUI to load the new nodes
The manager automatically handles dependencies and git operations for you.

Manual Installation

Install extensions manually using git.

Prerequisites

  • Git installed on your system
  • Write access to the ComfyUI directory

Installation Steps

1

Navigate to Custom Nodes

cd ComfyUI/custom_nodes/
2

Clone Repository

git clone https://github.com/username/extension-name
3

Install Dependencies

cd extension-name
pip install -r requirements.txt
4

Restart ComfyUI

Restart ComfyUI to load the new nodes

Example

cd ComfyUI/custom_nodes/
git clone https://github.com/example/comfyui-custom-nodes
cd comfyui-custom-nodes
pip install -r requirements.txt
cd ../..
python main.py

Using comfy-cli

The official ComfyUI command-line tool.

Installation

pip install comfy-cli

Managing Extensions

comfy install
For complete documentation, see the comfy-cli docs.

Managing Installed Extensions

Updating Extensions

Via Manager

  1. Open ComfyUI Manager
  2. Navigate to Update tab
  3. Select extensions to update
  4. Click Update
  5. Restart ComfyUI

Via Git

cd ComfyUI/custom_nodes/extension-name
git pull
pip install -r requirements.txt --upgrade

Disabling Extensions

To temporarily disable an extension without removing it:
Rename the extension folder:
cd ComfyUI/custom_nodes/
mv extension-name extension-name.disabled
Restart ComfyUI.

Removing Extensions

To completely remove an extension:
cd ComfyUI/custom_nodes/
rm -rf extension-name
Restart ComfyUI after removal.
Removing an extension will break workflows that depend on it.

Finding Extensions

Official Sources

ComfyUI Manager

Browse extensions directly in the Manager UI

GitHub

Search GitHub for “comfyui-” repositories
Some popular categories of extensions:
  • Image Processing: Advanced filters, effects, and transformations
  • ControlNet: Additional ControlNet models and processors
  • Video: Video generation and processing nodes
  • Utilities: Workflow helpers, converters, and tools
  • Model Loaders: Support for additional model formats

Extension Structure

Understanding extension structure helps with troubleshooting:
extension-name/
├── __init__.py              # Entry point
├── nodes/                   # Node definitions
│   └── my_nodes.py
├── web/                     # Frontend extensions
│   └── extensions.js
├── example_workflows/       # Example workflows
│   └── example.json
├── locales/                 # Translations
│   └── en/
│       └── main.json
├── requirements.txt         # Python dependencies
└── README.md               # Documentation

Extension Configuration

Model Paths

Some extensions require specific model files. Configure paths in extra_model_paths.yaml:
comfyui:
  base_path: /path/to/stable-diffusion-webui/
  
  checkpoints: models/Stable-diffusion/
  vae: models/VAE/
  loras: models/Lora/
  controlnet: models/ControlNet/

Environment Variables

Some extensions use environment variables:
# Example: Set cache directory
export COMFYUI_CACHE_DIR=/path/to/cache

# Example: Set model directory
export COMFYUI_MODEL_DIR=/path/to/models

python main.py --enable-manager

Troubleshooting

Extension Not Loading

Look for error messages when starting ComfyUI:
python main.py --enable-manager
Common errors:
  • Import errors (missing dependencies)
  • Syntax errors in extension code
  • Duplicate node IDs
Ensure all required packages are installed:
cd ComfyUI/custom_nodes/extension-name
pip install -r requirements.txt
Verify the extension is compatible with your ComfyUI version:
  • Check the extension’s README
  • Look for version requirements
  • Check the extension’s issue tracker
Ensure ComfyUI has read access:
chmod -R 755 ComfyUI/custom_nodes/extension-name

Import Errors

If you see import errors:
ImportError: No module named 'some_package'
Install the missing package:
pip install some_package
Or reinstall extension requirements:
cd ComfyUI/custom_nodes/extension-name
pip install -r requirements.txt --upgrade --force-reinstall

Conflicting Extensions

If two extensions conflict:
  1. Check node IDs: Extensions may register nodes with the same ID
  2. Disable one: Temporarily disable one extension
  3. Check logs: Look for conflict messages in the console
  4. Contact authors: Report the issue to extension maintainers

Performance Issues

If ComfyUI becomes slow after installing extensions:
1

Identify Culprit

Disable extensions one by one to find the problematic one
2

Check Resource Usage

Monitor CPU, GPU, and memory usage
3

Update Extension

Ensure you’re using the latest version
4

Report Issue

Report performance issues to the extension author

Security Considerations

Custom nodes execute Python code on your machine. Only install extensions from trusted sources.

Safety Checklist

  • Review the extension’s source code on GitHub
  • Check the repository’s stars and forks
  • Read user reviews and issues
  • Verify the author is trustworthy
  • Check when it was last updated

Code Review

Before installing, review critical files:
  • __init__.py - Entry point
  • Node execution code
  • Any file operations
  • Network requests
# View the main entry point
cat ComfyUI/custom_nodes/extension-name/__init__.py

# Search for potentially dangerous operations
grep -r "os.system" ComfyUI/custom_nodes/extension-name/
grep -r "subprocess" ComfyUI/custom_nodes/extension-name/
grep -r "eval" ComfyUI/custom_nodes/extension-name/

Best Practices

Keep Updated

Regularly update extensions for bug fixes and features

Backup Workflows

Save workflows before installing new extensions

Test Separately

Test new extensions in isolation before using in production

Document Dependencies

Keep track of which workflows use which extensions

Version Control

Track your custom nodes with git:
cd ComfyUI/custom_nodes/
git init
git add .
git commit -m "Initial custom nodes setup"
This allows you to:
  • Revert problematic updates
  • Track which extensions you have
  • Share your setup with others

Advanced Topics

Shared Model Paths

Share models between ComfyUI and other UIs using extra_model_paths.yaml:
# Share with Stable Diffusion WebUI
stable_diffusion:
  base_path: /path/to/stable-diffusion-webui/
  checkpoints: models/Stable-diffusion/
  loras: models/Lora/
  
# Share with Automatic1111
automatic1111:
  base_path: /path/to/automatic1111/
  checkpoints: models/Stable-diffusion/
See the example config for details.

Custom Extension Development

To create your own extensions:

Creating Nodes

Learn to create custom nodes

Node API

Complete API reference

Next Steps

Manager Overview

Learn more about ComfyUI Manager

Best Practices

Best practices for using extensions

Build docs developers (and LLMs) love