ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custom nodes of ComfyUI. Furthermore, this extension provides a hub feature and convenience functions to access a wide range of information within ComfyUI.

uv has been added. Set use_uv in config.ini.double-click feature is removed
To install ComfyUI-Manager in addition to an existing installation of ComfyUI, you can follow the following steps:
ComfyUI/custom_nodes dir in terminal (cmd)git clone https://github.com/ltdrdata/ComfyUI-Manager comfyui-manager"ComfyUI_windows_portable" directoryinstall-manager-for-portable-version.bat batch file
RECOMMENDED: comfy-cli provides various features to manage ComfyUI from the CLI.
Windows:
python -m venv venv venv\Scripts\activate pip install comfy-cli comfy install
Linux/macOS:
python -m venv venv . venv/bin/activate pip install comfy-cli comfy install
To install ComfyUI with ComfyUI-Manager on Linux using a venv environment, you can follow these steps:
chmod +x install-comfyui-venv-linux.sh./install-comfyui-venv-linux.shComfyUI-Manager files must be accurately located in the path ComfyUI/custom_nodes/comfyui-manager
ComfyUI/custom_nodes location, resulting in the Manager contents like __init__.py being placed directly in that directory.
ComfyUI/custom_nodesComfyUI/custom_nodes/ComfyUI-Manager/ComfyUI-Manager.ComfyUI/custom_nodes/ComfyUI-Manager-main.
ComfyUI-Manager may operate, but it won't be recognized within ComfyUI-Manager, and updates cannot be performed. It also poses the risk of duplicate installations. Remove it and install properly via git clone method.You can execute ComfyUI by running either ./run_gpu.sh or ./run_cpu.sh depending on your system configuration.
This repository provides Colab notebooks that allow you to install and use ComfyUI, including ComfyUI-Manager. To use ComfyUI, click on this link.
Click "Manager" button on main menu

If you click on 'Install Custom Nodes' or 'Install Models', an installer dialog will open.

There are three DB modes: DB: Channel (1day cache), DB: Local, and DB: Channel (remote).
Channel (1day cache) utilizes Channel cache information with a validity period of one day to quickly display the list.
Local uses information stored locally in ComfyUI-Manager.
custom-node-list.json and testing them.Channel (remote) retrieves information from the remote channel, always displaying the latest list.The Fetch Updates menu retrieves update data for custom nodes locally. Actual updates are applied by clicking the Update button in the Install Custom Nodes menu.
Click 'Install' or 'Try Install' button.


Installed: This item is already installed.
Install: Clicking this button will install the item.
Try Install: This is a custom node of which installation information cannot be confirmed. Click the button to try installing it.
If a red background Channel indicator appears at the top, it means it is not the default channel. Since the amount of information held is different from the default channel, many custom nodes may not appear in this channel state.
Conflicted Nodes with a yellow background show a list of nodes conflicting with other extensions in the respective extension. This issue needs to be addressed by the developer, and users should be aware that due to these conflicts, some nodes may not function correctly and may need to be installed accordingly.
Share


None: hide from Main menuAll: Show a dialog where the user can select a title for sharing.Starting from V3.38, Manager uses a protected system path for enhanced security.
| ComfyUI Version | Manager Path |
|---|---|
| v0.3.76+ (with System User API) | <USER_DIRECTORY>/__manager/ |
| Older versions | <USER_DIRECTORY>/default/ComfyUI-Manager/ |
config.inichannels.listpip_overrides.jsonpip_blacklist.listpip_auto_fix.listsnapshots/startup-scripts/components/Note: See Migration Guide for upgrade details.
The following settings are applied based on the section marked as is_default.
custom_nodes: Path for installing custom nodes
is_default, but this is the path where custom nodes are installed by the ComfyUI Nodes Manager.download_model_base: Path for downloading modelsSave snapshot or use Update All on Manager Menu, the current installation status snapshot is saved.
<USER_DIRECTORY>/default/ComfyUI-Manager/snapshotsRestore, it will take effect on the next ComfyUI startup.
<USER_DIRECTORY>/default/ComfyUI-Manager/startup-scripts/restore-snapshot.json, and upon restarting ComfyUI, the snapshot is applied and then deleted.
custom-node-list.json located in the root of ComfyUI-Manager and submit a Pull Request.Use local DB and ensure that the extension list loads without any issues in the Install custom nodes dialog. Occasionally, missing or extra commas can lead to JSON syntax errors.NOTICE:
custom_nodes. The name of the subdirectory under custom_nodes will now use the normalized name from the name field in pyproject.toml.Special purpose files (optional)
pyproject.toml - Spec file for comfyregistry.node_list.json - When your custom nodes pattern of NODE_CLASS_MAPPINGS is not conventional, it is used to manually provide a list of nodes for reference. (example)requirements.txt - When installing, this pip requirements will be installed automaticallyinstall.py - When installing, it is automatically calledCopy & Paste
{ "kind": "ComfyUI Components", "timestamp": <current timestamp>, "components": { <component name>: <component nodedata> } }
<current timestamp> Ensure that the timestamp is always unique.
<USER_DIRECTORY>/default/ComfyUI-Manager/components.
<component name>: The name should be in the format <prefix>::<node name>.
<component node data>: In the node data of the group node.
<version>: Only two formats are allowed: major.minor.patch or major.minor. (e.g. 1.0, 2.2.1)<datetime>: Saved time<packname>: If the packname is not empty, the category becomes packname/workflow, and it is saved in the .pack file in <USER_DIRECTORY>/default/ComfyUI-Manager/components.<category>: If there is neither a category nor a packname, it is saved in the components category."version":"1.0", "datetime": 1705390656516, "packname": "mypack", "category": "util/pipe",
Drag & Drop
.pack or .json file will add the corresponding components.Dragging and dropping or pasting a single component will add a node. However, when adding multiple components, nodes will not be added.

