基本标准
1. 社区价值
自定义节点必须为 ComfyUI 社区提供有价值的功能 避免:- 过度自我宣传
- 冒充或误导行为
- 恶意行为
- 自我宣传仅允许在指定的设置菜单部分内
- 顶部和侧边菜单应仅包含实用功能
2. 节点兼容性
不要干扰其他自定义节点的操作(安装、更新、删除)- 对于其他自定义节点的依赖:
- 使用依赖功能时显示清晰的警告
- 提供展示所需节点的示例工作流
3. 法律合规性
必须遵守所有适用的法律和法规5. 质量要求
节点必须功能完整、文档完善且积极维护。6. 分叉指南
分叉的节点必须:- 与原始节点名称有明显区别
- 在功能或代码上提供显著差异
安全标准
自定义节点应该是安全的。我们将开始与违反这些标准的自定义节点合作进行重写。如果有一些应该由核心暴露的主要功能,请在 rfcs 仓库 中提出请求。eval/exec 调用
政策
由于安全考虑,禁止在自定义节点中使用eval
和 exec
函数。
原因
这些函数可以启用任意代码执行,在处理用户输入时创建潜在的远程代码执行(RCE)漏洞。包含将用户输入传递给eval
或 exec
的节点的工作流可能被利用进行各种网络攻击,包括:
- 键盘记录
- 勒索软件
- 其他恶意代码执行
用于 pip install 的 subprocess
政策
不允许通过 subprocess 调用进行运行时包安装。原因
- ComfyUI manager 将与 ComfyUI 一起发布,并允许用户安装依赖项
- 集中式依赖管理提高了安全性和用户体验
- 有助于防止潜在的供应链攻击
- 消除了多次重新加载 ComfyUI 的需要
代码混淆
政策
禁止在自定义节点中进行代码混淆。原因
混淆的代码:- 无法审查,很可能具有恶意性