ComfyUI - 安装自定义节点


如何加载自定义节点

当 Comfy 启动时,它会扫描 custom_nodes 目录中的 Python 模块,并尝试加载它们。
如果模块导出 NODE_CLASS_MAPPINGS,它将被视为自定义节点。

一个 Python 模块是一个包含 __init__.py 文件的目录。
该模块导出在 __init__.py 中定义的 __all__ 属性中列出的任何内容。

init.py

当 Comfy 尝试导入模块时,会执行 __init__.py。为了使模块被识别为包含自定义节点定义,它需要导出 NODE_CLASS_MAPPINGS。如果它做到了(并且导入过程中没有出错),模块中定义的节点将在 Comfy 中可用。如果您的代码中存在错误,Comfy 将继续运行,但会报告该模块加载失败。所以请检查 Python 控制台!

一个非常简单的 __init__.py 文件可能看起来像这样:

from .python_file import MyCustomNode
NODE_CLASS_MAPPINGS = { "My Custom Node" : MyCustomNode }
__all__ = ["NODE_CLASS_MAPPINGS"]


NODE_CLASS_MAPPINGS

NODE_CLASS_MAPPINGS 必须是一个 dict,将自定义节点名称(在整个 Comfy 安装中唯一)映射到相应的节点类。


NODE_DISPLAY_NAME_MAPPINGS

__init__.py 也可以导出 NODE_DISPLAY_NAME_MAPPINGS,它将相同的唯一名称映射到节点的显示名称。
如果未提供 NODE_DISPLAY_NAME_MAPPINGS,Comfy 将使用唯一名称作为显示名称。


WEB_DIRECTORY

如果您正在部署客户端代码,您还需要导出相对于模块的路径,其中可以找到 JavaScript 文件。传统上,将这些文件放置在您自定义的名为 js 的子目录中。

只有 .js 文件将被提供;您不能以这种方式部署 .css 或其他类型的文件
在 Comfy 的先前版本中,需要 __init__.py 来将 JavaScript 文件复制到主 Comfy 网络子目录中。您仍然会看到执行此操作的代码。不要这样做。

ComfyUI 管理器

尽管可以手动安装自定义节点,但大多数人使用
ComfyUI 管理器来安装它们。ComfyUI 管理器负责安装、更新和删除自定义节点以及任何依赖项。但它不是 Comfy 核心的组成部分,因此您需要手动安装它。


安装 ComfyUI 管理器

cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git

安装完成后重启 Comfy。
有关详细信息或特殊情况,请参阅 ComfyUI 管理器安装


使用 ComfyUI 管理器

要将您的自定义节点通过 ComfyUI 管理器提供,您需要将其保存为一个 Git 仓库(通常位于 github.com)。
然后提交一个到 ComfyUI Manager git 的 Pull Request,其中你已编辑 custom-node-list.json 来添加你的节点。
更多信息.

当用户安装节点时,ComfyUI Manager 将:

1、Git Clone

git克隆仓库


2、安装Python依赖项

安装自定义节点存储库中 requirements.txt 下列出的pip依赖项(如果存在),

pip install -r requirements.txt

pip一样,您的节点需求可能与其他自定义节点发生冲突。不要使您的requirements.txt比必需的更加严格。


3、运行安装脚本

如果自定义节点仓库中有install.py,请执行它。

install.py从自定义节点的根路径执行。


ComfyUI 管理器文件

如上所述,ComfyUI 管理器将使用一些文件和脚本来管理自定义节点的生命周期。这些都是可选的。

  • requirements.txt —— 如上所述的 Python 依赖项
  • install.pyuninstall.py —— 当自定义节点安装或卸载时执行,用户可以直接删除目录,因此不能依赖uninstall.py执行。
  • disable.pyenable.py - 当自定义节点禁用或重新启用时执行 enable.py仅在禁用的节点重新启用时运行 - 它应该只撤销disable.py中执行的操作
    禁用的自定义节点子目录名称将附加.disabled,Comfy 会忽略这些模块
  • node_list.json - 仅当自定义节点的 NODE_CLASS_MAPPINGS 模式不常规时 才需要。

有关官方详细信息,请参阅ComfyUI 管理器指南


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值