10 KiB
10 KiB
ViGent2 开发任务清单 (Task Log)
项目: ViGent2 数字人口播视频生成系统 进度: 100% (Day 21 - 缺陷修复与持久化回归治理) 更新时间: 2026-02-08
📅 对话历史与开发日志
这里记录了每一天的核心开发内容与 milestone。
Day 21: 缺陷修复 + 浮动预览 + 发布重构 + 架构优化 + 多素材生成 (Current)
- Remotion 崩溃容错: 渲染进程 SIGABRT 退出时检查输出文件,避免误判失败导致标题/字幕丢失。
- 首页作品选择持久化: 修复
fetchGeneratedVideos无条件覆盖恢复值的问题,新增preferVideoId参数控制选中逻辑。 - 发布页作品选择持久化: 根因为签名 URL 不稳定,全面改用
video.id替代path进行选择/持久化/比较。 - 预取缓存补全: 首页预取发布页数据时加入
id字段,确保缓存数据可用于持久化匹配。 - 浮动样式预览窗口: 标题字幕预览改为
position: fixed浮动窗口,固定左上角,滚动时始终可见。 - 移动端适配: ScriptEditor 按钮换行、预览默认比例改为 9:16 竖屏。
- 多平台发布重构: 平台配置独立化(DOUYIN_/WEIXIN_)、用户隔离 Cookie 管理、抖音刷脸验证二维码、微信发布流程优化。
- 前端结构微调: ScriptExtractionModal 迁移到 features/、contexts 迁移到 shared/contexts/、清理空目录。
- 后端模块分层: materials/tools/ref_audios 三个模块补全 router+schemas+service 分层。
- 开发规范更新: BACKEND_DEV.md 新增渐进原则、DOC_RULES.md 取消 TASK_COMPLETE.md 手动触发约束。
- 文档全面更新: BACKEND_DEV/README、FRONTEND_DEV、DEPLOY_MANUAL、README.md 同步更新。
- 多素材视频生成(多机位效果): 支持多选素材 + 拖拽排序,按素材数量均分音频时长(对齐 Whisper 字边界)自动切换机位。逐段 LatentSync + FFmpeg 拼接。前端 @dnd-kit 拖拽排序 UI。
- 字幕开关移除: 默认启用逐字高亮字幕,移除开关及相关死代码。
- 视频格式扩展: 上传支持 mkv/webm/flv/wmv/m4v/ts/mts 等常见格式。
- Watchdog 优化: 健康检查阈值提高到 5 次,新增重启冷却期 120 秒,避免误重启。
- 多素材 Bug 修复: 修复标点分句方案对无句末标点文案无效(改为均分方案)、音频时间偏移导致口型不对齐等缺陷。
Day 20: 代码质量与安全优化
- 功能性修复: LatentSync 回退逻辑、任务状态接口认证、User 类型统一。
- 性能优化: N+1 查询修复、视频上传流式处理、httpx 异步替换、GLM 异步包装。
- 安全修复: 硬编码 Cookie 配置化、日志敏感信息脱敏、ffprobe 安全调用、CORS 配置化。
- 配置优化: 存储路径环境变量化、Remotion 预编译加速、LatentSync 绝对路径。
- 文档更新: 更新 DOC_RULES.md 清单,补齐后端与部署文档;更新 SUBTITLE_DEPLOY.md, FRONTEND_DEV.md, implementation_plan.md。
- 缺陷修复: 修复 Remotion 路径解析、发布页持久化竞态、首页选中回归、素材闭包陷阱。
Day 19: 自动发布稳定性与发布体验优化 🚀
- 抖音发布稳定性: 上传入口、封面流程、发布重试、登录失效识别与网络失败快速返回全面增强。
- 视频号发布修复: 标题+标签统一写入“视频描述”,
post_create成功信号快速判定,超时改为失败返回。 - 成功截图闭环: 抖音/视频号发布成功截图接入前端,支持用户隔离存储与鉴权访问。
- 截图观感优化: 成功截图延后 3 秒并改为视口截图,修复“截图内容仅占 1/3”问题。
- 调试能力开关化: 新增视频号录屏配置,默认可按环境变量开关,失败排障更直观。
- 启动链路统一: 合并为
run_backend.sh(xvfb + headful),统一端口8006,减少多进程混淆。 - 发布页防误操作: 发布中按钮提示“请勿刷新或关闭网页”,并启用刷新/关页二次确认拦截。
- 后续优化: 发布任务状态恢复机制(任务化 + 状态持久化 + 前端轮询恢复)。
Day 18: 后端模块化与规范完善
- 模块化迁移: 路由透传
modules/*,业务逻辑集中到 service/workflow。 - 视频生成拆分: 生成流程下沉 workflow,任务状态统一 TaskStore。
- Redis 任务存储: Redis 优先,不可用自动回退内存。
- 仓储层抽离: Supabase 访问统一
repositories/*,deps/auth/admin 全面替换。 - 响应规范: 统一
success/message/data/code+ 全局异常处理。 - 素材重命名: 新增重命名接口与 Storage
move_file。 - 平台顺序调整: 抖音/微信视频号/B站/小红书,移除快手。
- 后端开发规范: 新增
BACKEND_DEV.md,README 同步模块化结构。 - 发布管理体验: 首页预取路由 + 发布页骨架与缓存,进入更快。
- 素材加载优化: 素材列表并发签名 URL,骨架数量动态。
- 预览加载优化:
preload="metadata"+ hover 预取。
Day 17: 前端重构与体验优化
- UI 组件拆分: 首页拆分为独立组件,降低
page.tsx复杂度。 - 轻量 FSD 迁移:
app页面轻量化,逻辑集中到features/*/model,通用能力下沉shared/*。 - Controller Hooks: Home/Publish 页面逻辑集中到 Controller Hook,Page 仅组合渲染。
- 通用工具抽取:
media.ts统一 API Base / URL / 日期格式化。 - 交互优化: 选择项持久化、列表内定位、刷新回顶部、最新作品优先预览。
- 发布页改造: 作品列表卡片化 + 搜索 + 预览弹窗。
- 预览体验: 预览弹窗统一头部样式与提示文案。
- 预览一致性: 标题/字幕预览按素材分辨率缩放。
- 标题同步与限制: 片头标题同步发布标题,输入法合成态兼容,限制 15 字。
- 样式默认与持久化: 默认样式与字号调整,刷新保留用户选择。
- 性能微优化: 列表渲染优化 + 并行请求 + localStorage 防抖。
- 资源能力: 字体/BGM 资源库 +
/api/assets接入。 - 音频与字幕修复: BGM 混音稳定性与字幕断句优化。
- 持久化修复: 接入
useHomePersistence,恢复isRestored逻辑并通过构建。 - 预览与选择修复: 发布预览兼容签名 URL,音频试听路径解析,素材/BGM 回退有效项。
- 体验细节优化: 录音预览 URL 回收,预览弹窗滚动恢复,全局任务提示挂载。
Day 16: 深度性能优化
- Qwen-TTS 加速: 集成 Flash Attention 2,模型加载速度提升至 8.9s。
- 服务守护: 开发
Watchdog看门狗机制,自动监控并重启僵死服务。 - LatentSync 性能确认: 验证 DeepCache + 原生 Flash Attn 生效。
- 文档重构: 全面更新 README、部署手册及后端文档。
Day 15: 手机号认证迁移
- 认证系统升级: 从邮箱迁移至 11 位手机号注册/登录。
- 账户管理: 新增修改密码、有效期显示、安全退出功能。
- AI 文案助手: 升级 GLM-4.7-Flash,支持 B站/抖音链接提取与洗稿。
Day 14: AI 增强与体验优化
- AI 标题/标签: 集成 GLM-4API 自动生成视频元数据。
- 字幕升级: Remotion 逐字高亮字幕 (卡拉OK效果) 及动画片头。
- 模型升级: Qwen3-TTS 升级至 1.7B-Base 版本。
Day 13: 声音克隆集成
- 声音克隆微服务: 封装 Qwen3-TTS 为独立 API (8009端口)。
- 参考音频管理: Supabase 存储桶配置与管理接口。
- 多模态 TTS: 前端支持 EdgeTTS / Clone Voice 切换。
Day 12: 移动端适配
- iOS 兼容: 修复 Safari 安全区域、状态栏颜色、Cookie 拦截问题。
- 响应式 UI: 移动端 Header 与发布页重构。
Day 11: 上传架构重构
- 直传优化: 前端直传 Supabase Storage,解决 Nginx 30s 超时问题。
- 数据隔离: 用户素材/视频按 UserID 物理隔离。
Day 10: HTTPS 与安全
- HTTPS 部署: 配置 SSL 证书与 Nginx 反向代理。
- 安全加固: Supabase Studio 增加 Basic Auth 保护。
Day 9: 认证系统与发布闭环
- 用户系统: 基于 Supabase Auth 实现 JWT 认证。
- 发布闭环: 验证 B站/抖音/小红书 自动发布流程。
- 服务自愈: 配置 PM2 进程守护。
Day 1-8: 核心功能构建
- Day 8: 历史记录持久化与文件管理。
- Day 7: 社交媒体自动登录与多平台发布。
- Day 6: LatentSync 1.6 升级与服务器部署。
- Day 5: 前端视频上传与进度反馈。
- Day 4: MuseTalk (旧版) 口型同步修复。
- Day 3: 服务器环境配置与模型权重下载。
- Day 1-2: 项目基础框架 (FastAPI + Next.js) 搭建。
🛤️ 后续规划 (Roadmap)
🔴 优先待办
- 批量生成架构: 支持 Excel 导入,批量生产视频。
- 定时任务后台化: 迁移前端触发的定时发布到后端 APScheduler。
- 发布任务恢复机制: 发布任务化 + 状态持久化 + 前端断点恢复,解决刷新后状态丢失。
🔵 长期探索
- 容器化交付: 提供完整的 Docker Compose 一键部署包。
- 分布式队列: 引入 Celery + Redis 处理超高并发任务。
📊 模块完成度
| 模块 | 进度 | 状态 |
|---|---|---|
| 核心 API | 100% | ✅ 稳定 |
| Web UI | 100% | ✅ 稳定 (移动端适配) |
| 唇形同步 | 100% | ✅ LatentSync 1.6 |
| TTS 配音 | 100% | ✅ EdgeTTS + Qwen3 |
| 自动发布 | 100% | ✅ 抖音/微信视频号/B站/小红书 |
| 用户认证 | 100% | ✅ 手机号 + JWT |
| 部署运维 | 100% | ✅ PM2 + Watchdog |