Files
ViGent2/Docs/task_complete.md
Kevin Wong 6e58f4bbe7 更新
2026-02-02 17:16:07 +08:00

16 KiB
Raw Blame History

ViGent 数字人口播系统 - 开发任务清单

项目ViGent2 数字人口播视频生成系统 服务器Dell R730 (2× RTX 3090 24GB) 更新时间2026-02-02 整体进度100%Day 15 手机号登录迁移 + 账户设置功能完成)

📖 快速导航

章节 说明
已完成任务 Day 1-13 完成的功能
后续规划 待办项目
进度统计 各模块完成度
里程碑 关键节点
时间线 开发历程

相关文档


已完成任务

阶段一:核心功能验证

  • EdgeTTS 配音集成
  • FFmpeg 视频合成
  • MuseTalk 唇形同步 (代码集成)
  • 端到端流程验证

阶段二:后端 API 开发

  • FastAPI 项目搭建
  • 视频生成 API
  • 素材管理 API
  • 文件存储管理

阶段三:前端 Web UI

  • Next.js 项目初始化
  • 视频生成页面
  • 发布管理页面
  • 任务状态展示

阶段四:社交媒体发布

  • Playwright 自动化框架
  • Cookie 管理功能
  • 多平台发布 UI
  • 定时发布功能 (Day 7)
  • QR码自动登录 (Day 7)

阶段五:部署与文档

  • 手动部署指南 (DEPLOY_MANUAL.md)
  • 一键部署脚本 (deploy.sh)
  • 环境配置模板 (.env.example)
  • 项目文档 (README.md)
  • 端口配置 (8006/3002)

阶段六MuseTalk 服务器部署 (Day 2-3)

  • conda 环境配置 (musetalk)
  • 模型权重下载 (~7GB)
  • subprocess 调用方式实现
  • 健康检查功能
  • 实际推理调用验证 (Day 3 修复)

阶段七MuseTalk 完整修复 (Day 4)

  • 权重检测路径修复 (软链接)
  • 音视频长度不匹配修复 (audio_processor.py)
  • 推理脚本错误日志增强 (inference.py)
  • 视频合成 MP4 生成验证
  • 端到端流程完整测试

阶段八:前端功能增强 (Day 5)

  • Web 视频上传功能
  • 上传进度显示
  • 自动刷新素材列表

阶段九:唇形同步模型升级 (Day 6)

  • MuseTalk → LatentSync 1.6 迁移
  • 后端代码适配 (config.py, lipsync_service.py)
  • Conda 环境配置 (latentsync)
  • 模型权重部署指南
  • 服务器端到端验证

阶段十:性能优化 (Day 6)

  • 视频预压缩优化 (高分辨率自动压缩到720p)
  • 进度更新细化 (5% → 10% → 25% → ... → 100%)
  • LipSync 服务单例缓存
  • 健康检查缓存 (5分钟)
  • 异步子进程修复 (subprocess.run → asyncio)
  • 预加载模型服务 (常驻 Server + FastAPI)
  • 批量队列处理 (GPU 并发控制)

阶段十一:社交媒体发布完善 (Day 7)

  • QR码自动登录 (Playwright headless)
  • 多平台上传器架构 (B站/抖音/小红书)
  • B站发布 (biliup官方库)
  • 抖音/小红书发布 (Playwright)
  • 定时发布功能
  • 前端发布UI优化
  • Cookie自动管理
  • UI一致性修复 (导航栏对齐、滚动条隐藏)
  • QR登录超时修复 (Stealth模式、多选择器fallback)
  • 文档规则优化 (智能修改标准、工具使用规范)

阶段十二:用户体验优化 (Day 8)

  • 文件名保留 (时间戳前缀 + 原始名称)
  • 视频持久化 (从文件系统读取历史)
  • 历史视频列表组件
  • 素材/视频删除功能
  • 登出功能 (Logout API + 前端按钮)
  • 前端 SWR 轮询优化
  • QR 登录状态检测修复

阶段十三:发布模块优化 (Day 9)

  • B站/抖音发布验证通过
  • 资源清理保障 (try-finally)
  • 超时保护 (消除无限循环)
  • 小红书 headless 模式修复
  • API 输入验证
  • 完整类型提示
  • 扫码登录等待界面 (加载动画)
  • 抖音/B站登录策略优化 (Text优先)
  • 发布成功审核提示

阶段十四:用户认证系统 (Day 9)

  • Supabase 数据库表设计与部署
  • JWT 认证 (HttpOnly Cookie)
  • 用户注册/登录/登出 API
  • 管理员权限控制 (is_active)
  • 单设备登录限制 (Session Token)
  • 防止 Supabase 暂停 (GitHub Actions/Crontab)
  • 认证部署文档 (AUTH_DEPLOY.md)

阶段十五:部署稳定性优化 (Day 9)

  • 后端依赖修复 (bcrypt/email-validator)
  • 前端生产环境构建修复 (npm run build)
  • LatentSync 性能卡顿修复 (OMP_NUM_THREADS限制)
  • 部署服务自愈 (PM2 配置优化)
  • 部署手册全量更新 (DEPLOY_MANUAL.md)

阶段十六HTTPS 部署与细节完善 (Day 10)

  • 隧道访问修复 (StaticFiles 挂载 + Rewrite)
  • 平台账号列表 500 错误修复 (paths.py)
  • Nginx HTTPS 配置 (反向代理 + SSL)
  • 浏览器标题修改 (ViGent)
  • 代码自适应 HTTPS 验证
  • Supabase 自托管部署 (Docker, 3003/8008端口)
  • 安全加固 (Basic Auth 保护后台)
  • 端口冲突解决 (迁移 Analytics/Kong)

