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