自定义节点开发

生命周期

Comfy 如何加载自定义节点 当 Comfy 启动时,它会扫描 custom nodes 目录下的 Python 模块,并尝试加载它们。 如果模块导出了 NODE CLASS MAPPINGS ,它就会被视为自定义节点。 一个 Python 模块是包含 init .py 文件的目录。 模块会导出在 init .py 文件中 all 属性中列出的内容。 in

Comfy 如何加载自定义节点

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

init.py

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

一个非常简单的 __init__.py 文件如下所示:

python
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 子目录下。

官方原文

本页来自 Comfy-Org 官方中文文档的固定版本,并转换为 xueai 静态页面。内容以官方持续更新的页面为准。

内容授权与修改

官方文档采用 GPL-3.0。本站保留许可证、固定提交号和修改说明,不代表 ComfyUI 或 Comfy-Org 对本站背书。

GPL-3.0来源和修改说明