3.9 KiB
3.9 KiB
🔧 Qwen-TTS Flash Attention 优化 (10:00)
优化背景
Qwen3-TTS 1.7B 模型在默认情况下加载速度慢,推理显存占用高。通过引入 Flash Attention 2,可以显著提升模型加载速度和推理效率。
实施方案
在 qwen-tts Conda 环境中安装 flash-attn:
conda activate qwen-tts
pip install -U flash-attn --no-build-isolation
验证结果
- 加载速度: 从 ~60s 提升至 8.9s ⚡
- 显存占用: 显著降低,消除 OOM 风险
- 代码变动: 无代码变动,仅环境优化 (自动检测)
🛡️ 服务看门狗 Watchdog (10:30)
问题描述
常驻服务 (vigent2-qwen-tts 和 vigent2-latentsync) 可能会因显存碎片或长时间运行出现僵死 (Port open but unresponsive)。
解决方案
开发了一个 Python Watchdog 脚本,每 30 秒轮询服务的 /health 接口,如果连续 3 次失败则自动重启服务。
- Watchdog 脚本:
backend/scripts/watchdog.py - 启动脚本:
run_watchdog.sh(基于 PM2)
核心逻辑
# 连续 3 次心跳失败触发重启
if service["failures"] >= service['threshold']:
subprocess.run(["pm2", "restart", service["name"]])
部署状态
vigent2-watchdog已启动并加入 PM2 列表- 监控对象:
vigent2-qwen-tts(8009),vigent2-latentsync(8007)
⚡ LatentSync 性能确认
经代码审计,LatentSync 1.6 已内置优化:
- ✅ Flash Attention: 原生使用
torch.nn.functional.scaled_dot_product_attention - ✅ DeepCache: 已启用 (
cache_interval=3),提供 ~2.5x 加速 - ✅ GPU 并发: 双卡流水线 (GPU0 TTS | GPU1 LipSync) 已确认工作正常
🎨 交互体验与视图优化 (14:20)
主页优化
- 视频生成完成后,预览优先选中最新输出
- 选择项持久化:素材 / 背景音乐 / 历史作品
- 列表内滚动定位选中项,避免页面跳动
- 刷新回到顶部(首页)
- 标题/字幕样式预览面板
- 背景音乐试听即选中并自动开启,音量滑块实时影响试听
发布页优化
- 刷新回到顶部(发布页)
🎵 背景音乐链路修复 (15:00)
修复点
- FFmpeg 混音改为
shell=False,避免filter_complex被 shell 误解析 amix禁用归一化,避免配音音量被压低
关键修改
backend/app/services/video_service.py
🗣️ 字幕断句修复 (15:20)
内容
- 字幕切分逻辑保留英文单词整体,避免中英混合被硬切
涉及文件
backend/app/services/whisper_service.py
🧱 资源库与样式能力接入 (15:40)
内容
- 字体库 / BGM 资源接入本地 assets
- 新增样式配置文件(字幕/标题)
- 新增资源 API 与静态挂载
/assets - Remotion 支持样式参数与字体加载
涉及文件
backend/assets/fonts/backend/assets/bgm/backend/assets/styles/subtitle.jsonbackend/assets/styles/title.jsonbackend/app/services/assets_service.pybackend/app/api/assets.pybackend/app/main.pybackend/app/api/videos.pybackend/app/services/remotion_service.pyremotion/src/components/Subtitles.tsxremotion/src/components/Title.tsxremotion/src/Video.tsxremotion/render.tsfrontend/src/app/page.tsxfrontend/next.config.ts
🛠️ 运维调整 (16:10)
内容
- Watchdog 移除 LatentSync 监控,避免长推理误杀
- LatentSync PM2 增加内存重启阈值(运行时配置)
🎯 前端按钮图标统一 (16:40)
内容
- 首页与发布页按钮图标统一替换为 Lucide SVG
- 交互按钮保持一致尺寸与对齐
涉及文件
frontend/src/features/home/ui/frontend/src/app/publish/page.tsx
📝 文档更新
Docs/QWEN3_TTS_DEPLOY.md: 添加 Flash Attention 安装指南Docs/DEPLOY_MANUAL.md: 添加 Watchdog 部署说明Docs/TASK_COMPLETE.md: 更新进度至 100% (Day 16)