Files
ai/docs/system_b/02_需求文档修改v2.md
2026-06-15 17:45:28 +08:00

2746 lines
34 KiB
Markdown
Executable File
Raw Permalink 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.
# 系统 B 完整项目落地需求设计文档 V2
## 项目名称
**AI 多人生主题写真 / 韩漫 / 纪念视频生成系统**
简称:
```text
系统 B
真人照片 → 多人生主题 → 多世界模板 → 韩漫写真 / 纪念视频
```
---
# 0. 文档说明
本文档是系统 B 的 V2 版本,是在 V1「真人照片 → 婚礼韩漫 / 视频」基础上升级后的完整落地需求设计。
V2 的核心变化:
1. 不再只做婚礼,而是升级为多人生主题平台。
2. 第一阶段仍然主打婚礼、恋爱纪念、银婚金婚、情侣写真、个人形象。
3. 后续可以扩展到家庭全家福、宝宝百日、儿童成长、闺蜜写真、亲子纪念等。
4. 技术上按独立系统 B 开发,但保留后续与系统 A 合并的公共架构。
5. 模型策略按高质量优先,但所有模型都必须通过 Provider 抽象层管理,不写死单一模型。
V3 增量说明:
```text
系统 B V2 可稳定覆盖写真图集和图片纪念视频。
如果目标升级为“真人会动、有表情、有动作、像抖音短剧/真人纪念电影”,开发必须按 V3 真人动态视频版执行。
```
V3 不推翻 V2,而是在 V2 上新增:
- 四档输出模式:高清写真图集、图片纪念视频、动态写真视频、AI 真人动态视频。
- 真人身份锁定:身份锚点图、本人相似度评分、人脸一致性质检。
- 动作与视频片段:动作模板、关键帧、图生视频片段、片段质检、片段重试。
- 可选口型链路:LipSyncTask、音频对齐、失败回退到旁白字幕版本。
- 国内短剧向 VideoProviderMiniMax Hailuo、阿里 Wan、Vidu、Seedance、Kling、Runway。
- 更严格肖像合规:未成年人保护、公开案例二次授权、原图私密存储、后台访问审计。
- 更强成本控制:按片段秒数、分辨率、候选数、重试、口型和人工审核估算成本。
后续开发主依据:
```text
00_系统B升级说明_真人动态视频.md
01_系统B总需求文档_v3_真人动态视频版.md
```
本 V2 文档作为历史基础和非动态视频链路参考保留。
---
# 1. 重新审核后的关键修正
## 1.1 不能只叫婚礼系统
V1 的方向可行,但过于偏婚礼。
V2 正式改成:
```text
真人照片驱动的 AI 多人生主题定制影像平台
```
婚礼只是第一个重点场景,不是系统上限。
底层业务对象不能叫 `WeddingProject`,应该统一叫:
```text
Project
LifeTheme
WorldTemplate
SceneTemplate
ShotTemplate
PersonProfile
RenderTask
Asset
Order
RevisionRequest
```
这样以后扩展宝宝百日、儿童成长、全家福时,不需要重构核心业务。
---
## 1.2 用户流程顺序修正
正式版推荐流程:
```text
首页浏览
→ 登录
→ 创建项目
→ 选择人生主题
→ 选择套餐
→ 选择视觉风格
→ 选择世界观
→ 选择场景
→ 上传照片
→ 授权确认
→ 照片质检
→ 建立人物档案
→ 填写定制信息
→ 生成创作方案
→ 成本锁定 / 支付
→ 生成预览
→ 用户确认
→ 正式高质量生成
→ 质检
→ 视频合成
→ 人工审核
→ 用户确认
→ 交付下载
```
原因:
- 用户先看主题和模板,更容易转化。
- 真正进入高成本生成前,必须完成照片质检、授权和支付。
- 预览阶段要控制成本,正式阶段再使用最高质量生成。
---
## 1.3 必须加入支付、额度、成本锁定
如果使用高质量模型,成本会明显增加。
系统必须加入:
```text
套餐价格
用户余额 / 订单支付
预览额度
正式生成额度
重试次数
修改次数
成本日志
```
正式生成前必须满足:
```text
照片合格
授权已确认
订单已支付 / 额度已冻结
创作方案已确认
```
否则禁止进入高成本生成流程。
---
## 1.4 必须加入隐私授权与肖像授权
用户上传真人照片,必须有授权流程。
上传照片前必须勾选:
```text
我确认拥有上传照片的合法使用权
我确认已获得照片中人物授权
我授权平台为本次项目生成图片和视频
我知道作品默认不公开展示
如涉及未成年人,我确认我是监护人或已获得监护人授权
```
公开案例必须单独授权,不能默认展示。
---
## 1.5 必须加入内容审核
系统要审核:
```text
上传照片
用户自定义文案
生成 Prompt
生成图片
生成视频封面
最终视频
```
审核模块必须从第一版就设计进去,至少保留接口和状态。
---
## 1.6 不能把视频模型写死
你选择高质量模型没问题,但视频模块一定要抽象成:
```text
VideoProvider
```
原因:
- 视频模型更新快。
- API 生命周期可能变化。
- 成本和速度差异大。
- 商业系统必须允许切换供应商。
所有模型都要通过 Provider 配置,不要硬编码。
---
## 1.7 必须加入任务幂等和失败恢复
AI 生成链路很长:
```text
照片检测
人物档案
方案生成
预览图
正式图
视频片段
音频
字幕
合成
审核
```
任意一步失败,都不能让整个项目废掉。
每个任务必须有:
```text
task_id
status
retry_count
max_retry
input_hash
provider_request_id
error_code
error_message
can_resume
```
同一个任务重复提交,不能重复扣费,必须支持幂等。
---
# 2. 最终产品定位
## 2.1 产品一句话
用户上传真人照片,选择人生主题、世界观、场景和风格,系统生成专属韩漫写真、国风写真、多世界穿越纪念视频。
---
## 2.2 第一阶段主打场景
第一阶段重点做 5 类:
```text
结婚纪念
恋爱纪念
父母银婚金婚
情侣写真
个人形象定制
```
这 5 类最适合变现,也最适合做案例展示。
---
## 2.3 后续扩展场景
后续可扩展:
```text
家庭全家福
宝宝百日
儿童成长
闺蜜写真
亲子纪念
生日纪念
毕业纪念
企业形象写真
节日主题写真
```
底层模板系统必须支持这些扩展。
---
# 3. 最高模型策略
## 3.1 模型使用原则
你选择「都使用最高质量」可以,但系统不能浪费成本。
建议策略:
```text
文字策划:最高推理模型
图像生成:最高图像模型,高质量档
视频生成:最高视频模型,但必须可替换
语音合成:稳定 TTS 模型
审核:文本 + 图片审核模型
```
---
## 3.2 Provider 配置建议
系统配置成:
```text
TextProvider:
quality: highest
ImageProvider:
quality: high
VideoProvider:
quality: highest
fallback: other_video_provider
must_be_replaceable: true
VoiceProvider:
quality: stable
ModerationProvider:
text_and_image: true
```
不要把具体模型名写死在业务代码中。
---
## 3.3 高质量模型不等于每一步都高成本
流程分为:
```text
方案阶段
预览阶段
正式阶段
返工阶段
交付阶段
```
正式图和正式视频用最高质量。
预览图可以:
- 少数量
- 低清
- 加水印
- 只生成关键场景
否则用户不确认就生成大量高清成品,成本会失控。
---
# 4. 系统总体架构
## 4.1 用户端
用户端使用:
```text
uni-app
```
支持:
```text
H5
微信小程序
后续 App
```
---
## 4.2 后台管理端
后台使用:
```text
Geeker-Admin
```
用途:
- 用户管理
- 项目管理
- 订单管理
- 模板管理
- 任务管理
- 案例管理
- 修改申请管理
- AI Provider 管理
- 日志管理
- 系统配置
---
## 4.3 后端
推荐:
```text
Node.js + NestJS
```
原因:
```text
适合异步任务编排
适合 BullMQ 队列
适合 WebSocket 进度推送
适合对接 uni-app 和后台
适合 AI Provider 抽象
```
Python 不作为主后端,但作为 AI Worker 辅助:
```text
照片质量检测
人脸角度检测
图像相似度检测
图片后处理
局部修复
视频辅助处理
```
PHP 不建议作为此系统主后端。
---
## 4.4 基础设施
```text
MySQL 8:业务数据
Redis:队列、缓存、锁
BullMQ:任务队列
MinIO:本地对象存储
FFmpeg:视频合成
Nginx:反向代理
PM2 / systemd:进程管理
Docker:建议使用,但第一版可选
```
---
# 5. 完整业务流程
## 5.1 游客浏览流程
```text
访问首页
→ 查看案例
→ 查看主题
→ 查看世界模板
→ 查看套餐
→ 点击开始制作
→ 登录 / 注册
```
游客可以看:
```text
首页
案例
套餐
玩法说明
FAQ
公开案例
```
游客不能:
```text
创建项目
上传照片
生成预览
下载作品
申请修改
```
---
## 5.2 用户正式制作流程
```text
登录
→ 创建项目
→ 选择人生主题
→ 选择套餐
→ 选择视觉风格
→ 选择世界观
→ 选择场景
→ 上传照片
→ 勾选授权协议
→ 照片质检
→ 人物身份建立
→ 填写定制信息
→ 生成创作方案
→ 用户确认方案
→ 支付 / 冻结额度
→ 生成预览图
→ 用户确认预览
→ 正式高质量生成图片
→ 图片质检
→ 生成音频 / 字幕
→ 视频合成
→ 最终质检
→ 人工审核
→ 用户确认成品
→ 下载交付
→ 项目归档
```
---
## 5.3 支付模式建议
### 模式 A:先支付后预览
适合标准套餐:
```text
选套餐
→ 支付
→ 生成预览
→ 确认
→ 正式生成
```
优点:避免白嫖预览。
### 模式 B:免费低清预览,正式生成前支付
适合引流:
```text
生成低清水印预览
→ 用户满意
→ 支付
→ 正式高清生成
```
建议第一阶段采用:
```text
登录用户每天可免费生成 1 次低清水印预览
正式生成必须支付
```
---
# 6. 人生主题设计
## 6.1 第一阶段主题
| 编码 | 名称 | 人物结构 | 输出建议 |
|---|---|---|---|
| wedding | 结婚纪念 | 双人 | 图集 / 视频 |
| love | 恋爱纪念 | 双人 | 图集 / 短视频 |
| silver_gold_wedding | 银婚金婚 | 双人 / 家庭 | 视频优先 |
| couple_portrait | 情侣写真 | 双人 | 图集优先 |
| personal_portrait | 个人形象定制 | 单人 | 图集 / 头像 / 短视频 |
---
## 6.2 第二阶段主题
| 编码 | 名称 | 人物结构 |
|---|---|---|
| family | 家庭全家福 | 多人 |
| baby_100_days | 宝宝百日 | 宝宝 / 父母 |
| child_growth | 儿童成长 | 儿童 |
| best_friends | 闺蜜写真 | 双人 / 多人 |
| parent_child | 亲子纪念 | 成人 + 儿童 |
| birthday | 生日纪念 | 单人 / 多人 |
---
## 6.3 主题必须决定的规则
每个主题必须配置:
```text
需要几个人
照片上传规则
可选世界观
可选场景
推荐风格
推荐文案
推荐视频节奏
是否允许公开案例
是否涉及未成年人
是否需要加强隐私提醒
```
例如宝宝百日、儿童成长、亲子纪念,都必须触发未成年人授权提示。
---
# 7. 世界观模板设计
## 7.1 世界观分类
```text
历史朝代系
仙侠修真系
未来科技系
趣味脑洞系
架空奇幻系
现代纪念系
家庭温情系
儿童童话系
```
---
## 7.2 第一阶段建议上线世界
第一阶段不要一次上太多,建议先做 20 个精品世界。
### 历史朝代系
```text
汉朝
唐朝
宋朝
明朝
清朝
民国
```
### 仙侠修真系
```text
仙宫大婚
宗门大典
桃花仙境
龙宫婚礼
凤族神婚
剑仙世界
```
### 未来科技系
```text
星际婚礼
月球基地
全息圣殿
未来都市
赛博城市
```
### 趣味脑洞系
```text
恐龙时代
海底王国
精灵森林
云端王国
```
### 现代纪念系
```text
现代婚礼
浪漫海边
城市夜景
花园仪式
```
---
## 7.3 世界模板字段
每个世界模板需要配置:
```text
world_id
world_code
world_name
category
cover_image
preview_video
description
supported_life_themes
supported_styles
prompt_base
costume_rules
scene_rules
color_rules
lighting_rules
negative_rules
is_premium
status
sort_order
```
---
# 8. 场景模板设计
## 8.1 场景不是图片,是可复用生产规则
每个场景包含:
```text
场景描述
服装约束
人物站位
镜头推荐
光影
氛围元素
可选特效
适用主题
适用风格
生成难度
成本等级
```
---
## 8.2 示例:明制婚礼
```text
世界:明朝
场景:
1. 王府喜堂
2. 花轿迎亲
3. 红绸长廊
4. 园林拜堂
5. 洞房花烛
6. 夜宴烟花
```
---
## 8.3 示例:修仙婚礼
```text
世界:仙宫大婚
场景:
1. 云海仙宫
2. 桃花林誓言台
3. 宗门大殿
4. 仙舟婚典
5. 凤凰环绕礼台
6. 星河天台
```
---
## 8.4 示例:未来科技
```text
世界:星际婚礼
场景:
1. 星舰大厅
2. 银河观景台
3. 全息圣殿
4. 月球基地礼堂
5. 光之穹顶
6. 星际花园
```
---
# 9. 视觉风格设计
## 9.1 第一阶段风格
```text
韩漫风
半写实写真风
国风插画风
电影写实风
```
---
## 9.2 推荐优先级
商业落地优先做:
```text
半写实写真风
韩漫风
国风插画风
```
电影写实风虽然高级,但最容易暴露人脸不像、手部异常、动态不自然的问题,所以放在高端套餐更合适。
---
# 10. 套餐设计
## 10.1 标准图集版
```text
适合:情侣写真、个人形象
主题:1 个
世界:1 个
场景:3 个
成品图:6-12 张
视频:无
修改:1 次小改
生成质量:高
```
---
## 10.2 短视频版
```text
适合:恋爱纪念、结婚纪念
主题:1 个
世界:1-3 个
场景:3-6 个
成品图:12-24 张
视频:30-60 秒
字幕:有
BGM:有
旁白:可选
修改:1 次小改
```
---
## 10.3 多世界纪念片
```text
适合:跨朝代婚礼、修仙+未来+古代穿越
主题:1 个
世界:5-10 个
场景:5-20 个
成品图:25-60 张
视频:1-3 分钟
字幕:有
BGM:有
旁白:有
片头片尾:有
修改:2 次
```
---
## 10.4 高端定制版
```text
适合:婚庆公司、影楼、金婚银婚、婚礼现场播放
主题:自由定制
世界:自由组合
场景:可定制
图片:高精修
视频:1-5 分钟
动态镜头:可选
人工审核:必须
修改:按订单配置
```
---
# 11. 用户端页面设计
用户端使用 uni-app。
## 11.1 首页
不需要登录。
模块:
```text
顶部 Banner
产品卖点
热门案例
热门人生主题
热门世界模板
套餐说明
制作流程
用户评价
FAQ
开始制作按钮
```
按钮:
```text
查看案例
用同款制作
选择主题
查看套餐
开始制作
联系客服
```
---
## 11.2 案例列表页
不需要登录。
筛选:
```text
人生主题
世界观
视觉风格
图集 / 视频
最新 / 热门
```
只展示用户授权公开的案例。
---
## 11.3 案例详情页
展示:
```text
案例视频
案例图集
使用主题
使用世界
使用风格
套餐推荐
同款制作按钮
```
---
## 11.4 登录注册页
支持:
```text
手机号验证码
微信授权
邮箱注册,后续可选
```
---
## 11.5 创建项目页
必须登录。
字段:
```text
项目名称
人生主题
作品用途
输出类型
```
作品用途:
```text
自己留念
送礼物
婚礼现场播放
小红书/抖音发布
父母纪念
```
---
## 11.6 主题选择页
字段:
```text
主题名称
主题封面
主题说明
适合人群
案例数量
是否推荐
```
---
## 11.7 套餐选择页
字段:
```text
套餐名称
价格
输出图片数量
输出视频时长
世界数量
场景数量
修改次数
是否人工审核
是否支持高级动态
```
---
## 11.8 风格选择页
字段:
```text
风格名称
预览图
适合主题
适合世界
是否高级风格
```
---
## 11.9 世界观选择页
支持:
```text
单世界
多世界
自由排序
同款案例选择
```
限制:
```text
标准图集:1 个世界
短视频:1-3 个世界
多世界纪念片:5-10 个世界
高端定制:按配置
```
---
## 11.10 场景选择页
展示结构:
```text
世界 A
场景 1
场景 2
场景 3
世界 B
场景 1
场景 2
```
每个场景展示:
```text
预览图
适合镜头数
是否支持视频动态
是否高级场景
```
---
## 11.11 照片上传页
根据主题动态变化。
### 双人主题
```text
男方照片:3-8 张
女方照片:3-8 张
双人合照:1-5 张,可选
```
### 单人主题
```text
本人照片:3-10 张
```
### 家庭主题
```text
每个成员至少 2-5 张
家庭合照 1-5 张
```
### 儿童 / 宝宝主题
```text
宝宝照片 3-10 张
父母照片可选
必须勾选监护人授权
```
---
## 11.12 授权确认页
必须有。
勾选项:
```text
我确认拥有上传照片的合法使用权
我确认已获得照片中人物授权
我授权平台为本次项目生成图片和视频
我知道作品默认不公开展示
如涉及未成年人,我确认我是监护人或已获得监护人授权
```
---
## 11.13 照片质检页
检测:
```text
清晰度
人脸完整度
光照
遮挡
角度
多人混入
重复图片
角色归属
疑似低质量
疑似过度美颜
```
状态:
```text
pass
warning
fail
```
fail 必须补图,warning 可继续但提示风险。
---
## 11.14 定制信息页
字段:
```text
人物姓名
关系类型
纪念日期
文案风格
一句话誓言
是否显示名字
是否显示日期
特别要求
是否允许公开展示
```
文案风格:
```text
浪漫
庄重
温馨
梦幻
史诗
搞笑
高级电影感
古风诗意
```
---
## 11.15 创作方案预览页
展示:
```text
作品标题
主题
风格
世界顺序
场景顺序
镜头数量
图片数量
预计视频时长
旁白草稿
字幕草稿
片头片尾文案
预计消耗额度
```
按钮:
```text
确认方案
修改世界
修改场景
修改文案
重新生成方案
取消项目
```
---
## 11.16 支付 / 额度确认页
字段:
```text
套餐价格
已用优惠
需支付金额
预览额度
正式生成额度
修改次数
预计成本说明
```
按钮:
```text
立即支付
使用余额
取消订单
```
---
## 11.17 预览生成页
展示:
```text
低清水印预览图
部分关键镜头
人物像不像反馈
风格是否满意
```
按钮:
```text
满意,进入正式生成
不满意,重新生成预览
修改模板
联系客服
```
---
## 11.18 生成进度页
用 WebSocket 或轮询。
状态节点:
```text
项目已创建
照片检测完成
人物档案建立中
方案生成中
等待方案确认
预览生成中
等待预览确认
正式图生成中
图片质检中
音频生成中
字幕生成中
视频合成中
人工审核中
等待用户确认
已完成
```
---
## 11.19 成品确认页
展示:
```text
成品视频
成品图集
封面图
有字幕版本
无字幕版本
下载入口
剩余修改次数
```
按钮:
```text
确认完成
申请修改
下载视频
下载图片
删除作品
授权公开为案例
```
---
## 11.20 修改申请页
修改分级:
```text
小改
中改
大改
```
小改:
```text
改名字
改日期
改字幕
换音乐
改片尾文案
```
中改:
```text
替换个别图片
重做 1-2 个场景
调整部分镜头
```
大改:
```text
换整体风格
换全部世界
重建人设
整条视频重做
```
大改必须重新计费。
---
# 12. 后台管理端设计
后台使用 Geeker-Admin 二开。
## 12.1 仪表盘
指标:
```text
今日订单数
今日支付金额
今日生成项目数
今日完成项目数
失败任务数
待审核项目数
待处理修改数
AI 调用成本
存储占用
热门主题排行
热门世界排行
转化率
```
---
## 12.2 用户管理
字段:
```text
用户 ID
昵称
手机号
微信 openid
注册时间
项目数
订单数
消费金额
状态
```
---
## 12.3 项目管理
字段:
```text
project_id
user_id
life_theme
package_id
style_id
world_count
scene_count
status
payment_status
created_at
completed_at
allow_public_case
```
操作:
```text
查看详情
查看素材
查看任务
手动重试
转人工
标记异常
强制完成
取消项目
```
---
## 12.4 订单管理
字段:
```text
order_id
project_id
user_id
package_id
amount
pay_status
refund_status
pay_time
created_at
```
状态:
```text
pending
paid
cancelled
refunding
refunded
failed
```
---
## 12.5 模板管理
子模块:
```text
人生主题管理
世界观模板管理
场景模板管理
镜头模板管理
视觉风格管理
文案模板管理
音乐模板管理
视频模板管理
套餐管理
```
---
## 12.6 任务管理
任务类型:
```text
photo_check
person_profile
plan_generate
prompt_generate
preview_image
final_image
image_qc
video_clip_generate
audio_generate
subtitle_generate
video_render
final_qc
manual_review
```
操作:
```text
查看输入
查看输出
重试
终止
跳过
标记人工处理
查看错误日志
```
---
## 12.7 AI Provider 管理
Provider 类型:
```text
TextProvider
ImageProvider
VideoProvider
VoiceProvider
ModerationProvider
FaceCheckProvider
QualityCheckProvider
StorageProvider
```
字段:
```text
provider_id
provider_type
provider_name
model_name
api_base
priority
quality_level
cost_rule
rate_limit
status
fallback_provider_id
```
---
## 12.8 案例管理
字段:
```text
case_id
project_id
title
cover_image
video_url
theme_id
style_id
world_ids
sort_order
is_featured
status
authorization_record_id
```
注意:无授权不能上架。
---
## 12.9 修改申请管理
字段:
```text
revision_id
project_id
user_id
revision_type
request_text
remaining_count
status
created_at
handled_by
```
操作:
```text
接受
拒绝
转人工
创建重做任务
标记完成
```
---
## 12.10 隐私与授权管理
必须独立管理:
```text
用户授权记录
公开案例授权
未成年人授权确认
删除申请
数据导出申请
素材清理记录
```
---
# 13. 项目状态流转设计
## 13.1 Project 状态
```text
draft
template_selecting
photo_uploading
authorization_pending
photo_checking
photo_rejected
person_profiling
info_filling
plan_generating
waiting_plan_confirm
payment_pending
payment_paid
preview_generating
waiting_preview_confirm
final_generating
image_qc
audio_generating
subtitle_generating
video_rendering
final_qc
manual_review
waiting_user_confirm
revision_requested
revising
completed
cancelled
failed
archived
```
---
## 13.2 主流程
```text
draft
→ template_selecting
→ photo_uploading
→ authorization_pending
→ photo_checking
→ person_profiling
→ info_filling
→ plan_generating
→ waiting_plan_confirm
→ payment_pending
→ payment_paid
→ preview_generating
→ waiting_preview_confirm
→ final_generating
→ image_qc
→ audio_generating
→ subtitle_generating
→ video_rendering
→ final_qc
→ manual_review
→ waiting_user_confirm
→ completed
→ archived
```
---
## 13.3 照片失败分支
```text
photo_checking
→ photo_rejected
→ photo_uploading
→ photo_checking
```
---
## 13.4 支付失败分支
```text
payment_pending
→ payment_failed
→ payment_pending / cancelled
```
---
## 13.5 预览不满意分支
```text
waiting_preview_confirm
→ template_selecting / info_filling / preview_generating
```
---
## 13.6 成品修改分支
```text
waiting_user_confirm
→ revision_requested
→ revising
→ final_generating / video_rendering / manual_review
→ waiting_user_confirm
```
---
# 14. 核心数据表设计
## 14.1 users
```text
id
nickname
phone
email
wechat_openid
avatar
status
created_at
updated_at
```
---
## 14.2 projects
```text
id
user_id
title
life_theme_id
package_id
style_id
output_type
status
payment_status
total_duration
image_count
video_url
cover_asset_id
allow_public_case
created_at
updated_at
completed_at
```
---
## 14.3 orders
```text
id
user_id
project_id
package_id
amount
pay_status
pay_method
transaction_id
refund_status
created_at
paid_at
```
---
## 14.4 life_themes
```text
id
code
name
description
cover_asset_id
person_schema
status
sort_order
```
`person_schema` 示例:
```json
{
"type": "couple",
"roles": ["person_a", "person_b"],
"min_photos_each": 3,
"max_photos_each": 8
}
```
---
## 14.5 person_profiles
```text
id
project_id
role
name
gender_label
age_group
appearance_summary
reference_asset_ids
anchor_asset_id
quality_score
status
created_at
```
---
## 14.6 assets
```text
id
user_id
project_id
asset_type
file_path
file_url
mime_type
width
height
duration
size
hash
visibility
status
created_at
```
asset_type
```text
upload_photo
preview_image
final_image
audio
subtitle
video
cover
case_asset
```
---
## 14.7 world_templates
```text
id
code
name
category
description
cover_asset_id
prompt_base
costume_rules
scene_rules
style_rules
negative_rules
supported_theme_ids
supported_style_ids
is_premium
status
sort_order
```
---
## 14.8 scene_templates
```text
id
world_id
code
name
description
cover_asset_id
scene_prompt
composition_rules
lighting_rules
effect_type
recommended_shot_count
is_premium
status
sort_order
```
---
## 14.9 shot_templates
```text
id
scene_id
code
name
shot_type
camera_angle
composition
prompt_rule
duration
effect_type
status
sort_order
```
---
## 14.10 project_worlds
```text
id
project_id
world_id
sort_order
```
---
## 14.11 project_scenes
```text
id
project_id
world_id
scene_id
sort_order
```
---
## 14.12 shot_plans
```text
id
project_id
world_id
scene_id
shot_template_id
title
description
prompt_text
negative_prompt
duration
sort_order
status
```
---
## 14.13 render_tasks
```text
id
project_id
task_type
provider_id
status
input_json
input_hash
output_asset_id
provider_request_id
retry_count
max_retry
cost_estimate
cost_actual
error_code
error_message
created_at
started_at
finished_at
```
---
## 14.14 revision_requests
```text
id
project_id
user_id
revision_type
request_text
status
remaining_count_before
handled_by
created_at
updated_at
```
---
## 14.15 authorizations
```text
id
user_id
project_id
authorization_type
content
ip
user_agent
confirmed_at
```
authorization_type
```text
photo_usage
public_case
minor_guardian
privacy_policy
terms
```
---
## 14.16 provider_logs
```text
id
provider_id
project_id
task_id
request_payload
response_payload
status
cost
latency_ms
created_at
```
---
# 15. AI 生成流水线设计
## 15.1 照片输入处理
```text
用户上传原图
→ 去 EXIF
→ 生成缩略图
→ 存储原图
→ 人脸检测
→ 清晰度评分
→ 角色归属确认
→ 合格图进入人物档案
```
必须去 EXIF,避免暴露用户位置信息。
---
## 15.2 人物档案生成
每个人生成:
```text
外貌摘要
气质描述
发型描述
脸型描述
五官特征
参考图列表
主锚点图
禁用变化点
```
示例:
```text
person_a:
30岁左右男性,短黑发,脸型偏长,五官清晰,气质沉稳,不要改变发际线,不要变成欧美脸。
```
---
## 15.3 创作方案生成
输入:
```text
人生主题
套餐
风格
世界观
场景
人物档案
定制信息
```
输出:
```text
作品标题
世界顺序
场景顺序
镜头计划
旁白
字幕
片头
片尾
总时长
预计图片数
预计视频片段数
```
---
## 15.4 Prompt 生成
Prompt 必须分层组合:
```text
人物层
主题层
世界观层
场景层
镜头层
风格层
质量层
限制层
```
最终 Prompt 结构:
```text
人物描述
+ 关系描述
+ 世界观设定
+ 场景设定
+ 镜头构图
+ 光影氛围
+ 视觉风格
+ 质量要求
+ 禁止项
```
---
## 15.5 预览图生成
预览图规则:
```text
数量少
加水印
低清或中清
只生成关键场景
用于确认人物和风格
```
不建议预览阶段生成完整视频。
---
## 15.6 正式图生成
正式图规则:
```text
高质量图像模型
高质量档
按镜头生成
每张图记录 Prompt
每张图记录 Provider
每张图记录版本
失败可重试
```
---
## 15.7 图像质检
自动检测:
```text
人脸是否明显崩坏
男女是否混脸
是否不像本人
是否多出第三人
是否手部异常
是否服装跑偏
是否场景错误
是否文字乱入
是否敏感内容
```
处理:
```text
合格 → 入选
轻微问题 → 人工复核
严重问题 → 自动重生
连续失败 → 转人工
```
---
## 15.8 音频生成
音频类型:
```text
旁白
祝福语
誓言
片头语
片尾语
```
TTS 参数:
```text
voice
speed
emotion
tone
format
```
---
## 15.9 视频合成
第一版以 FFmpeg 为核心:
```text
图片转视频
推拉镜头
转场
字幕
BGM
旁白
片头片尾
封面
导出 MP4
```
视频动态分级:
```text
L1:静态图片 + 运镜
L2:图片 + 粒子 / 花瓣 / 光效
L3:关键镜头图生视频
L4:高级动态视频
```
第一阶段推荐:
```text
80% L1
15% L2
5% L3
```
不要第一版就全量 AI 视频化。
---
# 16. 质量控制标准
## 16.1 照片质量标准
合格要求:
```text
人脸清晰
无遮挡
不过度美颜
光照正常
分辨率足够
主体明确
```
---
## 16.2 人像一致性标准
成品应满足:
```text
同一个人在不同场景中五官稳定
男女不混脸
年龄不严重漂移
气质不严重偏离
发型可适配世界,但不能完全换人
```
---
## 16.3 风格一致性标准
同一个项目内:
```text
画风统一
色调统一
人物服饰符合世界设定
镜头节奏一致
字幕风格一致
```
---
## 16.4 视频交付标准
```text
视频能正常播放
无明显黑屏
无音画错位
字幕不出框
BGM 音量不过大
旁白清晰
封面正常
分辨率符合套餐
```
---
# 17. 稳定性设计
## 17.1 队列隔离
不同任务用不同队列:
```text
photo_check_queue
text_queue
image_queue
video_queue
audio_queue
ffmpeg_queue
qc_queue
```
避免视频任务堵住图片任务。
---
## 17.2 并发限制
按用户、项目、Provider 控制:
```text
每用户同时最多 1-2 个正式生成项目
每项目同时最多 N 个图片任务
每 Provider 设置并发上限
```
---
## 17.3 重试策略
每个任务:
```text
默认重试 2-3 次
失败记录原因
连续失败转人工
重试不得重复扣用户额度
```
---
## 17.4 幂等设计
同一个任务用:
```text
project_id + task_type + input_hash
```
作为幂等 key。
如果重复提交:
```text
已有成功结果 → 直接返回
已有运行任务 → 返回当前任务
失败任务 → 允许按规则重试
```
---
## 17.5 成本监控
必须记录:
```text
每个任务预计成本
每个任务实际成本
每个项目总成本
每个用户总成本
每天 Provider 成本
```
---
# 18. 隐私、安全、合规设计
## 18.1 用户照片隐私
必须做到:
```text
默认私密
公开案例需单独授权
支持用户删除作品
后台敏感操作留日志
下载链接有有效期
原图不直接暴露公网
```
---
## 18.2 未成年人内容
涉及:
```text
宝宝百日
儿童成长
亲子纪念
家庭全家福
```
必须增加:
```text
监护人授权确认
禁止公开展示默认关闭
后台审核更严格
```
---
## 18.3 防滥用
禁止:
```text
上传未经授权的他人照片
生成侮辱性内容
生成色情内容
生成政治人物冒充内容
生成名人商业冒用内容
生成违法内容
```
---
## 18.4 音乐版权
BGM 必须来自:
```text
平台自有授权音乐
可商用音乐库
用户自己上传且承诺有授权
```
每首音乐记录:
```text
source
license_type
license_file
usage_scope
```
---
# 19. MVP 范围
## 19.1 MVP 必须做
```text
用户注册登录
首页案例展示
创建项目
主题选择
套餐选择
风格选择
世界选择
场景选择
照片上传
授权确认
照片质检
人物档案
定制信息
创作方案
支付/额度锁定
预览图生成
正式图生成
简单视频合成
成品下载
修改申请
后台项目管理
后台模板管理
后台任务管理
后台案例管理
AI Provider 管理
```
---
## 19.2 MVP 暂缓
```text
复杂分销
多商户
自动发布短视频
完整 App
真人语音克隆
复杂图生视频批量化
高级会员体系
全自动退款
企业 API 开放平台
```
---
# 20. 开发阶段规划
## 第 1 阶段:基础框架
```text
Node.js + NestJS 项目
MySQL
Redis
BullMQ
MinIO
uni-app 用户端
Geeker-Admin 后台
登录注册
文件上传
基础项目表
```
---
## 第 2 阶段:模板系统
```text
人生主题
套餐
视觉风格
世界观
场景
镜头
文案
音乐
```
---
## 第 3 阶段:项目创建流程
```text
创建项目
选择主题
选择套餐
选择风格
选择世界
选择场景
上传照片
授权确认
填写定制信息
```
---
## 第 4 阶段:AI 生成流程
```text
照片质检
人物档案
创作方案
Prompt 生成
预览图
正式图
图片质检
```
---
## 第 5 阶段:视频合成
```text
图片排序
字幕生成
TTS
BGM
FFmpeg 合成
封面生成
MP4 导出
```
---
## 第 6 阶段:商业闭环
```text
订单支付
额度冻结
成本记录
成品下载
修改申请
人工审核
案例授权
```
---
## 第 7 阶段:稳定性增强
```text
任务幂等
失败重试
Provider 切换
成本看板
错误告警
素材清理
隐私删除
日志审计
```
---
# 21. Codex 开发拆解方向
后续可以按下面顺序交给 Codex
```text
任务 1:初始化 NestJS 后端项目
任务 2:设计 MySQL 表结构和 Prisma/TypeORM 模型
任务 3:实现用户登录注册
任务 4:实现文件上传到 MinIO
任务 5:实现项目创建流程 API
任务 6:实现模板管理 API
任务 7:接入 Geeker-Admin 后台页面
任务 8:实现 uni-app 用户端页面
任务 9:实现 BullMQ 任务队列
任务 10:实现 AI Provider 抽象层
任务 11:实现照片质检 Worker
任务 12:实现创作方案生成
任务 13:实现图片生成任务
任务 14:实现图片质检任务
任务 15:实现 TTS 和字幕任务
任务 16:实现 FFmpeg 视频合成
任务 17:实现订单和额度系统
任务 18:实现修改申请和人工审核
任务 19:实现案例展示和授权公开
任务 20:实现日志、成本、告警、清理
```
每个任务都要写:
```text
目标
输入
输出
涉及文件
涉及表
涉及接口
验收标准
注意事项
```
---
# 22. 最终审核结论
V2 比 V1 更适合真实落地,核心修正是:
```text
1. 从婚礼工具升级成多人生主题平台
2. 修正用户流程顺序
3. 加入支付 / 额度 / 成本锁定
4. 加入肖像授权和隐私体系
5. 加入内容审核
6. 加入任务幂等和失败恢复
7. 加入 Provider 可替换设计
8. 避免绑定单一视频模型
9. 增强照片质检和人物档案
10. 明确 MVP 边界和开发阶段
```
建议第一版不要把所有人生主题都上线,只上线:
```text
结婚纪念
恋爱纪念
银婚金婚
情侣写真
个人形象定制
```
其它主题先在后台模板体系里预留,不在前端主推。
---
# 23. V2 开发主线建议
按以下优先级执行:
```text
先做能跑通的闭环
再做生成质量
再做商业支付
再做后台运营
再做稳定性和成本控制
最后做多主题扩展
```
第一版真正验收目标:
```text
用户注册登录
→ 创建项目
→ 选择主题/套餐/风格/世界/场景
→ 上传照片
→ 照片质检
→ 生成创作方案
→ 支付/额度确认
→ 生成预览
→ 正式生成图
→ 合成视频
→ 下载成品
```
只要这条链路稳定跑通,系统 B 就具备商业试单能力。