fix(ai-avatar): 素材预览不叠标题+封面传title_config+渲染后封面避免双标题 #1863

Merged
xiaoxia merged 1 commits from fix/ai-avatar-title-cover-source into develop 2026-09-11 19:05:40 +08:00
Owner

问题修复

1. 素材视频预览不应叠加标题

  • PanelVideoSelector 移除 titleConfig prop 和标题叠加 DOM
  • 标题只在对口型预览(PanelLipsyncPreview)和最终成片上展示

2. 智能封面接口不传 title_config

  • generateSmartCover API 调用时传入 titleConfig,让后端在对口型视频帧上用 ffmpeg drawtext 叠加标题
  • 前端 AiAvatarPage.handleSmartCover 调用时传 state.titleConfig

3. 渲染完成后自动抽封面避免标题双重叠加

  • 最终输出视频已经通过 ffmpeg -filter_complex drawtext 叠加了标题
  • 渲染管线调用 generate_smart_cover 时不传 title_config,避免抽帧后再叠一次导致双标题
  • 前端手动点「智能获取封面」走的是对口型视频(无标题),需要传 title_config 叠加

测试

  • 选素材视频时预览不显示标题
  • 对口型完成后点「智能获取封面」,封面带有标题文字
  • 提交渲染任务,渲染完成后自动生成的封面不出现双标题
  • 最终成片视频标题叠加正确
## 问题修复 ### 1. 素材视频预览不应叠加标题 - PanelVideoSelector 移除 titleConfig prop 和标题叠加 DOM - 标题只在对口型预览(PanelLipsyncPreview)和最终成片上展示 ### 2. 智能封面接口不传 title_config - generateSmartCover API 调用时传入 titleConfig,让后端在对口型视频帧上用 ffmpeg drawtext 叠加标题 - 前端 AiAvatarPage.handleSmartCover 调用时传 state.titleConfig ### 3. 渲染完成后自动抽封面避免标题双重叠加 - 最终输出视频已经通过 ffmpeg -filter_complex drawtext 叠加了标题 - 渲染管线调用 generate_smart_cover 时不传 title_config,避免抽帧后再叠一次导致双标题 - 前端手动点「智能获取封面」走的是对口型视频(无标题),需要传 title_config 叠加 ## 测试 - [ ] 选素材视频时预览不显示标题 - [ ] 对口型完成后点「智能获取封面」,封面带有标题文字 - [ ] 提交渲染任务,渲染完成后自动生成的封面不出现双标题 - [ ] 最终成片视频标题叠加正确
xiaoxia added 1 commit 2026-09-11 18:29:47 +08:00
fix(ai-avatar): 素材预览不叠加标题 + 封面接口传title_config + 渲染后封面避免双标题
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 4s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 33s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 33s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m14s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m32s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m56s
AI Code Review / AI Code Review (pull_request) Successful in 6m37s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Failing after 10m16s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m18s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m20s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m22s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 1m42s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 1m49s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 10m36s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 6m39s
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 55s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m11s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 116h37m5s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 116h53m41s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 116h53m52s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 116h53m31s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 116h53m31s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 116h53m31s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 116h53m36s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 116h53m37s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 116h53m42s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 116h36m49s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 116h53m22s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 116h53m22s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 116h43m28s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 116h36m48s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 116h36m48s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 116h36m49s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 116h53m22s
3c817a2ffe
1. PanelVideoSelector: 移除素材视频上的标题叠加预览,标题只在对口型预览和最终成片上展示
2. generateSmartCover API: 传入title_config参数,让后端在对口型视频帧上用drawtext叠加标题
3. AiAvatarPage: 调用generateSmartCover时传入state.titleConfig;移除传给PanelVideoSelector的titleConfig prop
4. ai_avatar_render_service: 渲染完成后自动抽封面时不传title_config,避免最终视频已有标题再叠加导致双重标题

🚀 预览环境已部署

项目 详情
PR号 #1863
预览链接 https://pr-1863.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1863 | | 预览链接 | [https://pr-1863.preview.xiaoxiajianji.com](https://pr-1863.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
xiaoxia merged commit da22c2e834 into develop 2026-09-11 19:05:40 +08:00

🗑️ 预览环境已清理

PR #1863 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #1863 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.