# auto-video-generator **Repository Path**: chen-zhenmeng/auto-video-generator ## Basic Information - **Project Name**: auto-video-generator - **Description**: 自动化生成视频 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-11 - **Last Updated**: 2026-06-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🎬 Auto Video Generator - AI视频自动生成系统 [![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://www.python.org/) [![FastAPI](https://img.shields.io/badge/FastAPI-0.115+-green.svg)](https://fastapi.tiangolo.com/) [![Vue](https://img.shields.io/badge/Vue-3.x-brightgreen.svg)](https://vuejs.org/) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ## 📖 项目简介 **Auto Video Generator** 是一个基于多Agent协作的AI视频全自动生成系统。通过集成12个专业AI代理、17阶段工作流编排和多个AI模型API,实现从热点采集、脚本创作、视觉生成到发布运营的全链路自动化。 ### ✨ 核心特性 - 🤖 **12个专业AI Agent**: 覆盖内容创作、视觉生成、后期制作、发布运营全流程 - 🎭 **6种内容类型**: 短视频、短剧、动漫、纪录片、教程、评测 - 📝 **智能脚本解析**: 支持TXT/MD/DOCX/FDX/PDF多种格式,自动分幕/分场/分镜 - 🎨 **多模态生成**: 文本→图像→视频→音频全自动流水线 - 📊 **数据驱动选题**: 8大平台热点采集,智能推荐算法 - 🚀 **分布式架构**: FastAPI + Celery + Redis,支持水平扩展 - 🎛️ **可视化看板**: 实时监控工作流进度、成本、资源 - 🌐 **多平台发布**: 抖音、快手、B站、小红书一键分发 - 🖼️ **作品展厅**: 瀑布流/网格/列表视图,支持收藏、标签、批量导出 ## 🏗️ 系统架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ 前端层 (Vue 3) │ │ Dashboard │ 项目管理 │ 视频管理 │ 热点中心 │ Agent中心 │ └────────────────────┬────────────────────────────────────────┘ │ HTTP/WebSocket ┌────────────────────▼────────────────────────────────────────┐ │ API网关层 (FastAPI) │ │ 路由层 │ WebSocket │ 依赖注入 │ 认证中间件 │ └────────────────────┬────────────────────────────────────────┘ │ 异步任务 ┌────────────────────▼────────────────────────────────────────┐ │ 任务调度层 (Celery) │ │ Worker节点 │ Beat定时 │ 消息队列 │ 结果后端 │ └────────────────────┬────────────────────────────────────────┘ │ Agent调用 ┌────────────────────▼────────────────────────────────────────┐ │ AI Agent层 (多模型路由) │ │ Director │ Screenwriter │ Art Director │ Animator │ ... │ └────────────────────┬────────────────────────────────────────┘ │ API调用 ┌────────────────────▼────────────────────────────────────────┐ │ 外部服务层 │ │ OpenAI │ 智谱 │ DeepSeek │ ComfyUI │ Edge-TTS │ FFmpeg │ └─────────────────────────────────────────────────────────────┘ ``` ## 🛠️ 技术栈 ### 后端 - **框架**: FastAPI 0.115+ (异步高性能API) - **ORM**: SQLAlchemy 2.0 (异步数据库) - **数据库**: SQLite / PostgreSQL (可切换) - **任务队列**: Celery 5.4 + Redis - **LLM集成**: OpenAI / 智谱 / DeepSeek / 阿里云 / Moonshot / 小米MiMo - **图像生成**: ComfyUI (Stable Diffusion) - **音频合成**: Edge-TTS - **视频处理**: FFmpeg ### 前端 - **框架**: Vue 3 (Composition API) - **构建工具**: Vite 5.4 - **UI库**: Element Plus - **状态管理**: Pinia - **图表**: ECharts - **实时通信**: WebSocket ### 部署 - **容器化**: Docker + Docker Compose - **反向代理**: Nginx (可选) ## 📂 项目结构 ``` auto-video-generator/ ├── backend/ # 后端服务 │ ├── app/ │ │ ├── agents/ # AI Agent实现 │ │ │ ├── creation/ # 创作层Agent (编剧、影评人等) │ │ │ ├── production/ # 生产层Agent (美术指导、动画师等) │ │ │ ├── post_production/ # 后期Agent (剪辑师、审核员) │ │ │ ├── operations/ # 运营层Agent (数据分析师等) │ │ │ └── orchestration/ # 编排层 (Director总指挥) │ │ ├── api/ # API路由 │ │ │ ├── routes/ # 业务接口 │ │ │ └── websocket/ # 实时通信 │ │ ├── core/ # 核心模块 │ │ │ ├── celery_app.py # Celery配置 │ │ │ ├── database.py # 数据库连接 │ │ │ ├── llm_router.py # LLM路由 │ │ │ └── config.py # 配置管理 │ │ ├── models/ # 数据模型 │ │ ├── schemas/ # Pydantic验证 │ │ ├── services/ # 业务服务 │ │ │ ├── script_parser.py # 脚本解析器 │ │ │ └── workflow_service.py # 工作流服务 │ │ ├── tasks/ # Celery任务 │ │ └── utils/ # 工具函数 │ ├── alembic/ # 数据库迁移 │ ├── data/ # 数据存储 │ ├── main.py # 入口文件 │ └── requirements.txt # Python依赖 │ ├── frontend/ # 前端应用 │ ├── src/ │ │ ├── api/ # API调用 │ │ ├── components/ # 组件 │ │ │ ├── ScriptPreviewPanel.vue # 分镜预览 │ │ │ ├── QuickCreateDialog.vue # 快速创建 │ │ │ └── RealtimeTerminal.vue # 实时终端 │ │ ├── views/ # 页面 │ │ ├── stores/ # 状态管理 │ │ └── router/ # 路由配置 │ ├── package.json │ └── vite.config.js │ ├── docker-compose.yml # Docker编排 └── README.md ``` ## 🚀 快速开始 ### 环境要求 - Python 3.10+ - Node.js 18+ - Redis 6+ - FFmpeg (视频处理) - ComfyUI (可选,图像生成) ### 1. 安装依赖 #### 后端 ```bash cd backend # 创建虚拟环境 python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate # 安装依赖 pip install -r requirements.txt ``` #### 前端 ```bash cd frontend # 安装依赖 npm install ``` ### 2. 配置环境变量 ```bash cd backend cp .env.example .env # 编辑 .env 文件,配置必要的 API Key ``` **必须配置至少一个LLM API Key:** ```env # 选择以下至少一个 OPENAI_API_KEY=your_openai_key ZHIPU_API_KEY=your_zhipu_key DEEPSEEK_API_KEY=your_deepseek_key ALIYUN_API_KEY=your_aliyun_key MIMO_API_KEY=your_mimo_token_plan_key # 小米MiMo Token Plan (推荐) ``` ### 3. 数据库迁移 ```bash cd backend # 初始化数据库 alembic upgrade head ``` ### 4. 启动服务 #### 方式一: 手动启动 ```bash # 终端1: 启动Redis (如果未运行) redis-server # 终端2: 启动后端API cd backend uvicorn main:app --host 0.0.0.0 --port 8000 --reload # 终端3: 启动Celery Worker cd backend celery -A app.core.celery_app worker --loglevel=info --pool=solo --concurrency=8 # 终端4: 启动Celery Beat (定时任务) cd backend celery -A app.core.celery_app beat --loglevel=info # 终端5: 启动前端开发服务器 cd frontend npm run dev ``` #### 方式二: 使用启动脚本 (Windows) ```bash cd backend # 启动所有服务 start_all.bat # 或单独启动 start.bat # 后端API start_celery_worker.bat # Celery Worker start_celery_beat.bat # Celery Beat ``` #### 方式三: Docker Compose ```bash # 一键启动所有服务 docker-compose up -d # 查看日志 docker-compose logs -f ``` ### 5. 访问应用 - **前端界面**: http://localhost:3000 - **API文档**: http://localhost:8000/docs - **Redis监控**: redis://localhost:6379 ## 📖 使用指南 ### 创建视频项目 1. **访问前端**: 打开 http://localhost:3000 2. **快速创建**: 点击"新建项目"按钮 3. **选择内容类型**: - 📱 短视频 (SHORT_VIDEO) - 🎭 短剧 (SHORT_DRAMA) - 🎨 动漫 (ANIME) - 🎬 纪录片 (DOCUMENTARY) - 📚 教程 (TUTORIAL) - 🎯 评测 (REVIEW) 4. **上传脚本** (可选): - 支持格式: `.txt`, `.md`, `.docx`, `.fdx`, `.pdf` - 自动解析分幕/分场/分镜 - 提取角色、场景、对话信息 5. **启动工作流**: 系统自动进入17阶段生产流程 ### 工作流阶段 ``` 1. 热点采集 → 2. 选题推荐 → 3. 商业分析 → 4. 风险评估 5. 剧本创作 → 6. 剧本审核 → 7. 分镜设计 → 8. 美术指导 9. 视觉生成 → 10. 音频合成 → 11. 视频剪辑 → 12. 质量审核 13. 平台适配 → 14. 排期发布 → 15. 社区运营 → 16. 数据监控 17. 归档管理 ``` ### 监控进度 - **Dashboard**: 查看整体统计数据 - **项目管理**: 跟踪单个项目进度 - **Agent中心**: 查看各Agent执行情况 - **实时终端**: WebSocket实时推送日志 ## 🔌 API接口 ### 项目管理 ```http POST /api/v1/projects # 创建项目 GET /api/v1/projects # 获取项目列表 GET /api/v1/projects/{id} # 获取项目详情 PUT /api/v1/projects/{id} # 更新项目 DELETE /api/v1/projects/{id} # 删除项目 ``` ### 脚本处理 ```http POST /api/v1/projects/{id}/upload-script # 上传脚本 POST /api/v1/projects/{id}/parse-script # 解析脚本 GET /api/v1/projects/{id}/script-preview # 预览脚本 ``` ### 热点中心 ```http GET /api/v1/trends # 获取热点列表 GET /api/v1/trends/stats # 热点统计 POST /api/v1/trends/refresh # 刷新热点 POST /api/v1/trends/{id}/create-project # 从热点创建项目 ``` ### 工作流控制 ```http POST /api/v1/workflow/execute # 执行工作流 GET /api/v1/workflow/status/{id} # 查询工作流状态 POST /api/v1/workflow/batch # 批量执行 ``` 完整API文档: http://localhost:8000/docs ## 📊 数据库设计 ### 核心表结构 - **projects**: 项目信息 (标题、类型、脚本、状态等) - **trends**: 热点数据 (标题、来源、热度、关键词等) - **agent_tasks**: Agent任务 (任务类型、状态、进度等) - **assets**: 资源库 (图像、音频、视频等) - **cost_records**: 成本记录 (API调用、Token消耗等) - **llm_usages**: LLM使用统计 (模型、Tokens、成本等) - **publish_records**: 发布记录 (平台、状态、URL等) - **platform_accounts**: 平台账号 (抖音、快手、B站等) ## 🎨 功能特性 ### 脚本解析器 (ScriptParser) 支持多种格式的自动解析: ```python from app.services.script_parser import ScriptParser # 自动解析 parser = ScriptParser() result = parser.parse_file("script.txt") # 输出结构 { "scenes": [ # 分镜列表 { "scene_number": 1, "description": "画面描述", "voiceover": "旁白内容", "dialogue": "角色对话", "emotion": "情绪", "camera": "镜头", "transition": "转场" } ], "characters": [...], # 角色列表 "tags": [...] # 标签 } ``` ### LLM智能路由 根据任务类型自动选择最优模型: ```python # 复杂创作任务 → GPT-4 / Claude # 简单生成任务 → DeepSeek / 智谱 # 代码任务 → Claude # 中文任务 → 阿里云 / Moonshot ``` ### 成本控制 - 单项目默认预算: ¥50 - 各阶段成本阈值预警 - 实时成本监控 - Token使用统计 ## 🔧 配置说明 ### 环境变量 (.env) ```env # 应用配置 APP_NAME=OPC AI视频帝国 DEBUG=True SECRET_KEY=your-secret-key # 数据库 SQLALCHEMY_DATABASE_URL=sqlite+aiosqlite:///./data/empire.db # Redis REDIS_HOST=localhost REDIS_PORT=6379 # LLM API Keys (至少配置一个) OPENAI_API_KEY=sk-xxx ZHIPU_API_KEY=xxx DEEPSEEK_API_KEY=xxx # ComfyUI COMFYUI_URL=http://127.0.0.1:8188 # 存储路径 STORAGE_BASE_PATH=./data/storage ``` ## 🐳 Docker部署 ```yaml # docker-compose.yml version: '3.8' services: redis: image: redis:7-alpine ports: - "6379:6379" backend: build: ./backend ports: - "8000:8000" depends_on: - redis env_file: - ./backend/.env frontend: build: ./frontend ports: - "3000:3000" depends_on: - backend ``` 启动: ```bash docker-compose up -d ``` ## 🧪 开发指南 ### 添加新的Agent 1. 在 `backend/app/agents/` 创建Agent类 2. 继承 `BaseAgent` 基类 3. 实现 `execute()` 方法 4. 在 `Director` 中注册 ```python from app.agents.base import BaseAgent class MyCustomAgent(BaseAgent): name = "my_custom_agent" async def execute(self, input_data: dict) -> dict: # 实现Agent逻辑 return {"result": "success"} ``` ### 添加Celery任务 ```python from app.core.celery_app import celery_app @celery_app.task(bind=True) def my_task(self, param1, param2): # 任务实现 return result ``` ### 前端开发 ```bash # 启动开发服务器 cd frontend npm run dev # 构建生产版本 npm run build # 代码检查 npm run lint ``` ## 📈 性能优化 - **异步处理**: FastAPI + SQLAlchemy异步模式 - **任务队列**: Celery分布式任务处理 - **缓存策略**: Redis缓存热点数据 - **连接池**: 数据库/Redis连接复用 - **并发控制**: Worker并发数可调 - **模型选择**: 根据任务复杂度动态选择LLM ## 🔐 安全建议 1. **不要提交 `.env` 文件到Git** 2. **定期更新API Keys** 3. **使用HTTPS部署** 4. **配置防火墙规则** 5. **监控异常访问** ## 📝 更新日志 ### v4.1.0 (2026-06-11) **新增功能:** - ✅ 作品展厅页面 (Showcase.vue) - 瀑布流/网格/列表视图 - ✅ 资产预览对话框增强 - 完整元数据展示(质量评分、成本、Prompt等) - ✅ 生产流水线卡片增强 - 视频悬停预览 - ✅ 小米MiMo Token Plan API集成 (免费LLM选项) - ✅ 批量导出功能 (ZIP打包下载) - ✅ 收藏和标签管理 - ✅ 资产文件服务API (缩略图生成) **优化:** - ✅ Asset模型extra_data字段规范化 - ✅ CORS配置支持Vite动态端口 - ✅ LLM路由器MiMo模型降级链路 **修复:** - ✅ Asset模型metadata字段改为extra_data - ✅ Vue组件Picture导入问题 - ✅ FastAPI CORS端口白名单 ### v4.0.0 (2026-06-10) **新增功能:** - ✅ 6种内容类型支持 (短视频/短剧/动漫/纪录片/教程/评测) - ✅ 智能脚本解析器 (支持TXT/MD/DOCX/FDX/PDF) - ✅ 分镜预览面板 (可视化展示) - ✅ 脚本上传和解析API - ✅ Director Agent工作流编排优化 - ✅ 数据库字段扩展 (content_type, script_format等) **优化:** - ✅ Celery Worker Windows兼容性 - ✅ 前端暗黑主题 - ✅ 实时WebSocket终端 - ✅ 成本监控和预警 - ✅ 路由顺序优化 **修复:** - ✅ FastAPI 422路由冲突 - ✅ SQLite数据库迁移兼容性 - ✅ Celery重连机制 - ✅ 前端Network Error ## 🤝 贡献指南 欢迎提交Issue和Pull Request! 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) 文件了解详情 ## 📧 联系方式 - 项目地址: https://gitee.com/chen-zhenmeng/auto-video-generator - 问题反馈: 提交Issue - 邮箱: 2091316991@qq.com ## 🙏 致谢 感谢以下开源项目: - [FastAPI](https://fastapi.tiangolo.com/) - [Vue.js](https://vuejs.org/) - [Element Plus](https://element-plus.org/) - [Celery](https://docs.celeryq.dev/) - [ComfyUI](https://github.com/comfyanonymous/ComfyUI) --- ⭐ 如果这个项目对你有帮助,请给一个Star!