本项目是一个基于 CNB (Cloud Native Build) 平台的 ComfyUI 基础设施项目,提供高性能的 AI 图像生成环境,支持 CUDA 加速和完整的依赖管理。
最新更新: Python 3.12 + PyTorch 2.9.1 升级完成 (2025-12-27)
🔧 启动优化: 修复 ComfyUI Manager 目录冲突,完善符号链接策略 (2025-12-28)
┌─────────────────────────────────────────────────────────────┐ │ CNB 云原生平台 │ ├─────────────────────────────────────────────────────────────┤ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ Infra 基础层 │ → │ App 应用层 │ → ComfyUI服务 │ │ │ CUDA+Python环境 │ │ ComfyUI+依赖 │ (8188端口) │ │ └─────────────────┘ └─────────────────┘ │ └─────────────────────────────────────────────────────────────┘ ↓ ↓ ┌─────────────┐ ┌─────────────┐ │ BuildKit │ │ 数据持久化 │ │ 多级缓存 │ │ 符号链接策略 │ └─────────────┘ └─────────────┘
# 构建 Infra 基础镜像 (CUDA + Python + PyTorch)
./test_build_infra.sh
# 构建 App 应用镜像 (ComfyUI + 依赖)
./scripts/build_app.sh latest
# 锁定依赖版本 (更新 uv.lock)
./compile_app_deps.sh
# CNB 平台自动执行:
# 1. 构建镜像 → 2. 启动容器 → 3. 设置存储 → 4. 启动ComfyUI
# 访问: http://your-cnb-domain:8188
workspace/ ├── .cnb.yml # CNB 构建配置 ├── .env.example # 环境变量示例 ├── app/ # 应用层 │ ├── Dockerfile # 多阶段构建配置 │ ├── pyproject.toml # UV项目配置 │ ├── uv.lock # 依赖锁定文件 │ └── main.py # 应用入口 ├── infra/ # 基础设施层 │ ├── Dockerfile # CUDA+Python基础环境 │ ├── requirements.txt # PyTorch核心依赖 │ ├── requirements.system.txt # 系统依赖 │ └── wheels/ # 预编译轮子 ├── scripts/ # 自动化脚本 │ ├── build_app.sh # 应用构建 │ ├── build_base.sh # 基础环境构建 │ ├── comfyui-start.sh # ComfyUI启动 │ └── storage-setup.sh # 存储设置 ├── comfyui_data/ # 数据持久化 (1.6T CNB空间) │ ├── models/ # AI模型文件 │ ├── input/ # 输入数据 │ ├── output/ # 生成结果 │ ├── custom_nodes/ # 自定义节点 │ └── user/ # 用户配置 ├── test_build_infra.sh # 基础镜像测试 ├── compile_app_deps.sh # 依赖锁定脚本 └── README.md # 项目文档
缓存效果:
设计理念:充分利用CNB的1.6T存储空间,提供开发便利性和数据集中管理
/workspace中直接访问所有ComfyUI功能comfyui_data/目录管理# 自动映射关系 (通过 storage-setup.sh)
/workspace/comfyui_data/models/ → /opt/ComfyUI/models/
/workspace/comfyui_data/input/ → /opt/ComfyUI/input/
/workspace/comfyui_data/output/ → /opt/ComfyUI/output/
/workspace/comfyui_data/custom_nodes/ → /opt/ComfyUI/custom_nodes/
/workspace/comfyui_data/user/ → /opt/ComfyUI/user/
# 开发便利性链接
/workspace/ComfyUI → /opt/ComfyUI
配置环境变量
cp .env.example .env
# 编辑 .env 填入 CNB_TOKEN 等配置
触发构建
git push origin main
监控部署
# 启动开发环境
docker run -it --gpus all \
-v $(pwd):/workspace \
-p 8188:8188 \
docker.cnb.cool/ainewstonb/comfyui-infra/comfyui-app:latest
# 运行 ComfyUI
./scripts/comfyui-start.sh
# 缓存失效 - 重建缓存
./scripts/build_app.sh cache-rebuild
# 依赖超时 - 增加超时设置
export UV_HTTP_TIMEOUT=300
./compile_app_deps.sh
# 检查 GPU 支持
docker run --gpus all <image> python -c "import torch; print(torch.cuda.is_available())"
# 重新设置存储映射
docker exec <container> /workspace/scripts/storage-setup.sh
# 添加新依赖
uv add package-name
# 移除依赖
uv remove package-name
# 更新锁文件
uv lock
# 检查依赖冲突
uv pip check
[project.optional-dependencies]
core = ["torch", "numpy<2.0", "transformers"]
vision = ["opencv-contrib-python-headless", "pillow"]
web = ["fastapi", "gradio", "uvicorn"]
dev = ["black", "pytest", "mypy"]
创建功能分支
git checkout -b feature/new-feature
开发和测试
./test_build_app.sh
提交变更
git add .
git commit -m "feat: add new feature"
git push origin feature/new-feature
# 临时测试文件
app/test-push-build.txt # 测试用临时文件
app/.trigger-build # 空的触发文件
infra/.trigger-build # 空的触发文件
# 示例文件 (可能重复)
comfyui_data/custom_nodes/example_node.py.example
comfyui_data/custom_nodes/websocket_image_save.py
# 超大脚本 (56KB) - 包含418个插件的subtree命令
scripts/docker_subtree_commands.sh # 建议拆分为模块化配置
comfyui_data/user/default/comfyui_issues_report.md # 用户报告,可能过期
UPDATE_LOG.md # 更新日志,建议整合到主文档
#!/bin/bash
# 清理冗余文件脚本
# 删除临时文件
rm -f app/test-push-build.txt
rm -f app/.trigger-build
rm -f infra/.trigger-build
# 删除示例文件 (如果不需要)
rm -f comfyui_data/custom_nodes/example_node.py.example
rm -f comfyui_data/custom_nodes/websocket_image_save.py
# 整理重复文档 (可选)
# mv UPDATE_LOG.md docs/CHANGELOG.md
echo "✅ 清理完成!建议提交前检查 git status"
📁 总文件数: 1000+ (包含插件) 📦 镜像大小: 3.5GB (生产) / 8GB (缓存) ⚡ 构建速度: 85%+ 缓存命中率 🔧 依赖包: 240+ 个 (已优化) 📚 插件数: 418+ 个 (自定义节点)
最后更新: 2025-12-27 - Python 3.12 + PyTorch 2.9.1 升级