# 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. 安装依赖 ```bash pip install -r requirements.txt ``` ### 3. 环境配置 复制 `.env.example` 为 `.env` 并配置相关参数: ```bash cp .env.example .env ``` 编辑 `.env` 文件,配置以下参数: ```ini # 数据库配置 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. 数据库迁移 ```bash # 初始化迁移 alembic init alembic # 生成迁移文件 alembic revision --autogenerate -m "Initial migration" # 执行迁移 alembic upgrade head ``` ### 5. 启动应用 ```bash # 开发模式启动 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 ## 开发指南 ### 添加新的领域实体 1. 在 `src/domain/entities/` 中创建实体类 2. 在 `src/infrastructure/database/models.py` 中添加数据库模型 3. 在 `src/domain/repositories/` 中定义仓储接口 4. 在 `src/infrastructure/database/repository_impl/` 中实现仓储 5. 在 `src/application/schemas/` 中添加数据传输对象 6. 在 `src/application/use_cases/` 中添加应用用例 7. 在 `src/api/routes/` 中添加API路由 ### 数据库迁移 ```bash # 生成迁移文件 alembic revision --autogenerate -m "描述变更内容" # 执行迁移 alembic upgrade head # 回滚迁移 alembic downgrade -1 ``` ## 部署 ### 生产环境配置 1. 修改 `alembic.ini` 中的数据库URL 2. 配置生产环境的 `.env` 文件 3. 使用生产级别的WSGI服务器(如Gunicorn) 4. 配置反向代理(如Nginx) 5. 设置日志轮转和监控 ### Docker部署 ```dockerfile 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"] ``` ## 贡献指南 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 联系方式 如有问题或建议,请提交 Issue 或联系项目维护者。