Install Missing Custom Nodes button in the menu, it displays a list of extension nodes that contain nodes not currently present in the workflow.
You can modify the config.ini file to apply the settings for ComfyUI-Manager.
config.ini used by ComfyUI-Manager is displayed in the startup log messages.Configuration options:
[default] git_exe = <Manually specify the path to the git executable. If left empty, the default git executable path will be used.> use_uv = <Use uv instead of pip for dependency installation.> default_cache_as_channel_url = <Determines whether to retrieve the DB designated as channel_url at startup> bypass_ssl = <Set to True if SSL errors occur to disable SSL.> file_logging = <Configure whether to create a log file used by ComfyUI-Manager.> windows_selector_event_loop_policy = <If an event loop error occurs on Windows, set this to True.> model_download_by_agent = <When downloading models, use an agent instead of torchvision_download_url.> downgrade_blacklist = <Set a list of packages to prevent downgrades. List them separated by commas.> security_level = <Set the security level => strong|normal|normal-|weak> always_lazy_install = <Whether to perform dependency installation on restart even in environments other than Windows.> network_mode = <Set the network mode => public|private|offline>
channel_url. (Uses cache if available)Logging to file feature
file_logging = False in the config.ini.Fix node (recreate): When right-clicking on a node and selecting Fix node (recreate), you can recreate the node. The widget's values are reset, while the connections maintain those with the same names.
Double-Click Node Title: You can set the double-click behavior of nodes in the ComfyUI-Manager menu.
Copy All Connections, Copy Input Connections: Double-clicking a node copies the connections of the nearest node.
Copy All Connections, it duplicates existing outputs, but since it does not allow duplicate connections, the existing output connections of the original node are disconnected.Possible Input Connections: It connects all outputs that match the closest type within the specified range.
Possible(left) + Copy(right): When you Double-Click on the left half of the title, it operates as Possible Input Connections, and when you Double-Click on the right half, it operates as Copy All Connections.Prevent downgrade of specific packages
downgrade_blacklist section of the config.ini file, separating them with commas.
downgrade_blacklist = diffusers, kornia
Custom pip mapping
pip_overrides.json file, it changes the installation of specific pip packages to installations defined by the user.
pip_overrides.json.template file.Prevent the installation of specific pip packages
pip_blacklist.list file.Automatically Restoring pip Installation
If you list pip spec requirements in pip_auto_fix.list, similar to requirements.txt, it will automatically restore the specified versions when starting ComfyUI or when versions get mismatched during various custom node installations.
--index-url can be used.
Use aria2 as downloader
The following features can be configured using environment variables:
Redirecting https://github.com/ltdrdata/ComfyUI-Impact-Pack to https://mirror.ghproxy.com/https://github.com/ltdrdata/ComfyUI-Impact-Pack
GITHUB_ENDPOINT=https://mirror.ghproxy.com/https://github.com
Changing https://huggingface.co/path/to/somewhere to https://some-hf-mirror.com/path/to/somewhere
HF_ENDPOINT=https://some-hf-mirror.com
When you run the scan.sh script:
It updates the extension-node-map.json.
custom-node-list.json into ~/.tmp/default.--skip-update option.~/.tmp/default, run python scanner.py [path] directly instead of scan.sh.It updates the github-stats.json.
export GITHUB_TOKEN=your_token_here to avoid quickly reaching the rate limit and malfunctioning.--skip-stat-update option.The --skip-all option applies both --skip-update and --skip-stat-update.
git.exe is installed in a specific location other than system git, please install ComfyUI-Manager and run ComfyUI. Then, specify the path including the file name in git_exe = in the <USER_DIRECTORY>/default/ComfyUI-Manager/config.ini file that is generated.git update-ref refs/remotes/origin/main a361cc1 && git fetch --all && git pull.Overlapped Object has pending operation at deallocation on ComfyUI Manager load under Windows
config.ini file: add windows_selector_event_loop_policy = TrueSSL: CERTIFICATE_VERIFY_FAILED error occurs.
config.ini file: add bypass_ssl = Trueconfig.ini file: add security_level = <LEVEL>
strong
high and middle level risky featurenormal
high level risky featuremiddle level risky feature is availablenormal-
high level risky feature if --listen is specified and not starts with 127.middle level risky feature is availableweak
high level risky features
Install via git url, pip installdefault channel.middle level risky features
default channel.low level risky features
ComfyUI/ComfyUI - A powerful and modular stable diffusion GUI.
And, for all ComfyUI custom node developers