阶段十七:上传架构重构 (Day 11)

  • 直传改造 (前端直接上传 Supabase绕过后端代理)
  • 后端适配 (Signed URL 签名生成)
  • RLS 策略部署 (SQL 脚本自动化权限配置)
  • 超时问题根治 (彻底解决 Nginx/FRP 30s 限制)
  • 前端依赖更新 (@supabase/supabase-js 集成)

阶段十八:用户隔离与存储优化 (Day 11)

  • 用户数据隔离 (素材/视频/Cookie 按用户ID目录隔离)
  • Storage URL 修复 (SUPABASE_PUBLIC_URL 配置,修复 localhost 问题)
  • 发布服务优化 (直接读取本地 Supabase Storage 文件,跳过 HTTP 下载)
  • Supabase Studio 配置 (公网访问配置)

阶段十九iOS 兼容与移动端 UI 优化 (Day 12)

  • Axios 全局拦截器 (401/403 自动跳转登录,防重复跳转)
  • iOS Safari 安全区域修复 (viewport-fit: cover, themeColor, 渐变背景统一)
  • 移动端 Header 优化 (按钮紧凑布局,响应式间距)
  • 发布页面 UI 重构 (立即发布/定时发布按钮分离,防误触设计)
  • Qwen3-TTS 1.7B 部署 (声音克隆模型GPU0更高质量)

阶段二十:声音克隆功能集成 (Day 13)

  • Qwen3-TTS HTTP 服务 (独立 FastAPI 服务,端口 8009)
  • 声音克隆服务 (voice_clone_service.pyHTTP 调用封装)
  • 参考音频管理 API (上传/列表/删除)
  • 前端 TTS 模式选择 (EdgeTTS / 声音克隆切换)
  • Supabase ref-audios Bucket (参考音频存储桶 + RLS 策略)
  • 端到端测试验证 (声音克隆完整流程测试通过)

阶段二十一:逐字高亮字幕 + 片头标题 (Day 13)

  • faster-whisper 字幕对齐 (字级别时间戳生成)
  • Remotion 视频渲染 (React 视频合成框架)
  • 逐字高亮字幕 (卡拉OK效果)
  • 片头标题 (淡入淡出动画)
  • 前端标题/字幕设置 UI
  • 降级机制 (Remotion 失败时回退 FFmpeg)

阶段二十二AI 标题标签 + 前端稳定性修复 (Day 14)

  • Qwen3-TTS 1.7B 模型升级 (0.6B → 1.7B-Base)
  • 字幕样式与标题动画优化 (Remotion 视觉增强)
  • AI 标题/标签生成 (GLM-4-Flash API)
  • 生成结果同步到发布页 (localStorage 对齐)
  • 文案/标题本地保存修复 (刷新后恢复)
  • 登录页刷新循环修复 (公开路由跳转豁免)

阶段二十三:手机号登录迁移 (Day 15)

  • 认证迁移 (邮箱 → 11位手机号)
  • 后端 API 适配 (auth.py/admin.py 手机号验证)
  • 修改密码功能 (/api/auth/change-password 接口)
  • 账户设置菜单 (首页下拉菜单:修改密码 + 有效期显示 + 退出登录)
  • 有效期显示 (expires_at 字段显示在账户菜单)
  • 点击外部关闭菜单 (useRef + useEffect 监听)
  • 前端页面更新 (登录/注册/管理员页面)
  • 数据库迁移脚本 (migrate_to_phone.sql)

🛤️ 后续规划

🔴 优先待办

  • 批量视频生成架构设计

🟠 功能完善

  • Qwen3-TTS 集成到 ViGent2 Day 13 完成
  • 定时发布功能 Day 7 完成
  • 逐字高亮字幕 Day 13 完成
  • 后端定时发布 - 替代平台端定时,使用 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 1.7B 部署 (声音克隆模型GPU0) - 部署文档 (QWEN3_TTS_DEPLOY.md)

Day 13: 声音克隆 + 字幕功能 完成 - Qwen3-TTS HTTP 服务 (独立 FastAPI端口 8009) - 声音克隆服务 (voice_clone_service.py) - 参考音频管理 API (上传/列表/删除) - 前端 TTS 模式选择 (EdgeTTS / 声音克隆) - Supabase ref-audios Bucket 配置 - 端到端测试验证通过 - faster-whisper 字幕对齐 (字级别时间戳) - Remotion 视频渲染 (逐字高亮字幕 + 片头标题) - 前端标题/字幕设置 UI - 部署文档 (SUBTITLE_DEPLOY.md)

Day 14: 模型升级 + AI 标题标签 + 前端修复 完成 - Qwen3-TTS 1.7B 模型升级 (0.6B → 1.7B-Base) - 字幕样式与标题动画优化 (Remotion) - AI 标题/标签生成接口 + 前端同步 - 文案/标题本地保存修复 (刷新后恢复) - 登录页刷新循环修复 (公开路由跳转豁免)

Day 15: 手机号登录迁移 + 账户设置 完成 - 认证系统迁移 (邮箱 → 11位手机号) - 账户设置 (修改密码 + 退出登录 + 有效期显示) - GLM-4.7 模型升级 (文案洗稿效果提升) - 文案提取助手 (支持 B站/抖音/URL 提取 + 自动洗稿) - 视频预览功能 (素材列表预览 + 交互优化) - 前端交互优化 (滚动条美化、弹窗误触修复)