# AVE 视频工厂 — 全链路架构规划 v1.0 > 日期: 2026-05-18 | 版本: 1.0 > 定位: 梳理所有生产路径 + 底层能力原子化 + 自审可行性 --- ## 目录 1. [核心洞察](#1-核心洞察) 2. [AVE 六条生产路径总览](#2-ave-六条生产路径总览) 3. [底层能力层(原子化)](#3-底层能力层原子化) 4. [各生产路径的完整链路](#4-各生产路径的完整链路) 5. [新增:模仿视频线(Action Transfer)](#5-新增模仿视频线action-transfer) 6. [交叉能力矩阵](#6-交叉能力矩阵) 7. [优先级与落地路线图](#7-优先级与落地路线图) 8. [自审与可行性分析](#8-自审与可行性分析) 9. [具体落地建议](#9-具体落地建议) --- ## 1. 核心洞察 ### 1.1 用户提到的三条线本质是同一逻辑 | 用户说的 | 本质 | 核心操作 | |:---------|:-----|:---------| | 卡点视频 | 音频节拍 → 视觉同步切换 | BPM分析 + 拍点对齐 + 素材切换 | | 模仿视频 | 参考视频 → 提取节奏/动作 → 复用结构 | 参考视频分析 + 动作迁移 + 结构复用 | | 主人公更换 | 已有视频 → 替换角色 → 保持动作/场景 | 角色识别 + 角色替换 + 动作保持 | **三者共享同一条底层流水线**: `参考源分析 → 结构提取 → 角色/素材替换 → 重新合成` ### 1.2 AVE 当前状态 已实现 5 条独立生产路径,但存在三个结构性问题: | 问题 | 后果 | |:----|:-----| | 各策略独立实现,底层能力重复 | 口播的素材搜索和卡点的素材搜索各写一遍 | | 角色系统只在"故事"策略中使用 | 口播、卡点、数字人都需要角色但没接入 | | AudioLine 刚刚建成但未接入主流程 | 音频处理能力独立于视频工厂 | ### 1.3 解决思路 **分层架构**: 底层能力层(原子操作) → 策略编排层(生产路径) → 接入层(CLI/Dashboard) --- ## 2. AVE 六条生产路径总览 ``` AVE 视频工厂 │ ├─ 1. 口播线 文案→TTS→素材→BGM→字幕→合成 ├─ 2. 卡点线 BGM→节拍检测→素材→拍点切换→xfade ├─ 3. 数字人线 照片/视频→OmniHuman对口型/DreamActor动作模仿 ├─ 4. 口播+卡点线 人声锚点+BGM变速→帧锁定拼接 (hybrid) ├─ 5. 故事/漫剧线 剧本→场景分解→Kling批量→角色拼接 ├─ 6. 模仿视频线 ★ 参考视频→结构分析→动作迁移/角色替换→合成 │ └─ 7. 音频制造线 (独立) ├─ 原创 AudioLine Layer3 创作模块 ├─ 二创 分层改编 (节奏/歌词/旋律/混音) ├─ 卡点改编 节拍重塑 + BPM对齐 └─ → 接入上述 1-6 条线输出成品 ``` --- ## 3. 底层能力层(原子化) > 所有生产路径共享的原子能力。每个能力可独立测试、独立优化、被多种策略调用。 ### 3.1 音频原子能力 ← AudioLine | 原子能力 | 输入 | 输出 | 被哪些路径使用 | |:---------|:-----|:-----|:-------------| | A1. 音轨分离 | 音频文件 | {vocals, drums, bass, other} 分轨 | 2-卡点, 4-hybrid, 6-模仿, 7-音频 | | A2. BPM/节拍检测 | 音频文件 | BPM + 节拍时间戳 + 重拍 | 2-卡点, 4-hybrid, 6-模仿 | | A3. 歌曲结构解析 | 音频文件 | [{label, start, end}] 段落 | 6-模仿, 7-二创 | | A4. 情绪分析 | 音频文件 | mood + energy + danceability | 1-口播(BGM选曲), 5-故事(风格匹配) | | A5. 节奏生成 | BPM+风格参数 | 鼓点/节奏音频 | 2-卡点, 7-原创 | | A6. 歌词创作 | 原歌词 + 主题 | 改写歌词 | 7-二创 | | A7. 旋律改编 | 音频 + 风格 | 改编旋律 | 7-二创 | | A8. 混音母带 | 多轨音频 | 混合主轨 + 响度归一 | 1-口播, 2-卡点, 7-原创/二创 | | A9. 分轨时间对齐 | 分轨 + 目标BPM | 对齐后分轨 | 2-卡点, 6-模仿 | | A10. 歌词-节拍对齐 | 歌词 + 节拍 | 时间轴 + LRC/SRT | 1-口播, 2-卡点 | | A11. 多格式导出 | 音频 + 格式 | WAV/MP3/FLAC/AAC | 全部 | ### 3.2 视觉原子能力 | 原子能力 | 输入 | 输出 | 被哪些路径使用 | |:---------|:-----|:-----|:-------------| | V1. 素材搜索 | 关键词 + 数量 | 视频素材列表(URL/本地) | 1-口播, 2-卡点, 4-hybrid | | V2. Ken Burns 效果 | 静态图片 | 缓慢缩放/平移视频 | 1-口播, 5-故事 | | V3. 节拍视觉对齐 | 素材 + 节拍 | 按拍点切割/过渡的视频段 | 2-卡点, 4-hybrid, 6-模仿 | | V4. 变速卡点 | 素材 + 节拍能量 | 高潮加速/低谷减速 | 4-hybrid | | V5. 视频拼接 | 视频片段列表 | 完整视频 (xfade/crossfade) | 全部 | | V6. 字幕叠加 | 时间轴 + 文本 | ASS字幕文件 + 视频叠加 | 1-口播, 2-卡点, 5-故事 | | V7. 定妆照生成 | 角色描述 | 角色多角度参考图 (Grid Method) | 5-故事, 6-模仿 ★ | | V8. 图生视频 | 图片 + Prompt | 短视频片段 (Kling) | 5-故事, 6-模仿 ★ | | V9. 首尾帧过渡 | 首帧 + 尾帧 + Prompt | 平滑过渡视频 | 5-故事 | | V10. 语音驱动视频 | 图片 + 音频 | 对口型视频 (LipSync) | 1-口播, 3-数字人 | ### 3.3 动作迁移原子能力 ★ 新增 > 源自 Doubao 对话的 Animate 模型思路,也可使用现有 DreamActor | 原子能力 | 输入 | 输出 | 被哪些路径使用 | |:---------|:-----|:-----|:-------------| | M1. 参考视频结构分析 | 视频文件 | 分段结构 + 镜头节奏 + 动作时间轴 | 6-模仿 | | M2. 角色识别/分离 | 视频 + 角色标识 | 角色掩码/区域 | 6-模仿 | | M3. 动作迁移 (2D/3D) | 参考视频 + 目标角色 | 目标角色复刻动作的视频 | 3-数字人(DreamActor), 6-模仿 | | M4. 动作骨架提取 | 视频 | 2D/3D 骨骼关键帧序列 | 6-模仿 | | M5. 背景替换/保留 | 视频 + 掩码 | 去除/保留背景后的视频 | 6-模仿 | | M6. 视频结构模板化 | 视频 → 分镜模板 | 可复用的 {时间轴 + 切换点 + 动作标记} | 6-模仿 | ### 3.4 角色原子能力(跨线复用) | 原子能力 | 输入 | 输出 | 被哪些路径使用 | |:---------|:-----|:-----|:-------------| | C1. 角色注册 | 角色描述 → registry | 角色 ID + 属性 + 参考图 | 全部 | | C2. 角色锁定 | 剧本 + 角色 ID | 注入角色描述块 | 5-故事, 6-模仿 | | C3. 角色一致性保持 | 角色参考图 + 场景 | 固定 seed + 定妆照 → 多场景生成 | 5-故事, 6-模仿 | | C4. 角色替换 | 原视频 + 新角色 | 新角色 + 保留原动作/表情 | 6-模仿 | ### 3.5 通用基础能力 | 原子能力 | 说明 | |:---------|:-----| | G1. 配置加载 | config.yaml + local.yaml 合并 | | G2. 成本追踪 | 每步操作计费 + API 调用计数 | | G3. 进度报告 | 状态机 + Dashboard 埋点 | | G4. 缓存管理 | 素材/模型/results 缓存 | | G5. 错误容错 | 模块失败不阻塞整条链路 | --- ## 4. 各生产路径的完整链路 > 用 `[A1]` 标记引用底层原子能力;`[★]` 标记待完善/新增 ### 4.1 口播线 (Oral) ``` 当前: 文案 → [TTS] → [素材搜索] → [BGM] → [字幕] → [合成] ↓ 优化后: 文案 → [TTS] → [素材搜索+V2 Ken Burns] → [AudioLine A4情绪分析选BGM] → [混音A8 人声+BGM] → [A10歌词对齐→字幕] → [V10 LipSync] → [合成] ``` **待完善**: - [ ] 接入 AudioLine A4 情绪分析 → 自动匹配 BGM 风格 - [ ] 接入 AudioLine A8 混音 → 专业级人声+BGM 电平平衡 - [ ] V2 Ken Burns 效果 (已有 Pexels 素材多是静态风格需要) ### 4.2 卡点线 (Beat) ``` 当前: BGM → [节拍检测] → [素材搜索] → [拍点切换] → [xfade] ↓ 优化后: BGM → [AudioLine A2节拍检测] → [A5节奏生成(替换/增强鼓点)] → [V3节拍视觉对齐] → [V4变速卡点] → [A9分轨对齐(对齐到目标BPM)] → [合成] ``` **待完善**: - [ ] 接入 AudioLine A5 节奏生成 → 在原BGM上叠加鼓点增强 - [ ] 接入 AudioLine A9 分轨对齐 → BPM 变更时各轨统一伸缩 - [ ] V3 节拍视觉对齐优化 → 当前只是简单切,需要更精确的拍点类型映射 ### 4.3 数字人线 (Digital Human) ``` 当前: 照片/视频 → [OmniHuman 对口型] / [DreamActor 动作模仿] ↓ 优化后: 角色[C1注册] → 生成[C7定妆照] → [TTS] → [V10 LipSync] → 可选 [M3动作迁移] → [合成+背景] ``` **待完善**: - [ ] 接入 C1 角色注册 → 数字人可被角色库管理 - [ ] 接入 Asset Manager → 素材复用 - [ ] DreamActor 轮询等待优化 → 当前 60 次循环硬编码 ### 4.4 口播+卡点线 (Hybrid) ``` 当前: 人声 + BGM → [变速卡点] → [帧锁定拼接] ↓ 优化后: 人声 → [A1音轨分离] → 人声轨道锚点分析 + BGM → [A2节拍检测] → BGM能量曲线 → [V4变速卡点(人声锚点+BGM能量双驱动)] → [A8混音(人声+BGM电平平衡)] → [V3节拍对齐素材] → [合成] ``` **待完善**: - [ ] 双驱动变速逻辑完善 (人声锚点优先级 > BGM 能量) - [ ] 接入 AudioLine A8 混音 - [ ] 当前 `compose_hybrid` 需要和 beat_sync 统一底层 ### 4.5 故事/漫剧线 (Story) ``` 当前: 剧本 → [场景分解] → [桥接] → [Kling批量生成] → [角色拼接] ↓ 优化后: 剧本 → [C2角色锁定] → [C7定妆照生成] → [场景分解(Multi-agent)] → [C3角色一致性保持] → [V8图生视频 + V9首尾帧过渡] → [AudioLine A6歌词创作 + A10对齐] # 如有旁白/主题曲 → [V6字幕叠加] → [合成] ``` **待完善**: - [ ] 角色锁定已实现 (character_locker.py) 但需要和 AudioLine 歌词输出配合 - [ ] 定妆照 → 多场景的角色一致性已部分实现,需扩展到模仿视频线 ### 5. 新增:模仿视频线 (Action Transfer) > 这是本方案的核心新增。整合了"卡点模仿" + "主人公更换"两个场景。 ``` [参考视频] → Layer1 分析层 → Layer2 动作迁移 → Layer3 替换合成 ``` #### 5.1 完整链路 ``` 输入: 参考视频 + (可选: 目标BGM / 目标角色 / 目标风格) Step 1 — 参考视频分析 (M1 + A2 + A3) ├─ 视频结构分解: 镜头边界检测 → 分段标记 ├─ 音频分析: [A2 BPM检测] + [A3结构解析] + [A4情绪分析] ├─ 视觉分析: [M4骨架提取] → 动作关键帧序列 └─ 节奏模板: 镜头切换时间轴 + 动作标记 + 节拍映射 Step 2 — 素材/角色准备 ├─ 使用原视频素材 → 只替换角色 [M5背景保留 + C4角色替换] ├─ 使用新素材 → [V1素材搜索] + [V3节拍对齐] └─ 使用原音频 → [A9分轨对齐到目标BPM] Step 3 — 动作迁移 (M3) ├─ 路径A: DreamActor (火山引擎) → 高质量真人动作迁移 ├─ 路径B: Animate模型 (ComfyUI+阿里) → 2D卡通动作迁移 └─ 路径C: Pose2Pose (轻量开源) → 简单动作映射 Step 4 — 合成输出 ├─ 角色一致性保持 [C3] ├─ 替换音频: [A8混音] 新BGM/语音 + 原视频动作节奏 ├─ [V5视频拼接] + [V6字幕叠加] └─ [G3进度报告 + G2成本追踪] ``` #### 5.2 三个子场景映射 | 用户场景 | Step1 输入 | Step2 替换 | Step3 迁移方式 | Step4 输出 | |:---------|:-----------|:-----------|:---------------|:-----------| | **卡点模仿** | 参考视频 | 换BGM + 换素材 | 保留原动作节奏 | 新BGM+新素材的卡点视频 | | **主人公更换** | 有角色视频 | 换角色 + 保留动作 | DreamActor/Animate | 同场景新角色 | | **风格重制** | 参考视频 | 换BGM + 换角色 + 换风格 | 全链路 | 全新风格视频 | #### 5.3 与现有能力的复用关系 ``` 模仿视频线 ← 已有 → 复用成熟度 ├─ A2 BPM检测 → AudioLine ✅ 已实现 ├─ A3结构解析 → AudioLine ✅ 已实现 ├─ A9分轨对齐 → AudioLine ✅ 已实现 ├─ A8混音 → AudioLine ✅ 已实现 ├─ V1素材搜索 → pexels/search ✅ 已实现 ├─ V3节拍视觉对齐 → beat_sync.py ✅ 已实现 ├─ V5视频拼接 → ffmpeg.py ✅ 已实现 ├─ V6字幕叠加 → ffmpeg.py ✅ 已实现 ├─ C3角色一致性 → character_registry ✅ 部分实现 ├─ M3动作迁移 → DreamActor ✅ 已有(DreamActor) │ → Animate模型 ⚠️ 需接入(ComfyUI) ├─ M1参考视频分析 → ❌ 需新建 ├─ M4骨架提取 → ❌ 需新建 (或集成 OpenPose) ├─ M5背景替换 → ❌ 需新建 └─ C4角色替换 → ❌ 需新建 (组合 M3 + M5 + C3) ``` --- ## 6. 交叉能力矩阵 > 每个 ⬜ = 可用,⬛ = 核心依赖,↔ = 可选接入 | 原子能力 | 口播 | 卡点 | 数字人 | Hybrid | 故事 | 模仿 | 音频制造 | |:---------|:----:|:----:|:------:|:------:|:----:|:----:|:--------:| | **音频原子 (A1-A11)** | | | | | | | | | A1 音轨分离 | ↔ | ⬛ | | ⬛ | | ⬛ | ⬛ | | A2 BPM检测 | | ⬛ | | ⬛ | | ⬛ | ⬛ | | A3 结构解析 | | ↔ | | | | ⬛ | ⬛ | | A4 情绪分析 | ⬛ | ↔ | | ↔ | ⬛ | ⬛ | ⬛ | | A5 节奏生成 | | ⬛ | | ↔ | | ↔ | ⬛ | | A6 歌词创作 | ↔ | | | | ⬛ | | ⬛ | | A7 旋律改编 | | | | | | | ⬛ | | A8 混音母带 | ⬛ | ⬛ | ↔ | ⬛ | | ↔ | ⬛ | | A9 分轨对齐 | | ⬛ | | ↔ | | ⬛ | ⬛ | | A10 歌词对齐 | ⬛ | ↔ | | | ⬛ | | ↔ | | A11 多格式导出 | ↔ | ↔ | ↔ | ↔ | ↔ | ↔ | ⬛ | | **视觉原子 (V1-V10)** | | | | | | | | | V1 素材搜索 | ⬛ | ⬛ | | ⬛ | ↔ | ⬛ | | | V2 Ken Burns | ⬛ | | | | ⬛ | | | | V3 节拍对齐 | | ⬛ | | ⬛ | | ⬛ | | | V4 变速卡点 | | ⬛ | | ⬛ | | ↔ | | | V5 视频拼接 | ⬛ | ⬛ | ⬛ | ⬛ | ⬛ | ⬛ | | | V6 字幕叠加 | ⬛ | ↔ | | ↔ | ⬛ | ↔ | | | V7 定妆照 | | | ↔ | | ⬛ | ⬛ | | | V8 图生视频 | | | | | ⬛ | ↔ | | | V9 首尾帧 | | | | | ⬛ | | | | V10 LipSync | ⬛ | | ⬛ | ↔ | ⬛ | ↔ | | | **动作原子 (M1-M6) ★** | | | | | | | | | M1 视频结构分析 | | | | | | ⬛ | | | M2 角色识别 | | | ↔ | | | ⬛ | | | M3 动作迁移 | | | ⬛ | | | ⬛ | | | M4 骨架提取 | | | | | | ⬛ | | | M5 背景替换 | | | | | | ⬛ | | | M6 模板化 | | | | | | ⬛ | | | **角色原子 (C1-C4)** | | | | | | | | | C1 角色注册 | ↔ | | ⬛ | | ⬛ | ⬛ | | | C2 角色锁定 | | | | | ⬛ | ⬛ | | | C3 一致性保持 | | | | | ⬛ | ⬛ | | | C4 角色替换 | | | | | | ⬛ | | --- ## 7. 优先级与落地路线图 ### Phase 1: 接入现有能力 (1-2天) ← 立即开始 | # | 任务 | 工作量 | 价值 | |:-:|:-----|:------:|:----:| | 1 | AudioLine 接入 AVE 主流程 (video_factory.py 调 AudioLine.run) | 2h | ⭐⭐⭐ | | 2 | 口播线接入 AudioLine A4 情绪分析 → 自动选BGM | 1h | ⭐⭐ | | 3 | 卡点线接入 AudioLine A9 分轨对齐 → 支持BPM变化 | 1h | ⭐⭐⭐ | | 4 | 口播线接入 AudioLine A8 混音替代简单叠加 | 1h | ⭐⭐ | | 5 | 角色注册接入数字人线 | 1h | ⭐ | ### Phase 2: 模仿视频线 MVP (3-5天) | # | 任务 | 工作量 | 依赖 | |:-:|:-----|:------:|:----:| | 6 | M1 参考视频结构分析 (ffmpeg 场景检测 + A2节拍) | 4h | A2, V5 | | 7 | M4 骨架提取集成 (OpenPose 轻量版) | 6h | - | | 8 | M3 动作迁移路径C (Pose2Pose 轻量) | 4h | M4 | | 9 | 模仿视频线编排器 (复用 orchestrator 模式) | 4h | M1, M3, A2 | | 10 | CLI 接入: `video-factory --strategy 模仿` | 2h | #9 | ### Phase 3: 角色替换 + 高级动作迁移 (5-7天) | # | 任务 | 工作量 | 依赖 | |:-:|:-----|:------:|:----:| | 11 | M5 背景替换 (RMBG/rembg) | 3h | - | | 12 | C4 角色替换组合 (M3+M5+C3) | 4h | M3, M5 | | 13 | M6 视频结构模板化 (保存/加载模板) | 3h | M1 | | 14 | M3 路径A DreamActor 优化 (异步轮询改为 Webhook) | 2h | M3 | | 15 | M3 路径B Animate 模型 ComfyUI 接入 | 8h | - | ### Phase 4: 优化 + 自动化 (持续) | # | 任务 | 说明 | |:-:|:-----|:------| | 16 | 原子操作 CLI 化 → 每个原子能力可独立调用 | | | 17 | Dashboard 接入模仿线 + 动作线数据 | | | 18 | 素材缓存 + 结果缓存 (避免重复 API 调用) | | | 19 | 批量处理模式 (一次性处理多个参考视频) | | --- ## 8. 自审与可行性分析 ### 8.1 架构合理性审查 | 审查维度 | 评分 | 说明 | |:---------|:----:|:-----| | 模块内聚性 | ⭐⭐⭐⭐ | 每条生产路径独立,底层能力原子化 | | 耦合度控制 | ⭐⭐⭐⭐ | 上层通过 orchestrator 调用下层,不跨层调用 | | 可扩展性 | ⭐⭐⭐⭐⭐ | 新增生产路径 = 新编排器 + 复用底层原子 | | 测试可行性 | ⭐⭐⭐ | 原子能力可单独测试,但端到端链路依赖API | | 容错能力 | ⭐⭐⭐ | 模块级容错已实现,但动作迁移线无回退方案 | ### 8.2 具体落地问题 #### 问题1: DreamActor 视频轮询耗时太长 - **现状**: 60×10s = 10 分钟轮询,阻塞整条链路 - **建议**: 改为异步任务,提交流程后立即返回 task_id,后台 Dashboard 显示进度 #### 问题2: Animate 模型依赖 ComfyUI - **现状**: ComfyUI 非本地部署,需额外启动 - **建议**: Phase 2 先用 DreamActor 跑通 MVP,ComfyUI 接入作为 Phase 3 优化项 #### 问题3: 骨架提取 (M4) 精度 - **现状**: OpenPose 需要 GPU,轻量版(MediaPipe Pose)精度有限 - **建议**: - 路径A: 用 MediaPipe (免费,精准度70%) - 路径B: 用阿里 Animate 内置骨骼提取 (精准度90%,需 ComfyUI) - 路径C: 跳过骨架提取,直接用原始视频做帧匹配 (最简单) #### 问题4: AudioLine 依赖 oMLX + Suno + Mubert - **现状**: oMLX 需手动启动,Suno/Mubert 需 API key - **建议**: - 无 API key 时模块自动回退到本地方案 (已实现) - oMLX 启动自动化加入 launchd 或 Start Server 脚本 #### 问题5: 角色替换的"合理性"问题 - **现状**: 替换角色后,原视频中的人脸/手部动作可能与新角色不匹配 - **建议**: - 2D 卡通角色替换比真人替换更容易获得合理结果 - 真人替换建议用 DreamActor(原生支持面部替换) - 首次测试建议用卡通角色 + 卡点场景,不要一步上真人 ### 8.3 是否有更优解? | 现有方案 | 更优解 | 评估 | |:---------|:-------|:-----| | 每条线独立编排器 | **统一编排器 + 插件模式** | 更优但重构成本高,建议 Phase 4 | | DreamActor 轮询 | **Webhook 回调** | 更优,但需服务端支持,暂不可行 | | OpenPose 本地骨架 | **阿里 Animate 内置骨骼** | 更优,但需接入 ComfyUI | | 手动 API Key 配置 | **环境变量 + .env 文件** | 更优,建议 Phase 1 顺便完成 | | stand-alone AudioLine | **AudioLine as AVE plugin** | 已在设计范围内 | ### 8.4 风险矩阵 | 风险 | 概率 | 影响 | 缓解措施 | |:----|:----:|:----:|:---------| | API 限频/涨价 | 中 | 高 | 本地回退 + 成本预警 | | 动作迁移质量不达标 | 中 | 高 | Phase 2 MVP 先用简单场景验证 | | ComfyUI 部署复杂 | 高 | 中 | 先用 DreamActor,ComfyUI 后接 | | 角色替换效果假 | 中 | 中 | 用卡通角色测试,真人暂缓 | | AudioLine 依赖未启动 | 低 | 中 | oMLX 自动启动 + 模块自检告警 | --- ## 9. 具体落地建议 ### 9.1 立即执行 (今天/明天) ```bash # Step 1: AudioLine 接入 AVE 主流程 # 在 video_factory.py 中新增: # from audio_line import AudioLine # al = AudioLine() # # # 口播线: 用 AudioLine 情绪分析选BGM # emotion = al.emotion_analyzer.analyze(voice_path) # bgm_style = emotion_to_bgm(emotion.mood) # # # 卡点线: 用 AudioLine BPM分析 + 分轨对齐 # beat = al.beat_detector.detect(bgm_path) # aligned_stems = al.stem_aligner.align_to_bpm(...) ``` ### 9.2 本周内 ``` 1. 模仿视频线 MVP: - 输入: 参考视频 - 输出: 提取的结构模板 + 骨架序列 - 不生成最终视频,只验证分析层 2. 角色系统统一: - 数字人注册到 CharacterRegistry - 口播脚本支持引用角色 ``` ### 9.3 需要注意的坑 1. **不要一步到位**:先跑通 MVP 再迭代优化 2. **每个原子能力先单测再集成**:特别是 M1-M6 动作迁移线 3. **AudioLine 已经写好,但 demo/ 里还没跑的端到端测试**:先跑通一个卡点场景的端到端 4. **模仿视频线的骨架提取不要依赖 GPU**:用 MediaPipe 或完全跳过骨架,直接用帧匹配 --- > 本方案已包含自审环节 (Section 8),所有建议均有明确的落地路径。 > 下一步建议: 确认方案方向 → Phase 1 将 AudioLine 接入 AVE → Phase 2 开始模仿视频线 MVP