Initial AI manga platform
This commit is contained in:
Executable
+518
@@ -0,0 +1,518 @@
|
||||
# 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、成本、状态和错误。
|
||||
- 涉及未成年人时,口型内容必须更严格审核。
|
||||
Reference in New Issue
Block a user