Files
ai/docs/system_b/09_AI生成流水线_Provider抽象设计.md
T
2026-06-15 17:45:28 +08:00

519 lines
9.5 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 09_AI生成流水线_Provider抽象设计
## 1. 文档目标
本文档定义系统 B 的 AI 核心流水线、Provider 抽象、任务输入输出、质量控制和模型可替换策略。
## 2. 核心原则
1. 不把任何模型写死到业务代码。
2. 所有 AI 能力通过 Provider 调用。
3. 高成本任务必须检查订单/额度。
4. 所有 AI 调用必须记录日志和成本。
5. 任务失败可重试,可切换备用 Provider。
6. 预览和正式生成分离。
## 3. Provider 类型
```text
TextProvider:文案、创作方案、Prompt 生成
ImageProvider:预览图、正式图、局部重绘
VideoProvider:图生视频、关键动态镜头
VoiceProvider:旁白、誓言、祝福语 TTS
ModerationProvider:文本/图片审核
FaceCheckProvider:人脸检测、角色归属、清晰度
QualityCheckProvider:图片质量、人像一致性、视频质检
```
V3 真人动态视频新增 Provider
```text
FaceIdentityProvider:真人身份档案、身份特征摘要、身份锚点建议
FaceConsistencyProvider:本人相似度、人脸一致性、男女混脸检测
MotionPortraitProvider:动态写真,眨眼、微笑、头发衣服轻微动
LipSyncProvider:口型同步、誓言口播、祝福语口播
```
VideoProvider 在 V3 中不只用于“关键动态镜头”,还要支持:
```text
image_to_video:首帧图生视频
reference_to_video:多参考图保持人物一致性
start_end_to_video:首尾帧视频
speech_to_video / lipsync:带音频或口型的视频任务,可选
```
## 4. Provider 通用配置
字段:
```text
provider_type
provider_name
model_name
api_base
api_key_ref
priority
quality_level
rate_limit
cost_rule
fallback_provider_id
status
```
## 5. AI 流水线总览
```text
用户上传照片
→ 原图去 EXIF
→ 照片质检
→ 人物档案生成
→ 用户填写定制信息
→ 创作方案生成
→ 镜头计划生成
→ Prompt 分层组装
→ 预览图生成
→ 用户确认预览
→ 正式图生成
→ 图片质检
→ 旁白/字幕生成
→ 视频合成
→ 最终质检
→ 人工审核
→ 交付
```
## 5.1 V3 真人动态视频流水线
```text
用户上传照片
→ 授权确认
→ 原图去 EXIF / 私有存储
→ 照片质检
→ FaceIdentityProvider 生成人物身份档案
→ 身份锚点图生成
→ FaceConsistencyProvider 评分
→ 用户确认像不像
→ 创作方案 / 镜头计划
→ 关键帧生成
→ 成本预估和额度冻结
→ VideoProvider 生成真人动态片段
→ 视频片段质检
→ VoiceProvider 生成旁白 / 誓言
→ LipSyncProvider 口型同步,可选
→ FFmpeg 合成成片
→ 最终质检
→ 人工审核
→ 用户确认
→ 交付
```
关键规则:
- 未完成授权,不允许照片处理和生成。
- 未确认身份锚点,不允许正式动态视频生成。
- 真实视频 Provider 默认关闭,必须运营启用、用户确认和成本通过后才调用。
- 真实 Provider 失败不能回落 mock 假成功。
- 每个视频片段必须可单独预览、重试、替换、质检和计费。
## 6. 照片处理流程
### 6.1 输入
- 用户原始照片
- 人物角色:person_a/person_b/self/child/family_member
- 项目主题
### 6.2 处理
```text
保存原图
去除 EXIF
生成缩略图
检测人脸数量
检测清晰度
检测遮挡
检测角度
检测重复图片
检测是否多人混入
检测过度美颜风险
```
### 6.3 输出
```json
{
"asset_id": 1001,
"quality_status": "pass",
"quality_score": 86.5,
"face_count": 1,
"issues": []
}
```
## 7. 人物档案生成
### 7.1 目标
将多张参考照片整理成人物档案,供后续 Prompt 和一致性控制使用。
### 7.2 输出字段
```text
role
name
gender_label
age_group
appearance_summary
face_features
hair_features
temperament
reference_asset_ids
anchor_asset_id
avoid_changes
quality_score
```
### 7.3 示例
```text
person_a:30岁左右男性,短黑发,脸型偏长,五官清晰,气质沉稳。生成时保持发型、脸型和年龄感,不要变成欧美脸,不要明显年轻化或老化。
```
## 8. 创作方案生成
### 8.1 输入
```text
人生主题
套餐
视觉风格
世界观列表
场景列表
人物档案
用户定制信息
输出类型
```
### 8.2 输出
```text
作品标题
作品简介
世界顺序
场景顺序
镜头计划
旁白草稿
字幕草稿
片头文案
片尾文案
总时长
预计图片数
预计视频片段数
```
### 8.3 生成约束
- 不要生成用户未选择的世界。
- 不要改变人物关系。
- 文案不要过长。
- 如果是父母银婚金婚,语气要庄重温馨。
- 如果是情侣写真,可以更浪漫轻盈。
## 9. Prompt 分层组装
Prompt 由以下层组成:
```text
人物层
关系层
人生主题层
世界观层
场景层
镜头层
视觉风格层
质量层
限制层
```
### 9.1 人物层
来自 person_profile。
### 9.2 世界观层
来自 world_template。
### 9.3 场景层
来自 scene_template。
### 9.4 镜头层
来自 shot_template。
### 9.5 质量层
根据套餐决定:
- high quality
- commercial portrait quality
- detailed lighting
- clean composition
### 9.6 限制层
必须包含:
```text
不要多出无关人物
不要文字乱入
不要明显畸形手
不要改变人物年龄
不要男女混脸
不要改变人物核心五官
```
## 10. 预览图生成
### 10.1 目标
让用户低成本确认:
- 人物像不像
- 风格是否满意
- 世界方向是否正确
### 10.2 规则
- 数量少
- 加水印
- 低清或中清
- 只生成关键场景
- 预览重生次数受限
## 11. 正式图生成
### 11.1 输入
- 确认后的镜头计划
- 人物档案
- 场景模板
- 风格模板
- 预览锚点图,可选
### 11.2 规则
- 使用高质量 Provider 配置
- 每张图记录 Prompt
- 每张图记录 Provider
- 每张图记录版本
- 失败可重试
- 多次失败转人工
## 12. 图片质检
自动检查:
```text
人脸是否崩坏
人物是否不像本人
男女是否混脸
是否多出第三人
手部是否异常
服装是否跑偏
场景是否错误
是否有乱码文字
是否违规
```
输出:
```text
pass
warning
fail
```
处理:
- pass:进入视频合成
- warning:人工复核
- fail:自动重生
## 13. TTS 和字幕生成
### 13.1 文案来源
- 片头
- 旁白
- 誓言
- 祝福语
- 片尾
### 13.2 字幕规则
- 每屏字数控制
- 不遮挡人物脸部
- 字幕和旁白时间对齐
- 支持有字幕/无字幕版本
## 14. 视频合成
### 14.1 输入
```text
final_images
shot_plans
subtitle_srt
voice_audio
bgm_audio
video_template
```
### 14.2 FFmpeg 处理
- 图片转视频片段
- 推拉运镜
- 转场
- 字幕烧录
- 音频混合
- 片头片尾
- 封面生成
### 14.3 视频等级
```text
L1:静态图片 + 推拉运镜
L2:图片 + 简单光效/花瓣/粒子
L3:关键镜头图生视频
L4:高级动态视频
```
第一阶段建议:L1 + L2 为主。
## 15. 最终质检
检查:
- 视频可播放
- 音画同步
- 字幕不出框
- BGM 音量合适
- 旁白清晰
- 分辨率正确
- 文件大小合理
- 无违规内容
## 16. Provider 失败切换
策略:
```text
主 Provider 失败
→ 记录错误
→ 判断是否可重试
→ 重试 N 次
→ 切换 fallback Provider
→ 仍失败则 manual_required
```
## 17. 成本记录
每次 AI 调用记录:
```text
project_id
task_id
provider_id
model_name
input_size
output_size
estimated_cost
actual_cost
latency_ms
status
```
## 18. 需要人工介入的场景
- 人像连续不像
- 多次生成崩坏
- 视频合成失败
- 用户申请中改/大改
- 审核警告
- 高端定制项目
## 19. V3 VideoProvider 策略
系统 B V3 优先测试图生视频、参考图生视频和人物动作视频,不建议直接依赖文生视频。
推荐 Provider 预设:
| Provider | 适合用途 | 默认状态 |
|---|---|---|
| MiniMax Hailuo 2.3 Fast | 低成本快速小样、真人动效验证 | 禁用 |
| MiniMax Hailuo 2.3 | 质量更高的小样 / 正式片段 | 禁用 |
| Alibaba Wan2.6 I2V Flash | 快速对比稳定性和成本 | 禁用 |
| Alibaba Wan2.6 I2V | 标准质量图生视频 | 禁用 |
| Vidu Q3 Turbo Reference | 多参考图人物一致性、音画能力 | 禁用 |
| Vidu Q3 Pro | 高质量参考图生视频 | 禁用 |
| Jimeng / Seedance | 中文短剧感、真人镜头语言 | 禁用 |
| Kling / Runway | 备用对比和部分高质量场景 | 禁用 |
| MockVideoProvider | 流程演练和不扣费测试 | 启用 |
每个 Provider 配置至少包含:
```text
provider_name
model_name
mode: image2video / reference2video / start_end2video / lipsync
resolution
max_duration_per_clip
cost_per_second 或 cost_per_clip
supports_reference_image
supports_start_end_frame
supports_audio
supports_lipsync
supports_character_reference
retry_limit
priority
fallback_provider
status
```
## 20. V3 视频片段质检
每个真实视频片段必须检查:
- 是否像本人。
- 是否男女混脸。
- 是否年龄变化过大。
- 是否多出第三人。
- 动作是否自然。
- 表情是否怪异。
- 手部和身体是否畸形。
- 是否有不合适姿势。
- 是否有水印、乱码、logo。
- 是否适合公开案例。
质检结果:
```text
passed:可进入合成
needs_retry:建议重试
manual_review:转人工
rejected:不可用
```
## 21. V3 口型策略
口型属于高级能力,不作为基础交付强依赖。
规则:
- 只有高端真人纪念片或用户选择口型套餐时启用。
- 口型失败时允许回退为旁白字幕版本。
- 口型任务必须单独记录 Provider、成本、状态和错误。
- 涉及未成年人时,口型内容必须更严格审核。