MCPcopy
hub / github.com/Comfy-Org/ComfyUI-Manager

github.com/Comfy-Org/ComfyUI-Manager @4.2.2 sqlite

repository ↗ · DeepWiki ↗ · release 4.2.2 ↗
2,228 symbols 6,375 edges 90 files 503 documented · 23%
README

ComfyUI Manager

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.

menu

NOTICE

  • V4.0: Modify the structure to be installable via pip instead of using git clone.
  • V3.16: Support for uv has been added. Set use_uv in config.ini.
  • V3.10: double-click feature is removed
  • This feature has been moved to https://github.com/ltdrdata/comfyui-connection-helper
  • V3.3.2: Overhauled. Officially supports https://registry.comfy.org/.
  • You can see whole nodes info on ComfyUI Nodes Info page.

Installation

  • When installing the latest ComfyUI, it will be automatically installed as a dependency, so manual installation is no longer necessary.

  • Manual installation of the nightly version:

    • Clone to a temporary directory (Note: Do not clone into ComfyUI/custom_nodes.) git clone https://github.com/Comfy-Org/ComfyUI-Manager
    • Install via pip cd ComfyUI-Manager pip install .
  • See also: https://github.com/Comfy-Org/comfy-cli

Front-end

  • The built-in front-end of ComfyUI-Manager is the legacy front-end. The front-end for ComfyUI-Manager is now provided via ComfyUI Frontend.
  • To enable the legacy front-end, set the environment variable ENABLE_LEGACY_COMFYUI_MANAGER_FRONT to true before running.

How To Use

  1. Click "Manager" button on main menu

    mainmenu

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

    menu

    • 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.
      • This information will be updated when there is no cache, when the cache expires, or when external information is retrieved through the Channel (remote).
      • Whenever you start ComfyUI anew, this mode is always set as the default mode.
    • Local uses information stored locally in ComfyUI-Manager.
      • This information will be updated only when you update ComfyUI-Manager.
      • For custom node developers, they should use this mode when registering their nodes in custom-node-list.json and testing them.
    • Channel (remote) retrieves information from the remote channel, always displaying the latest list.
    • In cases where retrieval is not possible due to network errors, it will forcibly use local information.

    • 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.

  3. Click 'Install' or 'Try Install' button.

    node-install-dialog

    model-install-dialog

    • 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.

    • Channel settings have a broad impact, affecting not only the node list but also all functions like "Update all."
    • 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.
  4. Share menu share

  5. You can share the workflow by clicking the Share button at the bottom of the main menu or selecting Share Output from the Context Menu of the Image node.

  6. Currently, it supports sharing via https://comfyworkflows.com/, https://openart.ai, https://youml.com as well as through the Matrix channel.

menu

  • Through the Share settings in the Manager menu, you can configure the behavior of the Share button in the Main menu or Share Output button on Context Menu.
    • None: hide from Main menu
    • All: Show a dialog where the user can select a title for sharing.

Paths

In ComfyUI-Manager V4.0.3b4 and later, configuration files and dynamically generated files are located under <USER_DIRECTORY>/__manager/.

  • If executed without any options, the path defaults to ComfyUI/user.
  • It can be set using --user-directory .

  • Basic config files: <USER_DIRECTORY>/__manager/config.ini

  • Configurable channel lists: <USER_DIRECTORY>/__manager/channels.ini
  • Configurable pip overrides: <USER_DIRECTORY>/__manager/pip_overrides.json
  • Configurable pip blacklist: <USER_DIRECTORY>/__manager/pip_blacklist.list
  • Configurable pip auto fix: <USER_DIRECTORY>/__manager/pip_auto_fix.list
  • Saved snapshot files: <USER_DIRECTORY>/__manager/snapshots
  • Startup script files: <USER_DIRECTORY>/__manager/startup-scripts
  • Component files: <USER_DIRECTORY>/__manager/components

extra_model_paths.yaml Configuration

The following settings are applied based on the section marked as is_default.

  • custom_nodes: Path for installing custom nodes
    • Importing does not need to adhere to the path set as is_default, but this is the path where custom nodes are installed by the ComfyUI Nodes Manager.
  • download_model_base: Path for downloading models

Snapshot-Manager

  • When you press Save snapshot or use Update All on Manager Menu, the current installation status snapshot is saved.
  • Snapshot file dir: <USER_DIRECTORY>/__manager/snapshots
  • You can rename snapshot file.
  • Press the "Restore" button to revert to the installation status of the respective snapshot.
  • However, for custom nodes not managed by Git, snapshot support is incomplete.
  • When you press Restore, it will take effect on the next ComfyUI startup.
  • The selected snapshot file is saved in <USER_DIRECTORY>/__manager/startup-scripts/restore-snapshot.json, and upon restarting ComfyUI, the snapshot is applied and then deleted.

