logo
0
0
WeChat Login
Forkfromfor-ai-learn/o-comfy, behind:main2 commits

O-Comfy : 基于 CNB 平台的声明式 ComfyUI 运行架构

⚡ 快速开始 (Quick Start)

1. 环境准备

为实现配置持久化与版本管理,建议按以下步骤操作:

  • 第一步:点击页面右上角 Fork 按钮,将本项目克隆至您的个人空间。
  • 第二步:在 CNB 平台开启开发空间,执行仓库克隆(请替换为您 Fork 后的实际路径):
# 建议克隆您自己的副本以保存配置变更 git clone https://cnb.cool/<您的用户名>/o-comfy.git cd o-comfy

2. 定义模型清单

根据项目需求,在 my_data/file_list.json 中添加模型定义。初次使用可参考示例模板 my_data/file_list_example.jsonc

3. 一键启动

执行主引导脚本,系统将自动完成环境初始化:

bash start.sh

💡 可选操作:手动同步模型 若需单独执行模型下载任务,可运行:bash ops/download_models.sh

4. 保存你的更改 (重要) 💾

由于 CNB 开发空间是易失性的,当您安装了新插件或修改了界面设置后,请务必执行同步脚本将变更推送到仓库:

bash ops/sync.sh

该脚本会自动清理冗余文件,并依靠 .gitignore 过滤大体积模型,仅将核心配置与插件源码同步至云端。


🏗️ 目录结构规范

. ├── Dockerfile # 运行时镜像定义(最小可行版本) ├── start.sh # 系统启动入口(契约校验与状态恢复) ├── .cnb.yml # CNB 工作区与运行时约定配置 ├── .gitignore # 仓库资产边界定义文件 ├── ops/ # ⚙️ 运维支撑与辅助脚本层 │ ├── download_models.sh # 模型自动化并行下载脚本 │ ├── get_file_list.py # 模型清单元数据处理工具 │ └── sync.sh # 状态同步辅助脚本 ├── my_data/ # 💾 声明性数据与持久化状态根目录 │ ├── models/ # 模型权重存储(不纳入 Git,脚本自动恢复) │ ├── custom_nodes/ # 插件源代码(纳入 Git,排除运行噪音) │ ├── user/ # UI 界面与工作流配置(纳入 Git,核心资产) │ ├── output/ # 运行时输出产物(不纳入 Git) │ ├── temp/ # 临时交换文件(不纳入 Git) │ ├── file_list.json # 模型依赖声明清单 (The Source of Truth) │ └── file_list_example.jsonc # 带注释的配置模板 └── README.md

💡 设计理念与核心原则

1. 声明性优先 (Declarative First) 🎯

系统遵循“状态即代码”的逻辑。任何必须在环境重建后恢复的内容,要么已纳入 Git 版本控制,要么记录在 file_list.json 等声明文件中。

2. 资产边界定义 🛡️

通过精细化的 .gitignore 策略,明确区分三类资产:

  • 持久化资产:插件源码、用户配置、工作流。
  • 运行时依赖:ComfyUI 主程序(启动时自动获取,不与仓库耦合)。
  • 大体积产物:模型权重、输出图片。

3. ComfyUI 作为上游运行时依赖 🔄

ComfyUI/ 目录不纳入版本控制,每次启动时由 start.sh 自动获取。确保本仓库专注于环境管理,避免与上游代码产生强耦合。


🛠️ 核心技术实现

🔹 引导程序 (start.sh)

系统唯一受信任的入口。负责镜像能力校验、依赖工具选择、上游代码恢复及数据目录映射。

🔹 模型声明清单 (file_list.json)

模型资产的“信任源”,实现逻辑声明与物理存储的彻底解耦。

🔹 插件防护机制

自动追踪 custom_nodes 源码,同时递归拦截 .safetensors.ckpt 等大体积二进制文件,防止仓库膨胀。


📝 维护规范

  • 状态同步:所有针对插件、UI 布局、工作流的持久化修改,均应通过 Git 提交。
  • 变更审计:涉及模型增删时,应修改 file_list.json 以保持声明与实际资产的一致性。

O-Comfy · 致力于构建稳定、可预测、易分发的 ComfyUI 生产力标准。


About

纯净版 ComfyUI 云原生构建环境

Language
Python42.1%
JavaScript33.5%
TypeScript20.7%
CSS1.6%
Others2.1%