logo
0
0
WeChat Login
ForkfromAinewstonb/comfyui-infra, ahead:main804 commits, behind:main890 commits

ComfyUI Infrastructure Project

🚀 项目概述

本项目是一个基于 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 │ │ 数据持久化 │ │ 多级缓存 │ │ 符号链接策略 │ └─────────────┘ └─────────────┘

⚡ 快速开始

环境要求

  • CNB 平台账号
  • Docker 支持
  • GPU 资源 (推荐)

一键构建

# 构建 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 # 项目文档

🔧 技术栈

核心技术

  • Python: 3.12 (最新稳定版)
  • CUDA: 12.8 (最新支持)
  • PyTorch: 2.9.1 (cu128优化)
  • UV: 现代包管理器
  • Docker: 多阶段构建

主要依赖

  • AI/ML核心: torch, transformers, diffusers, xformers
  • 图像处理: opencv-contrib-python-headless, pillow
  • Web服务: fastapi, gradio, uvicorn
  • ComfyUI生态: comfyui-frontend, comfyui-manager

⚡ 构建优化

多阶段缓存策略

缓存效果:

  • 首次构建: ~25分钟
  • 增量构建: ~3-5分钟 (85%+缓存命中率)
  • 镜像大小: Builder ~8GB, Release ~3.5GB

💾 存储策略设计

设计理念:充分利用CNB的1.6T存储空间,提供开发便利性和数据集中管理

🎯 核心优势

  • 开发便利性:在/workspace中直接访问所有ComfyUI功能
  • 数据集中化:所有数据统一在comfyui_data/目录管理
  • 空间最大化:利用1.6T空间存储大型模型和生成结果
  • 版本无关性:容器升级不影响用户数据

📁 目录映射策略

# 自动映射关系 (通过 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

🔧 技术实现

  • 符号链接机制:无性能损耗的目录映射
  • 自动迁移:首次运行时自动迁移现有数据
  • 冲突处理:强制重新创建链接,避免ComfyUI Manager冲突
  • 状态检查:启动时验证链接完整性

🚀 部署指南

CNB 平台部署

  1. 配置环境变量

    cp .env.example .env # 编辑 .env 填入 CNB_TOKEN 等配置
  2. 触发构建

    git push origin main
  3. 监控部署

本地开发

# 启动开发环境 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

📊 性能指标

构建性能

  • 缓存命中率: 85%+
  • 并行下载: UV 比 pip 快 3-5倍
  • 增量更新: 只重新下载变更依赖

运行时性能

  • 冷启动: ~30秒
  • GPU利用率: 95%+
  • 并发处理: 支持多任务队列

🔍 依赖管理

UV 现代化管理

# 添加新依赖 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"]

🤝 贡献指南

开发流程

  1. 创建功能分支

    git checkout -b feature/new-feature
  2. 开发和测试

    ./test_build_app.sh
  3. 提交变更

    git add . git commit -m "feat: add new feature" git push origin feature/new-feature

代码规范

  • 遵循 PEP 8
  • 使用语义化提交信息
  • 更新相关文档

📞 支持与联系


🧹 项目清理建议

⚠️ 发现的冗余文件

1. 测试和临时文件 (建议删除)

# 临时测试文件 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

2. 大型脚本文件 (建议优化)

# 超大脚本 (56KB) - 包含418个插件的subtree命令 scripts/docker_subtree_commands.sh # 建议拆分为模块化配置

3. 可能重复的文档 (建议整理)

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 升级

About

No description, topics, or website provided.
Language
Python56.5%
JavaScript9%
Shell3.2%
Dockerfile1.9%
Others29.4%