ComfyUI自定义节点V3版本:依赖解析及标准规范详解
自定义节点不仅是ComfyUI的功能组件,更是其核心基石。ComfyUI团队正式公布Nodes v3计划——一项旨在彻底重塑自定义节点开发体验的革新工程。目前方案仍在完善中,团队诚邀节点开发者提供反馈:哪些设计值得保留,哪些需要改进,以及一切相关建议。
重点解决问题
🔹 稳定性
当前ComfyUI的任何内部改动都可能导致自定义节点失效。Nodes v3将通过标准化公共API和向后兼容承诺解决这一问题。
🔹 依赖冲突
不同节点包的Python依赖可能互相冲突,甚至导致ComfyUI无法运行。新方案拟采用进程隔离技术规避此问题。
🔹 动态I/O与控件
现有动态输入/输出和自定义控件实现较为脆弱。v3将为其提供原生级支持和更清晰的声明规范。
🔹 模型管理
本地模型的管理日益繁琐,未来计划引入自动检测机制和结构化存储方案。
🔹 前瞻性设计
Nodes v3为以下功能预留了扩展空间:
跨机器分布式工作流
单机多节点并行执行
更多可能性
技术方案
📌 公共API
版本化的标准化API既能保护现有节点,又为ComfyUI演进留出空间。
📌 依赖隔离
采用公共API的节点包可运行在独立Python进程中,大幅降低冲突概率。
📌 现代声明规范
用面向对象的结构化schema替代晦涩的字典配置,提升可读性和灵活性。
📌 异步执行
通过async/await语法支持未来并行/分布式计算,现有工作流无需重构即可适配。
为何称为"v3"?
该版本基于两次前期工作演进而来:
v1:原始(当前主流)实现方案
v2:前端部分重构尝试
Nodes v3代表着全栈级别的重新设计。
参与共建
团队诚邀节点开发者加入讨论:
所有用户:ComfyUI Discord
注册开发者:专属频道
#exclusive-custom-node-devs
技术深潜:节点规范
当前测试节点采用v1规范编写:(Pyhton)

# 现行方案(v1)示例
class TestNode:
@classmethod
def INPUT_TYPES(cls):
return {"required": {"image": ("IMAGE",)}}
RETURN_TYPES = ("IMAGE",)
FUNCTION = "execute"
# ...共需定义7个类成员新方案(v3)
以下是拟议中的v3等效规范(开发过程中可能随时调整):(Python)

# 新方案(v3)示例
class TestNode:
@classmethod
def DEFINE_SCHEMA(cls):
return Schema(
inputs=[ImageInput("image")],
outputs=[ImageOutput("processed_image")]
)核心改进包括:
无状态设计:适配进程隔离/分布式环境
类型安全:内置验证与提示
动态I/O:原生支持运行时调整
API版本管理
通过版本锁定确保兼容性:(Python)
from comfy_api.v0_0_3 import ComfyAPI # 锁定特定稳定版
api = ComfyAPI()
await api.set_progress(0.5) # 异步调用