model-install-dialog

cm-cli: command line tools for power users

  • A tool is provided that allows you to use the features of ComfyUI-Manager without running ComfyUI.
  • For more details, please refer to the cm-cli documentation.

How to register your custom node into ComfyUI-Manager

  • Add an entry to custom-node-list.json located in the root of ComfyUI-Manager and submit a Pull Request.
  • NOTE: Before submitting the PR after making changes, please check 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.
  • The remaining JSON will be updated through scripts in the future, so you don't need to worry about it.

Custom node support guide

  • NOTICE:

    • You should no longer assume that the GitHub repository name will match the subdirectory name under custom_nodes. The name of the subdirectory under custom_nodes will now use the normalized name from the name field in pyproject.toml.
    • Avoid relying on directory names for imports whenever possible.
  • https://docs.comfy.org/registry/overview

  • https://github.com/Comfy-Org/rfcs

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 automatically * install.py - When installing, it is automatically called * All scripts are executed from the root path of the corresponding custom node.

Component Sharing

  • Copy & Paste
  • Demo Page
  • When pasting a component from the clipboard, it supports text in the following JSON format. (text/plain) { "kind": "ComfyUI Components", "timestamp": <current timestamp>, "components": { <component name>: <component nodedata> } }
  • <current timestamp> Ensure that the timestamp is always unique.
    • "components" should have the same structure as the content of the file stored in <USER_DIRECTORY>/__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>/__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
  • Dragging and dropping a .pack or .json file will add the corresponding components.
  • Example pack: Impact.pack

  • Dragging and dropping or pasting a single component will add a node. However, when adding multiple components, nodes will not be added.

Support for installing missing nodes

missing-menu

  • When you click on the Install Missing Custom Nodes button in the menu, it displays a list of extension nodes that contain nodes not currently present in the workflow.

missing-list

Config

  • You can modify the config.ini file to apply the settings for ComfyUI-Manager.
    • The path to the config.ini used by ComfyUI-Manager is displayed in the startup log messages.
    • See also: [https://github.com/ltdrdata/ComfyUI-Manager#paths]
  • 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> allow_git_url_install = <Allow installing custom nodes from arbitrary git URLs. Independent of security_level. Default: False> allow_pip_install = <Allow installing arbitrary pip packages via the Manager. Independent of security_level. Default: False> 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|personal_cloud>

    • network_mode:
    • public: An environment that uses a typical public network.
    • private: An environment that uses a closed network, where a private node DB is configured via channel_url. (Uses cache if available)
    • offline: An environment that does not use any external connections when using an offline network. (Uses cache if available)
    • personal_cloud: Applies relaxed security features in cloud environments such as Google Colab or Runpod, where strong security is not required.

Additional Feature

  • Logging to file feature
  • This feature is enabled by defa

Core symbols most depended-on inside this repo

get
called by 155
comfyui_manager/glob/manager_server.py
append
called by 142
comfyui_manager/glob/manager_core.py
get
called by 109
comfyui_manager/legacy/manager_core.py
keys
called by 70
comfyui_manager/glob/manager_core.py
append
called by 68
comfyui_manager/legacy/manager_core.py
items
called by 67
comfyui_manager/glob/manager_core.py
remove
called by 65
comfyui_manager/js/turbogrid.esm.js
get
called by 64
comfyui_manager/glob/manager_core.py

Shape

Method 996
Function 890
Class 248
Route 94

Languages

Python78%
TypeScript22%

Modules by API surface

comfyui_manager/js/turbogrid.esm.js202 symbols
tests/test_unified_dep_resolver.py147 symbols
comfyui_manager/legacy/manager_server.py137 symbols
comfyui_manager/glob/manager_core.py136 symbols
comfyui_manager/legacy/manager_core.py135 symbols
comfyui_manager/common/git_compat.py124 symbols
comfyui_manager/glob/manager_server.py114 symbols
tests/test_git_compat.py68 symbols
cm_cli/__main__.py58 symbols
comfyui_manager/js/custom-nodes-manager.js57 symbols
comfyui_manager/data_models/generated_models.py54 symbols
tests/e2e/test_e2e_secgate_legacy_flags.py45 symbols

Dependencies from manifests, versioned

GitPython
chardet
matrix-nio
pygit21.18 · 1×
rich
toml
typing-extensions
uv

For agents

$ claude mcp add ComfyUI-Manager \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact