377 lines
14 KiB
Markdown
377 lines
14 KiB
Markdown
# ViGent 数字人口播系统 - 开发任务清单
|
||
|
||
**项目**:ViGent2 数字人口播视频生成系统
|
||
**服务器**:Dell R730 (2× RTX 3090 24GB)
|
||
**更新时间**:2026-01-29
|
||
**整体进度**:100%(Day 13 声音克隆功能集成完成)
|
||
|
||
## 📖 快速导航
|
||
|
||
| 章节 | 说明 |
|
||
|------|------|
|
||
| [已完成任务](#-已完成任务) | Day 1-13 完成的功能 |
|
||
| [后续规划](#️-后续规划) | 待办项目 |
|
||
| [进度统计](#-进度统计) | 各模块完成度 |
|
||
| [里程碑](#-里程碑) | 关键节点 |
|
||
| [时间线](#-时间线) | 开发历程 |
|
||
|
||
**相关文档**:
|
||
- [Day 日志](file:///d:/CodingProjects/Antigravity/ViGent2/Docs/DevLogs/) (Day1-Day13)
|
||
- [部署指南](file:///d:/CodingProjects/Antigravity/ViGent2/Docs/DEPLOY_MANUAL.md)
|
||
- [Qwen3-TTS 部署](file:///d:/CodingProjects/Antigravity/ViGent2/Docs/QWEN3_TTS_DEPLOY.md)
|
||
|
||
---
|
||
|
||
## ✅ 已完成任务
|
||
|
||
### 阶段一:核心功能验证
|
||
- [x] EdgeTTS 配音集成
|
||
- [x] FFmpeg 视频合成
|
||
- [x] MuseTalk 唇形同步 (代码集成)
|
||
- [x] 端到端流程验证
|
||
|
||
### 阶段二:后端 API 开发
|
||
- [x] FastAPI 项目搭建
|
||
- [x] 视频生成 API
|
||
- [x] 素材管理 API
|
||
- [x] 文件存储管理
|
||
|
||
### 阶段三:前端 Web UI
|
||
- [x] Next.js 项目初始化
|
||
- [x] 视频生成页面
|
||
- [x] 发布管理页面
|
||
- [x] 任务状态展示
|
||
|
||
### 阶段四:社交媒体发布
|
||
- [x] Playwright 自动化框架
|
||
- [x] Cookie 管理功能
|
||
- [x] 多平台发布 UI
|
||
- [x] 定时发布功能 (Day 7)
|
||
- [x] QR码自动登录 (Day 7)
|
||
|
||
### 阶段五:部署与文档
|
||
- [x] 手动部署指南 (DEPLOY_MANUAL.md)
|
||
- [x] 一键部署脚本 (deploy.sh)
|
||
- [x] 环境配置模板 (.env.example)
|
||
- [x] 项目文档 (README.md)
|
||
- [x] 端口配置 (8006/3002)
|
||
|
||
### 阶段六:MuseTalk 服务器部署 (Day 2-3)
|
||
- [x] conda 环境配置 (musetalk)
|
||
- [x] 模型权重下载 (~7GB)
|
||
- [x] subprocess 调用方式实现
|
||
- [x] 健康检查功能
|
||
- [x] 实际推理调用验证 (Day 3 修复)
|
||
|
||
### 阶段七:MuseTalk 完整修复 (Day 4)
|
||
- [x] 权重检测路径修复 (软链接)
|
||
- [x] 音视频长度不匹配修复 (audio_processor.py)
|
||
- [x] 推理脚本错误日志增强 (inference.py)
|
||
- [x] 视频合成 MP4 生成验证
|
||
- [x] 端到端流程完整测试
|
||
|
||
### 阶段八:前端功能增强 (Day 5)
|
||
- [x] Web 视频上传功能
|
||
- [x] 上传进度显示
|
||
- [x] 自动刷新素材列表
|
||
|
||
### 阶段九:唇形同步模型升级 (Day 6)
|
||
- [x] MuseTalk → LatentSync 1.6 迁移
|
||
- [x] 后端代码适配 (config.py, lipsync_service.py)
|
||
- [x] Conda 环境配置 (latentsync)
|
||
- [x] 模型权重部署指南
|
||
- [x] 服务器端到端验证
|
||
|
||
### 阶段十:性能优化 (Day 6)
|
||
- [x] 视频预压缩优化 (高分辨率自动压缩到720p)
|
||
- [x] 进度更新细化 (5% → 10% → 25% → ... → 100%)
|
||
- [x] LipSync 服务单例缓存
|
||
- [x] 健康检查缓存 (5分钟)
|
||
- [x] 异步子进程修复 (subprocess.run → asyncio)
|
||
- [x] 预加载模型服务 (常驻 Server + FastAPI)
|
||
- [x] 批量队列处理 (GPU 并发控制)
|
||
|
||
### 阶段十一:社交媒体发布完善 (Day 7)
|
||
- [x] QR码自动登录 (Playwright headless)
|
||
- [x] 多平台上传器架构 (B站/抖音/小红书)
|
||
- [x] B站发布 (biliup官方库)
|
||
- [x] 抖音/小红书发布 (Playwright)
|
||
- [x] 定时发布功能
|
||
- [x] 前端发布UI优化
|
||
- [x] Cookie自动管理
|
||
- [x] UI一致性修复 (导航栏对齐、滚动条隐藏)
|
||
- [x] QR登录超时修复 (Stealth模式、多选择器fallback)
|
||
- [x] 文档规则优化 (智能修改标准、工具使用规范)
|
||
|
||
### 阶段十二:用户体验优化 (Day 8)
|
||
- [x] 文件名保留 (时间戳前缀 + 原始名称)
|
||
- [x] 视频持久化 (从文件系统读取历史)
|
||
- [x] 历史视频列表组件
|
||
- [x] 素材/视频删除功能
|
||
- [x] 登出功能 (Logout API + 前端按钮)
|
||
- [x] 前端 SWR 轮询优化
|
||
- [x] QR 登录状态检测修复
|
||
|
||
### 阶段十三:发布模块优化 (Day 9)
|
||
- [x] B站/抖音发布验证通过
|
||
- [x] 资源清理保障 (try-finally)
|
||
- [x] 超时保护 (消除无限循环)
|
||
- [x] 小红书 headless 模式修复
|
||
- [x] API 输入验证
|
||
- [x] 完整类型提示
|
||
- [x] 扫码登录等待界面 (加载动画)
|
||
- [x] 抖音/B站登录策略优化 (Text优先)
|
||
- [x] 发布成功审核提示
|
||
|
||
### 阶段十四:用户认证系统 (Day 9)
|
||
- [x] Supabase 数据库表设计与部署
|
||
- [x] JWT 认证 (HttpOnly Cookie)
|
||
- [x] 用户注册/登录/登出 API
|
||
- [x] 管理员权限控制 (is_active)
|
||
- [x] 单设备登录限制 (Session Token)
|
||
- [x] 防止 Supabase 暂停 (GitHub Actions/Crontab)
|
||
- [x] 认证部署文档 (AUTH_DEPLOY.md)
|
||
|
||
### 阶段十五:部署稳定性优化 (Day 9)
|
||
- [x] 后端依赖修复 (bcrypt/email-validator)
|
||
- [x] 前端生产环境构建修复 (npm run build)
|
||
- [x] LatentSync 性能卡顿修复 (OMP_NUM_THREADS限制)
|
||
- [x] 部署服务自愈 (PM2 配置优化)
|
||
- [x] 部署手册全量更新 (DEPLOY_MANUAL.md)
|
||
|
||
### 阶段十六:HTTPS 部署与细节完善 (Day 10)
|
||
- [x] 隧道访问修复 (StaticFiles 挂载 + Rewrite)
|
||
- [x] 平台账号列表 500 错误修复 (paths.py)
|
||
- [x] Nginx HTTPS 配置 (反向代理 + SSL)
|
||
- [x] 浏览器标题修改 (ViGent)
|
||
- [x] 代码自适应 HTTPS 验证
|
||
- [x] **Supabase 自托管部署** (Docker, 3003/8008端口)
|
||
- [x] **安全加固** (Basic Auth 保护后台)
|
||
- [x] **端口冲突解决** (迁移 Analytics/Kong)
|
||
|
||
### 阶段十七:上传架构重构 (Day 11)
|
||
- [x] **直传改造** (前端直接上传 Supabase,绕过后端代理)
|
||
- [x] **后端适配** (Signed URL 签名生成)
|
||
- [x] **RLS 策略部署** (SQL 脚本自动化权限配置)
|
||
- [x] **超时问题根治** (彻底解决 Nginx/FRP 30s 限制)
|
||
- [x] **前端依赖更新** (@supabase/supabase-js 集成)
|
||
|
||
### 阶段十八:用户隔离与存储优化 (Day 11)
|
||
- [x] **用户数据隔离** (素材/视频/Cookie 按用户ID目录隔离)
|
||
- [x] **Storage URL 修复** (SUPABASE_PUBLIC_URL 配置,修复 localhost 问题)
|
||
- [x] **发布服务优化** (直接读取本地 Supabase Storage 文件,跳过 HTTP 下载)
|
||
- [x] **Supabase Studio 配置** (公网访问配置)
|
||
|
||
### 阶段十九:iOS 兼容与移动端 UI 优化 (Day 12)
|
||
- [x] **Axios 全局拦截器** (401/403 自动跳转登录,防重复跳转)
|
||
- [x] **iOS Safari 安全区域修复** (viewport-fit: cover, themeColor, 渐变背景统一)
|
||
- [x] **移动端 Header 优化** (按钮紧凑布局,响应式间距)
|
||
- [x] **发布页面 UI 重构** (立即发布/定时发布按钮分离,防误触设计)
|
||
- [x] **Qwen3-TTS 0.6B 部署** (声音克隆模型,GPU0,3秒参考音频快速克隆)
|
||
|
||
### 阶段二十:声音克隆功能集成 (Day 13)
|
||
- [x] **Qwen3-TTS HTTP 服务** (独立 FastAPI 服务,端口 8009)
|
||
- [x] **声音克隆服务** (voice_clone_service.py,HTTP 调用封装)
|
||
- [x] **参考音频管理 API** (上传/列表/删除)
|
||
- [x] **前端 TTS 模式选择** (EdgeTTS / 声音克隆切换)
|
||
- [x] **Supabase ref-audios Bucket** (参考音频存储桶 + RLS 策略)
|
||
- [x] **端到端测试验证** (声音克隆完整流程测试通过)
|
||
|
||
---
|
||
|
||
## 🛤️ 后续规划
|
||
|
||
### 🔴 优先待办
|
||
- [ ] 批量视频生成架构设计
|
||
|
||
### 🟠 功能完善
|
||
- [x] Qwen3-TTS 集成到 ViGent2 ✅ Day 13 完成
|
||
- [x] 定时发布功能 ✅ Day 7 完成
|
||
- [ ] **后端定时发布** - 替代平台端定时,使用 APScheduler 实现任务调度
|
||
- [ ] 批量视频生成
|
||
- [ ] 字幕样式编辑器
|
||
|
||
### 🔵 长期探索
|
||
- [ ] Docker 容器化
|
||
- [ ] Celery 分布式任务队列
|
||
|
||
---
|
||
|
||
## 📊 进度统计
|
||
|
||
### 总体进度
|
||
```
|
||
████████████████████ 100%
|
||
```
|
||
|
||
### 各模块进度
|
||
|
||
| 模块 | 进度 | 状态 |
|
||
|------|------|------|
|
||
| 后端 API | 100% | ✅ 完成 |
|
||
| 前端 UI | 100% | ✅ 完成 |
|
||
| TTS 配音 | 100% | ✅ 完成 |
|
||
| 视频合成 | 100% | ✅ 完成 |
|
||
| 唇形同步 | 100% | ✅ LatentSync 1.6 升级完成 |
|
||
| 社交发布 | 100% | ✅ Day 9 验证通过 |
|
||
| 用户认证 | 100% | ✅ Day 9 Supabase+JWT |
|
||
| 服务器部署 | 100% | ✅ Day 9 稳定性优化完成 |
|
||
|
||
---
|
||
|
||
## 🎯 里程碑
|
||
|
||
### Milestone 1: 项目框架搭建 ✅
|
||
**完成时间**: Day 1
|
||
**成果**:
|
||
- FastAPI 后端 + Next.js 前端
|
||
- EdgeTTS + FFmpeg 集成
|
||
- 视频生成端到端验证
|
||
|
||
### Milestone 2: 服务器部署 ✅
|
||
**完成时间**: Day 3
|
||
**成果**:
|
||
- PyTorch 2.0.1 + MMLab 环境修复
|
||
- 模型目录重组与权重补全
|
||
- MuseTalk 推理成功运行
|
||
|
||
### Milestone 3: 口型同步完整修复 ✅
|
||
**完成时间**: Day 4
|
||
**成果**:
|
||
- 权重检测路径修复 (软链接)
|
||
- 音视频长度不匹配修复
|
||
- 视频合成 MP4 验证通过 (28MB → 3.8MB)
|
||
|
||
### Milestone 4: LatentSync 1.6 升级 ✅
|
||
**完成时间**: Day 6
|
||
**成果**:
|
||
- MuseTalk → LatentSync 1.6 迁移
|
||
- 512×512 高分辨率唇形同步
|
||
- Latent Diffusion 架构升级
|
||
- 性能优化 (视频预压缩、进度更新)
|
||
|
||
### Milestone 5: 用户认证系统 ✅
|
||
**完成时间**: Day 9
|
||
**成果**:
|
||
- Supabase 云数据库集成
|
||
- 安全的 JWT + HttpOnly Cookie 认证
|
||
- 管理员后台与用户隔离
|
||
- 完善的部署与保活方案
|
||
|
||
### Milestone 6: 生产环境部署稳定化 ✅
|
||
**完成时间**: Day 9
|
||
**成果**:
|
||
- 修复了后端 (bcrypt) 和前端 (build) 的启动崩溃问题
|
||
- 解决了 LatentSync 占用全量 CPU 导致服务器卡顿的严重问题
|
||
- 完善了部署手册,记录了关键的 Troubleshooting 步骤
|
||
- 实现了服务 Long-term 稳定运行 (Reset PM2 counter)
|
||
|
||
---
|
||
|
||
## 📅 时间线
|
||
|
||
Day 1: 项目初始化 + 核心功能 ✅ 完成
|
||
- 后端 API 框架
|
||
- 前端 UI
|
||
- TTS + 视频合成
|
||
- 社交发布框架
|
||
- 部署文档
|
||
|
||
Day 2: 服务器部署 + MuseTalk ✅ 完成
|
||
- 端口配置 (8006/3002)
|
||
- MuseTalk conda 环境初始化
|
||
- subprocess 调用实现
|
||
- 健康检查验证
|
||
|
||
Day 3: 环境修复与验证 ✅ 完成
|
||
- PyTorch 降级 (2.5 -> 2.0.1)
|
||
- MMLab 依赖全量安装
|
||
- 模型权重补全 (dwpose, syncnet)
|
||
- 目录结构修复 (symlinks)
|
||
- 推理脚本验证 (生成593帧)
|
||
|
||
Day 4: 口型同步完整修复 ✅ 完成
|
||
- 权重检测路径修复 (软链接)
|
||
- audio_processor.py 音视频长度修复
|
||
- inference.py 错误日志增强
|
||
- MP4 视频合成验证通过
|
||
|
||
Day 5: 前端功能增强 ✅ 完成
|
||
- Web 视频上传功能
|
||
- 上传进度显示
|
||
- 自动刷新素材列表
|
||
|
||
Day 6: LatentSync 1.6 升级 ✅ 完成
|
||
- MuseTalk → LatentSync 迁移
|
||
- 后端代码适配
|
||
- 模型部署指南
|
||
- 服务器部署验证
|
||
- 性能优化 (视频预压缩、进度更新)
|
||
|
||
Day 7: 社交媒体发布完善 ✅ 完成
|
||
- QR码自动登录 (B站/抖音验证通过)
|
||
- 智能定位策略 (CSS/Text并行)
|
||
- 多平台发布 (B站/抖音/小红书)
|
||
- UI 一致性优化
|
||
- 文档规则体系优化
|
||
|
||
Day 8: 用户体验优化 ✅ 完成
|
||
- 文件名保留 (时间戳前缀)
|
||
- 视频持久化 (历史视频API)
|
||
- 历史视频列表组件
|
||
- 素材/视频删除功能
|
||
|
||
Day 9: 发布模块优化 ✅ 完成
|
||
- B站/抖音登录+发布验证通过
|
||
- 资源清理保障 (try-finally)
|
||
- 超时保护 (消除无限循环)
|
||
- 小红书 headless 模式修复
|
||
- 扫码登录等待界面 (加载动画)
|
||
- 抖音/B站登录策略优化 (Text优先)
|
||
- 发布成功审核提示
|
||
- 用户认证系统规划 (FastAPI+Supabase)
|
||
- Supabase 表结构设计 (users/sessions)
|
||
- 后端 JWT 认证实现 (auth.py/deps.py)
|
||
- 数据库配置与 SQL 部署
|
||
- 独立认证部署文档 (AUTH_DEPLOY.md)
|
||
- 自动保活机制 (Crontab/Actions)
|
||
- 部署稳定性优化 (Backend依赖修复)
|
||
- 前端生产构建流程修复
|
||
- LatentSync 严重卡顿修复 (线程数限制)
|
||
- 部署手册全量更新
|
||
|
||
Day 10: HTTPS 部署与细节完善 ✅ 完成
|
||
- 隧道访问视频修正 (挂载 uploads)
|
||
- 账号列表 Bug 修复 (paths.py 白名单)
|
||
- 阿里云 Nginx HTTPS 部署
|
||
- UI 细节优化 (Title 更新)
|
||
|
||
Day 11: 上传架构重构 ✅ 完成
|
||
- **核心修复**: Aliyun Nginx `client_max_body_size 0` 配置
|
||
- 500 错误根治 (Direct Upload + Gateway Config)
|
||
- Supabase RLS 权限策略部署
|
||
- 前端集成 supabase-js
|
||
- 彻底解决大文件上传超时 (30s 限制)
|
||
- **用户数据隔离** (素材/视频/Cookie 按用户目录存储)
|
||
- **Storage URL 修复** (SUPABASE_PUBLIC_URL 公网地址配置)
|
||
- **发布服务优化** (本地文件直读,跳过 HTTP 下载)
|
||
|
||
Day 12: iOS 兼容与移动端优化 ✅ 完成
|
||
- Axios 全局拦截器 (401/403 自动跳转登录)
|
||
- iOS Safari 安全区域白边修复 (viewport-fit: cover)
|
||
- themeColor 配置 (状态栏颜色适配)
|
||
- 渐变背景统一 (body 全局渐变,消除分层)
|
||
- 移动端 Header 响应式优化 (按钮紧凑布局)
|
||
- 发布页面 UI 重构 (立即发布 3/4 + 定时 1/4)
|
||
- **Qwen3-TTS 0.6B 部署** (声音克隆模型,GPU0)
|
||
- **部署文档** (QWEN3_TTS_DEPLOY.md)
|
||
|
||
Day 13: 声音克隆功能集成 ✅ 完成
|
||
- Qwen3-TTS HTTP 服务 (独立 FastAPI,端口 8009)
|
||
- 声音克隆服务 (voice_clone_service.py)
|
||
- 参考音频管理 API (上传/列表/删除)
|
||
- 前端 TTS 模式选择 (EdgeTTS / 声音克隆)
|
||
- Supabase ref-audios Bucket 配置
|
||
- 端到端测试验证通过
|
||
|