Initial AI manga platform

This commit is contained in:
www
2026-06-15 17:45:28 +08:00
commit 7a8191650f
267 changed files with 105987 additions and 0 deletions
+518
View File
@@ -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、成本、状态和错误。
- 涉及未成年人时,口型内容必须更严格审核。