feat: #1798 AI数字人渲染合成管线 #1802

Merged
auto-approve-bot merged 1 commits from feat/ai-avatar-render-1798 into develop 2026-09-08 18:03:06 +08:00
Owner

Issue #1798: AI数字人渲染合成管线

变更内容

  • 新增模型: AiAvatarRenderJob + Alembic 迁移 (072_add_ai_avatar_render_jobs_table)
  • 新增 Schema: BRollSegment, CreateAiAvatarRenderRequest, AiAvatarRenderJobResponse, AiAvatarRenderProgressResponse
  • 新增 Service: AiAvatarRenderService — 创建/查询/列表/取消/重试渲染任务,含完整渲染管线
  • FFmpeg 滤镜: build_broll_overlay_filter (fullscreen + pip 两种 B-roll 插入模式), build_cover_extract_command
  • Celery 任务: ai_avatar_render.execute — 异步渲染管线
  • 5 个 API 端点:
    • POST /api/v1/ai-avatar/render — 提交渲染任务
    • GET /api/v1/ai-avatar/render/jobs — 任务列表
    • GET /api/v1/ai-avatar/render/{job_id} — 任务详情
    • POST /api/v1/ai-avatar/render/{job_id}/cancel — 取消任务
    • POST /api/v1/ai-avatar/render/{job_id}/retry — 重试失败任务
  • 修复: 清理 router.py 中重复注册 lipsync_router 的问题
  • 复用: 从 video_filter_builder.py import build_title_drawtext_filterbuild_concat_filter

测试

  • 44 个测试全部通过 (26 Service + 12 Route + 6 Filter)
  • black / isort / ruff / compileall 全部通过

关联

## Issue #1798: AI数字人渲染合成管线 ### 变更内容 - **新增模型**: `AiAvatarRenderJob` + Alembic 迁移 (`072_add_ai_avatar_render_jobs_table`) - **新增 Schema**: `BRollSegment`, `CreateAiAvatarRenderRequest`, `AiAvatarRenderJobResponse`, `AiAvatarRenderProgressResponse` - **新增 Service**: `AiAvatarRenderService` — 创建/查询/列表/取消/重试渲染任务,含完整渲染管线 - **FFmpeg 滤镜**: `build_broll_overlay_filter` (fullscreen + pip 两种 B-roll 插入模式), `build_cover_extract_command` - **Celery 任务**: `ai_avatar_render.execute` — 异步渲染管线 - **5 个 API 端点**: - `POST /api/v1/ai-avatar/render` — 提交渲染任务 - `GET /api/v1/ai-avatar/render/jobs` — 任务列表 - `GET /api/v1/ai-avatar/render/{job_id}` — 任务详情 - `POST /api/v1/ai-avatar/render/{job_id}/cancel` — 取消任务 - `POST /api/v1/ai-avatar/render/{job_id}/retry` — 重试失败任务 - **修复**: 清理 `router.py` 中重复注册 `lipsync_router` 的问题 - **复用**: 从 `video_filter_builder.py` import `build_title_drawtext_filter`、`build_concat_filter` 等 ### 测试 - 44 个测试全部通过 (26 Service + 12 Route + 6 Filter) - black / isort / ruff / compileall 全部通过 ### 关联 - Closes #1798 - Depends on #1795 (文案库), #1796 (对口型)
xiaoxia added 1 commit 2026-09-08 17:52:08 +08:00
feat: #1798 AI数字人渲染合成管线
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 1s
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1m32s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 25s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m56s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m43s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m47s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m27s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 3m39s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m16s
AI Code Review / AI Code Review (pull_request) Successful in 7m50s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 9m51s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 8m43s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 4s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 7m27s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 6s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 32s
36970079ee
- 新增 AiAvatarRenderJob 数据模型 + Alembic 迁移脚本
- 新增 Schema: BRollSegment / CreateAiAvatarRenderRequest / AiAvatarRenderJobResponse
- 新增 AiAvatarRenderService: 创建/查询/列表/取消/重试渲染任务
- FFmpeg 滤镜构建: build_broll_overlay_filter (fullscreen + pip 模式)
- FFmpeg 封面提取: build_cover_extract_command
- Celery 异步任务: ai_avatar_render.execute
- 5 个 API 端点: POST 创建 / GET 列表 / GET 详情 / POST 取消 / POST 重试
- 修复 router.py 中重复注册 lipsync_router 的问题
- 44 个测试: 26 Service + 12 Route + 6 Filter
- 复用现有 drawtext/concat 滤镜,不修改现有函数签名

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1802 | | 预览链接 | [https://pr-1802.preview.xiaoxiajianji.com](https://pr-1802.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot merged commit 800f90d8c6 into develop 2026-09-08 18:03:06 +08:00
auto-approve-bot deleted branch feat/ai-avatar-render-1798 2026-09-08 18:03:07 +08:00

🗑️ 预览环境已清理

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

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

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