AI视频分镜生成器
基于FastAPI和领域驱动设计(DDD)的AI视频分镜生成系统,支持提示词管理、项目管理、素材分析、分镜生成等功能。
功能特性
- 提示词管理: 支持创建、更新、删除提示词模板
- 项目管理: 完整的项目生命周期管理
- 素材分析: 使用AI自动分析图片素材内容
- 分镜生成: 基于AI生成视频分镜内容
- 图片生成: 使用Gemini生成分镜首帧图
- 视频生成: 支持生成分镜视频(需要实现具体API)
- 文件存储: 集成七牛云存储服务
技术架构
- 编程语言: Python 3.10+
- Web框架: FastAPI
- 架构模式: 领域驱动设计(DDD)分层架构
- 数据库: PostgreSQL + SQLAlchemy 2.0
- 数据库迁移: Alembic
- AI服务: Google Gemini + OpenRouter
- 存储服务: 七牛云
项目结构
.
├── alembic/ # 数据库迁移
├── src/
│ ├── api/ # API层
│ │ ├── dependencies.py # 依赖注入
│ │ └── routes/ # 路由定义
│ ├── application/ # 应用层
│ │ ├── schemas/ # 数据传输对象
│ │ └── use_cases/ # 应用用例
│ ├── domain/ # 领域层
│ │ ├── entities/ # 领域实体
│ │ ├── repositories/ # 仓储接口
│ │ └── services/ # 领域服务
│ ├── infrastructure/ # 基础设施层
│ │ ├── database/ # 数据库相关
│ │ └── external/ # 外部服务客户端
│ └── main.py # 应用入口
├── .env.example # 环境变量示例
├── requirements.txt # 项目依赖
└── README.md # 项目说明
快速开始
1. 环境准备
- Python 3.10+
- PostgreSQL 数据库
- 七牛云账号
- Google AI API Key
- OpenRouter API Key
2. 安装依赖
pip install -r requirements.txt
3. 环境配置
复制 .env.example 为 .env 并配置相关参数:
cp .env.example .env
编辑 .env 文件,配置以下参数:
# 数据库配置
DATABASE_URL="postgresql://user:password@host:port/dbname"
# 七牛云配置
QINIU_ACCESS_KEY="your_qiniu_access_key"
QINIU_SECRET_KEY="your_qiniu_secret_key"
QINIU_BUCKET_NAME="your_qiniu_bucket_name"
QINIU_DOMAIN="your_qiniu_cdn_domain"
# AI模型配置
GOOGLE_API_KEY="your_google_ai_api_key"
OPENROUTER_API_KEY="your_openrouter_api_key"
OPENROUTER_BASE_URL="https://openrouter.ai/api/v1"
4. 数据库迁移
# 初始化迁移
alembic init alembic
# 生成迁移文件
alembic revision --autogenerate -m "Initial migration"
# 执行迁移
alembic upgrade head
5. 启动应用
# 开发模式启动
python -m uvicorn src.main:app --reload --host 0.0.0.0 --port 8000
# 或者直接运行
python src/main.py
6. 访问API文档
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
API端点
提示词管理
GET /api/v1/prompts- 获取所有提示词POST /api/v1/prompts- 创建或更新提示词DELETE /api/v1/prompts/{prompt_id}- 删除提示词
项目管理
GET /api/v1/projects- 分页获取项目列表POST /api/v1/projects- 创建新项目GET /api/v1/projects/{project_id}- 获取项目详情
素材管理
POST /api/v1/projects/{project_id}/assets- 上传并分析素材
分镜生成
POST /api/v1/projects/{project_id}/generate-storyboards- 生成分镜POST /api/v1/storyboards/{storyboard_id}/generate-frame- 生成首帧图POST /api/v1/storyboards/{storyboard_id}/generate-video- 生成视频
文件上传
POST /api/v1/qiniu/upload-token- 获取七牛云上传Token
开发指南
添加新的领域实体
- 在
src/domain/entities/中创建实体类 - 在
src/infrastructure/database/models.py中添加数据库模型 - 在
src/domain/repositories/中定义仓储接口 - 在
src/infrastructure/database/repository_impl/中实现仓储 - 在
src/application/schemas/中添加数据传输对象 - 在
src/application/use_cases/中添加应用用例 - 在
src/api/routes/中添加API路由
数据库迁移
# 生成迁移文件
alembic revision --autogenerate -m "描述变更内容"
# 执行迁移
alembic upgrade head
# 回滚迁移
alembic downgrade -1
部署
生产环境配置
- 修改
alembic.ini中的数据库URL - 配置生产环境的
.env文件 - 使用生产级别的WSGI服务器(如Gunicorn)
- 配置反向代理(如Nginx)
- 设置日志轮转和监控
Docker部署
FROM python:3.10-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000"]
贡献指南
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
联系方式
如有问题或建议,请提交 Issue 或联系项目维护者。
Description
Languages
Python
98.7%
Dockerfile
0.9%
Mako
0.4%