用途:指导如何组织、注册并发布 ComfyUI 自定义节点包。
项目结构:节点包放在 ComfyUI/custom_nodes/ 下,典型包含 init.py(必需入口)、nodes.py、requirements.txt、pyproject.toml、README.md,以及可选的 js/(前端扩展)、docs/(帮助页)、locales/(国际化)。
注册方式:推荐 V3,在 init.py 中定义继承 ComfyExtension 的类,实现 get_node_list 返回节点类列表,并提供 async def comfy_entrypoint();节点类继承 io.ComfyNode,通过 define_schema 返回 io.Schema(含 node_id、display_name、category、inputs、outputs),execute 返回 io.NodeOutput。旧版 V1 使用 NODE_CLASS_MAPPINGS 与 NODE_DISPLAY_NAME_MAPPINGS。
依赖:requirements.txt 只列 ComfyUI 未自带的依赖,torch、numpy、PIL、scipy、transformers 等已内置。
前端与文档:设置 WEB_DIRECTORY = "./js" 后目录内 .js 自动加载,资源可通过 extensions/包名/文件名 访问;docs/ 下按 node_id 命名 Markdown 帮助页;locales/ 下按语言提供 main.json 与 nodeDefs.json 翻译。
发布:pyproject.toml 中配置 [tool.comfy] PublisherId,执行 comfy node publish;可用 GitHub Actions 配合 COMFY_API_KEY 自动发布;pip install comfy-cli 后执行 comfy node scaffold 生成脚手架。
限制与建议:node_id 需全局唯一且发布后不可更改,否则会破坏已保存工作流;显示名变更应使用 display_name。资料未提供具体收费、价格或效果信息。