ComfyUI管理器
ComfyUI管理器是一个旨在增强ComfyUI可用性的扩展。它提供管理功能来安装、删除、禁用和启用ComfyUI的各种自定义节点。此外,这个扩展还提供了一个集线器功能和便捷功能,以便在ComfyUI中访问广泛的信息。
注意事项
- V2.48.1:安全策略已更改。在"正常"安全级别下允许下载列表中的模型。
- V2.47:安全策略已更改。之前的"正常"现在变为"正常-",而"正常"不再允许高风险功能,即使您的ComfyUI是本地的。
- V2.37 对在GitHub上活跃超过六个月的账号显示✅标记。
- V2.33 应用了安全策略。
- V2.21 添加了cm-cli工具。
- V2.18到V2.18.3由于严重bug无法正常工作。建议使用这些版本的用户立即更新到V2.18.4。请进入
ComfyUI/custom_nodes/ComfyUI-Manager
目录并执行git pull
来更新。 - 您可以在ComfyUI节点信息页面上查看所有节点信息。
安装
安装方法1(通用安装方法:仅ComfyUI管理器)
要在现有ComfyUI安装的基础上安装ComfyUI管理器,您可以按以下步骤操作:
- 在终端(命令行)中进入
ComfyUI/custom_nodes
目录 - 执行
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
- 重启ComfyUI
安装方法2(便携版ComfyUI安装方法:仅ComfyUI管理器)
- 安装git
- https://git-scm.com/download/win
- 独立版本
- 选择选项:使用Windows默认控制台窗口
- 下载scripts/install-manager-for-portable-version.bat到已安装的
"ComfyUI_windows_portable"
目录中 - 双击
install-manager-for-portable-version.bat
批处理文件
安装方法3(通过comfy-cli安装:同时安装ComfyUI和ComfyUI管理器)
推荐:comfy-cli提供了从命令行管理ComfyUI的各种功能。
- 先决条件:python 3, git
Windows:
python -m venv venv
venv\Scripts\activate
pip install comfy-cli
comfy install
Linux/OSX:
python -m venv venv
. venv/bin/activate
pip install comfy-cli
comfy install
安装方法4(适用于linux+venv:ComfyUI + ComfyUI管理器)
要在Linux上使用venv环境安装ComfyUI和ComfyUI管理器,您可以按以下步骤操作:
- 先决条件:python-is-python3, python3-venv, git
- ComfyUI将安装在指定目录的子目录中,该目录将包含生成的可执行脚本。
chmod +x install-comfyui-venv-linux.sh
./install-comfyui-venv-linux.sh
安装注意事项
- 正确做法:
ComfyUI-Manager
文件必须准确位于ComfyUI/custom_nodes/ComfyUI-Manager
路径- 不建议以压缩文件格式安装。
- 错误做法:直接解压到
ComfyUI/custom_nodes
位置,导致管理器内容如__init__.py
直接放置在该目录中。- 您必须从
ComfyUI/custom_nodes
中删除所有ComfyUI管理器文件
- 您必须从
- 错误做法:解压后形成如
ComfyUI/custom_nodes/ComfyUI-Manager/ComfyUI-Manager
的路径。- 您必须将
ComfyUI/custom_nodes/ComfyUI-Manager/ComfyUI-Manager
移动到ComfyUI/custom_nodes/ComfyUI-Manager
- 您必须将
- 错误做法:解压后形成如
ComfyUI/custom_nodes/ComfyUI-Manager-main
的路径。- 在这种情况下,
ComfyUI-Manager
可能会运行,但不会被ComfyUI-Manager
内部识别,无法进行更新。它还有重复安装的风险。 - 您必须将
ComfyUI/custom_nodes/ComfyUI-Manager-main
重命名为ComfyUI/custom_nodes/ComfyUI-Manager
- 在这种情况下,
您可以通过运行./run_gpu.sh
或./run_cpu.sh
来执行ComfyUI,具体取决于您的系统配置。
Colab笔记本
本仓库提供了Colab笔记本,允许您安装和使用包括ComfyUI管理器在内的ComfyUI。要使用ComfyUI,点击此链接。
- 支持安装ComfyUI
- 支持基本安装ComfyUI管理器
- 支持在重启Colab笔记本时自动安装自定义节点的依赖项。
更新日志
- 2.38
安装自定义节点
菜单更改为自定义节点管理器
。 - 2.21 添加了cm-cli工具。
- 2.4 通过双击复制最近节点的连接。
- 2.2.3 支持组件系统
- 0.29 添加
全部更新
功能 - 0.25 支持db通道
- 您可以直接在
config.ini
文件中修改db通道设置。 - 如果您想维护新的DB通道,请修改
channels.list
并提交PR。
- 您可以直接在
- 0.23 支持多选
- 0.18.1 添加了
跳过更新检查
功能。- 在更新检查耗时较长的环境中快速打开窗口的功能。
- 0.17.1 修复了web扩展的启用/禁用不起作用的问题。为StableSwarmUI添加了兼容性补丁。
- 需要最新版本的ComfyUI(修订版:1240)
- 0.17 支持预览方法设置功能。
- 0.14 支持强大的更新。
- 0.13 支持安装规范中的额外'pip'部分。
- 0.12 更好地支持Windows安装。
- 0.9 在安装程序菜单中支持关键词搜索。
- V0.7.1 修复了Windows上更新不应用的问题。
- 对于一直使用0.6版本的用户,请在custom_nodes/ComfyUI-Manager目录中手动执行git pull。
- V0.7 为解决列表刷新缓慢的问题,分离了获取更新和更新检查过程。
- V0.6 支持缺失节点的扩展安装。
- V0.5 移除了外部git程序依赖。
使用方法
-
点击主菜单上的"管理器"按钮
-
如果点击"安装自定义节点"或"安装模型",将打开安装程序对话框。
-
有三种DB模式:"DB:通道(1天缓存)"、"DB:本地"和"DB:通道(远程)"。
- "通道(1天缓存)"利用有效期为一天的通道缓存信息快速显示列表。
- 当没有缓存、缓存过期或通过通道(远程)检索外部信息时,此信息将更新。
- 每次重新启动ComfyUI时,此模式始终设置为默认模式。
- "本地"使用ComfyUI管理器本地存储的信息。
- 此信息仅在更新ComfyUI管理器时更新。
- 对于自定义节点开发者,在
custom-node-list.json
中注册节点并测试时应使用此模式。
- "通道(远程)"从远程通道检索信息,始终显示最新列表。
- 如果由于网络错误无法检索,将强制使用本地信息。
- "通道(1天缓存)"利用有效期为一天的通道缓存信息快速显示列表。
-
"获取更新"菜单在本地检索自定义节点的更新数据。实际更新通过点击"安装自定义节点"菜单中的"更新"按钮应用。
-
-
点击"安装"或"尝试安装"按钮。
-
已安装:此项目已经安装。
-
安装:点击此按钮将安装该项目。
-
尝试安装:这是无法确认安装信息的自定义节点。点击按钮尝试安装。
-
如果顶部出现红色背景的"通道"指示器,表示不是默认通道。由于所持信息量与默认通道不同,在这种通道状态下可能会有许多自定义节点不显示。
- 通道设置影响广泛,不仅影响节点列表,还影响"全部更新"等所有功能。
-
带有黄色背景的冲突节点显示了各扩展中与其他扩展冲突的节点列表。这个问题需要开发者解决,用户应该意识到由于这些冲突,某些节点可能无法正常工作,可能需要相应安装。
-
-
如果您在菜单中将"Badge:"项设置为"Badge: 昵称"、"Badge: 昵称(隐藏内置)"、"Badge: #ID 昵称"或"Badge: #ID 昵称(隐藏内置)",信息标签将显示在节点上。
- 选择(隐藏内置)时,会隐藏表示内置节点的🦊图标。
- 标签上没有任何标识的节点是管理器无法识别的自定义节点。
- "Badge: 昵称"显示自定义节点的昵称,而"Badge: #ID 昵称"还包括节点的内部ID。
- 选择(隐藏内置)时,会隐藏表示内置节点的🦊图标。
-
分享
- 您可以通过点击主菜单底部的"分享"按钮或从图像节点的上下文菜单中选择"分享输出"来分享工作流。
- 目前,支持通过https://comfyworkflows.com/、 https://openart.ai、https://youml.com 以及Matrix频道进行分享。
- 通过管理器菜单中的"分享设置",您可以配置主菜单中"分享"按钮或上下文菜单中"分享输出"按钮的行为。
- "无":在主菜单中隐藏
- "全部":显示一个对话框,用户可以为分享选择标题。
快照管理器
- 当您按下"保存快照"或在"管理器菜单"中使用"更新全部"时,当前安装状态的快照将被保存。
- 快照文件目录:
ComfyUI-Manager/snapshots
- 您可以重命名快照文件。
- 快照文件目录:
- 按下"还原"按钮可以恢复到相应快照的安装状态。
- 然而,对于不由Git管理的自定义节点,快照支持是不完整的。
- 当您按下"还原"时,它将在下次ComfyUI启动时生效。
- 所选快照文件保存在
ComfyUI-Manager/startup-scripts/restore-snapshot.json
中,重启ComfyUI时,快照将被应用并随后删除。
- 所选快照文件保存在
cm-cli:高级用户命令行工具
- 提供了一个工具,允许您在不运行ComfyUI的情况下使用ComfyUI-Manager的功能。
- 更多详情,请参阅cm-cli文档。
如何将您的自定义节点注册到ComfyUI-Manager中
- 在ComfyUI-Manager根目录下的
custom-node-list.json
中添加一个条目,并提交Pull Request。 - 注意:在提交PR之前,请检查"使用本地数据库"并确保在"安装自定义节点"对话框中扩展列表加载没有任何问题。有时,缺少或多余的逗号可能导致JSON语法错误。
- 其余的JSON将通过脚本在未来更新,所以您不需要担心。
自定义节点支持指南
-
目前,系统通过克隆git仓库并使用pip按顺序安装requirements.txt中列出的依赖项,然后调用install.py脚本来运行。未来,我们计划讨论并确定支持自定义节点的规范。
-
请提交pull request更新custom-node-list.json或model-list.json文件。
-
扫描器目前提供了一个缺失节点的检测功能,能够检测以下两种模式描述的节点。
- 或者您可以手动提供
node_list.json
文件。
- 或者您可以手动提供
NODE_CLASS_MAPPINGS = {
"ExecutionSwitch": ExecutionSwitch,
"ExecutionBlocker": ExecutionBlocker,
...
}
NODE_CLASS_MAPPINGS.update({
"UniFormer-SemSegPreprocessor": Uniformer_SemSegPreprocessor,
"SemSegPreprocessor": Uniformer_SemSegPreprocessor,
})
- 当您在Node的.py文件头部编写如下docstring时,它将用于管理器中的数据库管理。
- 目前,只有"nickname"正在使用,但其他部分将来也会被利用。
- "nickname"将是节点标签上显示的名称。
- 如果没有"nickname",将从任意写的标题中截取20个字符并使用。
"""
@author: Dr.Lt.Data
@title: Impact Pack
@nickname: Impact Pack
@description: 这个扩展提供了各种检测器节点和细化器节点,允许您配置一个自动增强面部细节的工作流程。并提供迭代式放大器。
"""
- 特殊用途文件(可选)
node_list.json
- 当您的自定义节点的NODE_CLASS_MAPPINGS模式不常规时,用于手动提供节点列表供参考。(示例)requirements.txt
- 安装时,这些pip要求将自动安装install.py
- 安装时自动调用uninstall.py
- 卸载时自动调用disable.py
- 禁用时自动调用- 安装自定义节点设置
.js
文件时,建议编写此脚本以进行禁用。
- 安装自定义节点设置
enable.py
- 启用时自动调用- 所有脚本都从相应自定义节点的根路径执行。
组件共享
-
复制和粘贴
- 演示页面
- 从剪贴板粘贴组件时,支持以下JSON格式的文本。(text/plain)
{ "kind": "ComfyUI Components", "timestamp": <当前时间戳>, "components": { <组件名称>: <组件节点数据> } }
<当前时间戳>
确保时间戳始终是唯一的。- "components"应具有与存储在ComfyUI-Manager/components中的文件内容相同的结构。
<组件名称>
:名称应采用<前缀>::<节点名称>
的格式。<组件节点数据>
:在组节点的节点数据中。<version>
:只允许两种格式:major.minor.patch
或major.minor
。(例如1.0
,2.2.1
)<datetime>
:保存时间<packname>
:如果packname不为空,类别变为packname/workflow,并保存在ComfyUI-Manager/components中的.pack文件中。 <category>
:如果既没有类别也没有packname,则保存在components类别中。
"version":"1.0", "datetime": 1705390656516, "packname": "mypack", "category": "util/pipe",
- "components"应具有与存储在ComfyUI-Manager/components中的文件内容相同的结构。
-
拖放
- 拖放
.pack
或.json
文件将添加相应的组件。 - 示例包:Impact.pack
- 拖放
-
拖放或粘贴单个组件将添加一个节点。但是,添加多个组件时,不会添加节点。
支持安装缺失节点
- 当您点击菜单中的"安装缺失的自定义节点"按钮时,它会显示一个包含工作流中当前不存在的节点的扩展节点列表。
附加功能
-
文件记录功能
- 此功能默认启用,可以通过在
config.ini
中设置file_logging = False
来禁用。
- 此功能默认启用,可以通过在
-
修复节点(重新创建):右键单击节点并选择"修复节点(重新创建)"时,可以重新创建节点。小部件的值会重置,而连接会保留那些具有相同名称的连接。
- 它用于纠正旧工作流中由于自定义节点版本变更而不兼容的节点错误。
-
双击节点标题:您可以在ComfyUI-Manager菜单中设置节点的双击行为。
- "复制所有连接","复制输入连接":双击节点复制最近节点的连接。
- 此操作针对节点中心1000像素直线距离内最近的节点。
- 对于"复制所有连接",它会复制现有输出,但由于不允许重复连接,原始节点的现有输出连接会断开。
- 此功能仅复制名称匹配的输入和输出。
- "可能的输入连接":它连接指定范围内最接近类型的所有输出。
- 此连接链接到位于目标节点左侧的节点中最近的输出。
- "可能(左)+复制(右)":当您双击标题的左半部分时,它作为"可能的输入连接"运行,当您双击右半部分时,它作为"复制所有连接"运行。
- "复制所有连接","复制输入连接":双击节点复制最近节点的连接。
-
防止特定包降级
- 在
config.ini
文件的downgrade_blacklist
部分列出包名,用逗号分隔。- 例如
downgrade_blacklist = diffusers, kornia
- 在
-
自定义pip映射
- 当您创建
pip_overrides.json
文件时,它会将特定pip包的安装更改为用户定义的安装。- 请参考
pip_overrides.json.template
文件。
- 请参考
- 当您创建
-
使用
aria2
作为下载器
扫描器
当您运行scan.sh
脚本时:
-
它会更新
extension-node-map.json
。- 为此,它会将
custom-node-list.json
中列出的自定义节点拉取或克隆到~/.tmp/default
中。 - 要跳过此步骤,请添加
--skip-update
选项。 - 如果您想指定一个不同于
~/.tmp/default
的路径,请直接运行python scanner.py [path]
而不是scan.sh
。
- 为此,它会将
-
它会更新
github-stats.json
。- 这使用 GitHub API,所以请通过
export GITHUB_TOKEN=your_token_here
设置你的令牌,以避免快速达到速率限制并导致功能失效。 - 要跳过这一步,请添加
--skip-update-stat
选项。
- 这使用 GitHub API,所以请通过
-
--skip-all
选项同时应用--skip-update
和--skip-stat-update
。
故障排除
- 如果你的
git.exe
安装在系统 git 以外的特定位置,请安装 ComfyUI-Manager 并运行 ComfyUI。然后,在生成的 ComfyUI-Manager/config.ini 文件中的git_exe =
处指定包含文件名的路径。 - 如果更新 ComfyUI-Manager 本身失败,请进入 ComfyUI-Manager 目录并执行命令
git update-ref refs/remotes/origin/main a361cc1 && git fetch --all && git pull
。 - 或者,从 update-fix.py 下载 update-fix.py 脚本并将其放在 ComfyUI-Manager 目录中。然后使用你的 Python 命令运行它。
对于便携版,使用
..\..\..\python_embeded\python.exe update-fix.py
。 - 对于像
ComfyUI_Custom_Nodes_AlekPet
中的PreviewTextNode
这样只支持作为前端节点的情况,我们目前不提供缺失节点。 - 目前,
vid2vid
没有更新,导致兼容性问题。 - 如果在 Windows 下遇到错误消息
Overlapped Object has pending operation at deallocation on Comfyui Manager load
- 编辑
config.ini
文件:添加windows_selector_event_loop_policy = True
- 编辑
- 如果出现
SSL: CERTIFICATE_VERIFY_FAILED
错误- 编辑
config.ini
文件:添加bypass_ssl = True
- 编辑
安全策略
- 编辑
config.ini
文件:添加security_level = <LEVEL>
strong
- 不允许
high
和middle
级别的风险功能
- 不允许
normal
- 不允许
high
级别的风险功能 middle
级别的风险功能可用
- 不允许
normal-
- 如果指定了
--listen
且不以127.
开头,则不允许high
级别的风险功能 middle
级别的风险功能可用
- 如果指定了
weak
- 所有功能都可用
high
级别的风险功能通过 git url 安装
,pip install
- 安装未在
默认渠道
注册的自定义节点 - 显示终端日志
middle
级别的风险功能- 卸载/更新/修复自定义节点
- 安装在
默认渠道
注册的自定义节点 - 恢复/删除快照
- 重启
low
级别的风险功能- 更新 ComfyUI
待办:非常规形式的自定义节点列表
[列出了一系列 GitHub 仓库链接,省略翻译]
路线图
- 显示自定义节点导入失败信息的系统。
- ComfyUI 原生节点缺失指南。
- 跨扩展相同 ID 节点的冲突检查系统。
- 模板共享系统。(-> 基于组节点的组件系统)
- 第三方 API 系统。
- 结构变更的自定义节点自动迁移。
- 节点的版本控制功能。
- 当前使用的自定义节点列表。
- 下载支持多模型下载。
- 通过 URL 下载模型。
- 列表排序(自定义节点)。
- 列表排序(模型)。
- 提供节点描述。
免责声明
- 此扩展仅提供安装自定义节点的便利,不保证它们能正常运行。
致谢
ComfyUI/ComfyUI - 一个强大且模块化的稳定扩散 GUI。
以及所有 ComfyUI 自定义节点开发者