Initial AI manga platform
This commit is contained in:
Executable
+96
@@ -0,0 +1,96 @@
|
||||
# 00_上下文难点清单_已接入设计
|
||||
|
||||
## 1. 文档目的
|
||||
|
||||
本文件把前面讨论过的系统 A 关键难点全部列出来,并标明已经接入哪些文档和模块,避免后续开发时遗漏。
|
||||
|
||||
---
|
||||
|
||||
# 2. 已讨论难点总表
|
||||
|
||||
| 难点 | 风险 | 已接入设计位置 |
|
||||
|---|---|---|
|
||||
| AI 原创小说质量不稳定 | 剧情平淡、逻辑断裂、人物前后矛盾 | 13、12、09、10 |
|
||||
| 上传小说版权风险 | 未授权改编、商业发布侵权 | 17、02、06 |
|
||||
| 小说不能直接转漫剧 | 心理描写多、画面不可视化 | 13、14、09 |
|
||||
| 角色一致性 | 变脸、换发型、换年龄、男女混脸 | 11、05、09、15 |
|
||||
| 长篇剧情记忆 | 30-100 集后剧情忘记、伏笔丢失 | 12、05、09 |
|
||||
| 分集节奏差 | 不像短视频、开头不抓人、结尾无钩子 | 13、14、10 |
|
||||
| 分镜质量差 | 画面太抽象、单镜头动作太多、不可生成 | 14、13、10 |
|
||||
| 画风漂移 | 第 1 集韩漫,第 2 集变写实 | 10、11、09 |
|
||||
| 图片生成成本高 | 批量生成费用失控 | 16、15、09 |
|
||||
| AI 视频成本高且不稳定 | 每镜头视频化成本高、动作不稳 | 14、16 |
|
||||
| 配音字幕不同步 | 成品廉价、视频节奏差 | 14、09、20 |
|
||||
| 批量生成失败恢复 | 中途失败导致项目废掉 | 15、05 |
|
||||
| 人工审核缺失 | 崩图、违规内容、剧情错误直接交付 | 08、15、17 |
|
||||
| 数据反馈缺失 | 不知道哪个题材/封面/剧情有效 | 18、05 |
|
||||
| 与系统 B 重复开发 | 两套系统无法合并,成本高 | 22、04 |
|
||||
| Provider 写死 | 模型变化后系统重构 | 09、04、21 |
|
||||
| 最高模型成本 | 调试阶段费用暴涨 | 16、09、21 |
|
||||
| Codex 一次性开发失控 | 生成大量半成品代码 | 21 |
|
||||
| 长篇连载续写 | 角色成长线、伏笔、冲突线丢失 | 12 |
|
||||
| 特效策略不清楚 | 不知道哪些用 FFmpeg、哪些用 AI 视频 | 14 |
|
||||
| 封面标题弱 | 发布后点击率低 | 18、13 |
|
||||
| 敏感内容审核 | 文本、图片、视频违规 | 17 |
|
||||
| 音乐版权 | 商业交付 BGM 侵权 | 17、14 |
|
||||
| 小说导入格式 | txt/docx/pdf/md 解析不稳 | 13、06 |
|
||||
| 章节识别 | 章节标题混乱、广告水印 | 13、05 |
|
||||
| 多角色场景 | 角色混乱,生成质量下降 | 11、14 |
|
||||
| 打斗/复杂动作 | 连续动作不可控 | 14、13 |
|
||||
| 全自动无人值守 | 质量和合规风险高 | 08、15、17 |
|
||||
|
||||
---
|
||||
|
||||
# 3. 本版新增重点
|
||||
|
||||
相比 V1,本版新增或强化:
|
||||
|
||||
```text
|
||||
角色一致性专项设计
|
||||
长篇连载记忆专项设计
|
||||
小说上传解析质量标准
|
||||
分镜镜头质量标准
|
||||
视频合成和特效分级
|
||||
批量生成和数据反馈
|
||||
任务幂等和失败恢复
|
||||
成本/额度/重试控制
|
||||
版权授权和内容审核
|
||||
系统 A/B 合并架构
|
||||
Codex 分阶段开发规则
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 4. 第一阶段不追求的事情
|
||||
|
||||
为了减少返工,第一阶段明确不做:
|
||||
|
||||
```text
|
||||
一键生成 100 集全自动发布
|
||||
每个镜头都 AI 视频化
|
||||
复杂多人打斗连续动画
|
||||
自动保证爆款
|
||||
自动绕过版权问题
|
||||
全无人审核
|
||||
多商户分销
|
||||
小说收费阅读平台
|
||||
IP 交易平台
|
||||
```
|
||||
|
||||
这些后续可以做,但不能塞进第一阶段 MVP。
|
||||
|
||||
---
|
||||
|
||||
# 5. 正确开发原则
|
||||
|
||||
```text
|
||||
先让 1 部小说生成 3 集可用漫剧
|
||||
再让 1 部小说生成 10 集
|
||||
再做 20-100 集长篇连载
|
||||
先用图片 + FFmpeg 做视频
|
||||
再只在爆点镜头接 AI 视频
|
||||
先人工审核
|
||||
再逐步提高自动化比例
|
||||
先做 Provider mock
|
||||
再接最高模型
|
||||
```
|
||||
Executable
+446
@@ -0,0 +1,446 @@
|
||||
# 01_系统A总需求文档_v2_生产级基线
|
||||
|
||||
# 系统 A:原创小说 / 上传小说 → 韩漫 / 漫剧生成系统
|
||||
|
||||
## 1. 项目定位
|
||||
|
||||
系统 A 是一套 AI 内容生产系统,目标是将:
|
||||
|
||||
```text
|
||||
AI 原创小说
|
||||
用户上传小说
|
||||
后台导入授权小说
|
||||
```
|
||||
|
||||
自动转换成:
|
||||
|
||||
```text
|
||||
韩漫图集
|
||||
漫画分镜
|
||||
短视频漫剧
|
||||
连载剧集
|
||||
封面
|
||||
标题
|
||||
配音
|
||||
字幕
|
||||
BGM
|
||||
发布素材包
|
||||
```
|
||||
|
||||
系统 A 不只是“生成几张图”,而是一个从文本故事到视觉内容的完整生产流水线。
|
||||
|
||||
---
|
||||
|
||||
## 2. 两种核心输入模式
|
||||
|
||||
### 2.1 AI 原创小说模式
|
||||
|
||||
用户选择题材和要求,系统自动生成完整故事。
|
||||
|
||||
用户输入:
|
||||
|
||||
```text
|
||||
题材
|
||||
目标受众
|
||||
主角设定
|
||||
故事情绪
|
||||
爽点类型
|
||||
预计章节数
|
||||
预计集数
|
||||
画风
|
||||
输出格式
|
||||
```
|
||||
|
||||
系统输出:
|
||||
|
||||
```text
|
||||
故事创意
|
||||
故事大纲
|
||||
故事圣经
|
||||
角色圣经
|
||||
章节正文
|
||||
分集计划
|
||||
单集脚本
|
||||
分镜脚本
|
||||
图片和视频
|
||||
```
|
||||
|
||||
适合:
|
||||
|
||||
```text
|
||||
批量测试题材
|
||||
快速孵化原创 IP
|
||||
规避使用他人小说的版权风险
|
||||
做内容号初期素材
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2.2 上传小说改编模式
|
||||
|
||||
用户上传自己拥有合法权利的小说。
|
||||
|
||||
支持输入:
|
||||
|
||||
```text
|
||||
txt
|
||||
docx
|
||||
md
|
||||
pdf
|
||||
粘贴文本
|
||||
章节压缩包,后续
|
||||
后台批量导入,后续
|
||||
```
|
||||
|
||||
系统处理:
|
||||
|
||||
```text
|
||||
文件解析
|
||||
文本清洗
|
||||
章节识别
|
||||
版权确认
|
||||
故事结构分析
|
||||
角色提取
|
||||
章节改编
|
||||
分集生成
|
||||
分镜生成
|
||||
漫剧生成
|
||||
```
|
||||
|
||||
适合:
|
||||
|
||||
```text
|
||||
小说作者改编自己的作品
|
||||
工作室改编已授权小说
|
||||
内部测试小说内容
|
||||
公版作品二次创作,需用户确认权利
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 核心产品价值
|
||||
|
||||
```text
|
||||
降低小说漫改成本
|
||||
缩短从文本到视频的周期
|
||||
保持角色和画风统一
|
||||
支持连续剧集生产
|
||||
支持封面标题生成
|
||||
支持短视频平台内容测试
|
||||
支持后续 IP 沉淀
|
||||
支持批量内容生产
|
||||
支持人机协同审核
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 第一阶段主打题材
|
||||
|
||||
第一阶段选择容易视觉化、角色少、冲突强的题材:
|
||||
|
||||
```text
|
||||
都市重生
|
||||
复仇逆袭
|
||||
霸总甜宠
|
||||
真假千金
|
||||
豪门虐恋
|
||||
校园暗恋
|
||||
赘婿打脸
|
||||
神医下山
|
||||
古风重生
|
||||
修仙爽文
|
||||
```
|
||||
|
||||
暂不主打:
|
||||
|
||||
```text
|
||||
复杂机甲
|
||||
大规模战争
|
||||
超多角色权谋
|
||||
硬科幻
|
||||
复杂群像
|
||||
连续多人打斗
|
||||
超长设定流玄幻
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 第一阶段 MVP 目标
|
||||
|
||||
MVP 不追求全自动百集,而是跑通两条闭环。
|
||||
|
||||
### 5.1 AI 原创小说闭环
|
||||
|
||||
```text
|
||||
输入题材
|
||||
→ 生成故事创意
|
||||
→ 生成故事圣经
|
||||
→ 生成角色圣经
|
||||
→ 生成 3 集分集计划
|
||||
→ 生成每集分镜
|
||||
→ 生成每镜头图片
|
||||
→ 自动配音字幕
|
||||
→ 合成 3 个 MP4
|
||||
```
|
||||
|
||||
### 5.2 上传小说闭环
|
||||
|
||||
```text
|
||||
上传小说
|
||||
→ 版权确认
|
||||
→ 解析章节
|
||||
→ 提取角色
|
||||
→ 生成故事圣经
|
||||
→ 生成 1-3 集分集计划
|
||||
→ 生成分镜
|
||||
→ 合成 MP4
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 长期生产级目标
|
||||
|
||||
```text
|
||||
支持 20-100 集连续剧集
|
||||
支持长篇剧情记忆
|
||||
支持角色跨集一致
|
||||
支持批量队列生成
|
||||
支持人工审核和返工
|
||||
支持分集封面标题
|
||||
支持平台数据反馈
|
||||
支持多模型切换
|
||||
支持成本统计和额度控制
|
||||
支持系统 A 与系统 B 合并
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 系统核心对象
|
||||
|
||||
```text
|
||||
NovelProject:小说漫剧项目
|
||||
NovelSource:小说来源
|
||||
NovelChapter:章节
|
||||
StoryBible:故事圣经
|
||||
WorldBible:世界观圣经
|
||||
CharacterBible:角色圣经
|
||||
CharacterAsset:角色素材
|
||||
Episode:分集
|
||||
EpisodeScript:单集脚本
|
||||
StoryboardShot:分镜镜头
|
||||
ShotImage:镜头图片
|
||||
AudioAsset:音频
|
||||
SubtitleAsset:字幕
|
||||
VideoAsset:视频
|
||||
RenderTask:生成任务
|
||||
PlotMemory:剧情记忆
|
||||
CharacterMemory:角色记忆
|
||||
ContinuityCheck:连续性检查
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 故事圣经
|
||||
|
||||
故事圣经用于保持全项目一致性。
|
||||
|
||||
必须包含:
|
||||
|
||||
```text
|
||||
故事一句话简介
|
||||
题材
|
||||
核心卖点
|
||||
主线目标
|
||||
核心冲突
|
||||
主要人物
|
||||
人物关系
|
||||
世界规则
|
||||
时间线
|
||||
重要伏笔
|
||||
禁用设定
|
||||
结局方向
|
||||
风格基调
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. 角色圣经
|
||||
|
||||
角色圣经用于保持角色稳定。
|
||||
|
||||
必须包含:
|
||||
|
||||
```text
|
||||
姓名
|
||||
角色定位
|
||||
年龄段
|
||||
身份
|
||||
外貌
|
||||
发型
|
||||
服装规则
|
||||
性格
|
||||
说话风格
|
||||
人物关系
|
||||
人物弧光
|
||||
参考图
|
||||
锚点图
|
||||
表情图
|
||||
负面约束
|
||||
出场记录
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. 长篇记忆
|
||||
|
||||
系统必须支持长篇连载记忆:
|
||||
|
||||
```text
|
||||
每章摘要
|
||||
每集摘要
|
||||
已发生事件
|
||||
未解决冲突
|
||||
伏笔
|
||||
人物关系变化
|
||||
角色成长线
|
||||
道具状态
|
||||
场景状态
|
||||
下一集衔接点
|
||||
```
|
||||
|
||||
长篇记忆不是后期补丁,第一版数据库和流程就要预留。
|
||||
|
||||
---
|
||||
|
||||
## 11. 改编原则
|
||||
|
||||
小说改编为漫剧时,不是照抄原文,而是转为:
|
||||
|
||||
```text
|
||||
画面
|
||||
动作
|
||||
台词
|
||||
旁白
|
||||
冲突
|
||||
转折
|
||||
钩子
|
||||
镜头
|
||||
特效
|
||||
```
|
||||
|
||||
每集结构建议:
|
||||
|
||||
```text
|
||||
0-3 秒:强冲突
|
||||
3-15 秒:交代矛盾
|
||||
15-40 秒:主角行动
|
||||
40-55 秒:反击/转折
|
||||
结尾:悬念钩子
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 12. 视频形态
|
||||
|
||||
第一阶段采用:
|
||||
|
||||
```text
|
||||
韩漫图片
|
||||
+ FFmpeg 运镜
|
||||
+ 配音
|
||||
+ 字幕
|
||||
+ BGM
|
||||
+ 闪白/震屏/转场
|
||||
= 短视频漫剧
|
||||
```
|
||||
|
||||
高级阶段:
|
||||
|
||||
```text
|
||||
关键爆点镜头接 AI 图生视频
|
||||
```
|
||||
|
||||
不建议第一版每个镜头都 AI 视频化。
|
||||
|
||||
---
|
||||
|
||||
## 13. 人工审核策略
|
||||
|
||||
系统 A 必须支持人机协同,不做完全无人值守。
|
||||
|
||||
需要审核:
|
||||
|
||||
```text
|
||||
上传小说版权
|
||||
故事圣经
|
||||
角色锚点图
|
||||
分集计划
|
||||
关键分镜
|
||||
图片质量
|
||||
视频成品
|
||||
内容合规
|
||||
用户修改申请
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 14. 与系统 B 的关系
|
||||
|
||||
系统 A 独立开发,但与系统 B 共享:
|
||||
|
||||
```text
|
||||
用户体系
|
||||
订单体系
|
||||
额度体系
|
||||
素材系统
|
||||
AI Provider
|
||||
任务队列
|
||||
视频合成
|
||||
内容审核
|
||||
后台框架
|
||||
日志监控
|
||||
部署运维
|
||||
```
|
||||
|
||||
系统 A 独有:
|
||||
|
||||
```text
|
||||
小说管理
|
||||
故事圣经
|
||||
角色圣经
|
||||
分集计划
|
||||
分镜脚本
|
||||
长篇记忆
|
||||
连载发布
|
||||
剧情数据反馈
|
||||
```
|
||||
|
||||
系统 B 独有:
|
||||
|
||||
```text
|
||||
真人照片
|
||||
人像档案
|
||||
人生主题
|
||||
写真模板
|
||||
纪念视频模板
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 15. 成功标准
|
||||
|
||||
系统 A MVP 验收标准:
|
||||
|
||||
```text
|
||||
能 AI 原创生成一篇短篇小说
|
||||
能上传一篇小说并解析章节
|
||||
能生成故事圣经和角色圣经
|
||||
能生成 3 个主要角色图
|
||||
能生成 3 集分集计划
|
||||
能生成每集 10-20 个分镜
|
||||
能生成分镜图片
|
||||
能生成配音字幕
|
||||
能合成 MP4
|
||||
后台可查看任务并重试失败
|
||||
用户可下载成品
|
||||
```
|
||||
Executable
+300
@@ -0,0 +1,300 @@
|
||||
# 02_业务流程_状态流转_权限设计
|
||||
|
||||
## 1. 用户完整流程
|
||||
|
||||
```text
|
||||
游客访问首页
|
||||
→ 查看案例
|
||||
→ 登录注册
|
||||
→ 创建项目
|
||||
→ 选择输入模式
|
||||
→ AI 原创小说 / 上传小说
|
||||
→ 版权或原创声明
|
||||
→ 文本生成 / 文本解析
|
||||
→ 故事圣经生成
|
||||
→ 用户确认故事圣经
|
||||
→ 角色圣经生成
|
||||
→ 角色参考图生成
|
||||
→ 用户确认角色锚点
|
||||
→ 分集计划生成
|
||||
→ 用户确认分集
|
||||
→ 单集脚本生成
|
||||
→ 分镜生成
|
||||
→ 用户确认分镜
|
||||
→ 支付 / 冻结额度
|
||||
→ 生成预览图
|
||||
→ 用户确认预览
|
||||
→ 正式生成图片
|
||||
→ 图片质检
|
||||
→ 音频生成
|
||||
→ 字幕生成
|
||||
→ 视频合成
|
||||
→ 最终质检
|
||||
→ 人工审核
|
||||
→ 用户确认
|
||||
→ 下载交付
|
||||
→ 项目归档
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. AI 原创小说流程
|
||||
|
||||
```text
|
||||
创建项目
|
||||
→ 选择 AI 原创
|
||||
→ 选择题材
|
||||
→ 填写故事偏好
|
||||
→ 生成故事创意
|
||||
→ 生成故事大纲
|
||||
→ 生成章节大纲
|
||||
→ 生成正文
|
||||
→ 自检
|
||||
→ 故事圣经
|
||||
```
|
||||
|
||||
自检包括:
|
||||
|
||||
```text
|
||||
角色名是否一致
|
||||
主线是否明确
|
||||
冲突是否够强
|
||||
是否适合视觉化
|
||||
是否有敏感内容
|
||||
是否有明显抄袭风险
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 上传小说流程
|
||||
|
||||
```text
|
||||
创建项目
|
||||
→ 选择上传小说
|
||||
→ 上传文件 / 粘贴文本
|
||||
→ 选择来源类型
|
||||
→ 勾选版权授权
|
||||
→ 文本提取
|
||||
→ 文本清洗
|
||||
→ 章节识别
|
||||
→ 角色提取
|
||||
→ 故事分析
|
||||
→ 生成故事圣经
|
||||
```
|
||||
|
||||
来源类型:
|
||||
|
||||
```text
|
||||
author_self:我是作者
|
||||
licensed:我已获得授权
|
||||
public_domain:公版文本
|
||||
internal_test:仅内部测试
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 项目主状态
|
||||
|
||||
```text
|
||||
draft
|
||||
source_selecting
|
||||
novel_generating
|
||||
novel_uploaded
|
||||
copyright_pending
|
||||
copyright_confirmed
|
||||
text_parsing
|
||||
text_parse_failed
|
||||
story_analyzing
|
||||
story_bible_generating
|
||||
waiting_story_confirm
|
||||
story_confirmed
|
||||
character_extracting
|
||||
character_generating
|
||||
character_image_generating
|
||||
waiting_character_confirm
|
||||
character_confirmed
|
||||
episode_planning
|
||||
waiting_episode_confirm
|
||||
episode_confirmed
|
||||
script_generating
|
||||
storyboard_generating
|
||||
waiting_storyboard_confirm
|
||||
storyboard_confirmed
|
||||
payment_pending
|
||||
payment_paid
|
||||
preview_generating
|
||||
waiting_preview_confirm
|
||||
preview_confirmed
|
||||
final_image_generating
|
||||
image_qc
|
||||
audio_generating
|
||||
subtitle_generating
|
||||
video_rendering
|
||||
final_qc
|
||||
manual_review
|
||||
waiting_user_confirm
|
||||
revision_requested
|
||||
revising
|
||||
completed
|
||||
failed
|
||||
cancelled
|
||||
archived
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 主流程状态流转
|
||||
|
||||
```text
|
||||
draft
|
||||
→ source_selecting
|
||||
→ novel_generating / novel_uploaded
|
||||
→ copyright_pending
|
||||
→ copyright_confirmed
|
||||
→ text_parsing
|
||||
→ story_analyzing
|
||||
→ story_bible_generating
|
||||
→ waiting_story_confirm
|
||||
→ story_confirmed
|
||||
→ character_extracting
|
||||
→ character_generating
|
||||
→ character_image_generating
|
||||
→ waiting_character_confirm
|
||||
→ character_confirmed
|
||||
→ episode_planning
|
||||
→ waiting_episode_confirm
|
||||
→ episode_confirmed
|
||||
→ script_generating
|
||||
→ storyboard_generating
|
||||
→ waiting_storyboard_confirm
|
||||
→ storyboard_confirmed
|
||||
→ payment_pending
|
||||
→ payment_paid
|
||||
→ preview_generating
|
||||
→ waiting_preview_confirm
|
||||
→ preview_confirmed
|
||||
→ final_image_generating
|
||||
→ image_qc
|
||||
→ audio_generating
|
||||
→ subtitle_generating
|
||||
→ video_rendering
|
||||
→ final_qc
|
||||
→ manual_review
|
||||
→ waiting_user_confirm
|
||||
→ completed
|
||||
→ archived
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 失败分支
|
||||
|
||||
```text
|
||||
任意生成状态
|
||||
→ failed
|
||||
→ 后台重试 / 转人工 / 取消 / 退款或返还额度
|
||||
```
|
||||
|
||||
任务失败不应该让整个项目不可恢复。
|
||||
|
||||
---
|
||||
|
||||
## 7. 修改分支
|
||||
|
||||
```text
|
||||
waiting_story_confirm
|
||||
→ 编辑故事圣经
|
||||
→ story_bible_generating / waiting_story_confirm
|
||||
|
||||
waiting_character_confirm
|
||||
→ 重生角色图 / 编辑角色
|
||||
→ waiting_character_confirm
|
||||
|
||||
waiting_storyboard_confirm
|
||||
→ 编辑分镜 / 重生分镜
|
||||
→ waiting_storyboard_confirm
|
||||
|
||||
waiting_user_confirm
|
||||
→ revision_requested
|
||||
→ revising
|
||||
→ final_image_generating / video_rendering / manual_review
|
||||
→ waiting_user_confirm
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 权限设计
|
||||
|
||||
### 游客
|
||||
|
||||
可访问:
|
||||
|
||||
```text
|
||||
首页
|
||||
案例
|
||||
套餐
|
||||
FAQ
|
||||
登录注册
|
||||
```
|
||||
|
||||
不可访问:
|
||||
|
||||
```text
|
||||
创建项目
|
||||
上传小说
|
||||
生成小说
|
||||
下载成品
|
||||
```
|
||||
|
||||
### 登录用户
|
||||
|
||||
可访问:
|
||||
|
||||
```text
|
||||
创建项目
|
||||
上传小说
|
||||
AI 原创小说
|
||||
查看项目进度
|
||||
下载自己的成品
|
||||
申请修改
|
||||
删除自己的项目
|
||||
```
|
||||
|
||||
### 运营人员
|
||||
|
||||
可访问:
|
||||
|
||||
```text
|
||||
项目查看
|
||||
任务查看
|
||||
内容审核
|
||||
案例管理
|
||||
模板管理
|
||||
失败任务重试
|
||||
```
|
||||
|
||||
### 管理员
|
||||
|
||||
可访问:
|
||||
|
||||
```text
|
||||
所有功能
|
||||
AI Provider 配置
|
||||
成本配置
|
||||
系统配置
|
||||
权限配置
|
||||
日志审计
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. 操作约束
|
||||
|
||||
```text
|
||||
未确认版权,不能解析上传小说
|
||||
未确认角色锚点,不能批量生成正式图
|
||||
未确认分镜,不能正式生成
|
||||
未支付或未冻结额度,不能正式生成
|
||||
未通过审核,不能公开案例
|
||||
失败任务未处理,不能标记完成
|
||||
```
|
||||
Executable
+363
@@ -0,0 +1,363 @@
|
||||
# 03_功能清单_页面清单
|
||||
|
||||
## 1. 用户端功能清单
|
||||
|
||||
```text
|
||||
首页
|
||||
案例列表
|
||||
案例详情
|
||||
登录注册
|
||||
创建项目
|
||||
输入模式选择
|
||||
AI原创小说设置
|
||||
上传小说
|
||||
版权确认
|
||||
文本解析结果
|
||||
故事圣经确认
|
||||
角色圣经确认
|
||||
角色图确认
|
||||
分集计划确认
|
||||
单集脚本确认
|
||||
分镜确认
|
||||
支付/额度确认
|
||||
预览确认
|
||||
生成进度
|
||||
成品确认
|
||||
修改申请
|
||||
我的项目
|
||||
用户中心
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 首页
|
||||
|
||||
模块:
|
||||
|
||||
```text
|
||||
顶部 Banner
|
||||
AI 原创小说入口
|
||||
上传小说改编入口
|
||||
热门漫剧案例
|
||||
热门题材
|
||||
生成流程说明
|
||||
套餐说明
|
||||
常见问题
|
||||
开始制作按钮
|
||||
```
|
||||
|
||||
按钮:
|
||||
|
||||
```text
|
||||
AI 原创小说
|
||||
上传小说
|
||||
查看案例
|
||||
选择题材
|
||||
查看套餐
|
||||
开始制作
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. AI 原创小说设置页
|
||||
|
||||
字段:
|
||||
|
||||
```text
|
||||
题材
|
||||
主角性别
|
||||
主角身份
|
||||
主角性格
|
||||
女主/男主类型
|
||||
反派类型
|
||||
目标受众
|
||||
爽点类型
|
||||
情绪风格
|
||||
故事长度
|
||||
目标集数
|
||||
每集时长
|
||||
结局方向
|
||||
禁用内容
|
||||
```
|
||||
|
||||
按钮:
|
||||
|
||||
```text
|
||||
生成故事创意
|
||||
重新生成
|
||||
编辑创意
|
||||
确认创意
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 上传小说页
|
||||
|
||||
支持:
|
||||
|
||||
```text
|
||||
txt
|
||||
docx
|
||||
md
|
||||
pdf
|
||||
粘贴文本
|
||||
```
|
||||
|
||||
字段:
|
||||
|
||||
```text
|
||||
小说标题
|
||||
作者名
|
||||
来源类型
|
||||
文本语言
|
||||
是否连载中
|
||||
是否需要改名
|
||||
```
|
||||
|
||||
按钮:
|
||||
|
||||
```text
|
||||
上传文件
|
||||
粘贴文本
|
||||
确认上传
|
||||
进入版权确认
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 版权确认页
|
||||
|
||||
选项:
|
||||
|
||||
```text
|
||||
我是作者本人
|
||||
我已获得改编授权
|
||||
这是公版作品
|
||||
仅用于内部测试
|
||||
```
|
||||
|
||||
勾选:
|
||||
|
||||
```text
|
||||
我确认拥有该文本合法使用权
|
||||
我授权平台为本项目进行 AI 改编
|
||||
我理解未经授权不得商业发布
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 文本解析结果页
|
||||
|
||||
展示:
|
||||
|
||||
```text
|
||||
总字数
|
||||
章节数量
|
||||
章节列表
|
||||
疑似广告/水印
|
||||
主要角色候选
|
||||
场景候选
|
||||
敏感风险
|
||||
解析质量评分
|
||||
```
|
||||
|
||||
操作:
|
||||
|
||||
```text
|
||||
确认解析
|
||||
重新解析
|
||||
手动编辑章节
|
||||
删除无关文本
|
||||
返回重新上传
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 故事圣经确认页
|
||||
|
||||
展示:
|
||||
|
||||
```text
|
||||
故事标题
|
||||
一句话卖点
|
||||
主线
|
||||
核心冲突
|
||||
世界观
|
||||
人物关系
|
||||
爽点
|
||||
伏笔
|
||||
结局方向
|
||||
禁用规则
|
||||
```
|
||||
|
||||
操作:
|
||||
|
||||
```text
|
||||
确认
|
||||
编辑
|
||||
重新生成
|
||||
添加伏笔
|
||||
修改基调
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 角色圣经确认页
|
||||
|
||||
展示角色卡:
|
||||
|
||||
```text
|
||||
姓名
|
||||
角色定位
|
||||
身份
|
||||
年龄
|
||||
外貌
|
||||
发型
|
||||
服装
|
||||
性格
|
||||
关系
|
||||
说话风格
|
||||
角色弧光
|
||||
参考图
|
||||
锚点图
|
||||
```
|
||||
|
||||
操作:
|
||||
|
||||
```text
|
||||
编辑角色
|
||||
生成角色参考图
|
||||
重生角色图
|
||||
选择锚点图
|
||||
设置主角
|
||||
删除无关角色
|
||||
确认角色库
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. 分集计划页
|
||||
|
||||
展示:
|
||||
|
||||
```text
|
||||
第几集
|
||||
标题
|
||||
剧情摘要
|
||||
开头钩子
|
||||
中段冲突
|
||||
结尾悬念
|
||||
出场角色
|
||||
关联章节
|
||||
预计时长
|
||||
```
|
||||
|
||||
操作:
|
||||
|
||||
```text
|
||||
确认分集
|
||||
编辑分集
|
||||
重生单集
|
||||
调整顺序
|
||||
拆分/合并集数
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. 分镜确认页
|
||||
|
||||
展示每个镜头:
|
||||
|
||||
```text
|
||||
镜头号
|
||||
画面描述
|
||||
人物
|
||||
场景
|
||||
动作
|
||||
台词
|
||||
旁白
|
||||
镜头运动
|
||||
特效
|
||||
时长
|
||||
Prompt
|
||||
负面 Prompt
|
||||
生成状态
|
||||
```
|
||||
|
||||
操作:
|
||||
|
||||
```text
|
||||
编辑镜头
|
||||
新增镜头
|
||||
删除镜头
|
||||
调整顺序
|
||||
重生 Prompt
|
||||
生成预览图
|
||||
确认分镜
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 11. 生成进度页
|
||||
|
||||
节点:
|
||||
|
||||
```text
|
||||
故事分析
|
||||
角色生成
|
||||
分集生成
|
||||
分镜生成
|
||||
预览图
|
||||
正式图片
|
||||
图片质检
|
||||
音频
|
||||
字幕
|
||||
视频合成
|
||||
人工审核
|
||||
完成
|
||||
```
|
||||
|
||||
展示:
|
||||
|
||||
```text
|
||||
当前阶段
|
||||
进度百分比
|
||||
完成任务数
|
||||
失败任务数
|
||||
预计剩余
|
||||
失败原因
|
||||
联系客服
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 12. 后台功能清单
|
||||
|
||||
```text
|
||||
仪表盘
|
||||
用户管理
|
||||
项目管理
|
||||
小说源管理
|
||||
版权记录
|
||||
故事圣经管理
|
||||
角色库管理
|
||||
角色素材管理
|
||||
章节管理
|
||||
分集管理
|
||||
分镜管理
|
||||
任务管理
|
||||
素材管理
|
||||
内容审核
|
||||
案例管理
|
||||
题材模板管理
|
||||
风格模板管理
|
||||
Prompt模板管理
|
||||
视频模板管理
|
||||
音乐管理
|
||||
订单管理
|
||||
额度管理
|
||||
AI Provider管理
|
||||
成本日志
|
||||
系统配置
|
||||
操作日志
|
||||
```
|
||||
Executable
+201
@@ -0,0 +1,201 @@
|
||||
# 04_技术架构设计_模块拆分
|
||||
|
||||
## 1. 推荐技术栈
|
||||
|
||||
```text
|
||||
用户端:uni-app
|
||||
后台端:Geeker-Admin
|
||||
后端:Node.js + NestJS
|
||||
数据库:MySQL 8
|
||||
队列:Redis + BullMQ
|
||||
对象存储:MinIO
|
||||
视频合成:FFmpeg
|
||||
AI辅助:Python Worker 可选
|
||||
进程管理:PM2 / systemd
|
||||
反向代理:Nginx
|
||||
容器化:Docker 可选
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 总体架构
|
||||
|
||||
```text
|
||||
uni-app 用户端
|
||||
↓
|
||||
NestJS API Gateway
|
||||
↓
|
||||
业务服务层
|
||||
↓
|
||||
AI 编排层 / 任务队列层
|
||||
↓
|
||||
TextProvider / ImageProvider / VoiceProvider / VideoProvider / ModerationProvider
|
||||
↓
|
||||
MySQL / Redis / MinIO / FFmpeg
|
||||
↓
|
||||
Geeker-Admin 后台管理
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 后端模块
|
||||
|
||||
```text
|
||||
AuthModule
|
||||
UserModule
|
||||
ProjectModule
|
||||
NovelModule
|
||||
CopyrightModule
|
||||
TextParseModule
|
||||
StoryBibleModule
|
||||
WorldBibleModule
|
||||
CharacterModule
|
||||
CharacterAssetModule
|
||||
EpisodeModule
|
||||
ScriptModule
|
||||
StoryboardModule
|
||||
PromptModule
|
||||
AssetModule
|
||||
TaskModule
|
||||
ProviderModule
|
||||
ImageModule
|
||||
AudioModule
|
||||
SubtitleModule
|
||||
VideoModule
|
||||
OrderModule
|
||||
QuotaModule
|
||||
ReviewModule
|
||||
CaseModule
|
||||
AnalyticsModule
|
||||
SystemConfigModule
|
||||
LogModule
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 系统 A 独有模块
|
||||
|
||||
```text
|
||||
NovelModule:小说生成/上传/解析
|
||||
StoryBibleModule:故事圣经
|
||||
WorldBibleModule:世界观规则
|
||||
CharacterModule:角色圣经
|
||||
EpisodeModule:分集计划
|
||||
ScriptModule:单集脚本
|
||||
StoryboardModule:分镜
|
||||
PlotMemoryModule:长篇记忆
|
||||
ContinuityModule:连续性检查
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 与系统 B 共用模块
|
||||
|
||||
```text
|
||||
AuthModule
|
||||
UserModule
|
||||
OrderModule
|
||||
QuotaModule
|
||||
AssetModule
|
||||
TaskModule
|
||||
ProviderModule
|
||||
ImageModule
|
||||
AudioModule
|
||||
SubtitleModule
|
||||
VideoModule
|
||||
ReviewModule
|
||||
CaseModule
|
||||
AnalyticsModule
|
||||
SystemConfigModule
|
||||
LogModule
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. AI Provider 抽象
|
||||
|
||||
Provider 不允许写死模型。
|
||||
|
||||
```text
|
||||
TextProvider
|
||||
NovelProvider
|
||||
ImageProvider
|
||||
VideoProvider
|
||||
VoiceProvider
|
||||
ModerationProvider
|
||||
QualityCheckProvider
|
||||
FileParseProvider
|
||||
EmbeddingProvider
|
||||
```
|
||||
|
||||
每个 Provider 需要支持:
|
||||
|
||||
```text
|
||||
mock模式
|
||||
真实模式
|
||||
fallback
|
||||
限流
|
||||
成本记录
|
||||
失败重试
|
||||
请求日志
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. Worker 队列
|
||||
|
||||
```text
|
||||
novel_queue
|
||||
parse_queue
|
||||
story_queue
|
||||
character_queue
|
||||
script_queue
|
||||
storyboard_queue
|
||||
image_queue
|
||||
audio_queue
|
||||
subtitle_queue
|
||||
video_queue
|
||||
qc_queue
|
||||
review_queue
|
||||
analytics_queue
|
||||
```
|
||||
|
||||
不同队列隔离,避免视频合成堵住文本和图片任务。
|
||||
|
||||
---
|
||||
|
||||
## 8. 存储策略
|
||||
|
||||
```text
|
||||
原始小说文件:MinIO private bucket
|
||||
清洗文本:数据库 LONGTEXT + 备份文件
|
||||
角色参考图:MinIO private
|
||||
分镜图:MinIO private
|
||||
视频成品:MinIO private
|
||||
公开案例:单独 public 或 CDN bucket
|
||||
```
|
||||
|
||||
原始小说和用户素材默认私有。
|
||||
|
||||
---
|
||||
|
||||
## 9. 事件驱动
|
||||
|
||||
系统内部关键事件:
|
||||
|
||||
```text
|
||||
ProjectCreated
|
||||
NovelParsed
|
||||
StoryBibleConfirmed
|
||||
CharacterBibleConfirmed
|
||||
EpisodesConfirmed
|
||||
StoryboardConfirmed
|
||||
PaymentPaid
|
||||
PreviewConfirmed
|
||||
ImageGenerated
|
||||
VideoRendered
|
||||
ProjectCompleted
|
||||
RevisionRequested
|
||||
```
|
||||
|
||||
可用于后续扩展数据统计、通知、运营分析。
|
||||
Executable
+489
@@ -0,0 +1,489 @@
|
||||
# 05_数据库表结构设计
|
||||
|
||||
## 1. 核心表清单
|
||||
|
||||
```text
|
||||
users
|
||||
projects
|
||||
novel_sources
|
||||
novel_chapters
|
||||
copyright_records
|
||||
story_bibles
|
||||
world_bibles
|
||||
characters
|
||||
character_images
|
||||
character_memories
|
||||
episodes
|
||||
episode_scripts
|
||||
storyboard_shots
|
||||
shot_images
|
||||
plot_memories
|
||||
plot_threads
|
||||
continuity_checks
|
||||
assets
|
||||
render_tasks
|
||||
provider_configs
|
||||
provider_logs
|
||||
orders
|
||||
quota_accounts
|
||||
quota_logs
|
||||
revision_requests
|
||||
content_reviews
|
||||
case_showcases
|
||||
analytics_events
|
||||
system_configs
|
||||
operation_logs
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. projects
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
user_id BIGINT NOT NULL
|
||||
title VARCHAR(255)
|
||||
input_mode VARCHAR(50) -- ai_original/upload/admin_import
|
||||
genre VARCHAR(100)
|
||||
style_code VARCHAR(100)
|
||||
output_type VARCHAR(50)
|
||||
target_episode_count INT
|
||||
episode_duration INT
|
||||
status VARCHAR(80)
|
||||
copyright_status VARCHAR(80)
|
||||
payment_status VARCHAR(80)
|
||||
quality_level VARCHAR(50)
|
||||
is_long_series BOOLEAN DEFAULT FALSE
|
||||
created_at DATETIME
|
||||
updated_at DATETIME
|
||||
completed_at DATETIME
|
||||
```
|
||||
|
||||
索引:
|
||||
|
||||
```text
|
||||
user_id,status
|
||||
genre,status
|
||||
created_at
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. novel_sources
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT NOT NULL
|
||||
source_type VARCHAR(50)
|
||||
title VARCHAR(255)
|
||||
author_name VARCHAR(100)
|
||||
raw_asset_id BIGINT
|
||||
raw_text LONGTEXT
|
||||
clean_text LONGTEXT
|
||||
word_count INT
|
||||
chapter_count INT
|
||||
parse_status VARCHAR(50)
|
||||
parse_report JSON
|
||||
created_at DATETIME
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. novel_chapters
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT NOT NULL
|
||||
novel_source_id BIGINT
|
||||
chapter_no INT
|
||||
title VARCHAR(255)
|
||||
content LONGTEXT
|
||||
summary TEXT
|
||||
visual_summary TEXT
|
||||
word_count INT
|
||||
status VARCHAR(50)
|
||||
created_at DATETIME
|
||||
```
|
||||
|
||||
`visual_summary` 用于记录该章节可视化场景摘要。
|
||||
|
||||
---
|
||||
|
||||
## 5. copyright_records
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT
|
||||
user_id BIGINT
|
||||
authorization_type VARCHAR(50)
|
||||
statement_text TEXT
|
||||
ip VARCHAR(80)
|
||||
user_agent TEXT
|
||||
confirmed_at DATETIME
|
||||
```
|
||||
|
||||
authorization_type:
|
||||
|
||||
```text
|
||||
author_self
|
||||
licensed
|
||||
public_domain
|
||||
internal_test
|
||||
ai_original
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. story_bibles
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT
|
||||
title VARCHAR(255)
|
||||
logline TEXT
|
||||
main_plot TEXT
|
||||
core_conflict TEXT
|
||||
selling_points TEXT
|
||||
tone VARCHAR(100)
|
||||
world_summary TEXT
|
||||
ending_direction TEXT
|
||||
taboo_rules TEXT
|
||||
version INT
|
||||
status VARCHAR(50)
|
||||
created_at DATETIME
|
||||
updated_at DATETIME
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. world_bibles
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT
|
||||
world_type VARCHAR(100)
|
||||
setting_text TEXT
|
||||
rules_text TEXT
|
||||
power_system TEXT
|
||||
social_structure TEXT
|
||||
time_period TEXT
|
||||
visual_rules TEXT
|
||||
forbidden_rules TEXT
|
||||
status VARCHAR(50)
|
||||
created_at DATETIME
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. characters
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT
|
||||
name VARCHAR(100)
|
||||
role_type VARCHAR(50)
|
||||
gender_label VARCHAR(50)
|
||||
age_group VARCHAR(50)
|
||||
identity_desc TEXT
|
||||
appearance_desc TEXT
|
||||
hair_desc TEXT
|
||||
costume_rules TEXT
|
||||
personality_desc TEXT
|
||||
speech_style TEXT
|
||||
relationship_desc TEXT
|
||||
character_arc TEXT
|
||||
negative_rules TEXT
|
||||
anchor_asset_id BIGINT
|
||||
importance_level INT
|
||||
status VARCHAR(50)
|
||||
created_at DATETIME
|
||||
```
|
||||
|
||||
role_type:
|
||||
|
||||
```text
|
||||
lead_male
|
||||
lead_female
|
||||
villain
|
||||
supporting
|
||||
extra
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. character_images
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT
|
||||
character_id BIGINT
|
||||
asset_id BIGINT
|
||||
image_type VARCHAR(50)
|
||||
prompt_text TEXT
|
||||
negative_prompt TEXT
|
||||
is_anchor BOOLEAN
|
||||
quality_score DECIMAL(5,2)
|
||||
status VARCHAR(50)
|
||||
created_at DATETIME
|
||||
```
|
||||
|
||||
image_type:
|
||||
|
||||
```text
|
||||
front_reference
|
||||
side_reference
|
||||
expression
|
||||
costume
|
||||
anchor
|
||||
episode_variant
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. character_memories
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT
|
||||
character_id BIGINT
|
||||
episode_id BIGINT
|
||||
memory_type VARCHAR(50)
|
||||
content TEXT
|
||||
created_at DATETIME
|
||||
```
|
||||
|
||||
memory_type:
|
||||
|
||||
```text
|
||||
appearance_state
|
||||
relationship_state
|
||||
emotion_state
|
||||
goal_state
|
||||
injury_state
|
||||
costume_state
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 11. episodes
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT
|
||||
episode_no INT
|
||||
source_chapter_ids JSON
|
||||
title VARCHAR(255)
|
||||
summary TEXT
|
||||
opening_hook TEXT
|
||||
middle_conflict TEXT
|
||||
ending_hook TEXT
|
||||
target_duration INT
|
||||
status VARCHAR(50)
|
||||
created_at DATETIME
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 12. episode_scripts
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT
|
||||
episode_id BIGINT
|
||||
script_text LONGTEXT
|
||||
narration_text LONGTEXT
|
||||
dialogue_json JSON
|
||||
version INT
|
||||
status VARCHAR(50)
|
||||
created_at DATETIME
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 13. storyboard_shots
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT
|
||||
episode_id BIGINT
|
||||
shot_no INT
|
||||
scene_name VARCHAR(255)
|
||||
location_desc TEXT
|
||||
characters_json JSON
|
||||
visual_desc TEXT
|
||||
action_desc TEXT
|
||||
dialogue_text TEXT
|
||||
narration_text TEXT
|
||||
camera_motion VARCHAR(100)
|
||||
effect_type VARCHAR(100)
|
||||
duration DECIMAL(6,2)
|
||||
prompt_text TEXT
|
||||
negative_prompt TEXT
|
||||
status VARCHAR(50)
|
||||
created_at DATETIME
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 14. plot_memories
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT
|
||||
episode_id BIGINT
|
||||
chapter_id BIGINT
|
||||
memory_type VARCHAR(50)
|
||||
content TEXT
|
||||
importance_level INT
|
||||
status VARCHAR(50)
|
||||
created_at DATETIME
|
||||
```
|
||||
|
||||
memory_type:
|
||||
|
||||
```text
|
||||
event
|
||||
clue
|
||||
foreshadowing
|
||||
resolved_conflict
|
||||
unresolved_conflict
|
||||
relationship_change
|
||||
world_rule
|
||||
item_state
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 15. plot_threads
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT
|
||||
thread_name VARCHAR(255)
|
||||
thread_type VARCHAR(80)
|
||||
description TEXT
|
||||
start_episode_no INT
|
||||
expected_resolve_episode_no INT
|
||||
resolved_episode_no INT
|
||||
status VARCHAR(50)
|
||||
created_at DATETIME
|
||||
```
|
||||
|
||||
thread_type:
|
||||
|
||||
```text
|
||||
main_plot
|
||||
romance
|
||||
revenge
|
||||
mystery
|
||||
villain_plan
|
||||
character_growth
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 16. continuity_checks
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT
|
||||
episode_id BIGINT
|
||||
check_type VARCHAR(80)
|
||||
result_status VARCHAR(50)
|
||||
issue_text TEXT
|
||||
suggestion_text TEXT
|
||||
created_at DATETIME
|
||||
```
|
||||
|
||||
check_type:
|
||||
|
||||
```text
|
||||
character_name
|
||||
relationship
|
||||
timeline
|
||||
appearance
|
||||
plot_thread
|
||||
world_rule
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 17. assets
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
user_id BIGINT
|
||||
project_id BIGINT
|
||||
asset_type VARCHAR(50)
|
||||
file_path VARCHAR(500)
|
||||
file_url VARCHAR(500)
|
||||
mime_type VARCHAR(100)
|
||||
width INT
|
||||
height INT
|
||||
duration DECIMAL(10,2)
|
||||
size BIGINT
|
||||
hash VARCHAR(128)
|
||||
visibility VARCHAR(30)
|
||||
status VARCHAR(50)
|
||||
created_at DATETIME
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 18. render_tasks
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT
|
||||
episode_id BIGINT
|
||||
shot_id BIGINT
|
||||
task_type VARCHAR(80)
|
||||
provider_id BIGINT
|
||||
status VARCHAR(50)
|
||||
input_json JSON
|
||||
input_hash VARCHAR(128)
|
||||
output_asset_id BIGINT
|
||||
provider_request_id VARCHAR(255)
|
||||
retry_count INT
|
||||
max_retry INT
|
||||
cost_estimate DECIMAL(12,4)
|
||||
cost_actual DECIMAL(12,4)
|
||||
error_code VARCHAR(100)
|
||||
error_message TEXT
|
||||
created_at DATETIME
|
||||
started_at DATETIME
|
||||
finished_at DATETIME
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 19. analytics_events
|
||||
|
||||
```sql
|
||||
id BIGINT PRIMARY KEY
|
||||
project_id BIGINT
|
||||
episode_id BIGINT
|
||||
event_type VARCHAR(80)
|
||||
platform VARCHAR(80)
|
||||
metric_json JSON
|
||||
created_at DATETIME
|
||||
```
|
||||
|
||||
用于后续记录播放量、完播率、点赞率、评论反馈等。
|
||||
|
||||
---
|
||||
|
||||
## 20. 索引建议
|
||||
|
||||
```text
|
||||
projects(user_id,status)
|
||||
novel_chapters(project_id,chapter_no)
|
||||
characters(project_id,role_type)
|
||||
episodes(project_id,episode_no)
|
||||
storyboard_shots(project_id,episode_id,shot_no)
|
||||
plot_memories(project_id,episode_id)
|
||||
plot_threads(project_id,status)
|
||||
render_tasks(project_id,status)
|
||||
render_tasks(task_type,status)
|
||||
assets(project_id,asset_type)
|
||||
```
|
||||
Executable
+218
@@ -0,0 +1,218 @@
|
||||
# 06_API接口设计文档
|
||||
|
||||
## 1. 通用返回格式
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {},
|
||||
"request_id": "req_xxx"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 认证接口
|
||||
|
||||
```text
|
||||
POST /api/auth/register
|
||||
POST /api/auth/login
|
||||
POST /api/auth/logout
|
||||
GET /api/auth/profile
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 项目接口
|
||||
|
||||
```text
|
||||
POST /api/projects
|
||||
GET /api/projects
|
||||
GET /api/projects/:id
|
||||
PATCH /api/projects/:id
|
||||
POST /api/projects/:id/cancel
|
||||
DELETE /api/projects/:id
|
||||
```
|
||||
|
||||
创建项目:
|
||||
|
||||
```json
|
||||
{
|
||||
"title": "重生归来,我不再爱你",
|
||||
"input_mode": "ai_original",
|
||||
"genre": "urban_rebirth",
|
||||
"style_code": "korean_comic",
|
||||
"output_type": "short_video",
|
||||
"target_episode_count": 3,
|
||||
"episode_duration": 60
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. AI 原创小说接口
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/original/idea
|
||||
POST /api/projects/:id/original/outline
|
||||
POST /api/projects/:id/original/chapters
|
||||
POST /api/projects/:id/original/self-check
|
||||
GET /api/projects/:id/original/result
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 上传小说接口
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/novel/upload
|
||||
POST /api/projects/:id/novel/paste
|
||||
POST /api/projects/:id/novel/parse
|
||||
GET /api/projects/:id/novel/parse-result
|
||||
PATCH /api/novel-chapters/:chapterId
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 版权确认接口
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/copyright/confirm
|
||||
GET /api/projects/:id/copyright
|
||||
```
|
||||
|
||||
请求:
|
||||
|
||||
```json
|
||||
{
|
||||
"authorization_type": "author_self",
|
||||
"statement_text": "我确认拥有该小说的合法改编权。"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 故事圣经接口
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/story-bible/generate
|
||||
GET /api/projects/:id/story-bible
|
||||
PATCH /api/projects/:id/story-bible
|
||||
POST /api/projects/:id/story-bible/confirm
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 角色接口
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/characters/extract
|
||||
GET /api/projects/:id/characters
|
||||
POST /api/projects/:id/characters
|
||||
PATCH /api/characters/:characterId
|
||||
DELETE /api/characters/:characterId
|
||||
POST /api/characters/:characterId/generate-images
|
||||
POST /api/characters/:characterId/set-anchor
|
||||
GET /api/characters/:characterId/memories
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. 分集接口
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/episodes/generate-plan
|
||||
GET /api/projects/:id/episodes
|
||||
PATCH /api/episodes/:episodeId
|
||||
POST /api/projects/:id/episodes/confirm
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. 脚本接口
|
||||
|
||||
```text
|
||||
POST /api/episodes/:episodeId/script/generate
|
||||
GET /api/episodes/:episodeId/script
|
||||
PATCH /api/episodes/:episodeId/script
|
||||
POST /api/episodes/:episodeId/script/confirm
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 11. 分镜接口
|
||||
|
||||
```text
|
||||
POST /api/episodes/:episodeId/storyboard/generate
|
||||
GET /api/episodes/:episodeId/storyboard
|
||||
PATCH /api/storyboard-shots/:shotId
|
||||
DELETE /api/storyboard-shots/:shotId
|
||||
POST /api/episodes/:episodeId/storyboard/confirm
|
||||
POST /api/storyboard-shots/:shotId/regenerate-prompt
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 12. 长篇记忆接口
|
||||
|
||||
```text
|
||||
GET /api/projects/:id/plot-memories
|
||||
POST /api/projects/:id/plot-memories/generate
|
||||
GET /api/projects/:id/plot-threads
|
||||
POST /api/projects/:id/plot-threads
|
||||
PATCH /api/plot-threads/:threadId
|
||||
POST /api/episodes/:episodeId/continuity-check
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 13. 生成接口
|
||||
|
||||
```text
|
||||
POST /api/episodes/:episodeId/preview/generate
|
||||
POST /api/episodes/:episodeId/final/generate-images
|
||||
POST /api/episodes/:episodeId/audio/generate
|
||||
POST /api/episodes/:episodeId/subtitle/generate
|
||||
POST /api/episodes/:episodeId/video/render
|
||||
GET /api/projects/:id/progress
|
||||
GET /api/episodes/:episodeId/assets
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 14. 修改申请接口
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/revisions
|
||||
GET /api/projects/:id/revisions
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 15. 后台接口
|
||||
|
||||
```text
|
||||
GET /api/admin/projects
|
||||
GET /api/admin/projects/:id
|
||||
POST /api/admin/tasks/:id/retry
|
||||
POST /api/admin/tasks/:id/cancel
|
||||
POST /api/admin/tasks/:id/manual-required
|
||||
GET /api/admin/tasks
|
||||
GET /api/admin/provider-logs
|
||||
GET /api/admin/costs
|
||||
POST /api/admin/projects/:id/manual-review
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 16. 案例和数据接口
|
||||
|
||||
```text
|
||||
GET /api/cases
|
||||
GET /api/cases/:id
|
||||
POST /api/admin/cases
|
||||
PATCH /api/admin/cases/:id
|
||||
POST /api/projects/:id/analytics/import
|
||||
GET /api/projects/:id/analytics
|
||||
```
|
||||
Executable
+174
@@ -0,0 +1,174 @@
|
||||
# 07_uniapp用户端页面交互文档
|
||||
|
||||
## 1. 页面路由建议
|
||||
|
||||
```text
|
||||
/pages/index/index
|
||||
/pages/cases/list
|
||||
/pages/cases/detail
|
||||
/pages/auth/login
|
||||
/pages/projects/create
|
||||
/pages/projects/source-select
|
||||
/pages/projects/original-setting
|
||||
/pages/projects/upload-novel
|
||||
/pages/projects/copyright
|
||||
/pages/projects/parse-result
|
||||
/pages/projects/story-bible
|
||||
/pages/projects/characters
|
||||
/pages/projects/episodes
|
||||
/pages/projects/script
|
||||
/pages/projects/storyboard
|
||||
/pages/projects/payment
|
||||
/pages/projects/preview
|
||||
/pages/projects/progress
|
||||
/pages/projects/result
|
||||
/pages/projects/revision
|
||||
/pages/user/projects
|
||||
/pages/user/profile
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 页面流程
|
||||
|
||||
```text
|
||||
首页
|
||||
→ 登录
|
||||
→ 创建项目
|
||||
→ 选择 AI 原创 / 上传小说
|
||||
→ 版权或原创声明
|
||||
→ 故事圣经
|
||||
→ 角色圣经
|
||||
→ 分集计划
|
||||
→ 分镜
|
||||
→ 支付/额度
|
||||
→ 预览
|
||||
→ 正式生成
|
||||
→ 成品下载
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 项目恢复
|
||||
|
||||
用户中途退出后,从“我的项目”继续。
|
||||
|
||||
每个项目需要保存:
|
||||
|
||||
```text
|
||||
当前状态
|
||||
已填写数据
|
||||
已生成结果
|
||||
待确认步骤
|
||||
失败任务
|
||||
下一步按钮
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 角色确认交互
|
||||
|
||||
角色卡必须支持:
|
||||
|
||||
```text
|
||||
编辑文字设定
|
||||
生成参考图
|
||||
查看多张候选图
|
||||
选择锚点图
|
||||
锁定角色
|
||||
重生
|
||||
删除低价值配角
|
||||
```
|
||||
|
||||
未锁定主角锚点图,不允许批量正式生成。
|
||||
|
||||
---
|
||||
|
||||
## 5. 分镜确认交互
|
||||
|
||||
分镜卡片展示:
|
||||
|
||||
```text
|
||||
镜头画面
|
||||
人物
|
||||
场景
|
||||
台词
|
||||
时长
|
||||
运镜
|
||||
特效
|
||||
Prompt
|
||||
预览图
|
||||
```
|
||||
|
||||
允许:
|
||||
|
||||
```text
|
||||
编辑
|
||||
删除
|
||||
新增
|
||||
重排
|
||||
重生 Prompt
|
||||
生成预览图
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 长篇连载交互
|
||||
|
||||
当项目集数超过 10 集时,显示“剧情记忆”入口:
|
||||
|
||||
```text
|
||||
主线进度
|
||||
人物关系变化
|
||||
伏笔列表
|
||||
未解决冲突
|
||||
下一集衔接
|
||||
```
|
||||
|
||||
用户可查看但普通用户不建议直接大量编辑,避免破坏结构。
|
||||
|
||||
---
|
||||
|
||||
## 7. 生成进度交互
|
||||
|
||||
必须显示:
|
||||
|
||||
```text
|
||||
当前阶段
|
||||
任务进度
|
||||
失败数量
|
||||
预计剩余
|
||||
后台处理中提示
|
||||
联系客服
|
||||
```
|
||||
|
||||
如果某任务进入人工处理:
|
||||
|
||||
```text
|
||||
显示“需要人工审核,不影响已完成内容”
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 成品页交互
|
||||
|
||||
展示:
|
||||
|
||||
```text
|
||||
视频播放器
|
||||
封面图
|
||||
图片包
|
||||
字幕文件
|
||||
旁白音频
|
||||
下载按钮
|
||||
申请修改
|
||||
授权公开案例
|
||||
```
|
||||
|
||||
修改申请需要区分:
|
||||
|
||||
```text
|
||||
小改:字幕、标题、BGM
|
||||
中改:部分镜头、图片
|
||||
大改:重新分集、重做风格、重做角色
|
||||
```
|
||||
Executable
+249
@@ -0,0 +1,249 @@
|
||||
# 08_GeekerAdmin后台管理设计
|
||||
|
||||
## 1. 后台菜单
|
||||
|
||||
```text
|
||||
仪表盘
|
||||
用户管理
|
||||
项目管理
|
||||
小说源管理
|
||||
版权记录
|
||||
故事圣经
|
||||
世界观圣经
|
||||
角色库
|
||||
角色素材
|
||||
章节管理
|
||||
分集管理
|
||||
分镜管理
|
||||
剧情记忆
|
||||
连续性检查
|
||||
素材管理
|
||||
生成任务
|
||||
内容审核
|
||||
案例管理
|
||||
订单管理
|
||||
额度管理
|
||||
模板管理
|
||||
AI Provider
|
||||
成本日志
|
||||
数据反馈
|
||||
系统配置
|
||||
操作日志
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 仪表盘
|
||||
|
||||
指标:
|
||||
|
||||
```text
|
||||
今日项目数
|
||||
今日生成集数
|
||||
今日完成视频
|
||||
失败任务数
|
||||
待人工审核数
|
||||
AI 成本
|
||||
平均单集成本
|
||||
热门题材
|
||||
热门风格
|
||||
角色生成失败率
|
||||
视频合成失败率
|
||||
队列积压数
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 项目管理
|
||||
|
||||
操作:
|
||||
|
||||
```text
|
||||
查看项目详情
|
||||
查看小说原文
|
||||
查看清洗文本
|
||||
查看故事圣经
|
||||
查看角色库
|
||||
查看分集
|
||||
查看分镜
|
||||
查看素材
|
||||
查看任务
|
||||
手动重试
|
||||
转人工审核
|
||||
取消项目
|
||||
导出素材
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 小说源管理
|
||||
|
||||
操作:
|
||||
|
||||
```text
|
||||
查看原始文件
|
||||
查看解析文本
|
||||
查看章节列表
|
||||
重新解析
|
||||
手动编辑章节
|
||||
删除广告水印
|
||||
标记文本异常
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 角色库管理
|
||||
|
||||
操作:
|
||||
|
||||
```text
|
||||
编辑角色设定
|
||||
生成角色参考图
|
||||
选择锚点图
|
||||
锁定角色
|
||||
查看角色跨集出场
|
||||
查看角色记忆
|
||||
重生角色图
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 分镜管理
|
||||
|
||||
操作:
|
||||
|
||||
```text
|
||||
查看镜头
|
||||
编辑画面描述
|
||||
编辑台词
|
||||
编辑 Prompt
|
||||
重生单镜头图片
|
||||
替换图片
|
||||
调整顺序
|
||||
标记不合格
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 剧情记忆管理
|
||||
|
||||
展示:
|
||||
|
||||
```text
|
||||
主线
|
||||
支线
|
||||
伏笔
|
||||
未解决冲突
|
||||
已解决冲突
|
||||
角色关系变化
|
||||
重要道具状态
|
||||
世界规则
|
||||
```
|
||||
|
||||
操作:
|
||||
|
||||
```text
|
||||
新增记忆
|
||||
编辑记忆
|
||||
标记已解决
|
||||
关联分集
|
||||
执行连续性检查
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 任务管理
|
||||
|
||||
字段:
|
||||
|
||||
```text
|
||||
task_id
|
||||
project_id
|
||||
episode_id
|
||||
shot_id
|
||||
task_type
|
||||
provider
|
||||
status
|
||||
retry_count
|
||||
cost
|
||||
error_message
|
||||
created_at
|
||||
finished_at
|
||||
```
|
||||
|
||||
操作:
|
||||
|
||||
```text
|
||||
查看输入
|
||||
查看输出
|
||||
重试
|
||||
取消
|
||||
跳过
|
||||
转人工
|
||||
复制 Prompt
|
||||
查看 Provider 日志
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. 内容审核
|
||||
|
||||
审核对象:
|
||||
|
||||
```text
|
||||
小说文本
|
||||
故事圣经
|
||||
角色设定
|
||||
分集脚本
|
||||
分镜脚本
|
||||
图片
|
||||
视频
|
||||
封面
|
||||
标题
|
||||
字幕
|
||||
旁白
|
||||
```
|
||||
|
||||
审核操作:
|
||||
|
||||
```text
|
||||
通过
|
||||
驳回
|
||||
要求修改
|
||||
屏蔽
|
||||
转人工
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. 模板管理
|
||||
|
||||
```text
|
||||
题材模板
|
||||
画风模板
|
||||
角色模板
|
||||
场景模板
|
||||
镜头模板
|
||||
Prompt模板
|
||||
视频模板
|
||||
BGM模板
|
||||
字幕样式
|
||||
套餐模板
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 11. 数据反馈
|
||||
|
||||
用于后续优化:
|
||||
|
||||
```text
|
||||
导入播放量
|
||||
导入完播率
|
||||
导入点赞评论
|
||||
记录封面标题
|
||||
记录题材表现
|
||||
记录每集转化
|
||||
```
|
||||
|
||||
后续可让系统根据数据优化新项目。
|
||||
Executable
+182
@@ -0,0 +1,182 @@
|
||||
# 09_AI生成流水线_Provider抽象设计
|
||||
|
||||
## 1. Provider 类型
|
||||
|
||||
```text
|
||||
TextProvider:故事、脚本、分镜、标题
|
||||
NovelProvider:原创小说生成
|
||||
ImageProvider:角色图、分镜图、封面图
|
||||
VideoProvider:关键镜头图生视频
|
||||
VoiceProvider:TTS
|
||||
ModerationProvider:内容审核
|
||||
QualityCheckProvider:图片/视频质检
|
||||
FileParseProvider:文件解析
|
||||
EmbeddingProvider:长篇记忆检索
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. Provider 必备能力
|
||||
|
||||
```text
|
||||
mock 实现
|
||||
真实实现
|
||||
fallback
|
||||
限流
|
||||
重试
|
||||
成本记录
|
||||
请求日志
|
||||
失败日志
|
||||
输入输出保存
|
||||
```
|
||||
|
||||
开发阶段全部先用 mock,流程跑通后再接真实最高模型。
|
||||
|
||||
---
|
||||
|
||||
## 3. AI 原创小说流水线
|
||||
|
||||
```text
|
||||
用户设定
|
||||
→ 故事创意
|
||||
→ 故事大纲
|
||||
→ 故事圣经
|
||||
→ 角色圣经
|
||||
→ 章节大纲
|
||||
→ 正文生成
|
||||
→ 自检
|
||||
→ 章节摘要
|
||||
→ 改编准备
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 上传小说流水线
|
||||
|
||||
```text
|
||||
文件上传
|
||||
→ 文本提取
|
||||
→ 清洗
|
||||
→ 章节识别
|
||||
→ 章节摘要
|
||||
→ 角色抽取
|
||||
→ 场景抽取
|
||||
→ 世界观抽取
|
||||
→ 故事圣经
|
||||
→ 改编准备
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 改编流水线
|
||||
|
||||
```text
|
||||
故事圣经
|
||||
+ 角色圣经
|
||||
+ 剧情记忆
|
||||
+ 章节内容
|
||||
→ 分集计划
|
||||
→ 单集脚本
|
||||
→ 分镜脚本
|
||||
→ 镜头 Prompt
|
||||
→ 图片生成
|
||||
→ 质检
|
||||
→ 配音
|
||||
→ 字幕
|
||||
→ 视频合成
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 长篇记忆参与生成
|
||||
|
||||
生成第 N 集时输入:
|
||||
|
||||
```text
|
||||
故事圣经
|
||||
角色圣经
|
||||
世界观规则
|
||||
前 3 集摘要
|
||||
当前相关章节摘要
|
||||
未解决伏笔
|
||||
角色当前状态
|
||||
上一集结尾钩子
|
||||
本集目标
|
||||
```
|
||||
|
||||
避免每次把全文塞给模型。
|
||||
|
||||
---
|
||||
|
||||
## 7. Prompt 分层
|
||||
|
||||
```text
|
||||
BaseStyle:画风
|
||||
ProjectWorld:世界观
|
||||
Character:角色
|
||||
Scene:场景
|
||||
Shot:镜头
|
||||
Emotion:情绪
|
||||
Camera:运镜
|
||||
Effect:特效
|
||||
Quality:质量
|
||||
Negative:禁止项
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 图片生成顺序
|
||||
|
||||
```text
|
||||
角色立绘
|
||||
→ 角色锚点图
|
||||
→ 场景锚点图
|
||||
→ 封面图
|
||||
→ 分镜预览图
|
||||
→ 正式分镜图
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. 视频生成顺序
|
||||
|
||||
```text
|
||||
镜头图片
|
||||
→ 图片质检
|
||||
→ 分配时长
|
||||
→ 生成字幕
|
||||
→ 生成旁白
|
||||
→ 选择BGM
|
||||
→ FFmpeg运镜
|
||||
→ 合成MP4
|
||||
→ 最终质检
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. 质检 Provider
|
||||
|
||||
自动检查:
|
||||
|
||||
```text
|
||||
角色一致性
|
||||
画风一致性
|
||||
人脸崩坏
|
||||
手部异常
|
||||
多余人物
|
||||
文字乱码
|
||||
敏感内容
|
||||
分辨率
|
||||
视频可播放
|
||||
字幕是否溢出
|
||||
音画是否同步
|
||||
```
|
||||
|
||||
质检不通过:
|
||||
|
||||
```text
|
||||
自动重试
|
||||
转人工
|
||||
降低镜头复杂度
|
||||
替换模板
|
||||
```
|
||||
Executable
+182
@@ -0,0 +1,182 @@
|
||||
# 10_Prompt模板_题材世界观_韩漫规范
|
||||
|
||||
## 1. Prompt 总原则
|
||||
|
||||
Prompt 必须模板化、版本化、可审计。
|
||||
|
||||
禁止:
|
||||
|
||||
```text
|
||||
每次自由拼接
|
||||
把整章小说直接塞进图片 Prompt
|
||||
角色描述不固定
|
||||
画风描述每集变化
|
||||
负面约束缺失
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 标准 Prompt 结构
|
||||
|
||||
```text
|
||||
[画风层]
|
||||
[角色层]
|
||||
[世界观层]
|
||||
[场景层]
|
||||
[镜头层]
|
||||
[动作层]
|
||||
[情绪层]
|
||||
[光影层]
|
||||
[质量层]
|
||||
[负面约束层]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 韩漫风基础模板
|
||||
|
||||
```text
|
||||
高质量韩漫风格,精致人物五官,干净线条,细腻光影,商业漫画质感,竖屏构图,人物表情清晰,背景细节完整,色彩统一,高级画面质感
|
||||
```
|
||||
|
||||
负面:
|
||||
|
||||
```text
|
||||
低质量,脸部崩坏,五官变形,手指异常,多余人物,文字乱码,风格漂移,过度欧美化,年龄变化,角色换脸,服装错误
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 都市重生模板
|
||||
|
||||
世界关键词:
|
||||
|
||||
```text
|
||||
现代都市
|
||||
医院病房
|
||||
豪门别墅
|
||||
公司办公室
|
||||
雨夜街头
|
||||
冷色电影感
|
||||
复仇感
|
||||
命运重启
|
||||
强烈冲突
|
||||
```
|
||||
|
||||
常用镜头:
|
||||
|
||||
```text
|
||||
病床惊醒
|
||||
离婚协议特写
|
||||
雨夜背影
|
||||
办公室对峙
|
||||
反派震惊
|
||||
主角眼神变冷
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 霸总甜宠模板
|
||||
|
||||
关键词:
|
||||
|
||||
```text
|
||||
高级办公室
|
||||
豪车
|
||||
晚宴
|
||||
西装
|
||||
礼服
|
||||
落地窗
|
||||
城市夜景
|
||||
浪漫光影
|
||||
强烈对视
|
||||
情绪拉扯
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 真假千金模板
|
||||
|
||||
关键词:
|
||||
|
||||
```text
|
||||
豪门客厅
|
||||
亲子鉴定报告
|
||||
晚宴
|
||||
真假身份
|
||||
众人震惊
|
||||
被赶出家门
|
||||
华丽逆袭
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 修仙爽文模板
|
||||
|
||||
关键词:
|
||||
|
||||
```text
|
||||
仙山云海
|
||||
宗门大殿
|
||||
剑光
|
||||
灵气
|
||||
法阵
|
||||
古风长袍
|
||||
金色光效
|
||||
史诗氛围
|
||||
强者归来
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 镜头模板
|
||||
|
||||
### 8.1 开局强冲突
|
||||
|
||||
```text
|
||||
主角处于画面中心,周围人露出嘲讽或震惊表情,强烈压迫感构图,背景暗色,韩漫风,竖屏
|
||||
```
|
||||
|
||||
### 8.2 反派震惊
|
||||
|
||||
```text
|
||||
反派面部特写,眼睛睁大,表情震惊,背景速度线,漫画冲击效果,强烈情绪张力
|
||||
```
|
||||
|
||||
### 8.3 主角觉醒
|
||||
|
||||
```text
|
||||
主角眼神冷静坚定,身后光芒爆发,衣摆微动,低角度构图,强烈逆袭感,韩漫风
|
||||
```
|
||||
|
||||
### 8.4 结尾钩子
|
||||
|
||||
```text
|
||||
神秘人物站在阴影中,只露出半张脸,手中拿着关键物品,氛围悬疑,画面留白,适合下一集悬念
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. 角色固定片段
|
||||
|
||||
每个角色 Prompt 必须带:
|
||||
|
||||
```text
|
||||
固定年龄段
|
||||
固定脸型
|
||||
固定发型
|
||||
固定气质
|
||||
固定身份
|
||||
固定服装范围
|
||||
禁止改变发色
|
||||
禁止改变年龄
|
||||
禁止变成其他角色
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. 分镜 Prompt 示例
|
||||
|
||||
```text
|
||||
高质量韩漫风,现代都市医院病房,年轻男主从病床猛然坐起,额头冒汗,眼神震惊,短黑发,病号服,窗外雨夜,冷色电影光影,近景构图,强烈重生感,人物五官精致,背景清晰,竖屏9:16
|
||||
```
|
||||
Executable
+205
@@ -0,0 +1,205 @@
|
||||
# 11_角色一致性专项设计
|
||||
|
||||
## 1. 为什么必须专项设计
|
||||
|
||||
系统 A 最大质量风险是角色不一致:
|
||||
|
||||
```text
|
||||
第一集男主短黑发
|
||||
第二集变棕发
|
||||
第三集脸型变了
|
||||
女主和女配混脸
|
||||
反派年龄漂移
|
||||
同一角色服装无规则变化
|
||||
```
|
||||
|
||||
所以角色一致性必须作为核心模块,而不是 Prompt 里的几句话。
|
||||
|
||||
---
|
||||
|
||||
## 2. 角色生产流程
|
||||
|
||||
```text
|
||||
角色提取
|
||||
→ 角色资料生成
|
||||
→ 人工/自动确认角色
|
||||
→ 角色立绘生成
|
||||
→ 多张候选图
|
||||
→ 选择锚点图
|
||||
→ 生成表情图
|
||||
→ 生成服装规则
|
||||
→ 锁定角色
|
||||
→ 分镜图引用角色锚点
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 角色圣经字段
|
||||
|
||||
```text
|
||||
姓名
|
||||
别名
|
||||
角色定位
|
||||
性别
|
||||
年龄段
|
||||
身份
|
||||
脸型
|
||||
发型
|
||||
眼睛
|
||||
气质
|
||||
身材
|
||||
常用服装
|
||||
特殊道具
|
||||
说话风格
|
||||
人物关系
|
||||
情绪基调
|
||||
人物弧光
|
||||
禁止变化项
|
||||
参考图
|
||||
锚点图
|
||||
出场集数
|
||||
当前状态
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 角色图类型
|
||||
|
||||
```text
|
||||
front_reference:正面立绘
|
||||
side_reference:侧脸
|
||||
expression_pack:表情包
|
||||
costume_default:默认服装
|
||||
costume_special:特殊服装
|
||||
anchor:锚点图
|
||||
scene_variant:场景变体
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 锚点图规则
|
||||
|
||||
主角必须有锚点图。
|
||||
|
||||
建议数量:
|
||||
|
||||
```text
|
||||
男主:1-3 张锚点
|
||||
女主:1-3 张锚点
|
||||
反派:1 张锚点
|
||||
重要配角:1 张锚点
|
||||
普通配角:可选
|
||||
```
|
||||
|
||||
锚点图需要人工确认或后台审核。
|
||||
|
||||
---
|
||||
|
||||
## 6. 角色锁定机制
|
||||
|
||||
角色确认后进入 locked 状态。
|
||||
|
||||
locked 后:
|
||||
|
||||
```text
|
||||
不能随意改姓名
|
||||
不能改年龄段
|
||||
不能改核心外貌
|
||||
不能改身份
|
||||
可以新增服装变体
|
||||
可以新增表情图
|
||||
可以根据剧情更新状态
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 跨集角色状态
|
||||
|
||||
角色状态随剧情变化,但要记录:
|
||||
|
||||
```text
|
||||
当前服装
|
||||
是否受伤
|
||||
情绪状态
|
||||
关系状态
|
||||
是否隐藏身份
|
||||
是否觉醒能力
|
||||
持有什么道具
|
||||
```
|
||||
|
||||
例如:
|
||||
|
||||
```text
|
||||
第5集男主被打伤,第6集脸上应有轻微伤痕。
|
||||
第8集女主知道真相,第9集对男主态度变化。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 防混脸策略
|
||||
|
||||
系统生成分镜时必须传入:
|
||||
|
||||
```text
|
||||
本镜头出现角色列表
|
||||
每个角色固定描述
|
||||
每个角色锚点图
|
||||
角色之间差异化描述
|
||||
禁止角色混合
|
||||
```
|
||||
|
||||
多角色镜头尽量控制在 2-3 人,避免一次生成太多人。
|
||||
|
||||
---
|
||||
|
||||
## 9. 角色一致性质检
|
||||
|
||||
自动检查:
|
||||
|
||||
```text
|
||||
脸型是否明显变化
|
||||
发型是否明显变化
|
||||
年龄是否漂移
|
||||
服装是否不符合规则
|
||||
男女是否混脸
|
||||
角色是否缺失
|
||||
多出不相关人物
|
||||
```
|
||||
|
||||
不合格处理:
|
||||
|
||||
```text
|
||||
自动重生
|
||||
降低镜头复杂度
|
||||
拆成多个镜头
|
||||
转人工
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. 长篇角色成长
|
||||
|
||||
角色不是永远不变,而是有受控变化。
|
||||
|
||||
允许变化:
|
||||
|
||||
```text
|
||||
服装
|
||||
表情
|
||||
情绪
|
||||
轻微伤痕
|
||||
身份暴露后的气质
|
||||
修仙升级后的气场
|
||||
```
|
||||
|
||||
禁止变化:
|
||||
|
||||
```text
|
||||
脸型大变
|
||||
年龄大变
|
||||
发色无原因变化
|
||||
身份无原因变化
|
||||
人物关系无记录变化
|
||||
```
|
||||
|
||||
所有允许变化都要记录到 `character_memories`。
|
||||
Executable
+231
@@ -0,0 +1,231 @@
|
||||
# 12_长篇连载记忆_剧情一致性专项设计
|
||||
|
||||
## 1. 为什么必须设计长篇记忆
|
||||
|
||||
系统 A 如果只做 3 集,简单摘要够用。
|
||||
如果要做 20-100 集,必须有长篇记忆,否则会出现:
|
||||
|
||||
```text
|
||||
角色名字变了
|
||||
人物关系忘了
|
||||
伏笔丢了
|
||||
反派计划断了
|
||||
前面发生的事后面不承认
|
||||
道具状态错乱
|
||||
世界规则前后矛盾
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 长篇记忆核心对象
|
||||
|
||||
```text
|
||||
StoryBible:全局故事规则
|
||||
WorldBible:世界规则
|
||||
CharacterBible:角色固定资料
|
||||
CharacterMemory:角色当前状态
|
||||
EpisodeSummary:每集摘要
|
||||
PlotMemory:关键事件
|
||||
PlotThread:剧情线
|
||||
ContinuityCheck:连续性检查
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 每集生成前必须输入
|
||||
|
||||
生成第 N 集时,模型输入不应是全文,而是:
|
||||
|
||||
```text
|
||||
故事圣经
|
||||
世界观规则
|
||||
主要角色圣经
|
||||
当前相关角色状态
|
||||
前 3 集摘要
|
||||
第 N-1 集结尾
|
||||
当前章节摘要
|
||||
未解决剧情线
|
||||
需要推进的伏笔
|
||||
本集目标
|
||||
本集禁用事项
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 每集生成后必须沉淀
|
||||
|
||||
每集完成后生成:
|
||||
|
||||
```text
|
||||
本集摘要
|
||||
新增事件
|
||||
角色关系变化
|
||||
新增伏笔
|
||||
解决的伏笔
|
||||
未解决冲突
|
||||
重要道具状态
|
||||
下一集衔接点
|
||||
人物状态变化
|
||||
```
|
||||
|
||||
写入:
|
||||
|
||||
```text
|
||||
plot_memories
|
||||
plot_threads
|
||||
character_memories
|
||||
episodes.summary
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. PlotThread 剧情线
|
||||
|
||||
剧情线类型:
|
||||
|
||||
```text
|
||||
main_plot:主线
|
||||
romance:感情线
|
||||
revenge:复仇线
|
||||
mystery:悬疑线
|
||||
villain_plan:反派计划
|
||||
character_growth:人物成长
|
||||
world_secret:世界秘密
|
||||
```
|
||||
|
||||
每条线记录:
|
||||
|
||||
```text
|
||||
起始集
|
||||
目标
|
||||
当前进度
|
||||
关联角色
|
||||
预计解决集
|
||||
实际解决集
|
||||
状态
|
||||
```
|
||||
|
||||
状态:
|
||||
|
||||
```text
|
||||
open
|
||||
progressing
|
||||
paused
|
||||
resolved
|
||||
abandoned
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 伏笔管理
|
||||
|
||||
伏笔必须记录:
|
||||
|
||||
```text
|
||||
伏笔内容
|
||||
出现集数
|
||||
关联角色
|
||||
预计回收集数
|
||||
是否已回收
|
||||
回收方式
|
||||
```
|
||||
|
||||
示例:
|
||||
|
||||
```text
|
||||
第2集出现神秘玉佩
|
||||
第8集揭示玉佩是女主母亲留下的线索
|
||||
第15集成为打开密室的钥匙
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 连续性检查
|
||||
|
||||
每集脚本生成后执行检查:
|
||||
|
||||
```text
|
||||
角色名字一致
|
||||
人物关系一致
|
||||
时间线一致
|
||||
道具状态一致
|
||||
世界规则一致
|
||||
伏笔没有冲突
|
||||
上一集钩子被承接
|
||||
本集结尾有新钩子
|
||||
```
|
||||
|
||||
检查结果:
|
||||
|
||||
```text
|
||||
pass
|
||||
warning
|
||||
fail
|
||||
```
|
||||
|
||||
fail 必须重新生成或人工修改。
|
||||
|
||||
---
|
||||
|
||||
## 8. 长篇分批策略
|
||||
|
||||
20 集以内:
|
||||
|
||||
```text
|
||||
整部故事大纲 + 每集摘要即可
|
||||
```
|
||||
|
||||
20-100 集:
|
||||
|
||||
```text
|
||||
分卷管理
|
||||
每卷 10-20 集
|
||||
每卷有阶段目标
|
||||
每集有独立钩子
|
||||
每 5 集有小高潮
|
||||
每 10-20 集有大转折
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. 分卷设计
|
||||
|
||||
长篇项目需要:
|
||||
|
||||
```text
|
||||
Volume 1:开局冲突和身份建立
|
||||
Volume 2:主角第一次反击
|
||||
Volume 3:反派升级
|
||||
Volume 4:真相揭露
|
||||
Volume 5:最终反击
|
||||
```
|
||||
|
||||
每卷字段:
|
||||
|
||||
```text
|
||||
卷标题
|
||||
卷目标
|
||||
主要冲突
|
||||
核心角色
|
||||
高潮集
|
||||
结尾钩子
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. 长篇生成规则
|
||||
|
||||
禁止一次性生成 100 集完整脚本。
|
||||
|
||||
正确方式:
|
||||
|
||||
```text
|
||||
先生成全局大纲
|
||||
再生成分卷大纲
|
||||
再生成 5 集批次计划
|
||||
再生成单集脚本
|
||||
再生成单集分镜
|
||||
每集完成后更新记忆
|
||||
```
|
||||
|
||||
这样能减少后期重构和剧情崩坏。
|
||||
Executable
+216
@@ -0,0 +1,216 @@
|
||||
# 13_小说生成_上传解析_改编质量标准
|
||||
|
||||
## 1. AI 原创小说质量标准
|
||||
|
||||
原创小说必须满足:
|
||||
|
||||
```text
|
||||
主线清晰
|
||||
冲突明确
|
||||
角色数量可控
|
||||
场景可视化
|
||||
每章有转折
|
||||
每章有钩子
|
||||
适合短视频改编
|
||||
无明显逻辑断裂
|
||||
无敏感违规内容
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 原创小说生成阶段
|
||||
|
||||
```text
|
||||
创意
|
||||
→ 大纲
|
||||
→ 故事圣经
|
||||
→ 角色圣经
|
||||
→ 分章大纲
|
||||
→ 正文
|
||||
→ 自检
|
||||
```
|
||||
|
||||
不要直接从一句话生成完整长篇正文。
|
||||
|
||||
---
|
||||
|
||||
## 3. 上传小说解析标准
|
||||
|
||||
支持:
|
||||
|
||||
```text
|
||||
txt
|
||||
docx
|
||||
md
|
||||
pdf,第一阶段可限制为文本型 PDF
|
||||
粘贴文本
|
||||
```
|
||||
|
||||
清洗内容:
|
||||
|
||||
```text
|
||||
广告
|
||||
水印
|
||||
页眉页脚
|
||||
重复章节标题
|
||||
乱码
|
||||
多余空行
|
||||
无关说明
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 章节识别规则
|
||||
|
||||
识别:
|
||||
|
||||
```text
|
||||
第1章
|
||||
第一章
|
||||
Chapter 1
|
||||
001
|
||||
楔子
|
||||
序章
|
||||
番外
|
||||
正文
|
||||
```
|
||||
|
||||
如果章节识别失败:
|
||||
|
||||
```text
|
||||
按字数切分
|
||||
提示用户手动确认
|
||||
后台可编辑章节
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 小说改编原则
|
||||
|
||||
小说原文常见问题:
|
||||
|
||||
```text
|
||||
心理描写多
|
||||
旁白多
|
||||
动作少
|
||||
场景不明确
|
||||
对话太长
|
||||
节奏慢
|
||||
```
|
||||
|
||||
改编时必须转成:
|
||||
|
||||
```text
|
||||
可视化画面
|
||||
明确动作
|
||||
短台词
|
||||
强冲突
|
||||
镜头切换
|
||||
结尾钩子
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 每集标准结构
|
||||
|
||||
45-60 秒:
|
||||
|
||||
```text
|
||||
0-3 秒:强冲突
|
||||
3-12 秒:交代处境
|
||||
12-30 秒:矛盾升级
|
||||
30-45 秒:主角行动
|
||||
45-55 秒:反转
|
||||
55-60 秒:悬念钩子
|
||||
```
|
||||
|
||||
90 秒:
|
||||
|
||||
```text
|
||||
0-5 秒:强钩子
|
||||
5-25 秒:背景
|
||||
25-55 秒:冲突
|
||||
55-75 秒:反击
|
||||
75-90 秒:新危机
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 分镜质量标准
|
||||
|
||||
每个镜头必须有:
|
||||
|
||||
```text
|
||||
一个画面中心
|
||||
一个主要动作
|
||||
一个情绪点
|
||||
一段短台词或旁白
|
||||
2-5 秒时长
|
||||
明确人物
|
||||
明确场景
|
||||
明确构图
|
||||
```
|
||||
|
||||
避免:
|
||||
|
||||
```text
|
||||
一个镜头包含连续动作
|
||||
一个镜头超过 4 个主要人物
|
||||
抽象心理活动
|
||||
无画面对象
|
||||
场景模糊
|
||||
台词太长
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 不可视化内容改写
|
||||
|
||||
原文:
|
||||
|
||||
```text
|
||||
他心里像被刀割一样。
|
||||
```
|
||||
|
||||
改写:
|
||||
|
||||
```text
|
||||
画面:男主站在雨中,望着女主离开的背影,拳头攥紧。
|
||||
台词:你真的一点机会都不给我吗?
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. 改编保真度
|
||||
|
||||
上传小说改编需要平衡:
|
||||
|
||||
```text
|
||||
保留核心剧情
|
||||
保留人物关系
|
||||
保留名场面
|
||||
压缩旁白
|
||||
加快节奏
|
||||
增强冲突
|
||||
减少不可视化内容
|
||||
```
|
||||
|
||||
不能擅自改掉主线和人物关系。
|
||||
|
||||
---
|
||||
|
||||
## 10. 质量评分
|
||||
|
||||
每集生成后评分:
|
||||
|
||||
```text
|
||||
开头钩子:0-10
|
||||
冲突强度:0-10
|
||||
视觉化程度:0-10
|
||||
台词简洁度:0-10
|
||||
结尾悬念:0-10
|
||||
角色一致性:0-10
|
||||
剧情连续性:0-10
|
||||
```
|
||||
|
||||
低于阈值进入重生或人工调整。
|
||||
Executable
+195
@@ -0,0 +1,195 @@
|
||||
# 14_分镜镜头_视频合成_特效设计
|
||||
|
||||
## 1. 漫剧视频形态
|
||||
|
||||
第一阶段视频采用:
|
||||
|
||||
```text
|
||||
静态韩漫图片
|
||||
+ FFmpeg 运镜
|
||||
+ 字幕
|
||||
+ AI 配音
|
||||
+ BGM
|
||||
+ 音效
|
||||
+ 转场
|
||||
= MP4 漫剧
|
||||
```
|
||||
|
||||
这是最稳的商业 MVP 方案。
|
||||
|
||||
---
|
||||
|
||||
## 2. 镜头类型
|
||||
|
||||
```text
|
||||
人物特写
|
||||
双人对峙
|
||||
远景环境
|
||||
道具特写
|
||||
回忆镜头
|
||||
反派压迫
|
||||
主角觉醒
|
||||
群体震惊
|
||||
结尾悬念
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 运镜类型
|
||||
|
||||
```text
|
||||
zoom_in:慢慢推近
|
||||
zoom_out:慢慢拉远
|
||||
pan_left:左移
|
||||
pan_right:右移
|
||||
shake:震屏
|
||||
flash:闪白
|
||||
fade:淡入淡出
|
||||
cut:硬切
|
||||
blur_memory:回忆模糊
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 特效分级
|
||||
|
||||
### L1:FFmpeg 基础特效
|
||||
|
||||
```text
|
||||
推近
|
||||
拉远
|
||||
平移
|
||||
震屏
|
||||
闪白
|
||||
黑场
|
||||
字幕弹出
|
||||
转场
|
||||
```
|
||||
|
||||
低成本,第一阶段主力。
|
||||
|
||||
### L2:素材叠加特效
|
||||
|
||||
```text
|
||||
花瓣
|
||||
雨雪
|
||||
火光
|
||||
光粒子
|
||||
速度线
|
||||
红绸
|
||||
雷电贴片
|
||||
```
|
||||
|
||||
可用透明视频素材或后期叠加。
|
||||
|
||||
### L3:AI 图生视频特效
|
||||
|
||||
```text
|
||||
火焰动起来
|
||||
雷电闪烁
|
||||
衣摆飘动
|
||||
头发飘动
|
||||
角色转头
|
||||
光效爆发
|
||||
```
|
||||
|
||||
只用于关键镜头。
|
||||
|
||||
### L4:高级视频生成
|
||||
|
||||
```text
|
||||
复杂打斗
|
||||
镜头环绕
|
||||
追车爆炸
|
||||
多人动作
|
||||
```
|
||||
|
||||
第一阶段不做常规能力,仅高端套餐后续考虑。
|
||||
|
||||
---
|
||||
|
||||
## 5. 推荐比例
|
||||
|
||||
```text
|
||||
80% L1 静态图 + 运镜
|
||||
15% L2 轻特效
|
||||
5% L3 AI 图生视频爆点
|
||||
```
|
||||
|
||||
不要第一版每个镜头都 AI 视频化。
|
||||
|
||||
---
|
||||
|
||||
## 6. 单集结构
|
||||
|
||||
60 秒示例:
|
||||
|
||||
```text
|
||||
片头钩子:3 秒
|
||||
剧情镜头:45 秒
|
||||
反转镜头:7 秒
|
||||
结尾钩子:5 秒
|
||||
```
|
||||
|
||||
图片数量:
|
||||
|
||||
```text
|
||||
10-20 张
|
||||
每张 2-5 秒
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 字幕规范
|
||||
|
||||
```text
|
||||
竖屏底部安全区
|
||||
每行不超过 14-18 个中文
|
||||
避免遮挡人物脸
|
||||
高对比描边
|
||||
可选逐句字幕
|
||||
后续支持逐字高亮
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 音频规范
|
||||
|
||||
```text
|
||||
旁白音量清晰
|
||||
BGM 不盖过人声
|
||||
关键反转加音效
|
||||
震惊镜头加短促音效
|
||||
结尾钩子音乐停顿
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. 视频输出规格
|
||||
|
||||
```text
|
||||
9:16 竖屏
|
||||
1080x1920
|
||||
MP4 H.264
|
||||
AAC 音频
|
||||
30fps
|
||||
封面图
|
||||
有字幕版
|
||||
无字幕版,可选
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. 镜头复杂度控制
|
||||
|
||||
避免:
|
||||
|
||||
```text
|
||||
一个镜头 5 人以上
|
||||
同镜头同时打斗
|
||||
人物大幅转身
|
||||
复杂手部互动
|
||||
大量文字招牌
|
||||
```
|
||||
|
||||
复杂场景拆成多个镜头。
|
||||
Executable
+146
@@ -0,0 +1,146 @@
|
||||
# 15_任务队列_错误重试_稳定性设计
|
||||
|
||||
## 1. 队列列表
|
||||
|
||||
```text
|
||||
novel_queue
|
||||
parse_queue
|
||||
story_queue
|
||||
character_queue
|
||||
episode_queue
|
||||
script_queue
|
||||
storyboard_queue
|
||||
image_queue
|
||||
audio_queue
|
||||
subtitle_queue
|
||||
video_queue
|
||||
qc_queue
|
||||
review_queue
|
||||
analytics_queue
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 任务状态
|
||||
|
||||
```text
|
||||
pending
|
||||
running
|
||||
success
|
||||
failed
|
||||
retrying
|
||||
cancelled
|
||||
manual_required
|
||||
skipped
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 幂等设计
|
||||
|
||||
幂等 key:
|
||||
|
||||
```text
|
||||
project_id + episode_id + shot_id + task_type + input_hash
|
||||
```
|
||||
|
||||
重复提交时:
|
||||
|
||||
```text
|
||||
已有成功结果 → 返回结果
|
||||
任务运行中 → 返回任务状态
|
||||
失败可重试 → 按规则重试
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 重试规则
|
||||
|
||||
```text
|
||||
文本任务:2 次
|
||||
图片任务:3 次
|
||||
视频合成:2 次
|
||||
TTS:2 次
|
||||
质检:1 次
|
||||
```
|
||||
|
||||
连续失败进入:
|
||||
|
||||
```text
|
||||
manual_required
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 失败处理
|
||||
|
||||
失败必须记录:
|
||||
|
||||
```text
|
||||
错误码
|
||||
错误信息
|
||||
输入参数
|
||||
Provider 响应
|
||||
重试次数
|
||||
是否扣额度
|
||||
是否可恢复
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 队列隔离
|
||||
|
||||
图片生成和视频合成不能共用队列,避免视频任务堵塞所有任务。
|
||||
|
||||
---
|
||||
|
||||
## 7. 并发限制
|
||||
|
||||
```text
|
||||
每用户同时 1-2 个正式项目
|
||||
每项目图片并发 3-5
|
||||
每 Provider 独立限流
|
||||
视频合成单独限流
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 服务器重启恢复
|
||||
|
||||
系统启动后扫描:
|
||||
|
||||
```text
|
||||
running 超时任务
|
||||
retrying 超时任务
|
||||
video_rendering 中断任务
|
||||
```
|
||||
|
||||
处理:
|
||||
|
||||
```text
|
||||
重新入队
|
||||
标记失败
|
||||
转人工
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. 成本安全
|
||||
|
||||
系统错误导致的重试不重复扣用户额度。
|
||||
用户主动重生、主动大改,需要扣额度或重新计费。
|
||||
|
||||
---
|
||||
|
||||
## 10. 队列监控
|
||||
|
||||
后台显示:
|
||||
|
||||
```text
|
||||
等待任务数
|
||||
运行任务数
|
||||
失败任务数
|
||||
平均耗时
|
||||
Provider 错误率
|
||||
队列积压
|
||||
```
|
||||
Executable
+160
@@ -0,0 +1,160 @@
|
||||
# 16_订单支付_额度_成本控制设计
|
||||
|
||||
## 1. 为什么必须设计成本控制
|
||||
|
||||
系统 A 成本高于普通文本工具,因为每集需要:
|
||||
|
||||
```text
|
||||
文本生成
|
||||
角色图
|
||||
分镜图
|
||||
图片重试
|
||||
TTS
|
||||
字幕
|
||||
BGM
|
||||
视频合成
|
||||
质检
|
||||
存储
|
||||
人工审核
|
||||
```
|
||||
|
||||
如果使用最高模型,必须先设计额度和成本规则。
|
||||
|
||||
---
|
||||
|
||||
## 2. 套餐建议
|
||||
|
||||
### 试用版
|
||||
|
||||
```text
|
||||
1 集
|
||||
低清水印
|
||||
少量图片
|
||||
不可商用
|
||||
```
|
||||
|
||||
### 标准短剧版
|
||||
|
||||
```text
|
||||
3 集
|
||||
每集 45-60 秒
|
||||
每集 10-20 张图
|
||||
正式 MP4
|
||||
1 次小改
|
||||
```
|
||||
|
||||
### 连载测试版
|
||||
|
||||
```text
|
||||
10 集
|
||||
批量生成
|
||||
封面标题
|
||||
人工审核
|
||||
```
|
||||
|
||||
### 高端定制版
|
||||
|
||||
```text
|
||||
20 集以上
|
||||
角色精修
|
||||
关键镜头动态
|
||||
更多重试
|
||||
人工审核
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 额度消耗点
|
||||
|
||||
```text
|
||||
原创小说生成
|
||||
上传小说解析
|
||||
故事圣经生成
|
||||
角色图生成
|
||||
分集计划
|
||||
脚本生成
|
||||
分镜生成
|
||||
预览图
|
||||
正式图
|
||||
TTS
|
||||
字幕
|
||||
视频合成
|
||||
AI视频镜头
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 预览规则
|
||||
|
||||
建议:
|
||||
|
||||
```text
|
||||
预览图低清水印
|
||||
预览数量限制
|
||||
正式生成前必须支付或冻结额度
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 重试扣费规则
|
||||
|
||||
```text
|
||||
系统失败重试:不扣用户额度
|
||||
用户不满意主动重生:扣额度
|
||||
人工判定质量失败重生:不扣或少扣
|
||||
大改:重新计费
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 成本日志
|
||||
|
||||
记录:
|
||||
|
||||
```text
|
||||
task_id
|
||||
project_id
|
||||
episode_id
|
||||
provider
|
||||
model
|
||||
input_size
|
||||
output_size
|
||||
cost_estimate
|
||||
cost_actual
|
||||
user_charge
|
||||
created_at
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 成本预警
|
||||
|
||||
后台必须有:
|
||||
|
||||
```text
|
||||
单项目成本超限
|
||||
单用户成本异常
|
||||
Provider 日成本超限
|
||||
失败重试率异常
|
||||
视频任务成本异常
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 最高模型策略
|
||||
|
||||
开发阶段:
|
||||
|
||||
```text
|
||||
全部 mock
|
||||
少量真实接口联调
|
||||
限制额度
|
||||
```
|
||||
|
||||
正式阶段:
|
||||
|
||||
```text
|
||||
正式生成用最高模型
|
||||
预览限制数量和分辨率
|
||||
视频模型只用于关键镜头
|
||||
```
|
||||
Executable
+135
@@ -0,0 +1,135 @@
|
||||
# 17_版权授权_内容审核_合规设计
|
||||
|
||||
## 1. 上传小说版权确认
|
||||
|
||||
上传小说必须选择:
|
||||
|
||||
```text
|
||||
我是作者本人
|
||||
我已获得改编授权
|
||||
这是公版作品
|
||||
仅用于内部测试
|
||||
```
|
||||
|
||||
必须勾选:
|
||||
|
||||
```text
|
||||
我确认拥有该文本的合法使用权
|
||||
我授权平台为本项目进行 AI 改编和生成
|
||||
我理解未经授权不得用于商业发布
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 版权记录
|
||||
|
||||
保存:
|
||||
|
||||
```text
|
||||
项目ID
|
||||
用户ID
|
||||
授权类型
|
||||
授权声明
|
||||
IP
|
||||
User-Agent
|
||||
确认时间
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. AI 原创小说记录
|
||||
|
||||
AI 原创内容也要记录:
|
||||
|
||||
```text
|
||||
用户输入
|
||||
生成时间
|
||||
模型
|
||||
Prompt版本
|
||||
项目ID
|
||||
```
|
||||
|
||||
用于内容来源追踪。
|
||||
|
||||
---
|
||||
|
||||
## 4. 内容审核对象
|
||||
|
||||
```text
|
||||
上传小说文本
|
||||
AI 原创小说
|
||||
故事圣经
|
||||
角色圣经
|
||||
分集脚本
|
||||
分镜脚本
|
||||
图片
|
||||
封面
|
||||
标题
|
||||
配音文本
|
||||
字幕
|
||||
最终视频
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 禁止内容
|
||||
|
||||
```text
|
||||
违法内容
|
||||
色情低俗
|
||||
仇恨攻击
|
||||
未成年人不当内容
|
||||
未经授权名人冒用
|
||||
政治人物冒充
|
||||
侵犯版权
|
||||
极端暴力血腥
|
||||
平台规则敏感内容
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 公版作品提醒
|
||||
|
||||
用户选择公版作品时提示:
|
||||
|
||||
```text
|
||||
不同地区版权期限和改编权规则不同,用户需自行确认商业使用权。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 音乐版权
|
||||
|
||||
BGM 来源:
|
||||
|
||||
```text
|
||||
平台授权音乐
|
||||
可商用音乐库
|
||||
用户自上传并承诺有权使用
|
||||
```
|
||||
|
||||
每首音乐记录:
|
||||
|
||||
```text
|
||||
来源
|
||||
授权类型
|
||||
使用范围
|
||||
授权文件
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 公开案例授权
|
||||
|
||||
默认不公开用户项目。
|
||||
公开案例必须单独授权。
|
||||
|
||||
---
|
||||
|
||||
## 9. 商业发布提醒
|
||||
|
||||
下载成品时提示:
|
||||
|
||||
```text
|
||||
请确认你拥有小说文本、音乐、图片和视频的商业发布权。
|
||||
```
|
||||
Executable
+127
@@ -0,0 +1,127 @@
|
||||
# 18_批量生产_运营发布_数据反馈设计
|
||||
|
||||
## 1. 批量生产不是第一阶段核心
|
||||
|
||||
第一阶段目标是 1 个项目生成 1-3 集。
|
||||
但数据库和架构必须预留批量能力。
|
||||
|
||||
---
|
||||
|
||||
## 2. 批量生产流程
|
||||
|
||||
```text
|
||||
选择小说项目
|
||||
→ 批量生成分集计划
|
||||
→ 每 5 集一批确认
|
||||
→ 批量生成分镜
|
||||
→ 角色一致性检查
|
||||
→ 批量图片生成
|
||||
→ 自动质检
|
||||
→ 人工抽检
|
||||
→ 批量视频合成
|
||||
→ 导出发布包
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 发布素材包
|
||||
|
||||
每集输出:
|
||||
|
||||
```text
|
||||
MP4视频
|
||||
封面图
|
||||
标题候选
|
||||
简介文案
|
||||
话题标签
|
||||
字幕文件
|
||||
图片素材包
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 标题封面生成
|
||||
|
||||
每集生成 3-5 个标题候选:
|
||||
|
||||
```text
|
||||
震惊型
|
||||
反转型
|
||||
情绪型
|
||||
悬念型
|
||||
爽点型
|
||||
```
|
||||
|
||||
封面图要求:
|
||||
|
||||
```text
|
||||
主角清晰
|
||||
冲突明显
|
||||
文字少
|
||||
情绪强
|
||||
适合竖屏
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 数据反馈
|
||||
|
||||
可记录平台数据:
|
||||
|
||||
```text
|
||||
播放量
|
||||
完播率
|
||||
点赞率
|
||||
评论数
|
||||
收藏数
|
||||
关注转化
|
||||
用户催更评论
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 数据反哺
|
||||
|
||||
后续系统可根据数据优化:
|
||||
|
||||
```text
|
||||
题材选择
|
||||
开头钩子
|
||||
封面风格
|
||||
标题风格
|
||||
剧情节奏
|
||||
单集时长
|
||||
人物设定
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. A/B 测试
|
||||
|
||||
支持同一集生成:
|
||||
|
||||
```text
|
||||
不同标题
|
||||
不同封面
|
||||
不同开头
|
||||
不同视频节奏
|
||||
```
|
||||
|
||||
记录数据后选择更优版本。
|
||||
|
||||
---
|
||||
|
||||
## 8. 自动发布
|
||||
|
||||
第一阶段暂缓自动发布。
|
||||
后续可做:
|
||||
|
||||
```text
|
||||
抖音
|
||||
快手
|
||||
小红书
|
||||
视频号
|
||||
B站
|
||||
```
|
||||
|
||||
但平台接口和规则变化大,应单独设计。
|
||||
Executable
+115
@@ -0,0 +1,115 @@
|
||||
# 19_部署运维_日志监控_备份设计
|
||||
|
||||
## 1. 目录结构
|
||||
|
||||
```text
|
||||
ai-manga-system-a/
|
||||
├── backend/
|
||||
├── admin/
|
||||
├── user-app/
|
||||
├── workers/
|
||||
├── deploy/
|
||||
├── docs/
|
||||
└── storage/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 环境变量
|
||||
|
||||
```text
|
||||
DATABASE_URL
|
||||
REDIS_URL
|
||||
MINIO_ENDPOINT
|
||||
MINIO_ACCESS_KEY
|
||||
MINIO_SECRET_KEY
|
||||
OPENAI_API_KEY
|
||||
JWT_SECRET
|
||||
FFMPEG_PATH
|
||||
NODE_ENV
|
||||
```
|
||||
|
||||
禁止把密钥写进代码。
|
||||
|
||||
---
|
||||
|
||||
## 3. 服务组成
|
||||
|
||||
```text
|
||||
backend-api
|
||||
queue-worker
|
||||
ffmpeg-worker
|
||||
admin-web
|
||||
user-web
|
||||
mysql
|
||||
redis
|
||||
minio
|
||||
nginx
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 日志类型
|
||||
|
||||
```text
|
||||
API访问日志
|
||||
用户操作日志
|
||||
任务日志
|
||||
AI调用日志
|
||||
错误日志
|
||||
支付日志
|
||||
下载日志
|
||||
审核日志
|
||||
成本日志
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 备份策略
|
||||
|
||||
```text
|
||||
MySQL 每日备份
|
||||
MinIO 重要素材备份
|
||||
Prompt 模板备份
|
||||
系统配置备份
|
||||
授权记录重点备份
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 清理策略
|
||||
|
||||
```text
|
||||
草稿项目 30 天未操作可清理
|
||||
失败临时文件 7 天清理
|
||||
预览图 30 天清理
|
||||
正式成品按套餐保存
|
||||
日志按周期归档
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 告警
|
||||
|
||||
```text
|
||||
AI成本超阈值
|
||||
任务失败率超阈值
|
||||
视频合成失败
|
||||
Redis队列积压
|
||||
磁盘空间不足
|
||||
数据库备份失败
|
||||
Provider连续失败
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 安全
|
||||
|
||||
```text
|
||||
后台必须登录
|
||||
管理员操作留日志
|
||||
下载链接有有效期
|
||||
原始小说私有存储
|
||||
用户素材私有存储
|
||||
公开案例单独授权
|
||||
```
|
||||
Executable
+153
@@ -0,0 +1,153 @@
|
||||
# 20_测试用例_验收标准
|
||||
|
||||
## 1. MVP 总体验收
|
||||
|
||||
必须跑通:
|
||||
|
||||
```text
|
||||
AI 原创小说 → 3 集漫剧 MP4
|
||||
上传小说 → 1 集漫剧 MP4
|
||||
后台能查看任务和重试失败
|
||||
用户能下载成品
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 登录测试
|
||||
|
||||
```text
|
||||
注册成功
|
||||
登录成功
|
||||
Token过期
|
||||
未登录禁止创建项目
|
||||
用户只能看自己的项目
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. AI 原创小说测试
|
||||
|
||||
```text
|
||||
生成故事创意
|
||||
生成大纲
|
||||
生成故事圣经
|
||||
生成角色圣经
|
||||
生成章节
|
||||
自检通过
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 上传小说测试
|
||||
|
||||
```text
|
||||
txt解析
|
||||
docx解析
|
||||
md解析
|
||||
pdf文本型解析
|
||||
乱码提示
|
||||
章节识别
|
||||
章节手动编辑
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 版权测试
|
||||
|
||||
```text
|
||||
未确认版权不能继续
|
||||
确认后保存记录
|
||||
后台可查授权记录
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 角色一致性测试
|
||||
|
||||
```text
|
||||
主角有锚点图
|
||||
角色锁定后不能改核心设定
|
||||
分镜图引用角色设定
|
||||
角色跨集不明显变脸
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 长篇记忆测试
|
||||
|
||||
```text
|
||||
生成第5集时能引用前集摘要
|
||||
伏笔能记录
|
||||
人物关系变化能记录
|
||||
连续性检查能发现冲突
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 分集和分镜测试
|
||||
|
||||
```text
|
||||
每集有开头钩子
|
||||
每集有结尾悬念
|
||||
每个镜头有画面描述
|
||||
每个镜头有时长
|
||||
每个镜头有 Prompt
|
||||
复杂镜头能拆分
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. 图片生成测试
|
||||
|
||||
```text
|
||||
角色图生成
|
||||
分镜预览图生成
|
||||
正式图生成
|
||||
失败可重试
|
||||
图片关联镜头
|
||||
图片质检记录
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. 视频合成测试
|
||||
|
||||
```text
|
||||
图片转视频
|
||||
字幕正常
|
||||
旁白正常
|
||||
BGM正常
|
||||
MP4可播放
|
||||
封面正常
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 11. 后台测试
|
||||
|
||||
```text
|
||||
项目列表
|
||||
任务列表
|
||||
任务重试
|
||||
人工审核
|
||||
角色管理
|
||||
分镜管理
|
||||
成本日志
|
||||
模板管理
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 12. 验收标准
|
||||
|
||||
项目完成标准:
|
||||
|
||||
```text
|
||||
一条 AI 原创链路完整可用
|
||||
一条上传小说链路完整可用
|
||||
任务失败可恢复
|
||||
用户可下载成品
|
||||
后台可管理项目
|
||||
成本可统计
|
||||
核心数据可追踪
|
||||
```
|
||||
Executable
+308
@@ -0,0 +1,308 @@
|
||||
# 21_Codex开发任务拆解文档
|
||||
|
||||
## 1. Codex 开发规则
|
||||
|
||||
```text
|
||||
每次只完成一个任务
|
||||
完成后等待人工审核
|
||||
不得一次性开发整个系统
|
||||
不得擅自删除 docs
|
||||
不得把真实 API Key 写入代码
|
||||
所有 AI Provider 先 mock
|
||||
所有状态必须写入数据库
|
||||
所有任务必须支持失败记录
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 推荐项目结构
|
||||
|
||||
```text
|
||||
ai-manga-system-a/
|
||||
├── docs/
|
||||
├── backend/
|
||||
├── admin/
|
||||
├── user-app/
|
||||
├── workers/
|
||||
├── deploy/
|
||||
└── README.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 任务 01:读取文档并输出计划
|
||||
|
||||
要求:
|
||||
|
||||
```text
|
||||
只读 docs
|
||||
不写代码
|
||||
输出开发理解
|
||||
输出 MVP 范围
|
||||
输出目录结构
|
||||
输出疑问
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 任务 02:初始化项目骨架
|
||||
|
||||
```text
|
||||
创建 monorepo
|
||||
初始化 backend
|
||||
初始化 admin
|
||||
初始化 user-app
|
||||
创建 workers
|
||||
创建 deploy
|
||||
创建 .env.example
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 任务 03:数据库 schema
|
||||
|
||||
按 `05_数据库表结构设计.md` 创建表。
|
||||
|
||||
验收:
|
||||
|
||||
```text
|
||||
迁移可执行
|
||||
索引存在
|
||||
基础表可写入
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 任务 04:认证和用户
|
||||
|
||||
```text
|
||||
注册
|
||||
登录
|
||||
JWT
|
||||
用户信息
|
||||
权限守卫
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 任务 05:文件上传和资产
|
||||
|
||||
```text
|
||||
MinIO
|
||||
小说文件上传
|
||||
图片/视频资产表
|
||||
私有访问
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 任务 06:项目创建流程
|
||||
|
||||
```text
|
||||
创建项目
|
||||
选择输入模式
|
||||
选择题材
|
||||
保存目标集数
|
||||
状态流转
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. 任务 07:上传小说解析
|
||||
|
||||
```text
|
||||
txt/docx/md解析
|
||||
章节识别
|
||||
文本清洗
|
||||
章节保存
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. 任务 08:AI 原创小说 Mock
|
||||
|
||||
```text
|
||||
Mock 故事创意
|
||||
Mock 大纲
|
||||
Mock 章节
|
||||
Mock 自检
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 11. 任务 09:故事圣经模块
|
||||
|
||||
```text
|
||||
生成
|
||||
编辑
|
||||
确认
|
||||
版本管理
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 12. 任务 10:角色圣经和锚点图
|
||||
|
||||
```text
|
||||
角色提取
|
||||
角色编辑
|
||||
角色图生成任务
|
||||
锚点图选择
|
||||
角色锁定
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 13. 任务 11:长篇记忆模块
|
||||
|
||||
```text
|
||||
plot_memories
|
||||
plot_threads
|
||||
character_memories
|
||||
continuity_checks
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 14. 任务 12:分集计划
|
||||
|
||||
```text
|
||||
生成分集
|
||||
编辑分集
|
||||
确认分集
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 15. 任务 13:脚本和分镜
|
||||
|
||||
```text
|
||||
生成单集脚本
|
||||
生成分镜
|
||||
编辑镜头
|
||||
Prompt生成
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 16. 任务 14:BullMQ 队列
|
||||
|
||||
```text
|
||||
任务创建
|
||||
任务状态
|
||||
重试
|
||||
幂等key
|
||||
失败记录
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 17. 任务 15:AI Provider 抽象
|
||||
|
||||
```text
|
||||
TextProvider
|
||||
ImageProvider
|
||||
VoiceProvider
|
||||
VideoProvider
|
||||
ModerationProvider
|
||||
Mock实现
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 18. 任务 16:图片生成
|
||||
|
||||
```text
|
||||
角色图
|
||||
分镜预览图
|
||||
正式图
|
||||
质检记录
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 19. 任务 17:TTS 字幕 FFmpeg
|
||||
|
||||
```text
|
||||
生成旁白
|
||||
生成SRT
|
||||
图片转视频
|
||||
字幕/BGM合成
|
||||
导出MP4
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 20. 任务 18:后台管理
|
||||
|
||||
```text
|
||||
项目管理
|
||||
小说管理
|
||||
角色管理
|
||||
分镜管理
|
||||
任务管理
|
||||
审核管理
|
||||
模板管理
|
||||
成本日志
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 21. 任务 19:uni-app 用户端
|
||||
|
||||
```text
|
||||
首页
|
||||
创建项目
|
||||
AI原创设置
|
||||
上传小说
|
||||
版权确认
|
||||
故事圣经
|
||||
角色库
|
||||
分集
|
||||
分镜
|
||||
进度
|
||||
成品
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 22. 任务 20:订单额度
|
||||
|
||||
```text
|
||||
套餐
|
||||
订单
|
||||
额度冻结
|
||||
额度扣减
|
||||
成本日志
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 23. 任务 21:内容审核
|
||||
|
||||
```text
|
||||
版权确认
|
||||
文本审核
|
||||
图片审核
|
||||
视频审核
|
||||
公开案例授权
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 24. 任务 22:真实 AI Provider 接入
|
||||
|
||||
在所有 mock 流程跑通后再接入真实模型。
|
||||
|
||||
---
|
||||
|
||||
## 25. 任务 23:MVP 验收
|
||||
|
||||
必须完成:
|
||||
|
||||
```text
|
||||
AI原创小说生成3集MP4
|
||||
上传小说生成1集MP4
|
||||
后台可重试失败任务
|
||||
用户可下载成品
|
||||
```
|
||||
Executable
+159
@@ -0,0 +1,159 @@
|
||||
# 22_系统A与系统B后续合并架构设计
|
||||
|
||||
## 1. 合并目标
|
||||
|
||||
系统 A 和系统 B 第一阶段分开开发,但后续应合并为:
|
||||
|
||||
```text
|
||||
AI 内容影像生成平台
|
||||
```
|
||||
|
||||
系统 A:
|
||||
|
||||
```text
|
||||
小说 / 文本故事 → 韩漫 / 漫剧
|
||||
```
|
||||
|
||||
系统 B:
|
||||
|
||||
```text
|
||||
真人照片 → 写真 / 婚礼 / 纪念视频
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 公共平台模块
|
||||
|
||||
```text
|
||||
用户系统
|
||||
权限系统
|
||||
订单系统
|
||||
额度系统
|
||||
套餐系统
|
||||
素材系统
|
||||
AI Provider
|
||||
任务队列
|
||||
视频合成
|
||||
内容审核
|
||||
案例管理
|
||||
成本统计
|
||||
日志监控
|
||||
部署运维
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 系统 A 独有模块
|
||||
|
||||
```text
|
||||
小说源
|
||||
章节
|
||||
故事圣经
|
||||
世界观圣经
|
||||
角色圣经
|
||||
长篇记忆
|
||||
分集计划
|
||||
分镜脚本
|
||||
连载管理
|
||||
剧情数据反馈
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 系统 B 独有模块
|
||||
|
||||
```text
|
||||
真人照片
|
||||
人像档案
|
||||
人生主题
|
||||
世界模板
|
||||
场景模板
|
||||
写真镜头
|
||||
人像一致性
|
||||
纪念视频模板
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 后续统一数据模型
|
||||
|
||||
公共实体:
|
||||
|
||||
```text
|
||||
User
|
||||
Project
|
||||
Asset
|
||||
Task
|
||||
Order
|
||||
Quota
|
||||
Provider
|
||||
Review
|
||||
Case
|
||||
Analytics
|
||||
```
|
||||
|
||||
系统 A Project type:
|
||||
|
||||
```text
|
||||
novel_manga
|
||||
```
|
||||
|
||||
系统 B Project type:
|
||||
|
||||
```text
|
||||
portrait_video
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. Provider 共用
|
||||
|
||||
```text
|
||||
TextProvider
|
||||
ImageProvider
|
||||
VideoProvider
|
||||
VoiceProvider
|
||||
ModerationProvider
|
||||
QualityCheckProvider
|
||||
```
|
||||
|
||||
系统 A 和 B 都不允许直接写死模型。
|
||||
|
||||
---
|
||||
|
||||
## 7. 视频合成共用
|
||||
|
||||
系统 A 和 B 都可以使用:
|
||||
|
||||
```text
|
||||
图片排序
|
||||
运镜
|
||||
字幕
|
||||
BGM
|
||||
TTS
|
||||
FFmpeg合成
|
||||
封面生成
|
||||
```
|
||||
|
||||
区别:
|
||||
|
||||
```text
|
||||
系统 A 偏剧情分镜
|
||||
系统 B 偏写真镜头和纪念视频
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. 合并顺序建议
|
||||
|
||||
```text
|
||||
第一步:统一用户和订单
|
||||
第二步:统一素材系统
|
||||
第三步:统一 AI Provider
|
||||
第四步:统一任务队列
|
||||
第五步:统一视频合成
|
||||
第六步:统一后台权限和日志
|
||||
第七步:合并前台入口
|
||||
```
|
||||
|
||||
不要一开始就强行写成一个复杂系统。
|
||||
Executable
+134
@@ -0,0 +1,134 @@
|
||||
# 系统 A:原创小说 / 上传小说 → 韩漫 / 漫剧生成系统 V2 Production 文档包
|
||||
|
||||
## 1. 文档包定位
|
||||
|
||||
本包是系统 A 的 **生产级基础需求 + 工程落地文档**,用于替代上一版 `system_a_docs_v1.zip` 作为 Codex / 开发团队的开发基线。
|
||||
|
||||
上一版 V1 的定位:
|
||||
|
||||
```text
|
||||
能跑通 MVP
|
||||
能证明小说 → 漫剧链路可行
|
||||
需求颗粒度不够细
|
||||
长篇连载、角色一致性、批量稳定性不足
|
||||
```
|
||||
|
||||
本版 V2 Production 的定位:
|
||||
|
||||
```text
|
||||
作为系统 A 正式开发基线
|
||||
覆盖原创小说、上传小说、授权小说改编
|
||||
覆盖短篇 MVP、长篇连载、批量生成
|
||||
覆盖角色一致性、剧情记忆、分镜质量、视频合成、成本控制、版权合规
|
||||
为后续与系统 B 合并预留公共平台架构
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 系统 A 一句话定位
|
||||
|
||||
> 系统 A 是一套把 AI 原创小说或已授权上传小说,自动改编成韩漫图集、短视频漫剧和连载剧集的 AI 内容工厂。
|
||||
|
||||
---
|
||||
|
||||
## 3. 第一阶段落地目标
|
||||
|
||||
第一阶段不要追求全自动 100 集。正式 MVP 目标是:
|
||||
|
||||
```text
|
||||
AI 原创小说模式:
|
||||
1 个小说项目
|
||||
→ 生成故事圣经
|
||||
→ 生成 3 个主要角色
|
||||
→ 生成 3 集短漫剧
|
||||
→ 每集 45-60 秒
|
||||
→ 每集 10-20 张图
|
||||
→ 自动配音、字幕、BGM
|
||||
→ 自动合成 MP4
|
||||
|
||||
上传小说模式:
|
||||
上传 1 篇已授权小说
|
||||
→ 解析章节
|
||||
→ 生成故事圣经
|
||||
→ 提取角色
|
||||
→ 生成 1-3 集漫剧
|
||||
→ 下载 MP4
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 后续生产级目标
|
||||
|
||||
```text
|
||||
支持 20-100 集连载剧集
|
||||
支持批量生成
|
||||
支持角色跨集稳定
|
||||
支持剧情长线记忆
|
||||
支持人工审核和重试
|
||||
支持高质量封面标题
|
||||
支持不同题材 A/B 测试
|
||||
支持多模型 Provider 替换
|
||||
支持成本监控和额度管理
|
||||
支持与系统 B 合并为统一 AI 影像平台
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 本文档包清单
|
||||
|
||||
```text
|
||||
00_上下文难点清单_已接入设计.md
|
||||
01_系统A总需求文档_v2_生产级基线.md
|
||||
02_业务流程_状态流转_权限设计.md
|
||||
03_功能清单_页面清单.md
|
||||
04_技术架构设计_模块拆分.md
|
||||
05_数据库表结构设计.md
|
||||
06_API接口设计文档.md
|
||||
07_uniapp用户端页面交互文档.md
|
||||
08_GeekerAdmin后台管理设计.md
|
||||
09_AI生成流水线_Provider抽象设计.md
|
||||
10_Prompt模板_题材世界观_韩漫规范.md
|
||||
11_角色一致性专项设计.md
|
||||
12_长篇连载记忆_剧情一致性专项设计.md
|
||||
13_小说生成_上传解析_改编质量标准.md
|
||||
14_分镜镜头_视频合成_特效设计.md
|
||||
15_任务队列_错误重试_稳定性设计.md
|
||||
16_订单支付_额度_成本控制设计.md
|
||||
17_版权授权_内容审核_合规设计.md
|
||||
18_批量生产_运营发布_数据反馈设计.md
|
||||
19_部署运维_日志监控_备份设计.md
|
||||
20_测试用例_验收标准.md
|
||||
21_Codex开发任务拆解文档.md
|
||||
22_系统A与系统B后续合并架构设计.md
|
||||
文件行数统计.json
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 使用规则
|
||||
|
||||
开发时以这些文档为主:
|
||||
|
||||
```text
|
||||
01_系统A总需求文档_v2_生产级基线.md
|
||||
02_业务流程_状态流转_权限设计.md
|
||||
04_技术架构设计_模块拆分.md
|
||||
05_数据库表结构设计.md
|
||||
09_AI生成流水线_Provider抽象设计.md
|
||||
11_角色一致性专项设计.md
|
||||
12_长篇连载记忆_剧情一致性专项设计.md
|
||||
14_分镜镜头_视频合成_特效设计.md
|
||||
15_任务队列_错误重试_稳定性设计.md
|
||||
21_Codex开发任务拆解文档.md
|
||||
```
|
||||
|
||||
Codex 开发时禁止一口气做完整系统。必须按 `21_Codex开发任务拆解文档.md` 分阶段执行。
|
||||
|
||||
---
|
||||
|
||||
## 7. 旧版处理
|
||||
|
||||
```text
|
||||
system_a_docs_v1.zip:只作为历史稿保存
|
||||
system_a_docs_v2_production.zip:作为当前开发基线
|
||||
```
|
||||
Executable
+122
@@ -0,0 +1,122 @@
|
||||
[
|
||||
{
|
||||
"file": "00_上下文难点清单_已接入设计.md",
|
||||
"lines": 97,
|
||||
"chars": 1660
|
||||
},
|
||||
{
|
||||
"file": "01_系统A总需求文档_v2_生产级基线.md",
|
||||
"lines": 447,
|
||||
"chars": 2962
|
||||
},
|
||||
{
|
||||
"file": "02_业务流程_状态流转_权限设计.md",
|
||||
"lines": 301,
|
||||
"chars": 3188
|
||||
},
|
||||
{
|
||||
"file": "03_功能清单_页面清单.md",
|
||||
"lines": 364,
|
||||
"chars": 1774
|
||||
},
|
||||
{
|
||||
"file": "04_技术架构设计_模块拆分.md",
|
||||
"lines": 202,
|
||||
"chars": 2325
|
||||
},
|
||||
{
|
||||
"file": "05_数据库表结构设计.md",
|
||||
"lines": 490,
|
||||
"chars": 6814
|
||||
},
|
||||
{
|
||||
"file": "06_API接口设计文档.md",
|
||||
"lines": 219,
|
||||
"chars": 3712
|
||||
},
|
||||
{
|
||||
"file": "07_uniapp用户端页面交互文档.md",
|
||||
"lines": 175,
|
||||
"chars": 1412
|
||||
},
|
||||
{
|
||||
"file": "08_GeekerAdmin后台管理设计.md",
|
||||
"lines": 250,
|
||||
"chars": 1306
|
||||
},
|
||||
{
|
||||
"file": "09_AI生成流水线_Provider抽象设计.md",
|
||||
"lines": 183,
|
||||
"chars": 1305
|
||||
},
|
||||
{
|
||||
"file": "10_Prompt模板_题材世界观_韩漫规范.md",
|
||||
"lines": 183,
|
||||
"chars": 1295
|
||||
},
|
||||
{
|
||||
"file": "11_角色一致性专项设计.md",
|
||||
"lines": 206,
|
||||
"chars": 1384
|
||||
},
|
||||
{
|
||||
"file": "12_长篇连载记忆_剧情一致性专项设计.md",
|
||||
"lines": 232,
|
||||
"chars": 1661
|
||||
},
|
||||
{
|
||||
"file": "13_小说生成_上传解析_改编质量标准.md",
|
||||
"lines": 217,
|
||||
"chars": 1280
|
||||
},
|
||||
{
|
||||
"file": "14_分镜镜头_视频合成_特效设计.md",
|
||||
"lines": 196,
|
||||
"chars": 1188
|
||||
},
|
||||
{
|
||||
"file": "15_任务队列_错误重试_稳定性设计.md",
|
||||
"lines": 147,
|
||||
"chars": 1085
|
||||
},
|
||||
{
|
||||
"file": "16_订单支付_额度_成本控制设计.md",
|
||||
"lines": 161,
|
||||
"chars": 967
|
||||
},
|
||||
{
|
||||
"file": "17_版权授权_内容审核_合规设计.md",
|
||||
"lines": 136,
|
||||
"chars": 801
|
||||
},
|
||||
{
|
||||
"file": "18_批量生产_运营发布_数据反馈设计.md",
|
||||
"lines": 128,
|
||||
"chars": 710
|
||||
},
|
||||
{
|
||||
"file": "19_部署运维_日志监控_备份设计.md",
|
||||
"lines": 116,
|
||||
"chars": 845
|
||||
},
|
||||
{
|
||||
"file": "20_测试用例_验收标准.md",
|
||||
"lines": 154,
|
||||
"chars": 932
|
||||
},
|
||||
{
|
||||
"file": "21_Codex开发任务拆解文档.md",
|
||||
"lines": 309,
|
||||
"chars": 2045
|
||||
},
|
||||
{
|
||||
"file": "22_系统A与系统B后续合并架构设计.md",
|
||||
"lines": 160,
|
||||
"chars": 1064
|
||||
},
|
||||
{
|
||||
"file": "README.md",
|
||||
"lines": 135,
|
||||
"chars": 1773
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,126 @@
|
||||
# 00_系统B升级说明_真人动态视频
|
||||
|
||||
## 1. 为什么要升级
|
||||
|
||||
系统 B V1/V2 的主线是:
|
||||
|
||||
```text
|
||||
真人照片
|
||||
→ 多人生主题 / 多世界模板
|
||||
→ 写真图 / 韩漫图
|
||||
→ 图片运镜 + BGM + 字幕
|
||||
→ 纪念视频
|
||||
```
|
||||
|
||||
这条链路适合稳定交付写真图集、婚礼相册视频和轻动态纪念片。
|
||||
|
||||
现在新增目标是:
|
||||
|
||||
```text
|
||||
真人照片
|
||||
→ 保持本人长相和身份
|
||||
→ 换世界 / 换朝代 / 换服装
|
||||
→ 人物会动、有表情、有动作、可轻口型
|
||||
→ 像抖音真人短剧 / 真人婚礼电影 / 真人穿越纪念片
|
||||
```
|
||||
|
||||
因此系统 B 不需要推翻,但必须升级为:
|
||||
|
||||
```text
|
||||
系统 B V3:真人动态视频版
|
||||
```
|
||||
|
||||
## 2. V3 的核心定位
|
||||
|
||||
系统 B V3 是真人照片驱动的 AI 多人生主题影像平台,支持:
|
||||
|
||||
- 真人写真图集
|
||||
- 图片纪念视频
|
||||
- 动态写真视频
|
||||
- AI 真人动态视频
|
||||
- 高端真人纪念片
|
||||
|
||||
系统 B 与系统 A 的关键区别:
|
||||
|
||||
```text
|
||||
系统 A:虚构小说角色 → 真人短剧
|
||||
系统 B:真实用户照片 → 真人动态纪念视频
|
||||
```
|
||||
|
||||
系统 B 必须优先保证本人相似度、肖像授权、隐私保护、未成年人保护、身份不漂移和公开案例二次授权。
|
||||
|
||||
## 3. V3 不推翻的能力
|
||||
|
||||
以下 V2 设计继续保留:
|
||||
|
||||
- 真人照片上传
|
||||
- 照片质检
|
||||
- 人物档案
|
||||
- 人生主题
|
||||
- 世界模板
|
||||
- 场景模板
|
||||
- 镜头模板
|
||||
- 图片生成
|
||||
- FFmpeg 图片视频合成
|
||||
- 隐私授权
|
||||
- 后台审核
|
||||
- 订单和成本控制
|
||||
- Provider 抽象
|
||||
|
||||
V3 是在上述基础上新增真人动态视频链路。
|
||||
|
||||
## 4. V3 新增能力
|
||||
|
||||
```text
|
||||
AI 真人动态视频模式
|
||||
真人身份锁定
|
||||
身份锚点图
|
||||
动作模板
|
||||
关键帧生成
|
||||
图生视频 / 参考图生视频
|
||||
视频片段生成
|
||||
视频片段质检
|
||||
口型同步任务
|
||||
FaceConsistencyProvider
|
||||
MotionPortraitProvider
|
||||
LipSyncProvider
|
||||
国内 VideoProvider 策略
|
||||
更严格肖像权和未成年人保护
|
||||
更细成本阈值和人工审核
|
||||
```
|
||||
|
||||
## 5. 推荐真实视频 Provider 顺序
|
||||
|
||||
第一轮真实小样建议按以下顺序测试:
|
||||
|
||||
1. MiniMax Hailuo 2.3 Fast:速度和成本更适合小样验证。
|
||||
2. 阿里 Wan2.6 I2V Flash:对比稳定性、清晰度和成本。
|
||||
3. Vidu Q3 Turbo Reference:重点看参考图人物一致性、表情和音画能力。
|
||||
4. Seedance / 即梦:重点看真人感、镜头语言和中文短剧感。
|
||||
5. Kling / Runway:作为备用和质量对比。
|
||||
|
||||
每次只测同一个项目、同一个人物、同一个镜头,避免变量过多。
|
||||
|
||||
## 6. V3 最小验收目标
|
||||
|
||||
第一版不要求整片都是真 AI 动态视频。推荐最小可上线策略:
|
||||
|
||||
```text
|
||||
写真图集版:稳定生成 6-12 张图
|
||||
图片视频版:稳定合成 30-60 秒 MP4
|
||||
动态写真版:关键图可做轻微眨眼/微笑/背景动效
|
||||
AI 真人动态视频版:1-3 个关键镜头使用真实图生视频
|
||||
```
|
||||
|
||||
高端真人纪念片再扩展到全片段 AI 视频化、口型、誓言、人工精修和多轮修改。
|
||||
|
||||
## 7. 不能省略的安全规则
|
||||
|
||||
- 默认不公开用户作品。
|
||||
- 默认不把用户照片用于训练或展示。
|
||||
- 公开案例必须二次授权。
|
||||
- 未成年人默认不公开,必须监护人授权。
|
||||
- 真实视频 Provider 默认禁用。
|
||||
- 真实动态视频必须先成本预估,再用户确认,再生成。
|
||||
- 真实 Provider 失败不能回落 mock 假成功。
|
||||
- 视频片段必须做本人相似度和合规质检。
|
||||
@@ -0,0 +1,384 @@
|
||||
# 01_系统B总需求文档_v3_真人动态视频版
|
||||
|
||||
## 1. 项目名称
|
||||
|
||||
**AI 真人多人生主题写真 / 动态视频 / 纪念短片生成系统**
|
||||
|
||||
简称:
|
||||
|
||||
```text
|
||||
系统 B V3
|
||||
真人照片 → 多人生主题 → 多世界模板 → 写真图集 / 图片视频 / 动态写真 / AI 真人动态视频
|
||||
```
|
||||
|
||||
## 2. 产品一句话
|
||||
|
||||
用户上传本人、情侣、夫妻或家庭成员照片后,系统在授权和质检通过的前提下,生成专属多世界写真图集、纪念视频,以及带表情、动作、轻口型和镜头运动的 AI 真人动态视频。
|
||||
|
||||
## 3. V3 输出模式
|
||||
|
||||
### 3.1 高清写真图集
|
||||
|
||||
```text
|
||||
真人照片
|
||||
→ 人物身份档案
|
||||
→ 多世界写真图
|
||||
→ 高清图片交付
|
||||
```
|
||||
|
||||
适合:
|
||||
|
||||
- 情侣写真
|
||||
- 婚礼照片
|
||||
- 个人形象
|
||||
- 父母纪念照
|
||||
|
||||
### 3.2 图片纪念视频
|
||||
|
||||
```text
|
||||
写真图
|
||||
→ FFmpeg 推拉运镜
|
||||
→ 配乐 / 旁白 / 字幕
|
||||
→ MP4
|
||||
```
|
||||
|
||||
效果类似高级相册视频、婚礼纪念片、照片动效视频。人物本身不做真实行动。
|
||||
|
||||
### 3.3 动态写真视频
|
||||
|
||||
```text
|
||||
写真图
|
||||
→ 眨眼 / 微笑 / 头发衣服轻微动
|
||||
→ 背景动效 / 花瓣光效
|
||||
→ 轻口型,可选
|
||||
→ MP4
|
||||
```
|
||||
|
||||
适合婚礼纪念、情侣纪念、父母金婚银婚、个人形象短片。
|
||||
|
||||
### 3.4 AI 真人动态视频
|
||||
|
||||
```text
|
||||
真人照片
|
||||
→ 真人身份档案
|
||||
→ 身份锚点
|
||||
→ 世界 / 场景 / 服装设定
|
||||
→ 关键帧
|
||||
→ 图生视频 / 参考图生视频
|
||||
→ 人物动作 / 表情变化
|
||||
→ 旁白 / 字幕 / BGM / 口型,可选
|
||||
→ 合成成片
|
||||
```
|
||||
|
||||
效果目标:
|
||||
|
||||
- 像抖音真人短剧
|
||||
- 像真人婚礼电影
|
||||
- 像真人穿越短片
|
||||
- 人物有动作、表情和镜头运动
|
||||
|
||||
### 3.5 高端真人纪念片
|
||||
|
||||
高端版本支持:
|
||||
|
||||
- 多世界
|
||||
- 多场景
|
||||
- 关键镜头真人动态
|
||||
- 誓言 / 旁白 / 口型
|
||||
- 人工审核
|
||||
- 人工精修
|
||||
- 多轮修改
|
||||
|
||||
## 4. 第一阶段主打场景
|
||||
|
||||
第一阶段重点做:
|
||||
|
||||
- 结婚纪念
|
||||
- 恋爱纪念
|
||||
- 父母银婚金婚
|
||||
- 情侣写真
|
||||
- 个人形象定制
|
||||
|
||||
后续扩展:
|
||||
|
||||
- 家庭全家福
|
||||
- 宝宝百日
|
||||
- 儿童成长
|
||||
- 闺蜜写真
|
||||
- 亲子纪念
|
||||
|
||||
涉及未成年人时,必须启用更严格授权、审核和公开限制。
|
||||
|
||||
## 5. V3 标准流程
|
||||
|
||||
```text
|
||||
首页浏览
|
||||
→ 登录
|
||||
→ 创建项目
|
||||
→ 选择人生主题
|
||||
→ 选择套餐
|
||||
→ 选择输出模式
|
||||
→ 选择视觉风格
|
||||
→ 选择世界观
|
||||
→ 选择场景
|
||||
→ 上传照片
|
||||
→ 肖像和隐私授权确认
|
||||
→ 照片质检
|
||||
→ 真人身份档案
|
||||
→ 生成身份锚点图
|
||||
→ 用户确认像不像
|
||||
→ 生成创作方案
|
||||
→ 成本预估 / 支付 / 额度冻结
|
||||
→ 生成预览
|
||||
→ 用户确认
|
||||
→ 正式图片 / 关键帧生成
|
||||
→ 真人动态视频片段生成,可选
|
||||
→ 视频片段质检
|
||||
→ 配音 / 字幕 / BGM
|
||||
→ 口型同步,可选
|
||||
→ 合成成片
|
||||
→ 人工审核
|
||||
→ 用户确认
|
||||
→ 下载交付
|
||||
```
|
||||
|
||||
## 6. 核心业务对象
|
||||
|
||||
V3 在 V2 基础上新增或增强:
|
||||
|
||||
```text
|
||||
Project.output_mode
|
||||
PersonProfile.identity_lock_status
|
||||
PersonProfile.face_consistency_score
|
||||
IdentityAnchor
|
||||
MotionTemplate
|
||||
VideoClip
|
||||
LipSyncTask
|
||||
FaceConsistencyCheck
|
||||
ProviderConfig
|
||||
ProviderLog
|
||||
```
|
||||
|
||||
## 7. 真人身份锁定
|
||||
|
||||
系统必须建立“真实人物身份锁定”流程:
|
||||
|
||||
1. 用户上传多张参考照片。
|
||||
2. 系统去 EXIF,私有存储。
|
||||
3. 检测清晰度、人脸数量、遮挡、角度和过度美颜。
|
||||
4. 生成人物档案。
|
||||
5. 生成身份锚点图。
|
||||
6. 用户确认“像本人”后才能进入正式生成。
|
||||
7. 后续图片和视频都必须引用身份锚点和人物档案。
|
||||
|
||||
身份锁定字段:
|
||||
|
||||
```text
|
||||
identity_lock_status
|
||||
primary_reference_asset_id
|
||||
approved_anchor_asset_id
|
||||
face_consistency_score
|
||||
age_preserve_rule
|
||||
beautify_level
|
||||
style_transform_level
|
||||
privacy_level
|
||||
```
|
||||
|
||||
## 8. 动作与视频片段
|
||||
|
||||
V3 需要动作模板:
|
||||
|
||||
```text
|
||||
smile
|
||||
blink
|
||||
turn_head
|
||||
walk_forward
|
||||
hold_hands
|
||||
look_at_each_other
|
||||
bow_ceremony
|
||||
lift_veil
|
||||
hug
|
||||
wave
|
||||
stand_still_cinematic
|
||||
slow_camera_push
|
||||
```
|
||||
|
||||
每个视频片段单独保存,记录:
|
||||
|
||||
```text
|
||||
project_id
|
||||
scene_id
|
||||
shot_id
|
||||
person_ids
|
||||
provider_id
|
||||
input_asset_id
|
||||
output_asset_id
|
||||
prompt_text
|
||||
duration
|
||||
resolution
|
||||
motion_type
|
||||
lipsync_enabled
|
||||
status
|
||||
retry_count
|
||||
cost_actual
|
||||
quality_score
|
||||
```
|
||||
|
||||
## 9. Provider 策略
|
||||
|
||||
系统 B V3 不直接依赖单一模型,必须通过 Provider 抽象管理:
|
||||
|
||||
```text
|
||||
TextProvider
|
||||
ImageProvider
|
||||
VideoProvider
|
||||
VoiceProvider
|
||||
MotionPortraitProvider
|
||||
LipSyncProvider
|
||||
FaceIdentityProvider
|
||||
FaceConsistencyProvider
|
||||
QualityCheckProvider
|
||||
ModerationProvider
|
||||
```
|
||||
|
||||
短剧向视频 Provider 预设:
|
||||
|
||||
```text
|
||||
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 默认禁用。
|
||||
- 测试先启用一个 Provider。
|
||||
- 先跑 1 个镜头小样。
|
||||
- 设置单次和每日成本上限。
|
||||
- 真实 Provider 失败不能回落 mock 假成功。
|
||||
|
||||
## 10. Prompt 方向
|
||||
|
||||
系统 B Prompt 必须强调真人身份保持:
|
||||
|
||||
```text
|
||||
真实短剧风格,保持参考照片中人物的五官、脸型、年龄感和气质,不能换脸,不能变成其他人。
|
||||
人物穿着指定主题服装,在指定场景中自然微笑、转头、牵手或行礼。
|
||||
镜头竖屏 9:16,电影感光影,真实表情,动作自然,适合抖音短视频纪念片。
|
||||
```
|
||||
|
||||
负面约束:
|
||||
|
||||
```text
|
||||
不要改变人物身份
|
||||
不要变年轻太多
|
||||
不要变成欧美脸
|
||||
不要多出第三人
|
||||
不要脸部扭曲
|
||||
不要手部异常
|
||||
不要表情僵硬
|
||||
不要恐怖感
|
||||
不要过度美颜
|
||||
不要低俗姿势
|
||||
```
|
||||
|
||||
## 11. 成本控制
|
||||
|
||||
真人动态视频成本必须按以下维度估算:
|
||||
|
||||
- 视频片段秒数
|
||||
- 视频模型
|
||||
- 分辨率
|
||||
- 候选数量
|
||||
- 重试次数
|
||||
- 口型任务
|
||||
- 人工审核
|
||||
|
||||
后台配置:
|
||||
|
||||
```text
|
||||
max_video_seconds_per_project
|
||||
max_clip_duration
|
||||
max_clip_candidates
|
||||
max_video_retry_per_clip
|
||||
default_video_resolution
|
||||
max_cost_per_project
|
||||
max_cost_per_call
|
||||
daily_cost_limit
|
||||
```
|
||||
|
||||
示例:
|
||||
|
||||
```text
|
||||
AI 真人动态视频 40 秒:
|
||||
8 个镜头
|
||||
每个 5 秒
|
||||
每镜头最多 1 次重试
|
||||
默认 720P
|
||||
```
|
||||
|
||||
## 12. 隐私与肖像权
|
||||
|
||||
系统 B V3 必须比系统 A 更严格:
|
||||
|
||||
- 用户作品默认私密。
|
||||
- 用户照片默认不公开、不进案例库、不用于训练。
|
||||
- 上传照片前必须确认拥有照片中所有人物授权。
|
||||
- 涉及未成年人必须确认监护人授权。
|
||||
- 公开案例必须单独授权。
|
||||
- 后台查看、下载、删除用户原图必须记录审计日志。
|
||||
|
||||
新增授权文案:
|
||||
|
||||
```text
|
||||
我确认拥有上传照片中所有人物授权。
|
||||
我授权平台仅为本项目生成图像和视频。
|
||||
我理解 AI 生成结果可能与本人存在差异。
|
||||
我确认不得上传未经授权的他人照片。
|
||||
如涉及未成年人,我确认我是监护人或已获得监护人授权。
|
||||
```
|
||||
|
||||
## 13. 后台运营能力
|
||||
|
||||
后台项目详情需新增:
|
||||
|
||||
- 人物身份锚点
|
||||
- 人脸一致性评分
|
||||
- 视频片段列表
|
||||
- 动作模板
|
||||
- 口型任务
|
||||
- 视频 Provider
|
||||
- 片段重试
|
||||
- 片段替换
|
||||
- 片段质检
|
||||
- 成本统计
|
||||
|
||||
后台审核需新增:
|
||||
|
||||
- 像不像本人
|
||||
- 是否变脸
|
||||
- 是否男女混脸
|
||||
- 是否年龄变化过大
|
||||
- 动作是否自然
|
||||
- 表情是否怪异
|
||||
- 是否有不合适姿势
|
||||
- 是否适合公开案例
|
||||
|
||||
## 14. MVP 验收标准
|
||||
|
||||
V3 第一版达到以下标准才可进入真实付费小样:
|
||||
|
||||
- 图集版可稳定生成 6-12 张图。
|
||||
- 图片视频版可稳定合成 30-60 秒 MP4。
|
||||
- 动态写真版可对关键图做轻微动效。
|
||||
- AI 真人动态视频版可用 1 个真实 Provider 生成 1-3 个关键镜头。
|
||||
- 每个真实视频片段可预估成本、生成、失败重试、质检、预览和替换。
|
||||
- 真实视频失败时任务失败并提示原因,不能显示 mock 成功。
|
||||
- 未成年人、公开案例、用户原图访问均有明确授权和审计。
|
||||
Executable
+1389
File diff suppressed because it is too large
Load Diff
Executable
+2745
File diff suppressed because it is too large
Load Diff
Executable
+769
@@ -0,0 +1,769 @@
|
||||
# 03_功能清单_页面清单_状态流转设计
|
||||
|
||||
## 1. 文档目标
|
||||
|
||||
本文档定义系统 B 的功能边界、用户端页面、后台页面、状态流转、权限边界和每个页面的关键操作。
|
||||
|
||||
## 2. 角色定义
|
||||
|
||||
| 角色 | 说明 |
|
||||
|---|---|
|
||||
| 游客 | 未登录用户,可浏览首页、案例、套餐 |
|
||||
| 普通用户 | 已登录用户,可创建项目、上传照片、生成作品 |
|
||||
| 运营人员 | 管理案例、模板、审核作品、处理修改 |
|
||||
| 管理员 | 管理用户、订单、Provider、系统配置 |
|
||||
| 超级管理员 | 拥有全部权限,包括密钥配置、数据删除、系统设置 |
|
||||
|
||||
## 3. 用户端页面清单
|
||||
|
||||
### 3.1 首页
|
||||
|
||||
功能:展示产品价值、案例、套餐、开始制作入口。
|
||||
|
||||
模块:
|
||||
|
||||
- Banner
|
||||
- 热门案例
|
||||
- 热门主题
|
||||
- 热门世界观
|
||||
- 制作流程
|
||||
- 套餐对比
|
||||
- 用户评价
|
||||
- FAQ
|
||||
|
||||
按钮:
|
||||
|
||||
- 查看案例
|
||||
- 用同款制作
|
||||
- 选择主题
|
||||
- 查看套餐
|
||||
- 开始制作
|
||||
- 联系客服
|
||||
|
||||
登录要求:不需要。
|
||||
|
||||
### 3.2 案例列表页
|
||||
|
||||
筛选条件:
|
||||
|
||||
- 人生主题
|
||||
- 世界观
|
||||
- 视觉风格
|
||||
- 图集 / 视频
|
||||
- 最新 / 热门
|
||||
|
||||
注意:只展示已授权公开案例。
|
||||
|
||||
### 3.3 案例详情页
|
||||
|
||||
展示:
|
||||
|
||||
- 案例视频
|
||||
- 案例图集
|
||||
- 使用主题
|
||||
- 使用世界观
|
||||
- 使用风格
|
||||
- 套餐推荐
|
||||
|
||||
按钮:
|
||||
|
||||
- 播放视频
|
||||
- 查看图集
|
||||
- 用同款制作
|
||||
- 收藏案例
|
||||
|
||||
### 3.4 登录/注册页
|
||||
|
||||
第一阶段支持:
|
||||
|
||||
- 手机号验证码
|
||||
- 微信授权
|
||||
|
||||
后续可加:
|
||||
|
||||
- 邮箱注册
|
||||
- 账号密码
|
||||
|
||||
### 3.5 创建项目页
|
||||
|
||||
字段:
|
||||
|
||||
- 项目名称
|
||||
- 人生主题
|
||||
- 作品用途
|
||||
- 输出类型
|
||||
|
||||
作品用途:
|
||||
|
||||
- 自己留念
|
||||
- 送礼物
|
||||
- 婚礼现场播放
|
||||
- 社交平台发布
|
||||
- 父母纪念
|
||||
|
||||
### 3.6 主题选择页
|
||||
|
||||
字段:
|
||||
|
||||
- 主题名称
|
||||
- 主题封面
|
||||
- 主题说明
|
||||
- 适合人群
|
||||
- 案例数量
|
||||
- 是否推荐
|
||||
|
||||
第一阶段主题:
|
||||
|
||||
- 结婚纪念
|
||||
- 恋爱纪念
|
||||
- 银婚金婚
|
||||
- 情侣写真
|
||||
- 个人形象定制
|
||||
|
||||
### 3.7 套餐选择页
|
||||
|
||||
字段:
|
||||
|
||||
- 套餐名称
|
||||
- 价格
|
||||
- 图片数量
|
||||
- 视频时长
|
||||
- 世界数量
|
||||
- 场景数量
|
||||
- 修改次数
|
||||
- 是否人工审核
|
||||
- 是否支持高级动态
|
||||
|
||||
按钮:
|
||||
|
||||
- 选择套餐
|
||||
- 查看套餐详情
|
||||
- 下一步
|
||||
|
||||
### 3.8 风格选择页
|
||||
|
||||
风格:
|
||||
|
||||
- 韩漫风
|
||||
- 半写实写真风
|
||||
- 国风插画风
|
||||
- 电影写实风
|
||||
|
||||
字段:
|
||||
|
||||
- 风格预览图
|
||||
- 适合主题
|
||||
- 适合世界
|
||||
- 是否高级风格
|
||||
|
||||
### 3.9 世界观选择页
|
||||
|
||||
模式:
|
||||
|
||||
- 单世界
|
||||
- 多世界
|
||||
- 自由排序
|
||||
- 同款案例带入
|
||||
|
||||
套餐限制:
|
||||
|
||||
| 套餐 | 世界数量 |
|
||||
|---|---|
|
||||
| 标准图集 | 1 个 |
|
||||
| 短视频 | 1-3 个 |
|
||||
| 多世界纪念片 | 5-10 个 |
|
||||
| 高端定制 | 按订单配置 |
|
||||
|
||||
### 3.10 场景选择页
|
||||
|
||||
每个世界下选择场景。
|
||||
|
||||
字段:
|
||||
|
||||
- 场景名称
|
||||
- 场景预览图
|
||||
- 推荐镜头数
|
||||
- 是否支持视频动态
|
||||
- 是否高级场景
|
||||
|
||||
### 3.11 照片上传页
|
||||
|
||||
双人主题:
|
||||
|
||||
- 人物 A:3-8 张
|
||||
- 人物 B:3-8 张
|
||||
- 双人合照:1-5 张,可选
|
||||
|
||||
单人主题:
|
||||
|
||||
- 本人照片:3-10 张
|
||||
|
||||
家庭主题:
|
||||
|
||||
- 每位成员 2-5 张
|
||||
- 家庭合照 1-5 张
|
||||
|
||||
禁止上传:
|
||||
|
||||
- 模糊照片
|
||||
- 戴墨镜/口罩
|
||||
- 过度美颜
|
||||
- 逆光严重
|
||||
- 脸部遮挡
|
||||
- 多人混乱
|
||||
|
||||
### 3.12 授权确认页
|
||||
|
||||
必须勾选:
|
||||
|
||||
- 我确认拥有上传照片的合法使用权
|
||||
- 我确认已获得照片中人物授权
|
||||
- 我授权平台为本次项目生成图片和视频
|
||||
- 我知道作品默认不公开展示
|
||||
- 如涉及未成年人,我确认我是监护人或已获得监护人授权
|
||||
|
||||
### 3.13 照片质检页
|
||||
|
||||
检测:
|
||||
|
||||
- 清晰度
|
||||
- 人脸完整度
|
||||
- 光照
|
||||
- 遮挡
|
||||
- 角度
|
||||
- 多人混入
|
||||
- 重复图片
|
||||
- 角色归属
|
||||
- 过度美颜
|
||||
|
||||
状态:
|
||||
|
||||
- pass:合格
|
||||
- warning:可用但有风险
|
||||
- fail:必须替换
|
||||
|
||||
### 3.14 定制信息页
|
||||
|
||||
字段:
|
||||
|
||||
- 人物姓名
|
||||
- 关系类型
|
||||
- 纪念日期
|
||||
- 文案风格
|
||||
- 一句话誓言
|
||||
- 是否显示名字
|
||||
- 是否显示日期
|
||||
- 特别要求
|
||||
- 是否允许公开展示
|
||||
|
||||
### 3.15 创作方案预览页
|
||||
|
||||
展示:
|
||||
|
||||
- 作品标题
|
||||
- 主题
|
||||
- 风格
|
||||
- 世界顺序
|
||||
- 场景顺序
|
||||
- 镜头数量
|
||||
- 图片数量
|
||||
- 预计视频时长
|
||||
- 旁白草稿
|
||||
- 字幕草稿
|
||||
- 预计消耗额度
|
||||
|
||||
按钮:
|
||||
|
||||
- 确认方案
|
||||
- 修改世界
|
||||
- 修改场景
|
||||
- 修改文案
|
||||
- 重新生成方案
|
||||
- 取消项目
|
||||
|
||||
### 3.16 支付/额度确认页
|
||||
|
||||
字段:
|
||||
|
||||
- 套餐价格
|
||||
- 优惠金额
|
||||
- 需支付金额
|
||||
- 预览额度
|
||||
- 正式生成额度
|
||||
- 修改次数
|
||||
|
||||
按钮:
|
||||
|
||||
- 立即支付
|
||||
- 使用余额
|
||||
- 取消订单
|
||||
|
||||
### 3.17 预览确认页
|
||||
|
||||
展示:
|
||||
|
||||
- 低清水印预览图
|
||||
- 关键镜头
|
||||
- 人物像不像反馈入口
|
||||
- 风格满意度反馈入口
|
||||
|
||||
按钮:
|
||||
|
||||
- 满意,进入正式生成
|
||||
- 不满意,重新生成预览
|
||||
- 修改模板
|
||||
- 联系客服
|
||||
|
||||
### 3.18 生成进度页
|
||||
|
||||
进度节点:
|
||||
|
||||
```text
|
||||
项目已创建
|
||||
照片检测完成
|
||||
人物档案建立中
|
||||
方案生成中
|
||||
等待方案确认
|
||||
预览生成中
|
||||
等待预览确认
|
||||
正式图生成中
|
||||
图片质检中
|
||||
音频生成中
|
||||
字幕生成中
|
||||
视频合成中
|
||||
人工审核中
|
||||
等待用户确认
|
||||
已完成
|
||||
```
|
||||
|
||||
### 3.19 成品确认页
|
||||
|
||||
展示:
|
||||
|
||||
- 成品视频
|
||||
- 成品图集
|
||||
- 封面图
|
||||
- 有字幕版本
|
||||
- 无字幕版本
|
||||
- 下载入口
|
||||
- 剩余修改次数
|
||||
|
||||
按钮:
|
||||
|
||||
- 确认完成
|
||||
- 申请修改
|
||||
- 下载视频
|
||||
- 下载图片
|
||||
- 删除作品
|
||||
- 授权公开为案例
|
||||
|
||||
### 3.20 修改申请页
|
||||
|
||||
修改类型:
|
||||
|
||||
- 小改:名字、日期、字幕、音乐、片尾文案
|
||||
- 中改:替换个别图片、重做 1-2 个场景
|
||||
- 大改:换整体风格、换全部世界、整条重做
|
||||
|
||||
规则:大改必须重新计费。
|
||||
|
||||
### 3.21 我的项目页
|
||||
|
||||
字段:
|
||||
|
||||
- 项目名称
|
||||
- 缩略图
|
||||
- 主题
|
||||
- 套餐
|
||||
- 状态
|
||||
- 创建时间
|
||||
- 是否可下载
|
||||
|
||||
### 3.22 用户中心页
|
||||
|
||||
功能:
|
||||
|
||||
- 个人信息
|
||||
- 我的项目
|
||||
- 我的订单
|
||||
- 我的收藏
|
||||
- 隐私设置
|
||||
- 删除作品申请
|
||||
- 联系客服
|
||||
- 退出登录
|
||||
|
||||
## 4. 后台页面清单
|
||||
|
||||
后台使用 Geeker-Admin 二开。
|
||||
|
||||
### 4.1 仪表盘
|
||||
|
||||
指标:
|
||||
|
||||
- 今日订单数
|
||||
- 今日支付金额
|
||||
- 今日生成项目数
|
||||
- 今日完成项目数
|
||||
- 失败任务数
|
||||
- 待审核项目数
|
||||
- 待处理修改数
|
||||
- AI 调用成本
|
||||
- 存储占用
|
||||
- 热门主题排行
|
||||
- 热门世界排行
|
||||
|
||||
### 4.2 用户管理
|
||||
|
||||
操作:
|
||||
|
||||
- 查看用户
|
||||
- 禁用用户
|
||||
- 恢复用户
|
||||
- 查看用户项目
|
||||
- 查看用户订单
|
||||
|
||||
### 4.3 项目管理
|
||||
|
||||
操作:
|
||||
|
||||
- 查看详情
|
||||
- 查看素材
|
||||
- 查看任务
|
||||
- 手动重试
|
||||
- 转人工
|
||||
- 标记异常
|
||||
- 强制完成
|
||||
- 取消项目
|
||||
|
||||
### 4.4 订单管理
|
||||
|
||||
操作:
|
||||
|
||||
- 查看订单
|
||||
- 标记支付
|
||||
- 退款记录
|
||||
- 修改套餐
|
||||
- 查看关联项目
|
||||
|
||||
### 4.5 模板管理
|
||||
|
||||
子模块:
|
||||
|
||||
- 人生主题管理
|
||||
- 世界观模板管理
|
||||
- 场景模板管理
|
||||
- 镜头模板管理
|
||||
- 视觉风格管理
|
||||
- 文案模板管理
|
||||
- 音乐模板管理
|
||||
- 视频模板管理
|
||||
- 套餐管理
|
||||
|
||||
### 4.6 任务管理
|
||||
|
||||
操作:
|
||||
|
||||
- 查看输入
|
||||
- 查看输出
|
||||
- 重试
|
||||
- 终止
|
||||
- 跳过
|
||||
- 标记人工处理
|
||||
- 查看错误日志
|
||||
|
||||
### 4.7 AI Provider 管理
|
||||
|
||||
管理:
|
||||
|
||||
- TextProvider
|
||||
- ImageProvider
|
||||
- VideoProvider
|
||||
- VoiceProvider
|
||||
- ModerationProvider
|
||||
- FaceCheckProvider
|
||||
- QualityCheckProvider
|
||||
|
||||
### 4.8 案例管理
|
||||
|
||||
操作:
|
||||
|
||||
- 从项目生成案例
|
||||
- 设置首页推荐
|
||||
- 上架/下架
|
||||
- 排序
|
||||
- 查看授权记录
|
||||
|
||||
### 4.9 修改申请管理
|
||||
|
||||
操作:
|
||||
|
||||
- 接受
|
||||
- 拒绝
|
||||
- 转人工
|
||||
- 创建重做任务
|
||||
- 标记完成
|
||||
|
||||
### 4.10 隐私与授权管理
|
||||
|
||||
管理:
|
||||
|
||||
- 用户授权记录
|
||||
- 公开案例授权
|
||||
- 未成年人授权确认
|
||||
- 删除申请
|
||||
- 数据导出申请
|
||||
- 素材清理记录
|
||||
|
||||
## 5. 项目状态流转
|
||||
|
||||
### 5.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
|
||||
```
|
||||
|
||||
### 5.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
|
||||
```
|
||||
|
||||
### 5.3 异常分支
|
||||
|
||||
照片失败:
|
||||
|
||||
```text
|
||||
photo_checking → photo_rejected → photo_uploading → photo_checking
|
||||
```
|
||||
|
||||
支付失败:
|
||||
|
||||
```text
|
||||
payment_pending → payment_failed → payment_pending / cancelled
|
||||
```
|
||||
|
||||
预览不满意:
|
||||
|
||||
```text
|
||||
waiting_preview_confirm → template_selecting / info_filling / preview_generating
|
||||
```
|
||||
|
||||
成品修改:
|
||||
|
||||
```text
|
||||
waiting_user_confirm → revision_requested → revising → final_generating / video_rendering / manual_review → waiting_user_confirm
|
||||
```
|
||||
|
||||
## 6. 任务状态
|
||||
|
||||
```text
|
||||
pending
|
||||
running
|
||||
success
|
||||
failed
|
||||
retrying
|
||||
cancelled
|
||||
manual_required
|
||||
```
|
||||
|
||||
任务类型:
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
## 7. V3 真人动态视频页面增量
|
||||
|
||||
### 7.1 输出模式选择
|
||||
|
||||
创建项目时必须让用户明确选择输出模式:
|
||||
|
||||
```text
|
||||
photo_album:高清写真图集
|
||||
image_video:图片纪念视频
|
||||
motion_portrait:动态写真视频
|
||||
real_video:AI 真人动态视频
|
||||
premium_film:高端真人纪念片
|
||||
```
|
||||
|
||||
页面必须提示:
|
||||
|
||||
- AI 真人动态视频生成时间更长。
|
||||
- AI 真人动态视频费用更高。
|
||||
- 真实视频可能需要人工审核和多次重试。
|
||||
- 不保证每个动作完全自然。
|
||||
- 真实视频失败时不会用 mock 假成功。
|
||||
|
||||
### 7.2 V3 照片上传要求
|
||||
|
||||
真人动态视频比图集更依赖参考照片,上传页应提高要求:
|
||||
|
||||
```text
|
||||
单人:正脸清晰照 5-10 张,半身照 2-5 张,不同表情 2-5 张。
|
||||
情侣/夫妻:男方 5-10 张,女方 5-10 张,双人合照 2-5 张。
|
||||
家庭:每位成员 3-8 张,家庭合照 2-5 张。
|
||||
```
|
||||
|
||||
禁止:
|
||||
|
||||
- 过度美颜
|
||||
- 脸部遮挡
|
||||
- 多人混乱
|
||||
- 低清晰度
|
||||
- 强滤镜
|
||||
- 明显年龄不符照片
|
||||
|
||||
### 7.3 身份锚点确认页
|
||||
|
||||
新增页面或步骤:
|
||||
|
||||
- 展示每个人物的主参考照。
|
||||
- 展示 AI 生成的身份锚点图。
|
||||
- 显示人脸一致性评分。
|
||||
- 用户选择“像本人 / 不像本人 / 需要重生”。
|
||||
- 未确认身份锚点,不允许进入正式动态视频生成。
|
||||
|
||||
### 7.4 视频片段页
|
||||
|
||||
AI 真人动态视频项目新增片段管理:
|
||||
|
||||
- 镜头列表。
|
||||
- 每个镜头动作模板。
|
||||
- 输入关键帧。
|
||||
- 输出视频片段。
|
||||
- Provider、分辨率、时长、预计成本。
|
||||
- 生成中 / 成功 / 失败 / 待质检状态。
|
||||
- 片段预览。
|
||||
- 重试、替换、转人工。
|
||||
|
||||
### 7.5 口型任务页,可选
|
||||
|
||||
如果项目启用口型:
|
||||
|
||||
- 选择需要口型的片段。
|
||||
- 绑定音频资产。
|
||||
- 生成 lip-sync 任务。
|
||||
- 失败时可回退为旁白字幕版本。
|
||||
|
||||
## 8. V3 后台页面增量
|
||||
|
||||
后台项目详情页新增:
|
||||
|
||||
- 人物身份档案。
|
||||
- 身份锚点图和用户确认状态。
|
||||
- 人脸一致性评分。
|
||||
- 动作模板。
|
||||
- 视频片段列表。
|
||||
- 口型任务列表。
|
||||
- 视频 Provider 和成本。
|
||||
- 片段质检结果。
|
||||
- 片段重试和替换入口。
|
||||
|
||||
后台审核页新增:
|
||||
|
||||
- 是否像本人。
|
||||
- 是否变脸。
|
||||
- 是否男女混脸。
|
||||
- 是否年龄变化过大。
|
||||
- 动作是否自然。
|
||||
- 表情是否怪异。
|
||||
- 是否有不合适姿势。
|
||||
- 是否允许公开案例。
|
||||
|
||||
## 9. V3 状态流转增量
|
||||
|
||||
AI 真人动态视频完整状态建议:
|
||||
|
||||
```text
|
||||
photo_checking
|
||||
→ person_profiling
|
||||
→ identity_anchor_generating
|
||||
→ waiting_identity_confirm
|
||||
→ plan_generating
|
||||
→ payment_paid
|
||||
→ keyframe_generating
|
||||
→ video_clip_estimating
|
||||
→ video_clip_generating
|
||||
→ video_clip_qc
|
||||
→ audio_generating
|
||||
→ lipsync_generating,可选
|
||||
→ subtitle_generating
|
||||
→ video_rendering
|
||||
→ final_qc
|
||||
→ manual_review
|
||||
→ waiting_user_confirm
|
||||
→ completed
|
||||
```
|
||||
|
||||
新增任务类型:
|
||||
|
||||
```text
|
||||
identity_anchor_generate
|
||||
face_consistency_check
|
||||
keyframe_generate
|
||||
motion_portrait_generate
|
||||
real_video_clip_generate
|
||||
video_clip_qc
|
||||
lipsync_generate
|
||||
```
|
||||
Executable
+368
@@ -0,0 +1,368 @@
|
||||
# 04_技术架构设计_模块拆分
|
||||
|
||||
## 1. 文档目标
|
||||
|
||||
本文档定义系统 B 的技术架构、模块拆分、服务边界、基础设施和后续与系统 A 合并的预留方式。
|
||||
|
||||
## 2. 总体架构
|
||||
|
||||
```text
|
||||
uni-app 用户端
|
||||
↓
|
||||
NestJS API 服务
|
||||
↓
|
||||
MySQL / Redis / MinIO
|
||||
↓
|
||||
BullMQ 任务队列
|
||||
↓
|
||||
AI Provider Workers / FFmpeg Worker / Python Worker
|
||||
↓
|
||||
成品资源存储与交付
|
||||
|
||||
Geeker-Admin 后台
|
||||
↓
|
||||
NestJS Admin API
|
||||
↓
|
||||
模板、项目、订单、任务、Provider、日志管理
|
||||
```
|
||||
|
||||
## 3. 技术栈
|
||||
|
||||
| 层级 | 技术 |
|
||||
|---|---|
|
||||
| 用户端 | uni-app |
|
||||
| 后台端 | Geeker-Admin |
|
||||
| 后端 | Node.js + NestJS |
|
||||
| 数据库 | MySQL 8 |
|
||||
| 队列 | Redis + BullMQ |
|
||||
| 对象存储 | MinIO,本地优先,后续可换 OSS/COS/S3 |
|
||||
| 视频合成 | FFmpeg |
|
||||
| AI 辅助 | Python Worker 可选 |
|
||||
| 进程管理 | PM2 或 systemd |
|
||||
| 反向代理 | Nginx |
|
||||
| 部署 | AlmaLinux / Ubuntu 均可,推荐 Docker 化 |
|
||||
|
||||
## 4. 后端模块拆分
|
||||
|
||||
### 4.1 AuthModule
|
||||
|
||||
负责:
|
||||
|
||||
- 手机号验证码登录
|
||||
- 微信授权登录
|
||||
- JWT 令牌
|
||||
- 后台管理员登录
|
||||
- 权限校验
|
||||
|
||||
### 4.2 UserModule
|
||||
|
||||
负责:
|
||||
|
||||
- 用户信息
|
||||
- 用户状态
|
||||
- 用户项目列表
|
||||
- 用户订单列表
|
||||
- 用户隐私设置
|
||||
|
||||
### 4.3 ProjectModule
|
||||
|
||||
负责:
|
||||
|
||||
- 创建项目
|
||||
- 项目状态流转
|
||||
- 项目详情
|
||||
- 项目进度
|
||||
- 项目归档
|
||||
|
||||
### 4.4 TemplateModule
|
||||
|
||||
负责:
|
||||
|
||||
- 人生主题
|
||||
- 套餐
|
||||
- 风格
|
||||
- 世界观
|
||||
- 场景
|
||||
- 镜头
|
||||
- 文案模板
|
||||
- 音乐模板
|
||||
|
||||
### 4.5 AssetModule
|
||||
|
||||
负责:
|
||||
|
||||
- 文件上传
|
||||
- 图片/视频/音频资源管理
|
||||
- 缩略图
|
||||
- 下载链接
|
||||
- 水印资源
|
||||
- 素材删除
|
||||
|
||||
### 4.6 PhotoModule
|
||||
|
||||
负责:
|
||||
|
||||
- 照片上传规则
|
||||
- 照片质检任务创建
|
||||
- 人物角色归属
|
||||
- 人物档案创建
|
||||
|
||||
### 4.7 AIProviderModule
|
||||
|
||||
负责:
|
||||
|
||||
- TextProvider
|
||||
- ImageProvider
|
||||
- VideoProvider
|
||||
- VoiceProvider
|
||||
- ModerationProvider
|
||||
- FaceCheckProvider
|
||||
- QualityCheckProvider
|
||||
|
||||
业务代码调用统一接口,不直接调用具体模型。
|
||||
|
||||
### 4.8 WorkflowModule
|
||||
|
||||
负责编排:
|
||||
|
||||
- 创作方案生成
|
||||
- 预览图生成
|
||||
- 正式图生成
|
||||
- 音频/字幕生成
|
||||
- 视频合成
|
||||
- 最终质检
|
||||
|
||||
### 4.9 QueueModule
|
||||
|
||||
负责:
|
||||
|
||||
- BullMQ 队列注册
|
||||
- 任务创建
|
||||
- 任务重试
|
||||
- 任务取消
|
||||
- 任务进度更新
|
||||
|
||||
### 4.10 OrderModule
|
||||
|
||||
负责:
|
||||
|
||||
- 订单创建
|
||||
- 支付状态
|
||||
- 额度冻结
|
||||
- 额度扣减
|
||||
- 退款记录
|
||||
|
||||
### 4.11 RevisionModule
|
||||
|
||||
负责:
|
||||
|
||||
- 修改申请
|
||||
- 修改次数校验
|
||||
- 修改任务创建
|
||||
- 人工处理记录
|
||||
|
||||
### 4.12 CaseModule
|
||||
|
||||
负责:
|
||||
|
||||
- 首页案例
|
||||
- 案例上架/下架
|
||||
- 同款制作
|
||||
- 公开授权校验
|
||||
|
||||
### 4.13 AdminModule
|
||||
|
||||
负责后台管理接口,包括:
|
||||
|
||||
- 用户管理
|
||||
- 项目管理
|
||||
- 订单管理
|
||||
- 模板管理
|
||||
- 任务管理
|
||||
- Provider 管理
|
||||
- 日志管理
|
||||
|
||||
### 4.14 ComplianceModule
|
||||
|
||||
负责:
|
||||
|
||||
- 授权记录
|
||||
- 隐私协议确认
|
||||
- 未成年人授权确认
|
||||
- 内容审核
|
||||
- 用户删除申请
|
||||
|
||||
### 4.15 LogModule
|
||||
|
||||
负责:
|
||||
|
||||
- 操作日志
|
||||
- 登录日志
|
||||
- AI 调用日志
|
||||
- 成本日志
|
||||
- 错误日志
|
||||
|
||||
## 5. AI Provider 抽象
|
||||
|
||||
Provider 接口:
|
||||
|
||||
```ts
|
||||
interface TextProvider { generate(input): Promise<TextResult> }
|
||||
interface ImageProvider { generate(input): Promise<ImageResult> }
|
||||
interface VideoProvider { generate(input): Promise<VideoResult> }
|
||||
interface VoiceProvider { synthesize(input): Promise<AudioResult> }
|
||||
interface ModerationProvider { check(input): Promise<ModerationResult> }
|
||||
```
|
||||
|
||||
配置来自数据库或环境变量,支持:
|
||||
|
||||
- 优先级
|
||||
- 限流
|
||||
- 失败切换
|
||||
- 成本规则
|
||||
- 启用/禁用
|
||||
|
||||
## 6. 队列设计
|
||||
|
||||
队列:
|
||||
|
||||
```text
|
||||
photo_check_queue
|
||||
text_queue
|
||||
image_queue
|
||||
video_queue
|
||||
audio_queue
|
||||
ffmpeg_queue
|
||||
qc_queue
|
||||
cleanup_queue
|
||||
```
|
||||
|
||||
设计原则:
|
||||
|
||||
1. 图像、视频、音频队列隔离。
|
||||
2. 高成本任务必须检查订单/额度。
|
||||
3. 任务必须有幂等 key。
|
||||
4. 失败后按策略重试。
|
||||
5. 多次失败转人工处理。
|
||||
|
||||
## 7. 存储设计
|
||||
|
||||
MinIO Bucket 建议:
|
||||
|
||||
```text
|
||||
uploads/ 用户上传原图
|
||||
previews/ 预览图
|
||||
generated/ 正式生成图
|
||||
videos/ 成品视频
|
||||
audios/ TTS 音频
|
||||
subtitles/ 字幕文件
|
||||
cases/ 公开案例资源
|
||||
temp/ 临时文件
|
||||
```
|
||||
|
||||
原则:
|
||||
|
||||
- 用户原图默认私密。
|
||||
- 成品下载使用签名链接。
|
||||
- 下载链接设置有效期。
|
||||
- 公开案例单独复制到 cases 路径。
|
||||
|
||||
## 8. 视频合成架构
|
||||
|
||||
第一阶段使用 FFmpeg:
|
||||
|
||||
```text
|
||||
图片素材
|
||||
+ 运镜参数
|
||||
+ 字幕 SRT
|
||||
+ 旁白音频
|
||||
+ BGM
|
||||
+ 转场配置
|
||||
→ FFmpeg Worker
|
||||
→ MP4 成品
|
||||
```
|
||||
|
||||
视频等级:
|
||||
|
||||
- L1:图片 + 运镜
|
||||
- L2:图片 + 简单粒子/光效叠加
|
||||
- L3:关键镜头图生视频
|
||||
- L4:高级动态视频
|
||||
|
||||
第一阶段建议主做 L1 + L2。
|
||||
|
||||
## 9. Python Worker 定位
|
||||
|
||||
Python 只做辅助:
|
||||
|
||||
- 人脸检测
|
||||
- 清晰度检测
|
||||
- 图片相似度
|
||||
- 人像一致性评分
|
||||
- 图片裁切/缩放
|
||||
- 视频后处理
|
||||
|
||||
主业务不放 Python,避免双主系统复杂。
|
||||
|
||||
## 10. 后续与系统 A 合并预留
|
||||
|
||||
未来系统 A「原创小说 → 韩漫 / 漫剧」可复用:
|
||||
|
||||
- AuthModule
|
||||
- UserModule
|
||||
- AssetModule
|
||||
- TemplateModule
|
||||
- AIProviderModule
|
||||
- QueueModule
|
||||
- WorkflowModule
|
||||
- OrderModule
|
||||
- LogModule
|
||||
- AdminModule
|
||||
|
||||
系统 B 独有:
|
||||
|
||||
- 真人照片质检
|
||||
- 人物档案
|
||||
- 肖像授权
|
||||
- 人生主题写真模板
|
||||
|
||||
系统 A 独有:
|
||||
|
||||
- 小说生成
|
||||
- 剧情大纲
|
||||
- 分集分镜
|
||||
- 漫剧角色库
|
||||
- 连载发布
|
||||
|
||||
## 11. V3 真人动态视频架构增量
|
||||
|
||||
V3 在系统 B 中新增以下模块:
|
||||
|
||||
```text
|
||||
IdentityAnchorModule:身份锚点、用户确认、后台确认
|
||||
FaceConsistencyModule:本人相似度、人脸一致性质检、混脸检测
|
||||
MotionTemplateModule:动作模板、动作 Prompt、动作成本等级
|
||||
VideoClipModule:真人动态视频片段生成、预览、重试、替换、质检
|
||||
LipSyncModule:口型任务、音频绑定、失败回退
|
||||
RealVideoProviderModule:Hailuo/Wan/Vidu/Seedance/Kling/Runway 配置与调用
|
||||
```
|
||||
|
||||
架构原则:
|
||||
|
||||
- 图片纪念视频继续走 FFmpeg,成本可控。
|
||||
- 动态写真和 AI 真人动态视频独立成片段任务,不复用最终视频合成接口直接调用高成本 Provider。
|
||||
- 真实视频 Provider 默认禁用,必须配置成本阈值和用户确认。
|
||||
- 每个视频片段单独落库,支持单片段重试和替换。
|
||||
- 口型是可选高级任务,失败时回退旁白字幕版本。
|
||||
|
||||
V3 推荐链路:
|
||||
|
||||
```text
|
||||
身份锚点
|
||||
→ 关键帧
|
||||
→ VideoProvider 生成片段
|
||||
→ 片段质检
|
||||
→ 可选口型
|
||||
→ FFmpeg 合成
|
||||
→ 最终质检
|
||||
```
|
||||
Executable
+577
@@ -0,0 +1,577 @@
|
||||
# 05_数据库表结构设计
|
||||
|
||||
## 1. 文档目标
|
||||
|
||||
本文档定义系统 B 的 MySQL 核心表结构。字段类型为建议值,实际开发时可根据 ORM 选型调整。
|
||||
|
||||
## 2. 命名原则
|
||||
|
||||
- 表名使用复数:`users`, `projects`
|
||||
- 主键统一为 `id BIGINT` 或 UUID,根据实现决定
|
||||
- 时间字段统一:`created_at`, `updated_at`, `deleted_at`
|
||||
- 状态字段统一使用字符串枚举
|
||||
- 金额使用整数分:`amount_cent`
|
||||
- JSON 配置使用 `JSON` 类型
|
||||
|
||||
## 3. users 用户表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 用户 ID |
|
||||
| nickname | VARCHAR(100) | 昵称 |
|
||||
| phone | VARCHAR(30) | 手机号 |
|
||||
| email | VARCHAR(100) | 邮箱 |
|
||||
| wechat_openid | VARCHAR(100) | 微信 openid |
|
||||
| avatar_asset_id | BIGINT | 头像资源 |
|
||||
| status | VARCHAR(30) | active/disabled |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
| updated_at | DATETIME | 更新时间 |
|
||||
|
||||
索引:
|
||||
|
||||
- UNIQUE(phone)
|
||||
- UNIQUE(wechat_openid)
|
||||
|
||||
## 4. admin_users 后台用户表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 管理员 ID |
|
||||
| username | VARCHAR(100) | 用户名 |
|
||||
| password_hash | VARCHAR(255) | 密码哈希 |
|
||||
| role_id | BIGINT | 角色 ID |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
|
||||
## 5. roles 角色表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 角色 ID |
|
||||
| name | VARCHAR(100) | 角色名称 |
|
||||
| code | VARCHAR(100) | 角色编码 |
|
||||
| permissions | JSON | 权限列表 |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
|
||||
## 6. projects 项目表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 项目 ID |
|
||||
| user_id | BIGINT | 用户 ID |
|
||||
| title | VARCHAR(200) | 项目标题 |
|
||||
| life_theme_id | BIGINT | 人生主题 |
|
||||
| package_id | BIGINT | 套餐 |
|
||||
| style_id | BIGINT | 视觉风格 |
|
||||
| output_type | VARCHAR(30) | image/video/both |
|
||||
| status | VARCHAR(50) | 项目状态 |
|
||||
| payment_status | VARCHAR(50) | 支付状态 |
|
||||
| total_duration | INT | 视频秒数 |
|
||||
| image_count | INT | 图片数量 |
|
||||
| cover_asset_id | BIGINT | 封面 |
|
||||
| video_asset_id | BIGINT | 视频 |
|
||||
| allow_public_case | BOOLEAN | 是否允许公开案例 |
|
||||
| custom_info | JSON | 用户定制信息 |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
| updated_at | DATETIME | 更新时间 |
|
||||
| completed_at | DATETIME | 完成时间 |
|
||||
|
||||
索引:
|
||||
|
||||
- INDEX(user_id, status)
|
||||
- INDEX(created_at)
|
||||
- INDEX(life_theme_id)
|
||||
|
||||
## 7. orders 订单表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 订单 ID |
|
||||
| user_id | BIGINT | 用户 ID |
|
||||
| project_id | BIGINT | 项目 ID |
|
||||
| package_id | BIGINT | 套餐 ID |
|
||||
| amount_cent | INT | 金额,单位分 |
|
||||
| pay_status | VARCHAR(30) | pending/paid/failed/cancelled |
|
||||
| pay_method | VARCHAR(30) | wechat/alipay/balance/manual |
|
||||
| transaction_id | VARCHAR(100) | 第三方交易号 |
|
||||
| refund_status | VARCHAR(30) | none/refunding/refunded |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
| paid_at | DATETIME | 支付时间 |
|
||||
|
||||
## 8. packages 套餐表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 套餐 ID |
|
||||
| code | VARCHAR(100) | 编码 |
|
||||
| name | VARCHAR(100) | 名称 |
|
||||
| price_cent | INT | 价格 |
|
||||
| world_min | INT | 最少世界数 |
|
||||
| world_max | INT | 最多世界数 |
|
||||
| scene_min | INT | 最少场景数 |
|
||||
| scene_max | INT | 最多场景数 |
|
||||
| image_min | INT | 最少图片数 |
|
||||
| image_max | INT | 最多图片数 |
|
||||
| video_duration_min | INT | 最短视频秒数 |
|
||||
| video_duration_max | INT | 最长视频秒数 |
|
||||
| revision_count | INT | 修改次数 |
|
||||
| allow_video | BOOLEAN | 是否视频 |
|
||||
| allow_voice | BOOLEAN | 是否旁白 |
|
||||
| allow_advanced_video | BOOLEAN | 是否高级动态 |
|
||||
| manual_review_required | BOOLEAN | 是否人工审核 |
|
||||
| config_json | JSON | 扩展配置 |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
|
||||
## 9. life_themes 人生主题表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 主题 ID |
|
||||
| code | VARCHAR(100) | 编码 |
|
||||
| name | VARCHAR(100) | 名称 |
|
||||
| description | TEXT | 说明 |
|
||||
| cover_asset_id | BIGINT | 封面 |
|
||||
| person_schema | JSON | 人物结构规则 |
|
||||
| default_copy_moods | JSON | 默认文案风格 |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
| sort_order | INT | 排序 |
|
||||
|
||||
person_schema 示例:
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "couple",
|
||||
"roles": ["person_a", "person_b"],
|
||||
"min_photos_each": 3,
|
||||
"max_photos_each": 8,
|
||||
"minor_sensitive": false
|
||||
}
|
||||
```
|
||||
|
||||
## 10. style_templates 风格模板表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 风格 ID |
|
||||
| code | VARCHAR(100) | 编码 |
|
||||
| name | VARCHAR(100) | 名称 |
|
||||
| description | TEXT | 说明 |
|
||||
| cover_asset_id | BIGINT | 封面 |
|
||||
| prompt_style | TEXT | 风格 Prompt |
|
||||
| negative_rules | TEXT | 禁止项 |
|
||||
| supported_theme_ids | JSON | 支持主题 |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
|
||||
## 11. world_templates 世界观模板表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 世界 ID |
|
||||
| code | VARCHAR(100) | 编码 |
|
||||
| name | VARCHAR(100) | 名称 |
|
||||
| category | VARCHAR(100) | 分类 |
|
||||
| description | TEXT | 说明 |
|
||||
| cover_asset_id | BIGINT | 封面 |
|
||||
| prompt_base | TEXT | 世界基础 Prompt |
|
||||
| costume_rules | TEXT | 服装规则 |
|
||||
| scene_rules | TEXT | 场景规则 |
|
||||
| style_rules | TEXT | 风格规则 |
|
||||
| negative_rules | TEXT | 禁止项 |
|
||||
| supported_theme_ids | JSON | 支持主题 |
|
||||
| supported_style_ids | JSON | 支持风格 |
|
||||
| is_premium | BOOLEAN | 高级模板 |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
| sort_order | INT | 排序 |
|
||||
|
||||
## 12. scene_templates 场景模板表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 场景 ID |
|
||||
| world_id | BIGINT | 所属世界 |
|
||||
| code | VARCHAR(100) | 编码 |
|
||||
| name | VARCHAR(100) | 名称 |
|
||||
| description | TEXT | 说明 |
|
||||
| cover_asset_id | BIGINT | 封面 |
|
||||
| scene_prompt | TEXT | 场景 Prompt |
|
||||
| composition_rules | TEXT | 构图规则 |
|
||||
| lighting_rules | TEXT | 光影规则 |
|
||||
| effect_type | VARCHAR(100) | 特效类型 |
|
||||
| recommended_shot_count | INT | 推荐镜头数 |
|
||||
| is_premium | BOOLEAN | 高级场景 |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
| sort_order | INT | 排序 |
|
||||
|
||||
## 13. shot_templates 镜头模板表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 镜头模板 ID |
|
||||
| scene_id | BIGINT | 所属场景 |
|
||||
| code | VARCHAR(100) | 编码 |
|
||||
| name | VARCHAR(100) | 名称 |
|
||||
| shot_type | VARCHAR(100) | 镜头类型 |
|
||||
| camera_angle | VARCHAR(100) | 视角 |
|
||||
| composition | TEXT | 构图 |
|
||||
| prompt_rule | TEXT | Prompt 规则 |
|
||||
| duration | INT | 默认秒数 |
|
||||
| effect_type | VARCHAR(100) | 运镜/特效 |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
| sort_order | INT | 排序 |
|
||||
|
||||
## 14. project_worlds 项目世界关系表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | ID |
|
||||
| project_id | BIGINT | 项目 ID |
|
||||
| world_id | BIGINT | 世界 ID |
|
||||
| sort_order | INT | 顺序 |
|
||||
|
||||
## 15. project_scenes 项目场景关系表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | ID |
|
||||
| project_id | BIGINT | 项目 ID |
|
||||
| world_id | BIGINT | 世界 ID |
|
||||
| scene_id | BIGINT | 场景 ID |
|
||||
| sort_order | INT | 顺序 |
|
||||
|
||||
## 16. person_profiles 人物档案表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 人物档案 ID |
|
||||
| project_id | BIGINT | 项目 ID |
|
||||
| role | VARCHAR(50) | person_a/person_b/child 等 |
|
||||
| name | VARCHAR(100) | 名称 |
|
||||
| gender_label | VARCHAR(50) | 性别标签,可选 |
|
||||
| age_group | VARCHAR(50) | 年龄段 |
|
||||
| appearance_summary | TEXT | 外貌摘要 |
|
||||
| reference_asset_ids | JSON | 参考照片 |
|
||||
| anchor_asset_id | BIGINT | 锚点图 |
|
||||
| quality_score | DECIMAL(5,2) | 质量分 |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
|
||||
V3 真人动态视频增强字段:
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| identity_lock_status | VARCHAR(50) | unlocked/generating_anchor/waiting_user_confirm/locked/rejected |
|
||||
| face_consistency_score | DECIMAL(5,2) | 本人相似度评分 |
|
||||
| primary_reference_asset_id | BIGINT | 主参考照片 |
|
||||
| approved_anchor_asset_id | BIGINT | 用户确认的身份锚点 |
|
||||
| age_preserve_rule | VARCHAR(100) | 年龄保持规则:strict/soft/allow_younger 等 |
|
||||
| beautify_level | VARCHAR(50) | 美化强度:none/light/medium/high |
|
||||
| style_transform_level | VARCHAR(50) | 风格转换强度:realistic/semi_real/comic |
|
||||
| privacy_level | VARCHAR(50) | 隐私等级:normal/sensitive/minor |
|
||||
|
||||
## 17. assets 素材表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 素材 ID |
|
||||
| user_id | BIGINT | 用户 ID |
|
||||
| project_id | BIGINT | 项目 ID |
|
||||
| asset_type | VARCHAR(50) | 类型 |
|
||||
| file_path | VARCHAR(500) | 存储路径 |
|
||||
| file_url | VARCHAR(500) | 访问 URL,可为空 |
|
||||
| mime_type | VARCHAR(100) | MIME |
|
||||
| width | INT | 宽 |
|
||||
| height | INT | 高 |
|
||||
| duration | INT | 音视频秒数 |
|
||||
| size | BIGINT | 文件大小 |
|
||||
| hash | VARCHAR(100) | 文件哈希 |
|
||||
| visibility | VARCHAR(30) | private/public/case |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
|
||||
asset_type:
|
||||
|
||||
```text
|
||||
upload_photo
|
||||
preview_image
|
||||
final_image
|
||||
audio
|
||||
subtitle
|
||||
video
|
||||
cover
|
||||
case_asset
|
||||
music
|
||||
```
|
||||
|
||||
## 18. shot_plans 镜头计划表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 镜头计划 ID |
|
||||
| project_id | BIGINT | 项目 ID |
|
||||
| world_id | BIGINT | 世界 ID |
|
||||
| scene_id | BIGINT | 场景 ID |
|
||||
| shot_template_id | BIGINT | 镜头模板 ID |
|
||||
| title | VARCHAR(200) | 标题 |
|
||||
| description | TEXT | 画面描述 |
|
||||
| prompt_text | TEXT | 正向 Prompt |
|
||||
| negative_prompt | TEXT | 负向 Prompt |
|
||||
| duration | INT | 秒数 |
|
||||
| output_asset_id | BIGINT | 生成图 |
|
||||
| sort_order | INT | 顺序 |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
|
||||
## 19. render_tasks 生成任务表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 任务 ID |
|
||||
| project_id | BIGINT | 项目 ID |
|
||||
| task_type | VARCHAR(100) | 任务类型 |
|
||||
| provider_id | BIGINT | Provider |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
| input_json | JSON | 输入 |
|
||||
| input_hash | VARCHAR(100) | 幂等哈希 |
|
||||
| output_asset_id | BIGINT | 输出素材 |
|
||||
| provider_request_id | VARCHAR(200) | 三方请求 ID |
|
||||
| retry_count | INT | 重试次数 |
|
||||
| max_retry | INT | 最大重试 |
|
||||
| cost_estimate_cent | INT | 预估成本 |
|
||||
| cost_actual_cent | INT | 实际成本 |
|
||||
| error_code | VARCHAR(100) | 错误码 |
|
||||
| error_message | TEXT | 错误信息 |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
| started_at | DATETIME | 开始时间 |
|
||||
| finished_at | DATETIME | 完成时间 |
|
||||
|
||||
索引:
|
||||
|
||||
- UNIQUE(project_id, task_type, input_hash)
|
||||
- INDEX(status, created_at)
|
||||
|
||||
## 20. provider_configs Provider 配置表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | Provider ID |
|
||||
| provider_type | VARCHAR(50) | text/image/video/voice/moderation |
|
||||
| provider_name | VARCHAR(100) | 名称 |
|
||||
| model_name | VARCHAR(100) | 模型名 |
|
||||
| api_base | VARCHAR(500) | API Base |
|
||||
| api_key_ref | VARCHAR(100) | 密钥引用,不直接存明文 |
|
||||
| priority | INT | 优先级 |
|
||||
| quality_level | VARCHAR(50) | quality/speed/cost |
|
||||
| rate_limit_json | JSON | 限流配置 |
|
||||
| cost_rule_json | JSON | 成本规则 |
|
||||
| fallback_provider_id | BIGINT | 备用 Provider |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
|
||||
## 21. provider_logs Provider 日志表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 日志 ID |
|
||||
| provider_id | BIGINT | Provider |
|
||||
| project_id | BIGINT | 项目 |
|
||||
| task_id | BIGINT | 任务 |
|
||||
| request_payload | JSON | 请求,可脱敏 |
|
||||
| response_payload | JSON | 响应,可脱敏 |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
| cost_cent | INT | 成本 |
|
||||
| latency_ms | INT | 耗时 |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
|
||||
## 22. revision_requests 修改申请表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 修改 ID |
|
||||
| project_id | BIGINT | 项目 ID |
|
||||
| user_id | BIGINT | 用户 ID |
|
||||
| revision_type | VARCHAR(30) | small/medium/major |
|
||||
| request_text | TEXT | 修改内容 |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
| remaining_count_before | INT | 修改前剩余次数 |
|
||||
| handled_by | BIGINT | 处理人 |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
| updated_at | DATETIME | 更新时间 |
|
||||
|
||||
## 23. authorizations 授权记录表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 授权 ID |
|
||||
| user_id | BIGINT | 用户 ID |
|
||||
| project_id | BIGINT | 项目 ID |
|
||||
| authorization_type | VARCHAR(50) | 类型 |
|
||||
| content | TEXT | 授权文本 |
|
||||
| ip | VARCHAR(100) | IP |
|
||||
| user_agent | TEXT | UA |
|
||||
| confirmed_at | DATETIME | 确认时间 |
|
||||
|
||||
类型:
|
||||
|
||||
```text
|
||||
photo_usage
|
||||
public_case
|
||||
minor_guardian
|
||||
privacy_policy
|
||||
terms
|
||||
```
|
||||
|
||||
## 24. case_showcases 案例表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 案例 ID |
|
||||
| project_id | BIGINT | 来源项目 |
|
||||
| title | VARCHAR(200) | 标题 |
|
||||
| cover_asset_id | BIGINT | 封面 |
|
||||
| video_asset_id | BIGINT | 视频 |
|
||||
| theme_id | BIGINT | 主题 |
|
||||
| style_id | BIGINT | 风格 |
|
||||
| world_ids | JSON | 世界列表 |
|
||||
| sort_order | INT | 排序 |
|
||||
| is_featured | BOOLEAN | 首页推荐 |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
| authorization_id | BIGINT | 授权记录 |
|
||||
|
||||
## 25. music_assets 音乐素材表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 音乐 ID |
|
||||
| name | VARCHAR(200) | 名称 |
|
||||
| mood | VARCHAR(100) | 情绪 |
|
||||
| asset_id | BIGINT | 音频资源 |
|
||||
| duration | INT | 秒数 |
|
||||
| license_type | VARCHAR(100) | 授权类型 |
|
||||
| source | VARCHAR(200) | 来源 |
|
||||
| usage_scope | TEXT | 使用范围 |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
|
||||
## 26. system_configs 系统配置表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 配置 ID |
|
||||
| config_key | VARCHAR(100) | Key |
|
||||
| config_value | JSON | Value |
|
||||
| description | TEXT | 说明 |
|
||||
| updated_at | DATETIME | 更新时间 |
|
||||
|
||||
## 27. audit_logs 操作日志表
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 日志 ID |
|
||||
| actor_type | VARCHAR(30) | user/admin/system |
|
||||
| actor_id | BIGINT | 操作人 |
|
||||
| action | VARCHAR(100) | 动作 |
|
||||
| target_type | VARCHAR(100) | 目标类型 |
|
||||
| target_id | BIGINT | 目标 ID |
|
||||
| detail_json | JSON | 详情 |
|
||||
| ip | VARCHAR(100) | IP |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
|
||||
## 28. V3 identity_anchors 身份锚点表
|
||||
|
||||
用于保存真人身份锚点,确保后续图片和视频尽量像本人。
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 锚点 ID |
|
||||
| project_id | BIGINT | 项目 ID |
|
||||
| person_id | BIGINT | 人物档案 ID |
|
||||
| anchor_asset_id | BIGINT | 锚点素材 |
|
||||
| anchor_type | VARCHAR(80) | real_photo_anchor/semi_realistic_anchor/korean_comic_anchor/ancient_costume_anchor/future_style_anchor |
|
||||
| quality_score | DECIMAL(5,2) | 锚点质量分 |
|
||||
| face_consistency_score | DECIMAL(5,2) | 与本人相似度 |
|
||||
| approved_by_user | BOOLEAN | 用户是否确认 |
|
||||
| approved_by_admin | BOOLEAN | 后台是否确认 |
|
||||
| status | VARCHAR(50) | generating/waiting_confirm/approved/rejected |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
| updated_at | DATETIME | 更新时间 |
|
||||
|
||||
## 29. V3 motion_templates 动作模板表
|
||||
|
||||
用于控制动态写真和真人视频片段的动作范围。
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 动作模板 ID |
|
||||
| name | VARCHAR(100) | 动作名称 |
|
||||
| motion_type | VARCHAR(100) | smile/blink/turn_head/walk_forward/hold_hands 等 |
|
||||
| description | TEXT | 说明 |
|
||||
| supported_themes | JSON | 支持人生主题 |
|
||||
| supported_worlds | JSON | 支持世界模板 |
|
||||
| supported_styles | JSON | 支持视觉风格 |
|
||||
| prompt_rule | TEXT | 动作 Prompt 规则 |
|
||||
| duration | INT | 默认片段秒数 |
|
||||
| difficulty_level | VARCHAR(50) | easy/medium/hard |
|
||||
| cost_level | VARCHAR(50) | low/medium/high |
|
||||
| status | VARCHAR(30) | 状态 |
|
||||
| sort_order | INT | 排序 |
|
||||
|
||||
推荐动作:
|
||||
|
||||
```text
|
||||
smile
|
||||
blink
|
||||
turn_head
|
||||
walk_forward
|
||||
hold_hands
|
||||
look_at_each_other
|
||||
bow_ceremony
|
||||
lift_veil
|
||||
hug
|
||||
wave
|
||||
stand_still_cinematic
|
||||
slow_camera_push
|
||||
```
|
||||
|
||||
## 30. V3 video_clips 视频片段表
|
||||
|
||||
每个 AI 动态视频片段单独存储,便于重试、替换、质检和成本追踪。
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 视频片段 ID |
|
||||
| project_id | BIGINT | 项目 ID |
|
||||
| scene_id | BIGINT | 场景 ID |
|
||||
| shot_id | BIGINT | 镜头 ID |
|
||||
| person_ids | JSON | 涉及人物 ID |
|
||||
| provider_id | BIGINT | Provider 配置 ID |
|
||||
| input_asset_id | BIGINT | 输入关键帧 / 参考图 |
|
||||
| output_asset_id | BIGINT | 输出视频素材 |
|
||||
| prompt_text | TEXT | 视频 Prompt |
|
||||
| duration | INT | 秒数 |
|
||||
| resolution | VARCHAR(50) | 720p/1080p |
|
||||
| motion_type | VARCHAR(100) | 动作类型 |
|
||||
| lipsync_enabled | BOOLEAN | 是否启用口型 |
|
||||
| status | VARCHAR(50) | pending/running/generated/failed/manual_required |
|
||||
| retry_count | INT | 重试次数 |
|
||||
| cost_actual | DECIMAL(12,4) | 实际成本 |
|
||||
| quality_score | DECIMAL(5,2) | 质检分 |
|
||||
| quality_issues | JSON | 质检问题 |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
| updated_at | DATETIME | 更新时间 |
|
||||
|
||||
## 31. V3 lipsync_tasks 口型任务表
|
||||
|
||||
口型任务可选,不应阻塞基础交付;失败时可回退旁白字幕版本。
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|---|---|---|
|
||||
| id | BIGINT PK | 任务 ID |
|
||||
| project_id | BIGINT | 项目 ID |
|
||||
| video_clip_id | BIGINT | 视频片段 ID |
|
||||
| audio_asset_id | BIGINT | 输入音频 |
|
||||
| output_asset_id | BIGINT | 口型后视频 |
|
||||
| provider_id | BIGINT | LipSync Provider |
|
||||
| status | VARCHAR(50) | pending/running/success/failed/manual_required |
|
||||
| cost_actual | DECIMAL(12,4) | 实际成本 |
|
||||
| retry_count | INT | 重试次数 |
|
||||
| error_code | VARCHAR(100) | 错误码 |
|
||||
| error_message | TEXT | 错误信息 |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
| updated_at | DATETIME | 更新时间 |
|
||||
Executable
+649
@@ -0,0 +1,649 @@
|
||||
# 06_API接口设计文档
|
||||
|
||||
## 1. 文档目标
|
||||
|
||||
本文档定义系统 B 的 API 接口结构、请求参数、返回格式、错误码和权限要求。
|
||||
|
||||
## 2. 通用规范
|
||||
|
||||
### 2.1 Base URL
|
||||
|
||||
```text
|
||||
/api
|
||||
```
|
||||
|
||||
后台接口:
|
||||
|
||||
```text
|
||||
/api/admin
|
||||
```
|
||||
|
||||
### 2.2 通用返回格式
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "ok",
|
||||
"data": {}
|
||||
}
|
||||
```
|
||||
|
||||
错误示例:
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 40001,
|
||||
"message": "照片质量不合格",
|
||||
"data": {
|
||||
"reason": "face_blur"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2.3 通用错误码
|
||||
|
||||
| code | 含义 |
|
||||
|---|---|
|
||||
| 0 | 成功 |
|
||||
| 40000 | 参数错误 |
|
||||
| 40100 | 未登录 |
|
||||
| 40300 | 无权限 |
|
||||
| 40400 | 资源不存在 |
|
||||
| 40900 | 状态冲突 |
|
||||
| 42900 | 请求过于频繁 |
|
||||
| 50000 | 系统错误 |
|
||||
| 60000 | AI 生成失败 |
|
||||
| 60001 | Provider 不可用 |
|
||||
| 70000 | 支付失败 |
|
||||
| 80000 | 审核不通过 |
|
||||
|
||||
## 3. 认证接口
|
||||
|
||||
### 3.1 发送验证码
|
||||
|
||||
```text
|
||||
POST /api/auth/send-code
|
||||
```
|
||||
|
||||
请求:
|
||||
|
||||
```json
|
||||
{ "phone": "13800000000" }
|
||||
```
|
||||
|
||||
返回:
|
||||
|
||||
```json
|
||||
{ "success": true }
|
||||
```
|
||||
|
||||
### 3.2 手机号登录
|
||||
|
||||
```text
|
||||
POST /api/auth/login-phone
|
||||
```
|
||||
|
||||
请求:
|
||||
|
||||
```json
|
||||
{
|
||||
"phone": "13800000000",
|
||||
"code": "123456"
|
||||
}
|
||||
```
|
||||
|
||||
返回:
|
||||
|
||||
```json
|
||||
{
|
||||
"token": "jwt-token",
|
||||
"user": { "id": 1, "nickname": "用户" }
|
||||
}
|
||||
```
|
||||
|
||||
### 3.3 微信登录
|
||||
|
||||
```text
|
||||
POST /api/auth/login-wechat
|
||||
```
|
||||
|
||||
请求:
|
||||
|
||||
```json
|
||||
{ "code": "wechat_code" }
|
||||
```
|
||||
|
||||
## 4. 首页与案例接口
|
||||
|
||||
### 4.1 首页配置
|
||||
|
||||
```text
|
||||
GET /api/home
|
||||
```
|
||||
|
||||
返回:
|
||||
|
||||
```json
|
||||
{
|
||||
"banners": [],
|
||||
"featured_cases": [],
|
||||
"themes": [],
|
||||
"packages": []
|
||||
}
|
||||
```
|
||||
|
||||
### 4.2 案例列表
|
||||
|
||||
```text
|
||||
GET /api/cases?theme_id=1&style_id=2&page=1&page_size=20
|
||||
```
|
||||
|
||||
### 4.3 案例详情
|
||||
|
||||
```text
|
||||
GET /api/cases/:id
|
||||
```
|
||||
|
||||
## 5. 模板查询接口
|
||||
|
||||
### 5.1 人生主题列表
|
||||
|
||||
```text
|
||||
GET /api/life-themes
|
||||
```
|
||||
|
||||
### 5.2 套餐列表
|
||||
|
||||
```text
|
||||
GET /api/packages?theme_id=1
|
||||
```
|
||||
|
||||
### 5.3 风格列表
|
||||
|
||||
```text
|
||||
GET /api/styles?theme_id=1
|
||||
```
|
||||
|
||||
### 5.4 世界观列表
|
||||
|
||||
```text
|
||||
GET /api/worlds?theme_id=1&style_id=2
|
||||
```
|
||||
|
||||
### 5.5 场景列表
|
||||
|
||||
```text
|
||||
GET /api/worlds/:world_id/scenes
|
||||
```
|
||||
|
||||
## 6. 项目接口
|
||||
|
||||
### 6.1 创建项目
|
||||
|
||||
```text
|
||||
POST /api/projects
|
||||
```
|
||||
|
||||
请求:
|
||||
|
||||
```json
|
||||
{
|
||||
"title": "我们的时空纪念片",
|
||||
"life_theme_id": 1,
|
||||
"output_type": "video"
|
||||
}
|
||||
```
|
||||
|
||||
返回:
|
||||
|
||||
```json
|
||||
{
|
||||
"project_id": 1001,
|
||||
"status": "draft"
|
||||
}
|
||||
```
|
||||
|
||||
### 6.2 获取项目详情
|
||||
|
||||
```text
|
||||
GET /api/projects/:id
|
||||
```
|
||||
|
||||
### 6.3 保存套餐
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/package
|
||||
```
|
||||
|
||||
请求:
|
||||
|
||||
```json
|
||||
{ "package_id": 2 }
|
||||
```
|
||||
|
||||
### 6.4 保存风格
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/style
|
||||
```
|
||||
|
||||
请求:
|
||||
|
||||
```json
|
||||
{ "style_id": 3 }
|
||||
```
|
||||
|
||||
### 6.5 保存世界观
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/worlds
|
||||
```
|
||||
|
||||
请求:
|
||||
|
||||
```json
|
||||
{
|
||||
"selected_worlds": [
|
||||
{ "world_id": 1, "sort_order": 1 },
|
||||
{ "world_id": 5, "sort_order": 2 }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 6.6 保存场景
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/scenes
|
||||
```
|
||||
|
||||
请求:
|
||||
|
||||
```json
|
||||
{
|
||||
"selected_scenes": [
|
||||
{ "world_id": 1, "scene_id": 11, "sort_order": 1 },
|
||||
{ "world_id": 5, "scene_id": 51, "sort_order": 2 }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 6.7 保存定制信息
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/custom-info
|
||||
```
|
||||
|
||||
请求:
|
||||
|
||||
```json
|
||||
{
|
||||
"names": { "person_a": "男方", "person_b": "女方" },
|
||||
"relationship_type": "couple",
|
||||
"anniversary_date": "2026-05-20",
|
||||
"copy_mood": "romantic",
|
||||
"show_names": true,
|
||||
"show_date": true,
|
||||
"vow_text": "愿此生与你共赴山海",
|
||||
"special_requirements": "整体梦幻,不要太搞笑",
|
||||
"allow_public_case": false
|
||||
}
|
||||
```
|
||||
|
||||
### 6.8 项目进度
|
||||
|
||||
```text
|
||||
GET /api/projects/:id/progress
|
||||
```
|
||||
|
||||
返回:
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "final_generating",
|
||||
"percent": 65,
|
||||
"current_step": "正式图片生成中",
|
||||
"tasks": [
|
||||
{ "task_type": "final_image", "success": 12, "total": 20 }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 6.9 我的项目列表
|
||||
|
||||
```text
|
||||
GET /api/my/projects?page=1&page_size=20
|
||||
```
|
||||
|
||||
## 7. 文件与照片接口
|
||||
|
||||
### 7.1 上传照片
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/photos
|
||||
Content-Type: multipart/form-data
|
||||
```
|
||||
|
||||
字段:
|
||||
|
||||
```text
|
||||
person_role: person_a/person_b/child/self
|
||||
file: image
|
||||
```
|
||||
|
||||
返回:
|
||||
|
||||
```json
|
||||
{
|
||||
"asset_id": 2001,
|
||||
"url": "signed-url",
|
||||
"status": "uploaded"
|
||||
}
|
||||
```
|
||||
|
||||
### 7.2 删除照片
|
||||
|
||||
```text
|
||||
DELETE /api/assets/:asset_id
|
||||
```
|
||||
|
||||
### 7.3 触发照片质检
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/photo-check
|
||||
```
|
||||
|
||||
### 7.4 获取照片质检结果
|
||||
|
||||
```text
|
||||
GET /api/projects/:id/photo-check-result
|
||||
```
|
||||
|
||||
## 8. 授权接口
|
||||
|
||||
### 8.1 提交授权确认
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/authorizations
|
||||
```
|
||||
|
||||
请求:
|
||||
|
||||
```json
|
||||
{
|
||||
"types": ["photo_usage", "privacy_policy", "terms"],
|
||||
"minor_guardian_confirmed": false
|
||||
}
|
||||
```
|
||||
|
||||
### 8.2 公开案例授权
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/public-case-authorization
|
||||
```
|
||||
|
||||
## 9. AI 生成流程接口
|
||||
|
||||
### 9.1 生成创作方案
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/generate-plan
|
||||
```
|
||||
|
||||
返回:
|
||||
|
||||
```json
|
||||
{
|
||||
"task_id": 3001,
|
||||
"status": "pending"
|
||||
}
|
||||
```
|
||||
|
||||
### 9.2 获取创作方案
|
||||
|
||||
```text
|
||||
GET /api/projects/:id/plan
|
||||
```
|
||||
|
||||
### 9.3 确认创作方案
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/confirm-plan
|
||||
```
|
||||
|
||||
### 9.4 生成预览
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/generate-preview
|
||||
```
|
||||
|
||||
### 9.5 确认预览
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/confirm-preview
|
||||
```
|
||||
|
||||
### 9.6 正式生成
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/generate-final
|
||||
```
|
||||
|
||||
### 9.7 获取项目素材
|
||||
|
||||
```text
|
||||
GET /api/projects/:id/assets?asset_type=final_image
|
||||
```
|
||||
|
||||
## 10. 订单支付接口
|
||||
|
||||
### 10.1 创建订单
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/orders
|
||||
```
|
||||
|
||||
请求:
|
||||
|
||||
```json
|
||||
{ "package_id": 2, "pay_method": "wechat" }
|
||||
```
|
||||
|
||||
### 10.2 获取支付状态
|
||||
|
||||
```text
|
||||
GET /api/orders/:id
|
||||
```
|
||||
|
||||
### 10.3 支付回调
|
||||
|
||||
```text
|
||||
POST /api/payments/wechat/callback
|
||||
```
|
||||
|
||||
## 11. 修改申请接口
|
||||
|
||||
### 11.1 提交修改申请
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/revisions
|
||||
```
|
||||
|
||||
请求:
|
||||
|
||||
```json
|
||||
{
|
||||
"revision_type": "small",
|
||||
"request_text": "请把片尾日期改成 2026-05-20"
|
||||
}
|
||||
```
|
||||
|
||||
### 11.2 修改申请列表
|
||||
|
||||
```text
|
||||
GET /api/projects/:id/revisions
|
||||
```
|
||||
|
||||
## 12. 下载接口
|
||||
|
||||
### 12.1 获取下载链接
|
||||
|
||||
```text
|
||||
GET /api/assets/:asset_id/download-url
|
||||
```
|
||||
|
||||
返回:
|
||||
|
||||
```json
|
||||
{
|
||||
"url": "signed-download-url",
|
||||
"expires_in": 3600
|
||||
}
|
||||
```
|
||||
|
||||
## 13. 后台接口示例
|
||||
|
||||
### 13.1 后台项目列表
|
||||
|
||||
```text
|
||||
GET /api/admin/projects?status=manual_review&page=1&page_size=20
|
||||
```
|
||||
|
||||
### 13.2 后台项目详情
|
||||
|
||||
```text
|
||||
GET /api/admin/projects/:id
|
||||
```
|
||||
|
||||
### 13.3 后台任务重试
|
||||
|
||||
```text
|
||||
POST /api/admin/tasks/:id/retry
|
||||
```
|
||||
|
||||
### 13.4 后台任务终止
|
||||
|
||||
```text
|
||||
POST /api/admin/tasks/:id/cancel
|
||||
```
|
||||
|
||||
### 13.5 后台转人工
|
||||
|
||||
```text
|
||||
POST /api/admin/projects/:id/manual-review
|
||||
```
|
||||
|
||||
### 13.6 后台模板新增/编辑
|
||||
|
||||
```text
|
||||
POST /api/admin/world-templates
|
||||
PUT /api/admin/world-templates/:id
|
||||
POST /api/admin/scene-templates
|
||||
PUT /api/admin/scene-templates/:id
|
||||
```
|
||||
|
||||
### 13.7 后台 Provider 测试
|
||||
|
||||
```text
|
||||
POST /api/admin/providers/:id/test
|
||||
```
|
||||
|
||||
## 14. WebSocket 进度推送
|
||||
|
||||
连接:
|
||||
|
||||
```text
|
||||
/ws/projects/:project_id
|
||||
```
|
||||
|
||||
事件:
|
||||
|
||||
```json
|
||||
{
|
||||
"event": "project_progress",
|
||||
"data": {
|
||||
"project_id": 1001,
|
||||
"status": "video_rendering",
|
||||
"percent": 82,
|
||||
"message": "视频合成中"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 15. 权限规则
|
||||
|
||||
- 用户只能访问自己的项目、素材、订单。
|
||||
- 后台管理员按角色权限访问后台接口。
|
||||
- Provider 密钥不可通过接口返回明文。
|
||||
- 公开案例必须检查授权记录。
|
||||
|
||||
## 16. V3 真人动态视频接口增量
|
||||
|
||||
### 16.1 输出模式
|
||||
|
||||
```text
|
||||
PATCH /api/projects/:id/output-mode
|
||||
```
|
||||
|
||||
请求:
|
||||
|
||||
```json
|
||||
{
|
||||
"output_mode": "real_video"
|
||||
}
|
||||
```
|
||||
|
||||
### 16.2 身份锚点
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/identity-anchors/generate
|
||||
GET /api/projects/:id/identity-anchors
|
||||
POST /api/identity-anchors/:anchor_id/confirm
|
||||
POST /api/identity-anchors/:anchor_id/reject
|
||||
```
|
||||
|
||||
### 16.3 人脸一致性质检
|
||||
|
||||
```text
|
||||
POST /api/person-profiles/:person_id/face-consistency/check
|
||||
GET /api/person-profiles/:person_id/face-consistency/latest
|
||||
```
|
||||
|
||||
### 16.4 动作模板
|
||||
|
||||
```text
|
||||
GET /api/motion-templates
|
||||
GET /api/admin/motion-templates
|
||||
POST /api/admin/motion-templates
|
||||
PUT /api/admin/motion-templates/:id
|
||||
```
|
||||
|
||||
### 16.5 真人动态视频片段
|
||||
|
||||
```text
|
||||
GET /api/projects/:id/video-clips
|
||||
GET /api/projects/:id/video-clips/cost-estimate
|
||||
POST /api/projects/:id/video-clips/generate
|
||||
POST /api/video-clips/:clip_id/retry
|
||||
POST /api/video-clips/:clip_id/quality-check
|
||||
POST /api/video-clips/:clip_id/replace
|
||||
```
|
||||
|
||||
真实生成请求必须包含:
|
||||
|
||||
```json
|
||||
{
|
||||
"provider_code": "minimax_hailuo_23_fast",
|
||||
"confirm_real_video": true,
|
||||
"max_cost_per_clip": 1.0
|
||||
}
|
||||
```
|
||||
|
||||
未确认或 Provider 未启用时,应返回明确错误,不允许回落 mock。
|
||||
|
||||
### 16.6 口型任务
|
||||
|
||||
```text
|
||||
POST /api/video-clips/:clip_id/lipsync
|
||||
GET /api/projects/:id/lipsync-tasks
|
||||
POST /api/lipsync-tasks/:task_id/retry
|
||||
```
|
||||
Executable
+479
@@ -0,0 +1,479 @@
|
||||
# 07_uniapp用户端页面交互文档
|
||||
|
||||
## 1. 文档目标
|
||||
|
||||
本文档定义 uni-app 用户端的页面结构、跳转流程、页面字段、按钮动作和异常处理。
|
||||
|
||||
## 2. 页面路由建议
|
||||
|
||||
```text
|
||||
/pages/index/index 首页
|
||||
/pages/case/list 案例列表
|
||||
/pages/case/detail 案例详情
|
||||
/pages/auth/login 登录注册
|
||||
/pages/project/create 创建项目
|
||||
/pages/project/theme 选择主题
|
||||
/pages/project/package 选择套餐
|
||||
/pages/project/style 选择风格
|
||||
/pages/project/world 选择世界观
|
||||
/pages/project/scene 选择场景
|
||||
/pages/project/upload 上传照片
|
||||
/pages/project/authorization 授权确认
|
||||
/pages/project/photo-check 照片质检
|
||||
/pages/project/custom-info 定制信息
|
||||
/pages/project/plan 创作方案
|
||||
/pages/project/payment 支付确认
|
||||
/pages/project/preview 预览确认
|
||||
/pages/project/progress 生成进度
|
||||
/pages/project/result 成品确认
|
||||
/pages/project/revision 修改申请
|
||||
/pages/my/projects 我的项目
|
||||
/pages/my/orders 我的订单
|
||||
/pages/my/profile 用户中心
|
||||
```
|
||||
|
||||
## 3. 全局交互原则
|
||||
|
||||
1. 未登录点击制作类按钮,跳转登录页。
|
||||
2. 用户返回上一步时,不删除已选数据。
|
||||
3. 所有选择流程都保存到项目草稿。
|
||||
4. 高成本生成动作必须二次确认。
|
||||
5. 生成中页面不允许重复触发同一任务。
|
||||
6. 页面异常时提供“重试”和“联系客服”。
|
||||
|
||||
## 4. 首页
|
||||
|
||||
### 数据来源
|
||||
|
||||
```text
|
||||
GET /api/home
|
||||
```
|
||||
|
||||
### 页面模块
|
||||
|
||||
- 顶部 Banner
|
||||
- 热门案例横滑
|
||||
- 热门主题宫格
|
||||
- 热门世界观
|
||||
- 套餐展示
|
||||
- 制作流程
|
||||
- FAQ
|
||||
|
||||
### 主要交互
|
||||
|
||||
| 操作 | 行为 |
|
||||
|---|---|
|
||||
| 点击开始制作 | 未登录跳登录;已登录跳创建项目 |
|
||||
| 点击案例 | 跳案例详情 |
|
||||
| 点击主题 | 跳主题选择,自动带入主题 |
|
||||
| 点击用同款 | 登录后创建项目并带入案例模板 |
|
||||
|
||||
## 5. 登录页
|
||||
|
||||
### 支持
|
||||
|
||||
- 手机号验证码
|
||||
- 微信授权
|
||||
|
||||
### 登录成功后
|
||||
|
||||
如果有 redirect 参数,回到之前页面;否则进入首页。
|
||||
|
||||
## 6. 创建项目页
|
||||
|
||||
### 字段
|
||||
|
||||
- 项目名称
|
||||
- 作品用途
|
||||
- 输出类型
|
||||
|
||||
### 按钮
|
||||
|
||||
- 下一步:调用 `POST /api/projects`,成功后进入主题选择页。
|
||||
|
||||
### 校验
|
||||
|
||||
- 项目名称可为空,系统自动生成。
|
||||
- 输出类型必须选择。
|
||||
|
||||
## 7. 主题选择页
|
||||
|
||||
### 数据来源
|
||||
|
||||
```text
|
||||
GET /api/life-themes
|
||||
```
|
||||
|
||||
### 交互
|
||||
|
||||
- 选择主题后保存到项目。
|
||||
- 下一步进入套餐选择。
|
||||
|
||||
### 异常
|
||||
|
||||
如果主题涉及未成年人,后续上传页和授权页必须增加未成年人提示。
|
||||
|
||||
## 8. 套餐选择页
|
||||
|
||||
### 数据来源
|
||||
|
||||
```text
|
||||
GET /api/packages?theme_id=xxx
|
||||
```
|
||||
|
||||
### 交互
|
||||
|
||||
- 用户选择套餐后调用保存套餐接口。
|
||||
- 套餐决定后续世界数、场景数、图片数、视频时长限制。
|
||||
|
||||
### 显示重点
|
||||
|
||||
- 价格
|
||||
- 图片数量
|
||||
- 视频时长
|
||||
- 修改次数
|
||||
- 是否人工审核
|
||||
|
||||
## 9. 风格选择页
|
||||
|
||||
### 数据来源
|
||||
|
||||
```text
|
||||
GET /api/styles?theme_id=xxx
|
||||
```
|
||||
|
||||
### 交互
|
||||
|
||||
- 点击风格卡片选中。
|
||||
- 点击预览案例跳案例列表并带 style_id。
|
||||
- 下一步保存风格并进入世界观选择。
|
||||
|
||||
## 10. 世界观选择页
|
||||
|
||||
### 数据来源
|
||||
|
||||
```text
|
||||
GET /api/worlds?theme_id=xxx&style_id=xxx
|
||||
```
|
||||
|
||||
### 交互
|
||||
|
||||
- 用户可多选世界观。
|
||||
- 选中数量受套餐限制。
|
||||
- 支持拖拽排序。
|
||||
- 点击世界可查看世界详情和场景预览。
|
||||
|
||||
### 校验
|
||||
|
||||
- 少于套餐最小数量,不允许下一步。
|
||||
- 超过套餐最大数量,弹窗提示升级套餐。
|
||||
|
||||
## 11. 场景选择页
|
||||
|
||||
### 数据来源
|
||||
|
||||
```text
|
||||
GET /api/worlds/:world_id/scenes
|
||||
```
|
||||
|
||||
### 交互
|
||||
|
||||
- 每个世界至少选择 1 个场景。
|
||||
- 可查看场景案例。
|
||||
- 高级场景如果套餐不支持,提示升级。
|
||||
|
||||
## 12. 照片上传页
|
||||
|
||||
### 页面逻辑
|
||||
|
||||
根据 life_theme 的 person_schema 渲染上传区域。
|
||||
|
||||
双人主题:
|
||||
|
||||
- 人物 A 上传区
|
||||
- 人物 B 上传区
|
||||
- 双人合照上传区
|
||||
|
||||
单人主题:
|
||||
|
||||
- 本人照片上传区
|
||||
|
||||
家庭主题:
|
||||
|
||||
- 可添加家庭成员
|
||||
- 每个成员独立上传
|
||||
|
||||
### 上传接口
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/photos
|
||||
```
|
||||
|
||||
### 前端预检
|
||||
|
||||
- 文件大小
|
||||
- 文件格式
|
||||
- 图片数量
|
||||
|
||||
### 交互提示
|
||||
|
||||
必须用示例图告诉用户什么照片合格、什么照片不合格。
|
||||
|
||||
## 13. 授权确认页
|
||||
|
||||
### 交互
|
||||
|
||||
所有必选授权项勾选后,才允许下一步。
|
||||
|
||||
### 记录
|
||||
|
||||
调用:
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/authorizations
|
||||
```
|
||||
|
||||
## 14. 照片质检页
|
||||
|
||||
### 触发
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/photo-check
|
||||
```
|
||||
|
||||
### 显示
|
||||
|
||||
每张照片显示:
|
||||
|
||||
- 缩略图
|
||||
- 检测状态
|
||||
- 分数
|
||||
- 问题原因
|
||||
|
||||
### 操作
|
||||
|
||||
- 替换照片
|
||||
- 忽略 warning 继续
|
||||
- 重新检测
|
||||
|
||||
fail 照片必须替换。
|
||||
|
||||
## 15. 定制信息页
|
||||
|
||||
### 字段
|
||||
|
||||
- 人物姓名
|
||||
- 纪念日期
|
||||
- 文案风格
|
||||
- 一句话誓言
|
||||
- 特别要求
|
||||
- 是否显示名字
|
||||
- 是否显示日期
|
||||
- 是否允许公开展示
|
||||
|
||||
### 提交
|
||||
|
||||
调用:
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/custom-info
|
||||
```
|
||||
|
||||
## 16. 创作方案页
|
||||
|
||||
### 触发生成
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/generate-plan
|
||||
```
|
||||
|
||||
### 加载方式
|
||||
|
||||
轮询或 WebSocket 获取任务进度。
|
||||
|
||||
### 展示
|
||||
|
||||
- 标题
|
||||
- 镜头列表
|
||||
- 旁白
|
||||
- 字幕
|
||||
- 世界顺序
|
||||
- 场景顺序
|
||||
|
||||
### 操作
|
||||
|
||||
- 确认方案
|
||||
- 重新生成方案
|
||||
- 返回修改世界/场景/文案
|
||||
|
||||
## 17. 支付确认页
|
||||
|
||||
### 显示
|
||||
|
||||
- 套餐价格
|
||||
- 优惠金额
|
||||
- 应付金额
|
||||
- 生成内容说明
|
||||
- 修改次数
|
||||
|
||||
### 交互
|
||||
|
||||
- 立即支付
|
||||
- 使用余额
|
||||
- 返回修改套餐
|
||||
|
||||
## 18. 预览确认页
|
||||
|
||||
### 展示
|
||||
|
||||
- 关键场景预览图
|
||||
- 水印
|
||||
- 人物与风格反馈按钮
|
||||
|
||||
### 操作
|
||||
|
||||
- 满意,确认预览
|
||||
- 不满意,重新生成
|
||||
- 返回修改模板
|
||||
|
||||
注意:预览重新生成要限制次数。
|
||||
|
||||
## 19. 生成进度页
|
||||
|
||||
### 数据来源
|
||||
|
||||
```text
|
||||
GET /api/projects/:id/progress
|
||||
```
|
||||
|
||||
或 WebSocket。
|
||||
|
||||
### 交互
|
||||
|
||||
- 显示进度条
|
||||
- 显示当前步骤
|
||||
- 显示已完成任务
|
||||
- 失败时显示原因和联系客服入口
|
||||
|
||||
## 20. 成品确认页
|
||||
|
||||
### 展示
|
||||
|
||||
- 成品视频播放器
|
||||
- 图集
|
||||
- 下载按钮
|
||||
- 修改按钮
|
||||
- 公开案例授权按钮
|
||||
|
||||
### 操作
|
||||
|
||||
- 确认完成:项目 completed
|
||||
- 申请修改:进入修改申请页
|
||||
- 下载视频:获取签名链接
|
||||
- 授权公开:创建 public_case 授权记录
|
||||
|
||||
## 21. 修改申请页
|
||||
|
||||
### 校验
|
||||
|
||||
- 检查剩余修改次数
|
||||
- 检查修改类型是否属于套餐范围
|
||||
- 大改提示重新计费
|
||||
|
||||
### 提交
|
||||
|
||||
```text
|
||||
POST /api/projects/:id/revisions
|
||||
```
|
||||
|
||||
## 22. 我的项目页
|
||||
|
||||
### 列表字段
|
||||
|
||||
- 缩略图
|
||||
- 标题
|
||||
- 状态
|
||||
- 创建时间
|
||||
- 是否可下载
|
||||
|
||||
### 操作
|
||||
|
||||
- 查看项目
|
||||
- 继续制作
|
||||
- 下载作品
|
||||
- 申请修改
|
||||
- 删除项目
|
||||
|
||||
## 23. 异常状态处理
|
||||
|
||||
| 场景 | 处理 |
|
||||
|---|---|
|
||||
| 网络失败 | 弹出重试按钮 |
|
||||
| 登录过期 | 跳登录并保留 redirect |
|
||||
| 项目状态冲突 | 刷新项目状态 |
|
||||
| 支付失败 | 返回支付页 |
|
||||
| 任务失败 | 显示失败原因和联系客服 |
|
||||
| 无权限 | 跳首页或提示无权限 |
|
||||
|
||||
## 24. V3 真人动态视频页面增量
|
||||
|
||||
### 24.1 输出模式选择
|
||||
|
||||
创建项目时新增输出模式:
|
||||
|
||||
```text
|
||||
高清写真图集
|
||||
图片纪念视频
|
||||
动态写真视频
|
||||
AI 真人动态视频
|
||||
```
|
||||
|
||||
选择 AI 真人动态视频时必须提示:
|
||||
|
||||
- 生成时间更长。
|
||||
- 成本更高。
|
||||
- 可能需要人工审核。
|
||||
- 可能需要重试。
|
||||
- 动作自然度无法 100% 保证。
|
||||
|
||||
### 24.2 身份锚点确认
|
||||
|
||||
页面展示:
|
||||
|
||||
- 原始参考照。
|
||||
- 身份锚点图。
|
||||
- 本人相似度评分。
|
||||
- “像本人 / 不像本人 / 重生”按钮。
|
||||
|
||||
未确认锚点,不允许进入真实视频片段生成。
|
||||
|
||||
### 24.3 视频片段制作页
|
||||
|
||||
展示:
|
||||
|
||||
- 镜头列表。
|
||||
- 动作模板。
|
||||
- 输入关键帧。
|
||||
- 输出视频片段。
|
||||
- 预计成本。
|
||||
- Provider 名称。
|
||||
- 生成状态。
|
||||
- 质检结果。
|
||||
|
||||
操作:
|
||||
|
||||
- 成本估算。
|
||||
- 勾选真实视频确认。
|
||||
- 生成片段。
|
||||
- 预览片段。
|
||||
- 重试片段。
|
||||
- 进入合成。
|
||||
|
||||
### 24.4 口型任务,可选
|
||||
|
||||
仅高端或用户选择口型时展示:
|
||||
|
||||
- 选择片段。
|
||||
- 选择音频。
|
||||
- 生成口型。
|
||||
- 失败回退旁白字幕版。
|
||||
Executable
+533
@@ -0,0 +1,533 @@
|
||||
# 08_GeekerAdmin后台管理设计
|
||||
|
||||
## 1. 文档目标
|
||||
|
||||
本文档定义基于 Geeker-Admin 二开的后台管理系统菜单、页面字段、操作按钮、权限和审核流程。
|
||||
|
||||
## 2. 后台角色
|
||||
|
||||
| 角色 | 权限 |
|
||||
|---|---|
|
||||
| 超级管理员 | 全部权限,包括系统配置和 Provider 密钥 |
|
||||
| 管理员 | 用户、订单、项目、任务、模板管理 |
|
||||
| 运营 | 案例、模板、项目审核、修改申请 |
|
||||
| 审核员 | 照片审核、成品审核、内容审核 |
|
||||
| 财务 | 订单、支付、退款、成本报表 |
|
||||
|
||||
## 3. 菜单结构
|
||||
|
||||
```text
|
||||
仪表盘
|
||||
用户管理
|
||||
项目管理
|
||||
订单管理
|
||||
生成任务
|
||||
素材管理
|
||||
模板中心
|
||||
人生主题
|
||||
套餐管理
|
||||
视觉风格
|
||||
世界观模板
|
||||
场景模板
|
||||
镜头模板
|
||||
文案模板
|
||||
音乐素材
|
||||
案例管理
|
||||
修改申请
|
||||
授权与隐私
|
||||
AI Provider
|
||||
日志中心
|
||||
系统配置
|
||||
```
|
||||
|
||||
## 4. 仪表盘
|
||||
|
||||
### 指标卡片
|
||||
|
||||
- 今日订单数
|
||||
- 今日收入
|
||||
- 今日生成项目数
|
||||
- 今日完成项目数
|
||||
- 待审核项目数
|
||||
- 失败任务数
|
||||
- AI 成本
|
||||
- 毛利估算
|
||||
|
||||
### 图表
|
||||
|
||||
- 订单趋势
|
||||
- 成本趋势
|
||||
- 热门主题排行
|
||||
- 热门世界排行
|
||||
- 失败任务类型排行
|
||||
|
||||
## 5. 用户管理
|
||||
|
||||
### 表格字段
|
||||
|
||||
- 用户 ID
|
||||
- 昵称
|
||||
- 手机号
|
||||
- 微信 openid
|
||||
- 注册时间
|
||||
- 项目数
|
||||
- 订单数
|
||||
- 消费金额
|
||||
- 状态
|
||||
|
||||
### 操作
|
||||
|
||||
- 查看详情
|
||||
- 禁用用户
|
||||
- 恢复用户
|
||||
- 查看项目
|
||||
- 查看订单
|
||||
- 查看授权记录
|
||||
|
||||
## 6. 项目管理
|
||||
|
||||
### 筛选
|
||||
|
||||
- 项目状态
|
||||
- 人生主题
|
||||
- 套餐
|
||||
- 风格
|
||||
- 用户手机号
|
||||
- 创建时间
|
||||
- 是否公开授权
|
||||
|
||||
### 表格字段
|
||||
|
||||
- 项目 ID
|
||||
- 用户
|
||||
- 标题
|
||||
- 主题
|
||||
- 套餐
|
||||
- 风格
|
||||
- 世界数量
|
||||
- 当前状态
|
||||
- 支付状态
|
||||
- 创建时间
|
||||
- 完成时间
|
||||
|
||||
### 操作
|
||||
|
||||
- 查看详情
|
||||
- 查看素材
|
||||
- 查看任务
|
||||
- 手动重试
|
||||
- 转人工
|
||||
- 标记异常
|
||||
- 强制完成
|
||||
- 取消项目
|
||||
|
||||
### 项目详情页
|
||||
|
||||
Tab:
|
||||
|
||||
- 基本信息
|
||||
- 用户照片
|
||||
- 人物档案
|
||||
- 世界/场景
|
||||
- 镜头计划
|
||||
- 生成素材
|
||||
- 任务记录
|
||||
- 订单信息
|
||||
- 修改记录
|
||||
- 授权记录
|
||||
|
||||
## 7. 订单管理
|
||||
|
||||
### 字段
|
||||
|
||||
- 订单 ID
|
||||
- 用户
|
||||
- 项目 ID
|
||||
- 套餐
|
||||
- 金额
|
||||
- 支付方式
|
||||
- 支付状态
|
||||
- 退款状态
|
||||
- 创建时间
|
||||
- 支付时间
|
||||
|
||||
### 操作
|
||||
|
||||
- 查看订单
|
||||
- 手动标记支付
|
||||
- 创建退款记录
|
||||
- 查看项目
|
||||
- 导出订单
|
||||
|
||||
## 8. 生成任务管理
|
||||
|
||||
### 筛选
|
||||
|
||||
- 任务类型
|
||||
- 状态
|
||||
- Provider
|
||||
- 项目 ID
|
||||
- 创建时间
|
||||
|
||||
### 字段
|
||||
|
||||
- 任务 ID
|
||||
- 项目 ID
|
||||
- 类型
|
||||
- Provider
|
||||
- 状态
|
||||
- 重试次数
|
||||
- 成本
|
||||
- 耗时
|
||||
- 错误码
|
||||
- 创建时间
|
||||
|
||||
### 操作
|
||||
|
||||
- 查看输入
|
||||
- 查看输出
|
||||
- 重试
|
||||
- 终止
|
||||
- 跳过
|
||||
- 转人工
|
||||
- 查看 Provider 日志
|
||||
|
||||
## 9. 素材管理
|
||||
|
||||
### 字段
|
||||
|
||||
- 素材 ID
|
||||
- 项目 ID
|
||||
- 用户
|
||||
- 类型
|
||||
- 缩略图
|
||||
- 尺寸
|
||||
- 文件大小
|
||||
- 可见性
|
||||
- 创建时间
|
||||
|
||||
### 操作
|
||||
|
||||
- 预览
|
||||
- 下载
|
||||
- 生成签名链接
|
||||
- 删除
|
||||
- 标记公开案例资源
|
||||
|
||||
## 10. 模板中心
|
||||
|
||||
### 10.1 人生主题管理
|
||||
|
||||
字段:
|
||||
|
||||
- 编码
|
||||
- 名称
|
||||
- 封面
|
||||
- 人物结构规则
|
||||
- 是否启用
|
||||
- 排序
|
||||
|
||||
操作:新增、编辑、启用、禁用、排序。
|
||||
|
||||
### 10.2 套餐管理
|
||||
|
||||
字段:
|
||||
|
||||
- 套餐编码
|
||||
- 套餐名称
|
||||
- 价格
|
||||
- 世界数量
|
||||
- 场景数量
|
||||
- 图片数量
|
||||
- 视频时长
|
||||
- 修改次数
|
||||
- 是否人工审核
|
||||
- 是否支持高级动态
|
||||
|
||||
### 10.3 视觉风格管理
|
||||
|
||||
字段:
|
||||
|
||||
- 风格编码
|
||||
- 名称
|
||||
- 预览图
|
||||
- 风格 Prompt
|
||||
- 禁止项
|
||||
- 支持主题
|
||||
- 是否启用
|
||||
|
||||
### 10.4 世界观模板管理
|
||||
|
||||
字段:
|
||||
|
||||
- 世界编码
|
||||
- 名称
|
||||
- 分类
|
||||
- 封面
|
||||
- Prompt Base
|
||||
- 服装规则
|
||||
- 场景规则
|
||||
- 禁止项
|
||||
- 支持主题
|
||||
- 支持风格
|
||||
- 是否高级
|
||||
|
||||
操作:
|
||||
|
||||
- 新增世界
|
||||
- 编辑世界
|
||||
- 配置 Prompt
|
||||
- 测试生成
|
||||
- 启用/禁用
|
||||
|
||||
### 10.5 场景模板管理
|
||||
|
||||
字段:
|
||||
|
||||
- 场景编码
|
||||
- 所属世界
|
||||
- 名称
|
||||
- 封面
|
||||
- 场景 Prompt
|
||||
- 构图规则
|
||||
- 光影规则
|
||||
- 特效类型
|
||||
- 推荐镜头数
|
||||
|
||||
### 10.6 镜头模板管理
|
||||
|
||||
字段:
|
||||
|
||||
- 镜头编码
|
||||
- 所属场景
|
||||
- 镜头类型
|
||||
- 视角
|
||||
- 构图
|
||||
- Prompt 规则
|
||||
- 默认时长
|
||||
- 特效类型
|
||||
|
||||
### 10.7 文案模板管理
|
||||
|
||||
字段:
|
||||
|
||||
- 主题
|
||||
- 文案风格
|
||||
- 文案类型
|
||||
- 模板内容
|
||||
- 变量
|
||||
- 状态
|
||||
|
||||
文案类型:
|
||||
|
||||
- 片头
|
||||
- 旁白
|
||||
- 字幕
|
||||
- 片尾
|
||||
- 誓言
|
||||
- 祝福语
|
||||
|
||||
### 10.8 音乐素材管理
|
||||
|
||||
字段:
|
||||
|
||||
- 音乐名称
|
||||
- 情绪
|
||||
- 文件
|
||||
- 时长
|
||||
- 授权类型
|
||||
- 来源
|
||||
- 使用范围
|
||||
|
||||
必须记录版权来源。
|
||||
|
||||
## 11. 案例管理
|
||||
|
||||
### 字段
|
||||
|
||||
- 案例 ID
|
||||
- 来源项目
|
||||
- 标题
|
||||
- 封面
|
||||
- 视频
|
||||
- 主题
|
||||
- 风格
|
||||
- 世界
|
||||
- 是否首页推荐
|
||||
- 授权记录
|
||||
- 状态
|
||||
|
||||
### 操作
|
||||
|
||||
- 从项目生成案例
|
||||
- 编辑标题和封面
|
||||
- 设置推荐
|
||||
- 上架/下架
|
||||
- 排序
|
||||
|
||||
规则:无公开授权记录,不允许上架。
|
||||
|
||||
## 12. 修改申请管理
|
||||
|
||||
### 字段
|
||||
|
||||
- 修改 ID
|
||||
- 项目 ID
|
||||
- 用户
|
||||
- 修改类型
|
||||
- 修改内容
|
||||
- 剩余次数
|
||||
- 状态
|
||||
- 处理人
|
||||
- 创建时间
|
||||
|
||||
### 操作
|
||||
|
||||
- 接受修改
|
||||
- 拒绝修改
|
||||
- 转人工
|
||||
- 创建重做任务
|
||||
- 标记完成
|
||||
|
||||
## 13. 授权与隐私管理
|
||||
|
||||
管理:
|
||||
|
||||
- 照片使用授权
|
||||
- 公开案例授权
|
||||
- 未成年人授权
|
||||
- 隐私协议确认
|
||||
- 用户删除申请
|
||||
|
||||
操作:
|
||||
|
||||
- 查看授权详情
|
||||
- 导出授权记录
|
||||
- 处理删除申请
|
||||
|
||||
## 14. AI Provider 管理
|
||||
|
||||
字段:
|
||||
|
||||
- Provider 类型
|
||||
- 名称
|
||||
- 模型名
|
||||
- API Base
|
||||
- 密钥引用
|
||||
- 优先级
|
||||
- 质量等级
|
||||
- 限流配置
|
||||
- 成本规则
|
||||
- 备用 Provider
|
||||
- 状态
|
||||
|
||||
操作:
|
||||
|
||||
- 新增 Provider
|
||||
- 编辑 Provider
|
||||
- 测试连接
|
||||
- 启用/禁用
|
||||
- 设置优先级
|
||||
|
||||
密钥不允许明文展示。
|
||||
|
||||
## 15. 日志中心
|
||||
|
||||
日志类型:
|
||||
|
||||
- 登录日志
|
||||
- 操作日志
|
||||
- AI 调用日志
|
||||
- 支付日志
|
||||
- 下载日志
|
||||
- 错误日志
|
||||
|
||||
## 16. 系统配置
|
||||
|
||||
配置项:
|
||||
|
||||
- 上传文件大小限制
|
||||
- 下载链接有效期
|
||||
- 默认重试次数
|
||||
- 每用户每日预览次数
|
||||
- 项目保留天数
|
||||
- 是否开启人工审核
|
||||
- 是否开启案例授权
|
||||
- 水印配置
|
||||
- 成本告警阈值
|
||||
|
||||
## 17. V3 真人动态视频后台增量
|
||||
|
||||
### 17.1 身份锚点管理
|
||||
|
||||
项目详情新增:
|
||||
|
||||
- 人物参考照。
|
||||
- 身份锚点图。
|
||||
- 用户确认状态。
|
||||
- 管理员确认状态。
|
||||
- 本人相似度评分。
|
||||
- 重生 / 标记通过 / 标记拒绝。
|
||||
|
||||
### 17.2 视频片段管理
|
||||
|
||||
项目详情新增视频片段列表:
|
||||
|
||||
- 镜头号。
|
||||
- 动作模板。
|
||||
- Provider。
|
||||
- 输入关键帧。
|
||||
- 输出视频。
|
||||
- 片段时长。
|
||||
- 预计成本 / 实际成本。
|
||||
- 状态。
|
||||
- 质检分。
|
||||
- 重试次数。
|
||||
|
||||
操作:
|
||||
|
||||
- 预览片段。
|
||||
- 重试片段。
|
||||
- 替换片段。
|
||||
- 执行质检。
|
||||
- 转人工。
|
||||
|
||||
### 17.3 动作模板管理
|
||||
|
||||
后台新增动作模板菜单:
|
||||
|
||||
- 动作名称。
|
||||
- motion_type。
|
||||
- 支持主题。
|
||||
- 支持世界。
|
||||
- Prompt 规则。
|
||||
- 默认时长。
|
||||
- 难度等级。
|
||||
- 成本等级。
|
||||
|
||||
### 17.4 视频 Provider 管理
|
||||
|
||||
AI Provider 管理需支持:
|
||||
|
||||
- MiniMax Hailuo。
|
||||
- 阿里 Wan。
|
||||
- Vidu。
|
||||
- Seedance / 即梦。
|
||||
- Kling。
|
||||
- Runway。
|
||||
- MockVideoProvider。
|
||||
|
||||
真实视频 Provider 默认禁用;后台测试真实视频 Provider 也应禁用或必须二次确认,避免误扣费。
|
||||
|
||||
### 17.5 V3 审核项
|
||||
|
||||
审核页新增:
|
||||
|
||||
- 是否像本人。
|
||||
- 是否变脸。
|
||||
- 是否男女混脸。
|
||||
- 是否年龄变化过大。
|
||||
- 动作是否自然。
|
||||
- 表情是否怪异。
|
||||
- 是否有不合适姿势。
|
||||
- 是否适合公开案例。
|
||||
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、成本、状态和错误。
|
||||
- 涉及未成年人时,口型内容必须更严格审核。
|
||||
Executable
+371
@@ -0,0 +1,371 @@
|
||||
# 10_Prompt模板_世界观模板规范
|
||||
|
||||
## 1. 文档目标
|
||||
|
||||
本文档定义系统 B 的 Prompt 结构、世界观模板、场景模板、镜头模板和风格模板规范,保证生成效果稳定、可维护、可复用。
|
||||
|
||||
V3 增量:系统 B 支持 AI 真人动态视频后,Prompt 必须从“生成好看的写真图”升级为“保持真实用户身份并生成自然动作”。真人动态视频 Prompt 必须明确身份保持、年龄保持、动作边界和负面约束。
|
||||
|
||||
## 2. Prompt 总体结构
|
||||
|
||||
最终 Prompt 由系统拼接,不建议让用户自由输入完全控制。
|
||||
|
||||
```text
|
||||
[人物层]
|
||||
[关系层]
|
||||
[人生主题层]
|
||||
[世界观层]
|
||||
[场景层]
|
||||
[镜头层]
|
||||
[视觉风格层]
|
||||
[光影与构图层]
|
||||
[质量层]
|
||||
[限制层]
|
||||
```
|
||||
|
||||
## 3. 人物层模板
|
||||
|
||||
```text
|
||||
根据参考照片保留人物核心五官、脸型、年龄感和气质。
|
||||
人物A:{person_a_summary}
|
||||
人物B:{person_b_summary}
|
||||
不要改变人物的核心外貌,不要使人物明显年轻化或老化。
|
||||
```
|
||||
|
||||
## 4. 关系层模板
|
||||
|
||||
婚礼/恋爱:
|
||||
|
||||
```text
|
||||
两人是亲密情侣/夫妻关系,画面应体现自然、温柔、信任、纪念感。
|
||||
```
|
||||
|
||||
银婚金婚:
|
||||
|
||||
```text
|
||||
两人是多年相伴的夫妻,画面应体现温暖、庄重、岁月感和纪念价值。
|
||||
```
|
||||
|
||||
个人形象:
|
||||
|
||||
```text
|
||||
单人形象定制,突出人物气质和主题世界观,不要出现无关人物。
|
||||
```
|
||||
|
||||
## 5. 风格模板
|
||||
|
||||
### 5.1 韩漫风 korean_comic
|
||||
|
||||
```text
|
||||
高质量韩漫风格,精致人物五官,干净线条,柔和光影,浪漫氛围,现代韩漫审美,画面清晰,人物面部稳定。
|
||||
```
|
||||
|
||||
禁用:
|
||||
|
||||
```text
|
||||
低质量,脸部变形,五官漂移,过度夸张,杂乱背景,错误文字,第三人乱入。
|
||||
```
|
||||
|
||||
### 5.2 半写实写真风 semi_realistic
|
||||
|
||||
```text
|
||||
半写实精修写真风,保留真人特征,电影感光影,高级质感,真实但略带艺术化,适合商业纪念照。
|
||||
```
|
||||
|
||||
### 5.3 国风插画 chinese_illustration
|
||||
|
||||
```text
|
||||
国风插画风,东方美学,细腻服饰纹理,柔和色彩,古典构图,雅致氛围,适合古风和仙侠主题。
|
||||
```
|
||||
|
||||
### 5.4 电影写实 cinematic_realistic
|
||||
|
||||
```text
|
||||
电影写实风,真实摄影质感,电影级灯光,真实布料与场景,人物保留参考照片特征,高端纪念片风格。
|
||||
```
|
||||
|
||||
注意:电影写实最容易暴露人脸不一致,应放高端套餐并人工审核。
|
||||
|
||||
## 6. 世界观模板字段规范
|
||||
|
||||
每个世界观必须包含:
|
||||
|
||||
```text
|
||||
world_code
|
||||
world_name
|
||||
category
|
||||
description
|
||||
prompt_base
|
||||
costume_rules
|
||||
scene_rules
|
||||
color_rules
|
||||
lighting_rules
|
||||
negative_rules
|
||||
supported_themes
|
||||
supported_styles
|
||||
```
|
||||
|
||||
## 7. 历史朝代系模板示例
|
||||
|
||||
### 7.1 明制婚礼 ming_dynasty
|
||||
|
||||
prompt_base:
|
||||
|
||||
```text
|
||||
明代中式婚礼世界,庄重华丽,传统中式礼制,大红喜庆色调,精致木质建筑,红灯笼,红绸,喜堂,东方古典美学。
|
||||
```
|
||||
|
||||
costume_rules:
|
||||
|
||||
```text
|
||||
新郎穿明制婚服,端庄正式。新娘穿明制凤冠霞帔或传统中式婚服,华丽但不过度夸张。
|
||||
```
|
||||
|
||||
scene_rules:
|
||||
|
||||
```text
|
||||
场景可包含王府喜堂、红绸长廊、花轿、庭院、洞房花烛、夜宴烟花。
|
||||
```
|
||||
|
||||
negative_rules:
|
||||
|
||||
```text
|
||||
不要现代西式婚纱,不要清代旗装,不要民国服饰,不要混入其它朝代元素。
|
||||
```
|
||||
|
||||
### 7.2 唐朝婚礼 tang_dynasty
|
||||
|
||||
prompt_base:
|
||||
|
||||
```text
|
||||
盛唐婚礼世界,华丽、大气、富贵,宫廷感,暖金色调,开放盛大的东方审美。
|
||||
```
|
||||
|
||||
costume_rules:
|
||||
|
||||
```text
|
||||
新郎新娘穿唐风华丽婚服,服饰层次丰富,色彩明艳,发饰精致。
|
||||
```
|
||||
|
||||
## 8. 仙侠修真系模板示例
|
||||
|
||||
### 8.1 仙宫大婚 xianxia_palace
|
||||
|
||||
prompt_base:
|
||||
|
||||
```text
|
||||
仙侠世界的云海仙宫婚礼,漂浮宫殿,云雾缭绕,仙鹤、灵光、花瓣,梦幻而庄重。
|
||||
```
|
||||
|
||||
costume_rules:
|
||||
|
||||
```text
|
||||
人物穿仙侠婚服,轻盈飘逸,带有东方仙气,不要现代服装。
|
||||
```
|
||||
|
||||
scene_rules:
|
||||
|
||||
```text
|
||||
云海仙宫、桃花仙境、宗门大殿、仙舟、星河天台、凤凰环绕礼台。
|
||||
```
|
||||
|
||||
negative_rules:
|
||||
|
||||
```text
|
||||
不要西方魔法袍,不要机械科幻元素,不要恐怖暗黑风。
|
||||
```
|
||||
|
||||
### 8.2 龙宫婚礼 dragon_palace
|
||||
|
||||
```text
|
||||
海底龙宫婚礼,水晶宫殿,蓝金色调,水下光影,东方龙纹装饰,神秘华丽。
|
||||
```
|
||||
|
||||
## 9. 未来科技系模板示例
|
||||
|
||||
### 9.1 星际婚礼 space_wedding
|
||||
|
||||
prompt_base:
|
||||
|
||||
```text
|
||||
未来星际婚礼,宇宙星空背景,星舰大厅,银河观景台,全息光效,高级科技感,浪漫与未来感结合。
|
||||
```
|
||||
|
||||
costume_rules:
|
||||
|
||||
```text
|
||||
未来礼服,干净利落,高级材质,带少量光效装饰,不要过度机甲化。
|
||||
```
|
||||
|
||||
negative_rules:
|
||||
|
||||
```text
|
||||
不要古代服饰,不要脏乱废土,不要恐怖外星元素。
|
||||
```
|
||||
|
||||
## 10. 趣味脑洞系模板示例
|
||||
|
||||
### 10.1 恐龙时代 dinosaur_age
|
||||
|
||||
prompt_base:
|
||||
|
||||
```text
|
||||
远古恐龙时代的浪漫纪念场景,史前森林,巨大恐龙在远处温和出现,金色夕阳,奇幻浪漫,不恐怖。
|
||||
```
|
||||
|
||||
rules:
|
||||
|
||||
```text
|
||||
恐龙只作为背景氛围,不攻击人物。画面应浪漫、奇妙、适合纪念,不要血腥。
|
||||
```
|
||||
|
||||
### 10.2 海底王国 underwater_kingdom
|
||||
|
||||
```text
|
||||
海底王国,水晶宫殿,发光珊瑚,蓝色梦幻光影,鱼群环绕,浪漫神秘。
|
||||
```
|
||||
|
||||
## 11. 场景模板规范
|
||||
|
||||
场景模板必须包含:
|
||||
|
||||
```text
|
||||
scene_code
|
||||
scene_name
|
||||
scene_prompt
|
||||
composition_rules
|
||||
lighting_rules
|
||||
effect_type
|
||||
recommended_shot_count
|
||||
negative_rules
|
||||
```
|
||||
|
||||
示例:明朝王府喜堂
|
||||
|
||||
```text
|
||||
scene_prompt:传统中式喜堂,红色帷幔,木质梁柱,喜字装饰,红灯笼,两位新人站在中央。
|
||||
composition_rules:双人正面构图,人物居中,背景对称,庄重仪式感。
|
||||
lighting_rules:暖色室内光,柔和但喜庆。
|
||||
effect_type:slow_zoom_in
|
||||
```
|
||||
|
||||
## 12. 镜头模板规范
|
||||
|
||||
镜头类型:
|
||||
|
||||
```text
|
||||
双人正面主图
|
||||
牵手远景
|
||||
对视特写
|
||||
仪式镜头
|
||||
氛围镜头
|
||||
单人特写
|
||||
家庭合照
|
||||
儿童成长镜头
|
||||
```
|
||||
|
||||
示例:对视特写
|
||||
|
||||
```text
|
||||
两位主角近景对视,表情温柔自然,背景虚化,突出眼神和情感,不要夸张表情。
|
||||
```
|
||||
|
||||
## 13. 通用负面 Prompt
|
||||
|
||||
```text
|
||||
低质量,模糊,五官变形,脸部崩坏,年龄漂移,男女混脸,第三人乱入,多余手指,畸形手,文字乱码,水印,logo,现代物品乱入,服装风格错误,背景杂乱,恐怖,血腥,色情,侮辱性内容。
|
||||
```
|
||||
|
||||
## 14. Prompt 生成规则
|
||||
|
||||
1. 用户自由输入只能作为补充要求。
|
||||
2. 用户输入不得覆盖安全限制。
|
||||
3. 历史朝代模板要严格避免混搭。
|
||||
4. 单个 Prompt 不要过长到失控。
|
||||
5. 每次生成要保存 Prompt 和版本号。
|
||||
6. 同一项目内同一人物描述必须一致。
|
||||
7. 同一世界内服装和色调尽量保持一致。
|
||||
|
||||
## 15. 模板测试标准
|
||||
|
||||
每个新世界模板上线前,至少测试:
|
||||
|
||||
- 单人图
|
||||
- 双人图
|
||||
- 远景
|
||||
- 特写
|
||||
- 同一人物多场景一致性
|
||||
- 与 2 种不同视觉风格组合
|
||||
- 是否容易出现违规或错题
|
||||
|
||||
## 16. V3 真人动态视频 Prompt 模板
|
||||
|
||||
### 16.1 中文主模板
|
||||
|
||||
```text
|
||||
真实短剧风格,保持参考照片中人物的五官、脸型、年龄感和气质,不能换脸,不能变成其他人。
|
||||
人物穿着 {theme_costume},在 {scene_description} 中 {motion_description}。
|
||||
镜头竖屏 9:16,电影感光影,真实表情,动作自然,适合抖音短视频纪念片。
|
||||
人物身份必须与参考照片一致,保留性别、年龄段、脸型、发型和整体气质。
|
||||
```
|
||||
|
||||
### 16.2 英文辅助词
|
||||
|
||||
```text
|
||||
identity preservation, same person as reference, natural facial expression,
|
||||
realistic body movement, photorealistic cinematic short video,
|
||||
vertical 9:16, natural camera movement, no identity change
|
||||
```
|
||||
|
||||
### 16.3 动作模板片段
|
||||
|
||||
```text
|
||||
自然微笑:the person smiles naturally with subtle eye movement, gentle expression.
|
||||
转头:the person slowly turns head toward the camera, natural neck and shoulder movement.
|
||||
牵手:the couple gently holds hands and looks at each other, warm and respectful.
|
||||
行礼:the couple performs a gentle ceremonial bow, stable body posture, respectful mood.
|
||||
拥抱:the couple gives a gentle hug, natural arms and calm facial expression.
|
||||
```
|
||||
|
||||
### 16.4 真人动态负面约束
|
||||
|
||||
```text
|
||||
不要改变人物身份
|
||||
不要变年轻太多
|
||||
不要变成欧美脸
|
||||
不要多出第三人
|
||||
不要脸部扭曲
|
||||
不要手部异常
|
||||
不要表情僵硬
|
||||
不要恐怖感
|
||||
不要过度美颜
|
||||
不要低俗姿势
|
||||
不要夸张肢体
|
||||
不要改变性别
|
||||
不要男女混脸
|
||||
不要生成未授权名人脸
|
||||
```
|
||||
|
||||
### 16.5 未成年人额外约束
|
||||
|
||||
```text
|
||||
健康、温馨、日常、家庭纪念风格。
|
||||
禁止成人化服装、成人化姿势、暧昧表达、危险动作和任何不适合儿童的内容。
|
||||
```
|
||||
|
||||
## 17. V3 Prompt 保存要求
|
||||
|
||||
每个关键帧和视频片段必须保存:
|
||||
|
||||
```text
|
||||
prompt_text
|
||||
negative_prompt
|
||||
person_profile_version
|
||||
identity_anchor_id
|
||||
motion_template_id
|
||||
provider_code
|
||||
model_name
|
||||
seed,可选
|
||||
```
|
||||
|
||||
这样后续才能复现、重试、对比 Provider 和排查“为什么不像本人”。
|
||||
Executable
+358
@@ -0,0 +1,358 @@
|
||||
# 11_订单支付_额度_成本控制设计
|
||||
|
||||
## 1. 文档目标
|
||||
|
||||
本文档定义系统 B 的订单、支付、额度、退款、修改计费和 AI 成本控制。由于系统使用高质量模型,成本控制是商业落地的核心。
|
||||
|
||||
## 2. 核心原则
|
||||
|
||||
1. 高成本正式生成前必须支付或冻结额度。
|
||||
2. 预览生成必须限制次数。
|
||||
3. 失败重试不重复扣用户额度。
|
||||
4. 用户主动大改需要重新计费。
|
||||
5. 每个任务必须记录预估成本和实际成本。
|
||||
6. 后台必须能看到项目毛利。
|
||||
|
||||
## 3. 套餐计费
|
||||
|
||||
### 3.1 标准图集版
|
||||
|
||||
包含:
|
||||
|
||||
- 1 个主题
|
||||
- 1 个世界
|
||||
- 3 个场景
|
||||
- 6-12 张图
|
||||
- 1 次小改
|
||||
|
||||
### 3.2 短视频版
|
||||
|
||||
包含:
|
||||
|
||||
- 1-3 个世界
|
||||
- 30-60 秒视频
|
||||
- 12-24 张图
|
||||
- 字幕、BGM
|
||||
- 1 次小改
|
||||
|
||||
### 3.3 多世界纪念片
|
||||
|
||||
包含:
|
||||
|
||||
- 5-10 个世界
|
||||
- 1-3 分钟视频
|
||||
- 25-60 张图
|
||||
- 旁白、字幕、片头片尾
|
||||
- 2 次修改
|
||||
|
||||
### 3.4 高端定制版
|
||||
|
||||
按人工报价,支持:
|
||||
|
||||
- 自由主题
|
||||
- 专属文案
|
||||
- 高级动态
|
||||
- 人工精修
|
||||
- 多轮修改
|
||||
|
||||
### 3.5 V3 动态写真版
|
||||
|
||||
包含:
|
||||
|
||||
- 1-3 个世界
|
||||
- 6-18 张写真图
|
||||
- 3-8 个轻动态片段
|
||||
- 眨眼、微笑、背景动效、花瓣光效等轻动作
|
||||
- 30-60 秒视频
|
||||
- 不默认启用完整真人短剧动作
|
||||
|
||||
### 3.6 V3 AI 真人动态视频版
|
||||
|
||||
包含:
|
||||
|
||||
- 1-3 个世界
|
||||
- 4-10 个真人动态镜头
|
||||
- 每个镜头 3-6 秒
|
||||
- 默认 720P
|
||||
- 人物表情、转头、牵手、行礼、慢走等动作
|
||||
- 片段质检
|
||||
- 真实视频生成前必须二次确认成本
|
||||
|
||||
### 3.7 V3 高端真人纪念片
|
||||
|
||||
按人工报价,支持:
|
||||
|
||||
- 多世界
|
||||
- 多场景
|
||||
- 关键镜头真人动态
|
||||
- 口型 / 誓言 / 旁白
|
||||
- 人工精修
|
||||
- 人工审核
|
||||
- 多轮修改
|
||||
|
||||
## 4. 订单状态
|
||||
|
||||
```text
|
||||
pending:待支付
|
||||
paid:已支付
|
||||
cancelled:已取消
|
||||
failed:支付失败
|
||||
refunding:退款中
|
||||
refunded:已退款
|
||||
closed:已关闭
|
||||
```
|
||||
|
||||
## 5. 支付流程
|
||||
|
||||
```text
|
||||
用户选择套餐
|
||||
→ 创建订单
|
||||
→ 用户支付
|
||||
→ 支付回调
|
||||
→ 订单标记 paid
|
||||
→ 项目标记 payment_paid
|
||||
→ 开放预览/正式生成
|
||||
```
|
||||
|
||||
## 6. 预览策略
|
||||
|
||||
推荐策略:
|
||||
|
||||
```text
|
||||
登录用户每天可免费生成 1 次低清水印预览。
|
||||
超过免费次数需支付小额预览费或先购买套餐。
|
||||
正式高清生成必须支付。
|
||||
```
|
||||
|
||||
预览规则:
|
||||
|
||||
- 加水印
|
||||
- 低清或中清
|
||||
- 数量少
|
||||
- 不提供无水印下载
|
||||
- 预览图仅用于确认人物和风格
|
||||
|
||||
## 7. 额度模型
|
||||
|
||||
每个订单生成以下额度:
|
||||
|
||||
```text
|
||||
preview_quota:预览次数
|
||||
image_quota:正式图片生成额度
|
||||
video_quota:视频生成额度
|
||||
revision_quota:修改次数
|
||||
advanced_video_quota:高级动态镜头额度
|
||||
```
|
||||
|
||||
## 8. 额度扣减规则
|
||||
|
||||
### 8.1 正常成功
|
||||
|
||||
任务成功后扣减对应额度。
|
||||
|
||||
### 8.2 AI 失败
|
||||
|
||||
如果 Provider 失败、系统错误、超时导致未产生成果,不扣用户额度。
|
||||
|
||||
### 8.3 用户不满意
|
||||
|
||||
如果成果符合套餐说明但用户主观不满意,按修改次数或重新生成次数扣减。
|
||||
|
||||
### 8.4 大改
|
||||
|
||||
以下属于大改,需重新计费:
|
||||
|
||||
- 更换整体风格
|
||||
- 更换全部世界观
|
||||
- 重建人物档案
|
||||
- 整条视频重做
|
||||
- 超出套餐范围的场景替换
|
||||
|
||||
## 9. 成本记录
|
||||
|
||||
每个任务记录:
|
||||
|
||||
```text
|
||||
task_id
|
||||
project_id
|
||||
provider_id
|
||||
task_type
|
||||
estimated_cost_cent
|
||||
actual_cost_cent
|
||||
input_size
|
||||
output_size
|
||||
latency_ms
|
||||
status
|
||||
```
|
||||
|
||||
每个项目汇总:
|
||||
|
||||
```text
|
||||
订单收入
|
||||
AI 文本成本
|
||||
AI 图片成本
|
||||
AI 视频成本
|
||||
TTS 成本
|
||||
存储成本估算
|
||||
人工成本估算
|
||||
总成本
|
||||
毛利
|
||||
```
|
||||
|
||||
## 10. 成本控制策略
|
||||
|
||||
### 10.1 预览和正式分离
|
||||
|
||||
预览阶段:
|
||||
|
||||
- 少量生成
|
||||
- 水印
|
||||
- 低清
|
||||
- 限制次数
|
||||
|
||||
正式阶段:
|
||||
|
||||
- 高质量
|
||||
- 无水印
|
||||
- 完整生成
|
||||
|
||||
### 10.2 重试限制
|
||||
|
||||
每个任务默认:
|
||||
|
||||
```text
|
||||
max_retry = 2 或 3
|
||||
```
|
||||
|
||||
多次失败后转人工,不无限重试。
|
||||
|
||||
### 10.3 高级动态限制
|
||||
|
||||
AI 视频成本高,应按套餐限制:
|
||||
|
||||
- 标准图集:不支持
|
||||
- 短视频:可选 0-1 个
|
||||
- 多世界纪念片:2-5 个
|
||||
- 高端定制:按报价
|
||||
|
||||
### 10.5 V3 真人动态视频成本规则
|
||||
|
||||
真人动态视频成本按以下维度估算:
|
||||
|
||||
```text
|
||||
视频片段秒数
|
||||
视频 Provider
|
||||
模型
|
||||
分辨率
|
||||
候选数量
|
||||
重试次数
|
||||
口型任务
|
||||
人工审核
|
||||
```
|
||||
|
||||
后台配置项:
|
||||
|
||||
```text
|
||||
max_video_seconds_per_project
|
||||
max_clip_duration
|
||||
max_clip_candidates
|
||||
max_video_retry_per_clip
|
||||
default_video_resolution
|
||||
max_cost_per_project
|
||||
max_cost_per_call
|
||||
daily_cost_limit
|
||||
```
|
||||
|
||||
示例:
|
||||
|
||||
```text
|
||||
AI 真人动态视频 40 秒:
|
||||
8 个镜头
|
||||
每个 5 秒
|
||||
每镜头最多 1 次重试
|
||||
默认 720P
|
||||
```
|
||||
|
||||
真实视频 Provider 必须满足:
|
||||
|
||||
- 默认禁用。
|
||||
- 运营手动启用。
|
||||
- 填写 `price_per_second` 或 `price_per_clip`。
|
||||
- 设置单次成本上限和当日成本上限。
|
||||
- 用户端展示预计费用。
|
||||
- 用户确认后才执行。
|
||||
- Provider 失败不回落 mock 假成功。
|
||||
|
||||
### 10.6 V3 片段级成本展示
|
||||
|
||||
后台和用户端应展示:
|
||||
|
||||
- 每个片段预计成本。
|
||||
- 每个片段实际成本。
|
||||
- 每个项目视频总成本。
|
||||
- 每个用户累计成本。
|
||||
- 每个 Provider 今日成本。
|
||||
- 重试造成的额外成本。
|
||||
|
||||
### 10.4 复用素材
|
||||
|
||||
同一项目中可复用:
|
||||
|
||||
- 人物锚点图
|
||||
- 同一世界服装锚点
|
||||
- 背景图
|
||||
- 片头片尾模板
|
||||
|
||||
## 11. 退款规则
|
||||
|
||||
建议规则:
|
||||
|
||||
| 阶段 | 退款建议 |
|
||||
|---|---|
|
||||
| 未开始生成 | 可全额退款 |
|
||||
| 已生成预览 | 可部分退款 |
|
||||
| 正式生成中 | 一般不退款,可协商 |
|
||||
| 已交付成品 | 不支持退款,支持套餐内修改 |
|
||||
| 系统失败无法交付 | 可退款或补偿额度 |
|
||||
|
||||
## 12. 修改计费规则
|
||||
|
||||
### 小改
|
||||
|
||||
套餐内可用修改次数。
|
||||
|
||||
### 中改
|
||||
|
||||
消耗 1 次修改,必要时消耗部分生成额度。
|
||||
|
||||
### 大改
|
||||
|
||||
重新报价或重新下单。
|
||||
|
||||
## 13. 后台成本看板
|
||||
|
||||
指标:
|
||||
|
||||
- 今日收入
|
||||
- 今日 AI 成本
|
||||
- 今日毛利
|
||||
- 项目平均成本
|
||||
- 图片平均成本
|
||||
- 视频平均成本
|
||||
- Provider 成本排行
|
||||
- 高成本项目提醒
|
||||
|
||||
## 14. 成本告警
|
||||
|
||||
触发条件:
|
||||
|
||||
- 单项目成本超过套餐价格的设定比例
|
||||
- Provider 日成本超过阈值
|
||||
- 失败重试成本异常
|
||||
- 用户短时间大量生成预览
|
||||
|
||||
处理:
|
||||
|
||||
- 暂停项目自动生成
|
||||
- 通知管理员
|
||||
- 转人工审核
|
||||
Executable
+337
@@ -0,0 +1,337 @@
|
||||
# 12_任务队列_错误重试_稳定性设计
|
||||
|
||||
## 1. 文档目标
|
||||
|
||||
本文档定义系统 B 的任务队列、状态机、幂等、重试、错误码、恢复机制和并发控制。
|
||||
|
||||
## 2. 为什么必须队列化
|
||||
|
||||
系统 B 的生成链路长且耗时:
|
||||
|
||||
```text
|
||||
照片检测
|
||||
人物档案
|
||||
方案生成
|
||||
预览图
|
||||
正式图
|
||||
图片质检
|
||||
TTS
|
||||
字幕
|
||||
视频合成
|
||||
最终质检
|
||||
人工审核
|
||||
```
|
||||
|
||||
如果同步执行,容易导致:
|
||||
|
||||
- 请求超时
|
||||
- 用户重复点击
|
||||
- 服务阻塞
|
||||
- 失败无法恢复
|
||||
- 成本无法追踪
|
||||
|
||||
## 3. 队列划分
|
||||
|
||||
```text
|
||||
photo_check_queue:照片检测
|
||||
text_queue:方案、文案、Prompt
|
||||
image_queue:预览图、正式图
|
||||
video_queue:AI 图生视频
|
||||
voice_queue:TTS
|
||||
audio_queue:BGM 处理
|
||||
ffmpeg_queue:视频合成
|
||||
qc_queue:质量检测
|
||||
cleanup_queue:文件清理
|
||||
notification_queue:通知
|
||||
```
|
||||
|
||||
## 4. 任务状态
|
||||
|
||||
```text
|
||||
pending:等待执行
|
||||
running:执行中
|
||||
success:成功
|
||||
failed:失败
|
||||
retrying:重试中
|
||||
cancelled:取消
|
||||
manual_required:需要人工处理
|
||||
```
|
||||
|
||||
## 5. 任务字段
|
||||
|
||||
每个任务必须有:
|
||||
|
||||
```text
|
||||
task_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
|
||||
```
|
||||
|
||||
## 6. 幂等设计
|
||||
|
||||
幂等 key:
|
||||
|
||||
```text
|
||||
project_id + task_type + input_hash
|
||||
```
|
||||
|
||||
规则:
|
||||
|
||||
- 如果已有成功任务,直接返回成功结果。
|
||||
- 如果已有运行任务,返回当前任务状态。
|
||||
- 如果已有失败任务,按重试规则处理。
|
||||
- 同一请求不能重复创建多个高成本任务。
|
||||
|
||||
## 7. 项目级锁
|
||||
|
||||
某些任务必须串行:
|
||||
|
||||
- 创作方案生成
|
||||
- 视频合成
|
||||
- 最终交付
|
||||
|
||||
使用 Redis lock:
|
||||
|
||||
```text
|
||||
lock:project:{project_id}:workflow
|
||||
```
|
||||
|
||||
避免并发触发导致状态混乱。
|
||||
|
||||
## 8. 重试策略
|
||||
|
||||
默认:
|
||||
|
||||
```text
|
||||
max_retry = 3
|
||||
backoff = exponential
|
||||
```
|
||||
|
||||
例如:
|
||||
|
||||
```text
|
||||
第 1 次失败:30 秒后重试
|
||||
第 2 次失败:2 分钟后重试
|
||||
第 3 次失败:5 分钟后重试
|
||||
```
|
||||
|
||||
不可重试错误:
|
||||
|
||||
- 用户照片不合格
|
||||
- 余额不足
|
||||
- 授权未确认
|
||||
- 内容审核不通过
|
||||
- 套餐限制冲突
|
||||
|
||||
可重试错误:
|
||||
|
||||
- Provider 超时
|
||||
- 网络错误
|
||||
- 速率限制
|
||||
- 临时服务异常
|
||||
- FFmpeg 临时失败
|
||||
|
||||
## 9. 失败转人工
|
||||
|
||||
满足任一条件转人工:
|
||||
|
||||
- 同一任务连续失败超过 max_retry
|
||||
- 图片质检连续失败
|
||||
- 人像一致性评分过低
|
||||
- 视频合成失败
|
||||
- 审核 warning
|
||||
- 高端定制项目
|
||||
|
||||
状态:
|
||||
|
||||
```text
|
||||
manual_required
|
||||
```
|
||||
|
||||
## 10. 并发限制
|
||||
|
||||
### 用户级
|
||||
|
||||
```text
|
||||
每个用户最多同时 1 个正式生成项目
|
||||
```
|
||||
|
||||
### 项目级
|
||||
|
||||
```text
|
||||
每个项目最多同时 N 个图片任务
|
||||
视频合成任务只能 1 个
|
||||
```
|
||||
|
||||
### Provider 级
|
||||
|
||||
```text
|
||||
按 Provider 设置 QPS 和并发数
|
||||
```
|
||||
|
||||
## 11. 队列优先级
|
||||
|
||||
优先级建议:
|
||||
|
||||
1. 高端定制项目
|
||||
2. 已支付正式生成
|
||||
3. 预览生成
|
||||
4. 免费预览
|
||||
5. 清理任务
|
||||
|
||||
## 12. 错误码设计
|
||||
|
||||
| 错误码 | 含义 |
|
||||
|---|---|
|
||||
| TASK_TIMEOUT | 任务超时 |
|
||||
| PROVIDER_TIMEOUT | Provider 超时 |
|
||||
| PROVIDER_RATE_LIMIT | Provider 限流 |
|
||||
| PROVIDER_ERROR | Provider 错误 |
|
||||
| INPUT_INVALID | 输入参数错误 |
|
||||
| PHOTO_QUALITY_FAIL | 照片质量不合格 |
|
||||
| PAYMENT_REQUIRED | 需要支付 |
|
||||
| QUOTA_NOT_ENOUGH | 额度不足 |
|
||||
| MODERATION_REJECTED | 审核不通过 |
|
||||
| FFMPEG_FAILED | 视频合成失败 |
|
||||
| STORAGE_FAILED | 存储失败 |
|
||||
| UNKNOWN_ERROR | 未知错误 |
|
||||
|
||||
## 13. 任务恢复
|
||||
|
||||
服务重启后:
|
||||
|
||||
1. 扫描 running 超时任务。
|
||||
2. 判断是否有 Provider request_id。
|
||||
3. 查询 Provider 状态,能恢复则恢复。
|
||||
4. 无法恢复则标记 failed 并按规则重试。
|
||||
|
||||
## 14. 状态一致性
|
||||
|
||||
项目状态由 WorkflowService 统一更新。不要让 Worker 随意改最终状态。
|
||||
|
||||
Worker 只上报:
|
||||
|
||||
```text
|
||||
task success/failed
|
||||
output asset
|
||||
progress
|
||||
error
|
||||
```
|
||||
|
||||
WorkflowService 根据任务完成情况推进项目状态。
|
||||
|
||||
## 15. 防重复点击
|
||||
|
||||
前端:按钮 loading,防抖。
|
||||
后端:幂等 key + 状态校验。
|
||||
|
||||
例如:
|
||||
|
||||
- 已在 preview_generating,不允许再次 generate-preview。
|
||||
- 已 payment_paid,不允许重复创建同一套餐订单。
|
||||
|
||||
## 16. 任务超时设置
|
||||
|
||||
建议:
|
||||
|
||||
```text
|
||||
photo_check:2 分钟
|
||||
text_generate:3 分钟
|
||||
image_generate:10 分钟
|
||||
video_generate:30 分钟
|
||||
voice_generate:5 分钟
|
||||
ffmpeg_render:30 分钟
|
||||
final_qc:10 分钟
|
||||
```
|
||||
|
||||
## 17. 告警
|
||||
|
||||
触发告警:
|
||||
|
||||
- 失败任务数超过阈值
|
||||
- 某 Provider 连续失败
|
||||
- 队列积压过多
|
||||
- 视频合成失败率过高
|
||||
- 单项目成本异常
|
||||
- 磁盘/MinIO 容量不足
|
||||
|
||||
## 18. 日志要求
|
||||
|
||||
每个任务记录:
|
||||
|
||||
- 输入摘要
|
||||
- 输出摘要
|
||||
- Provider
|
||||
- 成本
|
||||
- 耗时
|
||||
- 错误
|
||||
- 重试次数
|
||||
|
||||
敏感数据脱敏保存。
|
||||
|
||||
## 19. V3 真人动态视频队列增量
|
||||
|
||||
新增队列:
|
||||
|
||||
```text
|
||||
identity_anchor_queue:身份锚点生成
|
||||
face_consistency_queue:本人相似度检查
|
||||
motion_portrait_queue:动态写真轻动效
|
||||
real_video_clip_queue:真人动态视频片段
|
||||
video_clip_qc_queue:视频片段质检
|
||||
lipsync_queue:口型同步
|
||||
```
|
||||
|
||||
隔离原则:
|
||||
|
||||
- `real_video_clip_queue` 必须独立限流,避免高成本视频任务堵住图片和普通合成。
|
||||
- `lipsync_queue` 独立限流,失败不影响基础旁白字幕交付。
|
||||
- `face_consistency_queue` 可优先级较高,因为它决定是否能继续生成。
|
||||
|
||||
V3 超时建议:
|
||||
|
||||
```text
|
||||
identity_anchor_generate:10 分钟
|
||||
face_consistency_check:3 分钟
|
||||
motion_portrait_generate:20 分钟
|
||||
real_video_clip_generate:60 分钟
|
||||
video_clip_qc:10 分钟
|
||||
lipsync_generate:45 分钟
|
||||
```
|
||||
|
||||
V3 错误码:
|
||||
|
||||
```text
|
||||
IDENTITY_ANCHOR_NOT_CONFIRMED
|
||||
FACE_CONSISTENCY_LOW
|
||||
REAL_VIDEO_PROVIDER_DISABLED
|
||||
REAL_VIDEO_CONFIRMATION_REQUIRED
|
||||
REAL_VIDEO_COST_LIMIT_EXCEEDED
|
||||
REAL_VIDEO_CLIP_FAILED
|
||||
VIDEO_CLIP_QC_FAILED
|
||||
LIPSYNC_FAILED
|
||||
MINOR_MANUAL_REVIEW_REQUIRED
|
||||
```
|
||||
|
||||
真实视频任务失败时:
|
||||
|
||||
1. 记录 Provider 错误。
|
||||
2. 标记片段 failed 或 needs_retry。
|
||||
3. 不回落 mock 假成功。
|
||||
4. 不重复扣用户额度。
|
||||
5. 用户端显示失败原因和重试入口。
|
||||
Executable
+295
@@ -0,0 +1,295 @@
|
||||
# 13_隐私授权_内容审核_合规设计
|
||||
|
||||
## 1. 文档目标
|
||||
|
||||
系统 B 处理真人照片、婚恋关系、家庭成员、儿童照片和定制视频,必须从第一版就设计隐私授权、内容审核、删除机制和版权合规。
|
||||
|
||||
## 2. 基本原则
|
||||
|
||||
1. 用户作品默认私密。
|
||||
2. 用户照片只用于本次项目生成。
|
||||
3. 公开展示案例必须单独授权。
|
||||
4. 未成年人照片必须确认监护人授权。
|
||||
5. 用户可以申请删除作品和素材。
|
||||
6. 后台访问敏感数据必须记录日志。
|
||||
7. 音乐和素材必须有商业授权来源。
|
||||
|
||||
## 3. 上传前授权
|
||||
|
||||
用户上传照片前必须勾选:
|
||||
|
||||
```text
|
||||
我确认拥有上传照片的合法使用权。
|
||||
我确认已获得照片中人物授权。
|
||||
我授权平台为本次项目生成图片和视频。
|
||||
我知道作品默认不公开展示。
|
||||
如涉及未成年人,我确认我是监护人或已获得监护人授权。
|
||||
```
|
||||
|
||||
V3 真人动态视频新增授权:
|
||||
|
||||
```text
|
||||
我确认拥有上传照片中所有人物授权。
|
||||
我授权平台仅为本项目生成图像和视频。
|
||||
我理解 AI 生成结果可能与本人存在差异。
|
||||
我确认不得上传未经授权的他人照片。
|
||||
我理解 AI 真人动态视频可能产生表情、动作、服装和场景变化。
|
||||
如涉及未成年人,我确认我是监护人或已获得监护人授权。
|
||||
```
|
||||
|
||||
授权记录保存:
|
||||
|
||||
```text
|
||||
user_id
|
||||
project_id
|
||||
authorization_type
|
||||
content
|
||||
ip
|
||||
user_agent
|
||||
confirmed_at
|
||||
```
|
||||
|
||||
## 4. 公开案例授权
|
||||
|
||||
默认不公开。
|
||||
|
||||
用户在成品页主动点击“授权公开为案例”后,才允许后台加入案例库。
|
||||
|
||||
授权内容应说明:
|
||||
|
||||
- 可在首页、案例页、宣传材料展示。
|
||||
- 可展示成品图/视频。
|
||||
- 不展示用户手机号等隐私信息。
|
||||
- 用户可申请撤回授权。
|
||||
|
||||
## 5. 未成年人规则
|
||||
|
||||
涉及主题:
|
||||
|
||||
- 宝宝百日
|
||||
- 儿童成长
|
||||
- 亲子纪念
|
||||
- 家庭全家福
|
||||
|
||||
必须:
|
||||
|
||||
- 默认不公开展示。
|
||||
- 增加监护人确认。
|
||||
- 后台审核更严格。
|
||||
- 禁止生成不适合儿童的内容。
|
||||
|
||||
## 6. 用户删除权
|
||||
|
||||
用户可申请:
|
||||
|
||||
- 删除项目
|
||||
- 删除上传照片
|
||||
- 删除成品
|
||||
- 删除公开案例
|
||||
|
||||
删除策略:
|
||||
|
||||
```text
|
||||
前台删除:用户不可见,进入删除队列。
|
||||
后台删除:运营确认后清理 MinIO 文件和数据库状态。
|
||||
备份删除:按备份保留策略到期清理。
|
||||
```
|
||||
|
||||
## 7. 内容审核范围
|
||||
|
||||
必须审核:
|
||||
|
||||
```text
|
||||
用户上传照片
|
||||
用户输入文案
|
||||
系统生成 Prompt
|
||||
生成图片
|
||||
生成视频封面
|
||||
最终视频
|
||||
公开案例
|
||||
```
|
||||
|
||||
## 8. 禁止内容
|
||||
|
||||
禁止生成:
|
||||
|
||||
- 色情或露骨内容
|
||||
- 侮辱性内容
|
||||
- 暴力血腥内容
|
||||
- 未成年人不当内容
|
||||
- 未授权名人/公众人物冒用
|
||||
- 政治人物冒充
|
||||
- 违法犯罪宣传
|
||||
- 恐吓、诈骗、仇恨内容
|
||||
|
||||
## 9. 文案审核
|
||||
|
||||
用户输入:
|
||||
|
||||
- 一句话誓言
|
||||
- 特别要求
|
||||
- 片尾文案
|
||||
- 自定义世界描述
|
||||
|
||||
必须先走文本审核。
|
||||
|
||||
审核失败:
|
||||
|
||||
- 提示用户修改
|
||||
- 不进入生成流程
|
||||
|
||||
## 10. 图片审核
|
||||
|
||||
阶段:
|
||||
|
||||
1. 上传照片审核
|
||||
2. 预览图审核
|
||||
3. 正式图审核
|
||||
4. 案例公开前审核
|
||||
|
||||
审核结果:
|
||||
|
||||
```text
|
||||
pass
|
||||
warning
|
||||
reject
|
||||
```
|
||||
|
||||
## 11. 视频审核
|
||||
|
||||
最终视频合成后必须检查:
|
||||
|
||||
- 画面是否违规
|
||||
- 字幕是否违规
|
||||
- 封面是否违规
|
||||
- 是否含未经授权 logo 或水印
|
||||
|
||||
V3 真人动态视频片段还必须检查:
|
||||
|
||||
- 是否像本人。
|
||||
- 是否变脸。
|
||||
- 是否男女混脸。
|
||||
- 是否年龄变化过大。
|
||||
- 动作是否自然。
|
||||
- 表情是否怪异。
|
||||
- 是否有低俗、不尊重或不合适姿势。
|
||||
- 是否适合公开案例。
|
||||
|
||||
结果为 `warning` 或 `manual_review` 的片段,不允许自动进入公开案例。
|
||||
|
||||
## 12. 后台权限控制
|
||||
|
||||
原则:
|
||||
|
||||
- 普通运营不能查看 Provider 密钥。
|
||||
- 审核员只能看审核相关素材。
|
||||
- 财务只能看订单和成本,不看用户原图。
|
||||
- 超级管理员敏感操作要记录日志。
|
||||
|
||||
## 13. 文件访问安全
|
||||
|
||||
要求:
|
||||
|
||||
- 原图不直接暴露公网。
|
||||
- 下载使用签名 URL。
|
||||
- 下载链接有效期可配置。
|
||||
- 公开案例资源复制到公开 bucket 或 public path。
|
||||
- 删除项目后停止下载链接生成。
|
||||
|
||||
## 14. EXIF 清理
|
||||
|
||||
用户上传照片后必须去除 EXIF 信息,避免泄露:
|
||||
|
||||
- 拍摄地点
|
||||
- 设备信息
|
||||
- 拍摄时间
|
||||
|
||||
## 15. 音乐版权
|
||||
|
||||
音乐素材必须记录:
|
||||
|
||||
```text
|
||||
音乐名称
|
||||
来源
|
||||
授权类型
|
||||
授权文件
|
||||
使用范围
|
||||
有效期
|
||||
```
|
||||
|
||||
不允许使用来源不明音乐进行商业交付。
|
||||
|
||||
## 16. 用户协议与隐私协议
|
||||
|
||||
至少需要:
|
||||
|
||||
- 用户服务协议
|
||||
- 隐私政策
|
||||
- 肖像授权说明
|
||||
- 公开案例授权说明
|
||||
- 未成年人监护人确认说明
|
||||
- 退款和修改规则
|
||||
|
||||
## 17. 审计日志
|
||||
|
||||
记录:
|
||||
|
||||
- 管理员查看用户照片
|
||||
- 管理员下载素材
|
||||
- 管理员删除素材
|
||||
- 修改项目状态
|
||||
- 上架公开案例
|
||||
- 修改 Provider 配置
|
||||
|
||||
## 18. 风险处理
|
||||
|
||||
如果发现用户上传未授权照片或生成侵权内容:
|
||||
|
||||
1. 暂停项目。
|
||||
2. 隐藏作品。
|
||||
3. 通知用户补充授权或删除。
|
||||
4. 必要时关闭账号。
|
||||
|
||||
## 19. V3 真人身份和原图保护
|
||||
|
||||
系统 B V3 涉及真实用户人脸,必须强化:
|
||||
|
||||
- 原图私有存储,不直接暴露公网。
|
||||
- 原图下载和后台预览必须记录审计日志。
|
||||
- 公开案例不使用原始照片,除非用户单独授权。
|
||||
- 默认不把原图、锚点图、视频片段用于模型训练。
|
||||
- 身份锚点图属于敏感资产,访问权限等同原图。
|
||||
- 删除项目时,原图、锚点图、关键帧、视频片段都进入清理队列。
|
||||
|
||||
## 20. V3 未成年人保护
|
||||
|
||||
涉及儿童成长、宝宝百日、亲子纪念、家庭全家福时:
|
||||
|
||||
- 必须确认监护人授权。
|
||||
- 默认不公开案例。
|
||||
- 不允许成人化服装、成人化姿势、暧昧表达、危险动作。
|
||||
- 动态视频和口型内容必须人工复核。
|
||||
- 后台公开案例审核必须二次确认未成年人风险。
|
||||
|
||||
## 21. V3 公开案例二次授权
|
||||
|
||||
公开案例授权必须独立于项目生成授权。
|
||||
|
||||
授权内容必须明确:
|
||||
|
||||
```text
|
||||
可展示哪些图片。
|
||||
可展示哪些视频片段。
|
||||
是否展示完整成片。
|
||||
是否允许展示人物昵称或纪念主题。
|
||||
用户可随时撤回公开授权。
|
||||
```
|
||||
|
||||
默认值:
|
||||
|
||||
```text
|
||||
不公开
|
||||
不进案例库
|
||||
不用于宣传材料
|
||||
不用于模型训练
|
||||
```
|
||||
Executable
+258
@@ -0,0 +1,258 @@
|
||||
# 14_部署运维_日志监控_备份设计
|
||||
|
||||
## 1. 文档目标
|
||||
|
||||
本文档定义系统 B 的部署结构、服务目录、环境变量、日志、监控、备份、告警和清理策略。
|
||||
|
||||
## 2. 推荐部署架构
|
||||
|
||||
第一阶段单服务器即可:
|
||||
|
||||
```text
|
||||
Nginx
|
||||
NestJS API
|
||||
BullMQ Workers
|
||||
MySQL
|
||||
Redis
|
||||
MinIO
|
||||
FFmpeg
|
||||
Geeker-Admin 静态文件
|
||||
uni-app H5 静态文件
|
||||
```
|
||||
|
||||
后续可拆分:
|
||||
|
||||
```text
|
||||
API 服务器
|
||||
Worker 服务器
|
||||
数据库服务器
|
||||
对象存储
|
||||
视频渲染服务器
|
||||
```
|
||||
|
||||
## 3. 目录结构建议
|
||||
|
||||
```text
|
||||
/opt/system-b/
|
||||
backend/
|
||||
admin-web/
|
||||
user-web/
|
||||
workers/
|
||||
logs/
|
||||
ffmpeg-temp/
|
||||
docker-compose.yml
|
||||
.env
|
||||
```
|
||||
|
||||
## 4. 环境变量
|
||||
|
||||
```text
|
||||
NODE_ENV=production
|
||||
APP_PORT=3000
|
||||
MYSQL_HOST=127.0.0.1
|
||||
MYSQL_PORT=3306
|
||||
MYSQL_USER=system_b
|
||||
MYSQL_PASSWORD=xxx
|
||||
MYSQL_DATABASE=system_b
|
||||
REDIS_HOST=127.0.0.1
|
||||
REDIS_PORT=6379
|
||||
MINIO_ENDPOINT=127.0.0.1
|
||||
MINIO_PORT=9000
|
||||
MINIO_ACCESS_KEY=xxx
|
||||
MINIO_SECRET_KEY=xxx
|
||||
JWT_SECRET=xxx
|
||||
OPENAI_API_KEY=xxx
|
||||
```
|
||||
|
||||
Provider 密钥建议使用密钥管理或环境变量,不直接写入数据库明文。
|
||||
|
||||
## 5. Nginx 配置目标
|
||||
|
||||
反代:
|
||||
|
||||
```text
|
||||
/api → NestJS
|
||||
/admin → Geeker-Admin
|
||||
/ → uni-app H5
|
||||
/ws → WebSocket
|
||||
```
|
||||
|
||||
静态文件不直接暴露 MinIO 私密 bucket。
|
||||
|
||||
## 6. 进程管理
|
||||
|
||||
可选:
|
||||
|
||||
- PM2
|
||||
- systemd
|
||||
- Docker Compose
|
||||
|
||||
服务:
|
||||
|
||||
```text
|
||||
api-server
|
||||
worker-photo
|
||||
worker-text
|
||||
worker-image
|
||||
worker-video
|
||||
worker-ffmpeg
|
||||
worker-qc
|
||||
```
|
||||
|
||||
## 7. 日志设计
|
||||
|
||||
日志类型:
|
||||
|
||||
```text
|
||||
api.log
|
||||
worker.log
|
||||
error.log
|
||||
provider.log
|
||||
payment.log
|
||||
ffmpeg.log
|
||||
audit.log
|
||||
```
|
||||
|
||||
日志要求:
|
||||
|
||||
- 按天切割
|
||||
- 保留 30-90 天
|
||||
- 敏感信息脱敏
|
||||
- 重要错误报警
|
||||
|
||||
## 8. 监控指标
|
||||
|
||||
应用指标:
|
||||
|
||||
- API 响应时间
|
||||
- API 错误率
|
||||
- 队列积压数
|
||||
- 任务失败率
|
||||
- Provider 失败率
|
||||
- 视频合成耗时
|
||||
|
||||
系统指标:
|
||||
|
||||
- CPU
|
||||
- 内存
|
||||
- 磁盘
|
||||
- 网络
|
||||
- MinIO 容量
|
||||
- MySQL 连接数
|
||||
- Redis 内存
|
||||
|
||||
业务指标:
|
||||
|
||||
- 今日订单数
|
||||
- 今日收入
|
||||
- 今日 AI 成本
|
||||
- 项目完成数
|
||||
- 待审核数
|
||||
|
||||
## 9. 告警规则
|
||||
|
||||
触发:
|
||||
|
||||
- API 5xx 错误率过高
|
||||
- 队列积压超过阈值
|
||||
- Provider 连续失败
|
||||
- 磁盘剩余空间低于 20%
|
||||
- MinIO 容量不足
|
||||
- MySQL 备份失败
|
||||
- 单日 AI 成本超阈值
|
||||
|
||||
## 10. 数据库备份
|
||||
|
||||
建议:
|
||||
|
||||
```text
|
||||
每日全量备份
|
||||
每小时 binlog 增量
|
||||
备份保留 7-30 天
|
||||
定期恢复演练
|
||||
```
|
||||
|
||||
备份目录:
|
||||
|
||||
```text
|
||||
/backups/mysql/YYYY-MM-DD/
|
||||
```
|
||||
|
||||
## 11. MinIO 备份
|
||||
|
||||
策略:
|
||||
|
||||
- 重要成品每日同步
|
||||
- 用户原图按隐私策略备份
|
||||
- 临时文件不备份
|
||||
- 公开案例单独备份
|
||||
|
||||
## 12. Redis 持久化
|
||||
|
||||
Redis 用于队列和缓存:
|
||||
|
||||
- 开启 AOF 或 RDB
|
||||
- 定期检查内存
|
||||
- 设置合适 maxmemory 策略
|
||||
|
||||
## 13. 临时文件清理
|
||||
|
||||
清理对象:
|
||||
|
||||
- FFmpeg 临时文件
|
||||
- 预览临时素材
|
||||
- 失败任务中间文件
|
||||
- 过期下载包
|
||||
|
||||
策略:
|
||||
|
||||
```text
|
||||
每晚 cleanup_queue 执行
|
||||
临时文件保留 1-3 天
|
||||
失败任务文件保留 7 天
|
||||
```
|
||||
|
||||
## 14. 项目素材保留策略
|
||||
|
||||
建议:
|
||||
|
||||
| 类型 | 保留 |
|
||||
|---|---|
|
||||
| 用户上传原图 | 按用户协议,默认 90-180 天或项目删除后清理 |
|
||||
| 预览图 | 30 天 |
|
||||
| 正式图 | 180 天或长期,按套餐 |
|
||||
| 成品视频 | 180 天或长期,按套餐 |
|
||||
| 公开案例 | 授权有效期间保留 |
|
||||
|
||||
## 15. 发布流程
|
||||
|
||||
```text
|
||||
代码提交
|
||||
→ 自动测试
|
||||
→ 构建后端
|
||||
→ 构建后台
|
||||
→ 构建用户端
|
||||
→ 数据库迁移
|
||||
→ 灰度发布
|
||||
→ 检查日志
|
||||
→ 正式发布
|
||||
```
|
||||
|
||||
## 16. 回滚方案
|
||||
|
||||
必须保留:
|
||||
|
||||
- 上一个后端版本
|
||||
- 上一个前端静态包
|
||||
- 数据库迁移回滚脚本
|
||||
- 配置备份
|
||||
|
||||
## 17. 安全要求
|
||||
|
||||
- HTTPS
|
||||
- 后台登录二次验证,后续可加
|
||||
- 密钥不提交代码仓库
|
||||
- 上传文件类型限制
|
||||
- API 限流
|
||||
- 防刷验证码
|
||||
- 后台操作日志
|
||||
Executable
+438
@@ -0,0 +1,438 @@
|
||||
# 15_测试用例_验收标准
|
||||
|
||||
## 1. 文档目标
|
||||
|
||||
本文档定义系统 B 的测试范围、测试用例和验收标准,确保项目不仅能跑通,还能稳定交付。
|
||||
|
||||
## 2. 验收原则
|
||||
|
||||
1. 主流程必须完整跑通。
|
||||
2. 异常流程必须可恢复。
|
||||
3. 任务失败不能导致项目死锁。
|
||||
4. 支付、额度、成本必须准确。
|
||||
5. 用户隐私和授权流程必须完整。
|
||||
6. 后台必须能处理失败、审核、修改。
|
||||
|
||||
## 3. 用户注册登录测试
|
||||
|
||||
### 用例 1:手机号验证码登录
|
||||
|
||||
步骤:
|
||||
|
||||
1. 输入手机号。
|
||||
2. 获取验证码。
|
||||
3. 输入验证码登录。
|
||||
|
||||
预期:
|
||||
|
||||
- 登录成功。
|
||||
- 返回 token。
|
||||
- 用户信息正常。
|
||||
|
||||
### 用例 2:未登录访问制作流程
|
||||
|
||||
步骤:
|
||||
|
||||
1. 游客点击开始制作。
|
||||
|
||||
预期:
|
||||
|
||||
- 跳转登录页。
|
||||
- 登录后回到创建项目页。
|
||||
|
||||
## 4. 首页案例测试
|
||||
|
||||
### 用例
|
||||
|
||||
1. 首页加载。
|
||||
2. 查看案例列表。
|
||||
3. 打开案例详情。
|
||||
4. 点击用同款制作。
|
||||
|
||||
预期:
|
||||
|
||||
- 公开案例正常展示。
|
||||
- 未授权项目不出现在案例页。
|
||||
- 用同款制作能带入模板。
|
||||
|
||||
## 5. 项目创建测试
|
||||
|
||||
### 主流程
|
||||
|
||||
1. 创建项目。
|
||||
2. 选择主题。
|
||||
3. 选择套餐。
|
||||
4. 选择风格。
|
||||
5. 选择世界。
|
||||
6. 选择场景。
|
||||
|
||||
预期:
|
||||
|
||||
- 项目状态正确推进。
|
||||
- 选择数据正确保存。
|
||||
- 套餐限制生效。
|
||||
|
||||
### 异常
|
||||
|
||||
- 世界选择超出套餐限制。
|
||||
- 场景数量不足。
|
||||
- 返回上一步后数据保留。
|
||||
|
||||
## 6. 照片上传测试
|
||||
|
||||
### 合格照片
|
||||
|
||||
预期:上传成功,质检 pass。
|
||||
|
||||
### 不合格照片
|
||||
|
||||
测试:
|
||||
|
||||
- 模糊
|
||||
- 戴墨镜
|
||||
- 多人混入
|
||||
- 无人脸
|
||||
- 低分辨率
|
||||
|
||||
预期:质检 fail 或 warning,并给出原因。
|
||||
|
||||
## 7. 授权测试
|
||||
|
||||
### 未勾选授权
|
||||
|
||||
预期:不能继续下一步。
|
||||
|
||||
### 涉及未成年人主题
|
||||
|
||||
预期:必须出现监护人授权确认。
|
||||
|
||||
## 8. 创作方案测试
|
||||
|
||||
步骤:
|
||||
|
||||
1. 提交定制信息。
|
||||
2. 生成创作方案。
|
||||
3. 查看镜头计划。
|
||||
|
||||
预期:
|
||||
|
||||
- 方案与主题、世界、场景一致。
|
||||
- 不出现未选择的世界。
|
||||
- 字幕和旁白不超长。
|
||||
|
||||
## 9. 支付与额度测试
|
||||
|
||||
### 正常支付
|
||||
|
||||
预期:订单 paid,项目进入 payment_paid。
|
||||
|
||||
### 未支付直接生成正式图
|
||||
|
||||
预期:拒绝,提示需要支付。
|
||||
|
||||
### 失败重试
|
||||
|
||||
预期:系统错误重试不重复扣用户额度。
|
||||
|
||||
## 10. 预览生成测试
|
||||
|
||||
步骤:
|
||||
|
||||
1. 触发预览。
|
||||
2. 等待任务完成。
|
||||
|
||||
预期:
|
||||
|
||||
- 生成低清水印预览。
|
||||
- 用户可确认或重新生成。
|
||||
- 预览次数受限。
|
||||
|
||||
## 11. 正式图生成测试
|
||||
|
||||
预期:
|
||||
|
||||
- 按镜头计划生成图片。
|
||||
- 图片保存为 asset。
|
||||
- render_task 状态 success。
|
||||
- 成本日志记录。
|
||||
|
||||
异常:
|
||||
|
||||
- Provider 超时,应重试。
|
||||
- 多次失败转人工。
|
||||
|
||||
## 12. 图片质检测试
|
||||
|
||||
测试内容:
|
||||
|
||||
- 多出第三人
|
||||
- 手部异常
|
||||
- 人脸崩坏
|
||||
- 场景错误
|
||||
- 文字乱入
|
||||
|
||||
预期:
|
||||
|
||||
- fail 自动重生。
|
||||
- warning 转人工复核。
|
||||
|
||||
## 13. 视频合成测试
|
||||
|
||||
步骤:
|
||||
|
||||
1. 准备图片、字幕、BGM、旁白。
|
||||
2. 触发 FFmpeg 合成。
|
||||
|
||||
预期:
|
||||
|
||||
- 输出 MP4。
|
||||
- 视频可播放。
|
||||
- 字幕不出框。
|
||||
- 音画同步。
|
||||
- 封面生成正常。
|
||||
|
||||
## 14. 成品确认测试
|
||||
|
||||
操作:
|
||||
|
||||
- 下载视频。
|
||||
- 下载图集。
|
||||
- 确认完成。
|
||||
- 申请修改。
|
||||
|
||||
预期:
|
||||
|
||||
- 下载链接有效期正常。
|
||||
- 确认后项目 completed。
|
||||
- 修改次数正确扣减。
|
||||
|
||||
## 15. 修改申请测试
|
||||
|
||||
### 小改
|
||||
|
||||
预期:允许套餐内修改。
|
||||
|
||||
### 中改
|
||||
|
||||
预期:消耗修改次数,创建重做任务。
|
||||
|
||||
### 大改
|
||||
|
||||
预期:提示重新计费。
|
||||
|
||||
## 16. 后台任务测试
|
||||
|
||||
操作:
|
||||
|
||||
- 查看任务。
|
||||
- 重试任务。
|
||||
- 终止任务。
|
||||
- 转人工。
|
||||
|
||||
预期:
|
||||
|
||||
- 状态正确变化。
|
||||
- 重试不重复创建相同任务。
|
||||
|
||||
## 17. 权限测试
|
||||
|
||||
- 用户不能看他人项目。
|
||||
- 运营不能看 Provider 密钥。
|
||||
- 财务不能看用户原图。
|
||||
- 超级管理员可以配置系统。
|
||||
|
||||
## 18. 隐私删除测试
|
||||
|
||||
步骤:
|
||||
|
||||
1. 用户申请删除作品。
|
||||
2. 后台处理。
|
||||
3. 检查下载链接。
|
||||
|
||||
预期:
|
||||
|
||||
- 前台不可见。
|
||||
- 下载链接失效。
|
||||
- 素材进入清理队列。
|
||||
|
||||
## 19. 压力测试
|
||||
|
||||
测试:
|
||||
|
||||
- 100 个用户同时浏览首页。
|
||||
- 20 个项目同时生成预览。
|
||||
- 5 个项目同时正式生成视频。
|
||||
|
||||
关注:
|
||||
|
||||
- API 延迟
|
||||
- 队列积压
|
||||
- Provider 限流
|
||||
- 服务器 CPU/内存
|
||||
|
||||
## 20. 最终验收标准
|
||||
|
||||
MVP 完成标准:
|
||||
|
||||
```text
|
||||
用户可以注册登录。
|
||||
用户可以完整创建项目。
|
||||
用户可以上传照片并质检。
|
||||
用户可以选择主题、套餐、风格、世界、场景。
|
||||
系统可以生成创作方案。
|
||||
系统可以生成预览图。
|
||||
支付/额度逻辑可用。
|
||||
系统可以生成正式图。
|
||||
系统可以合成基础视频。
|
||||
用户可以下载成品。
|
||||
用户可以申请修改。
|
||||
后台可以管理项目、模板、任务、订单、案例。
|
||||
失败任务可以重试或转人工。
|
||||
授权和公开案例逻辑可用。
|
||||
```
|
||||
|
||||
## 21. V3 输出模式测试
|
||||
|
||||
### 用例:四档输出模式创建
|
||||
|
||||
分别创建:
|
||||
|
||||
- 高清写真图集
|
||||
- 图片纪念视频
|
||||
- 动态写真视频
|
||||
- AI 真人动态视频
|
||||
|
||||
预期:
|
||||
|
||||
- 项目 `output_mode` 保存正确。
|
||||
- 套餐限制正确。
|
||||
- AI 真人动态视频模式展示费用高、耗时长、需确认的提示。
|
||||
- 未选择真实视频确认时,不允许进入真实视频生成。
|
||||
|
||||
## 22. V3 真人身份锚点测试
|
||||
|
||||
步骤:
|
||||
|
||||
1. 上传同一人物多张清晰照片。
|
||||
2. 生成身份档案。
|
||||
3. 生成身份锚点图。
|
||||
4. 做人脸一致性评分。
|
||||
5. 用户确认锚点。
|
||||
|
||||
预期:
|
||||
|
||||
- 身份锚点图可预览。
|
||||
- `face_consistency_score` 有记录。
|
||||
- 用户未确认锚点前,不能正式生成真人动态视频。
|
||||
- 锚点不满意可重生或转人工。
|
||||
|
||||
## 23. V3 视频片段生成测试
|
||||
|
||||
步骤:
|
||||
|
||||
1. 准备已确认身份锚点。
|
||||
2. 准备关键帧。
|
||||
3. 选择启用的 VideoProvider。
|
||||
4. 查看成本估算。
|
||||
5. 勾选真实视频确认。
|
||||
6. 生成 1 个 3-6 秒视频片段。
|
||||
|
||||
预期:
|
||||
|
||||
- 生成前展示预计成本。
|
||||
- 生成后可预览片段。
|
||||
- 片段写入 `video_clips`。
|
||||
- Provider 日志记录成本、耗时、状态。
|
||||
- 禁用 Provider 返回明确错误。
|
||||
- 真实 Provider 失败不会回落 mock 假成功。
|
||||
|
||||
## 24. V3 视频片段质检测试
|
||||
|
||||
测试内容:
|
||||
|
||||
- 人脸不像本人。
|
||||
- 男女混脸。
|
||||
- 年龄变化过大。
|
||||
- 动作不自然。
|
||||
- 表情怪异。
|
||||
- 多出第三人。
|
||||
- 手部畸形。
|
||||
|
||||
预期:
|
||||
|
||||
- passed 可进入合成。
|
||||
- needs_retry 可重试。
|
||||
- manual_review 转人工。
|
||||
- rejected 不进入成片和公开案例。
|
||||
|
||||
## 25. V3 口型任务测试
|
||||
|
||||
步骤:
|
||||
|
||||
1. 选择一个已生成视频片段。
|
||||
2. 绑定音频。
|
||||
3. 触发口型任务。
|
||||
|
||||
预期:
|
||||
|
||||
- `lipsync_tasks` 状态正确。
|
||||
- 成本单独记录。
|
||||
- 失败时可回退旁白字幕版本。
|
||||
- 涉及未成年人时必须人工复核。
|
||||
|
||||
## 26. V3 成本保护测试
|
||||
|
||||
测试:
|
||||
|
||||
- 单片段成本超过上限。
|
||||
- 项目视频秒数超过上限。
|
||||
- Provider 日成本超过阈值。
|
||||
- 重试次数超过上限。
|
||||
|
||||
预期:
|
||||
|
||||
- 调用前拦截。
|
||||
- 写入失败任务和错误信息。
|
||||
- 不调用外部真实 Provider。
|
||||
- 用户端和后台都能看到原因。
|
||||
|
||||
## 27. V3 隐私和公开案例测试
|
||||
|
||||
测试:
|
||||
|
||||
- 未授权公开案例。
|
||||
- 涉及未成年人公开案例。
|
||||
- 后台查看原图。
|
||||
- 用户撤回公开授权。
|
||||
|
||||
预期:
|
||||
|
||||
- 默认不公开。
|
||||
- 未成年人默认不进入案例库。
|
||||
- 后台查看原图写审计日志。
|
||||
- 撤回授权后公开案例下架,下载链接失效或停止生成。
|
||||
|
||||
## 28. V3 真实视频小样验收标准
|
||||
|
||||
第一轮真实付费小样只验收 1 个镜头:
|
||||
|
||||
```text
|
||||
同一人物
|
||||
同一世界
|
||||
同一动作
|
||||
同一时长
|
||||
分别测试 MiniMax Hailuo / Wan / Vidu / Seedance 等 Provider
|
||||
```
|
||||
|
||||
评分维度:
|
||||
|
||||
- 本人相似度。
|
||||
- 面部表情。
|
||||
- 动作自然度。
|
||||
- 镜头语言。
|
||||
- 中文短剧感。
|
||||
- 清晰度。
|
||||
- Prompt 可控性。
|
||||
- 失败率。
|
||||
- 生成耗时。
|
||||
- 实际成本。
|
||||
Executable
+635
@@ -0,0 +1,635 @@
|
||||
# 16_Codex开发任务拆解文档
|
||||
|
||||
## 1. 文档目标
|
||||
|
||||
本文档用于把系统 B 拆成适合 Codex 执行的开发任务。每个任务应该尽量独立、可验证、可回滚。
|
||||
|
||||
## 2. 开发原则
|
||||
|
||||
1. 先跑通主流程,再优化细节。
|
||||
2. 每个任务必须有验收标准。
|
||||
3. 不要一次让 Codex 写完整系统。
|
||||
4. 数据库、接口、页面、任务队列分阶段完成。
|
||||
5. AI Provider 先做抽象,再接具体模型。
|
||||
|
||||
## 3. 阶段 1:项目基础框架
|
||||
|
||||
### 任务 01:初始化后端项目
|
||||
|
||||
目标:创建 NestJS 后端项目。
|
||||
|
||||
要求:
|
||||
|
||||
- TypeScript
|
||||
- 环境变量配置
|
||||
- 全局异常处理
|
||||
- 日志基础封装
|
||||
- Swagger 可选
|
||||
|
||||
验收:
|
||||
|
||||
- `npm run start` 正常启动。
|
||||
- `/api/health` 返回 ok。
|
||||
|
||||
### 任务 02:配置数据库 ORM
|
||||
|
||||
目标:接入 MySQL。
|
||||
|
||||
要求:
|
||||
|
||||
- TypeORM 或 Prisma 二选一
|
||||
- 配置迁移
|
||||
- 创建基础 users/projects 表
|
||||
|
||||
验收:
|
||||
|
||||
- 可以执行迁移。
|
||||
- 可以读写测试数据。
|
||||
|
||||
### 任务 03:配置 Redis 和 BullMQ
|
||||
|
||||
目标:接入 Redis 队列。
|
||||
|
||||
要求:
|
||||
|
||||
- QueueModule
|
||||
- 测试队列
|
||||
- Worker 示例
|
||||
|
||||
验收:
|
||||
|
||||
- 能创建任务。
|
||||
- Worker 能消费任务。
|
||||
|
||||
### 任务 04:配置 MinIO 文件上传
|
||||
|
||||
目标:实现对象存储。
|
||||
|
||||
要求:
|
||||
|
||||
- 上传文件
|
||||
- 生成签名 URL
|
||||
- 删除文件
|
||||
- 缩略图字段预留
|
||||
|
||||
验收:
|
||||
|
||||
- 上传图片成功。
|
||||
- 数据库 asset 记录生成。
|
||||
|
||||
## 4. 阶段 2:用户与权限
|
||||
|
||||
### 任务 05:实现用户注册登录
|
||||
|
||||
要求:
|
||||
|
||||
- 手机号验证码模拟版
|
||||
- JWT 登录
|
||||
- 获取当前用户
|
||||
|
||||
验收:
|
||||
|
||||
- 登录成功返回 token。
|
||||
- 受保护接口能识别用户。
|
||||
|
||||
### 任务 06:实现后台管理员登录
|
||||
|
||||
要求:
|
||||
|
||||
- admin_users
|
||||
- roles
|
||||
- 权限中间件
|
||||
|
||||
验收:
|
||||
|
||||
- 管理员可登录。
|
||||
- 不同角色权限可区分。
|
||||
|
||||
## 5. 阶段 3:模板系统
|
||||
|
||||
### 任务 07:实现人生主题 API
|
||||
|
||||
接口:
|
||||
|
||||
- GET /api/life-themes
|
||||
- POST /api/admin/life-themes
|
||||
- PUT /api/admin/life-themes/:id
|
||||
|
||||
验收:
|
||||
|
||||
- 前台可读取主题。
|
||||
- 后台可新增编辑。
|
||||
|
||||
### 任务 08:实现套餐 API
|
||||
|
||||
接口:
|
||||
|
||||
- GET /api/packages
|
||||
- 后台增删改查
|
||||
|
||||
验收:
|
||||
|
||||
- 套餐限制字段可配置。
|
||||
|
||||
### 任务 09:实现风格、世界、场景、镜头模板 API
|
||||
|
||||
要求:
|
||||
|
||||
- style_templates
|
||||
- world_templates
|
||||
- scene_templates
|
||||
- shot_templates
|
||||
|
||||
验收:
|
||||
|
||||
- 前台按主题/风格查询世界。
|
||||
- 后台可维护模板。
|
||||
|
||||
## 6. 阶段 4:项目创建流程
|
||||
|
||||
### 任务 10:实现项目创建 API
|
||||
|
||||
接口:
|
||||
|
||||
- POST /api/projects
|
||||
- GET /api/projects/:id
|
||||
- GET /api/my/projects
|
||||
|
||||
验收:
|
||||
|
||||
- 用户可创建项目。
|
||||
- 只能查看自己的项目。
|
||||
|
||||
### 任务 11:实现项目选择流程 API
|
||||
|
||||
接口:
|
||||
|
||||
- POST /api/projects/:id/package
|
||||
- POST /api/projects/:id/style
|
||||
- POST /api/projects/:id/worlds
|
||||
- POST /api/projects/:id/scenes
|
||||
- POST /api/projects/:id/custom-info
|
||||
|
||||
验收:
|
||||
|
||||
- 项目选择数据可保存。
|
||||
- 套餐限制生效。
|
||||
|
||||
### 任务 12:实现授权记录
|
||||
|
||||
接口:
|
||||
|
||||
- POST /api/projects/:id/authorizations
|
||||
|
||||
验收:
|
||||
|
||||
- 未授权不能进入照片质检。
|
||||
- 授权记录包含 IP 和 UA。
|
||||
|
||||
## 7. 阶段 5:照片与人物档案
|
||||
|
||||
### 任务 13:实现照片上传
|
||||
|
||||
要求:
|
||||
|
||||
- 按 person_role 上传
|
||||
- 创建 asset
|
||||
- 绑定 project
|
||||
|
||||
验收:
|
||||
|
||||
- 上传成功。
|
||||
- 角色归属正确。
|
||||
|
||||
### 任务 14:实现基础照片质检 Worker
|
||||
|
||||
第一版可先实现基础检测:
|
||||
|
||||
- 文件格式
|
||||
- 尺寸
|
||||
- 文件大小
|
||||
- 是否可读取
|
||||
|
||||
后续接 Python 人脸检测。
|
||||
|
||||
验收:
|
||||
|
||||
- 合格返回 pass。
|
||||
- 不合格返回 fail。
|
||||
|
||||
### 任务 15:实现人物档案生成
|
||||
|
||||
要求:
|
||||
|
||||
- 汇总合格照片
|
||||
- 创建 person_profiles
|
||||
- 外貌摘要先可用文本模型生成,或手动占位
|
||||
|
||||
验收:
|
||||
|
||||
- 每个角色有 person_profile。
|
||||
|
||||
## 8. 阶段 6:AI Provider 抽象
|
||||
|
||||
### 任务 16:实现 Provider 配置表和管理 API
|
||||
|
||||
要求:
|
||||
|
||||
- provider_configs
|
||||
- provider_logs
|
||||
- 后台可新增编辑测试
|
||||
|
||||
验收:
|
||||
|
||||
- Provider 不写死在代码。
|
||||
|
||||
### 任务 17:实现 TextProvider 接口
|
||||
|
||||
功能:
|
||||
|
||||
- generatePlan
|
||||
- generatePrompt
|
||||
- generateCopy
|
||||
|
||||
验收:
|
||||
|
||||
- 输入项目数据,输出创作方案 JSON。
|
||||
|
||||
### 任务 18:实现 ImageProvider 接口
|
||||
|
||||
功能:
|
||||
|
||||
- generatePreviewImage
|
||||
- generateFinalImage
|
||||
|
||||
验收:
|
||||
|
||||
- 可生成图片并保存 asset。
|
||||
|
||||
### 任务 19:实现 VoiceProvider 接口
|
||||
|
||||
功能:
|
||||
|
||||
- 文本转音频
|
||||
|
||||
验收:
|
||||
|
||||
- 生成音频 asset。
|
||||
|
||||
## 9. 阶段 7:生成工作流
|
||||
|
||||
### 任务 20:创作方案生成
|
||||
|
||||
接口:
|
||||
|
||||
- POST /api/projects/:id/generate-plan
|
||||
- GET /api/projects/:id/plan
|
||||
- POST /api/projects/:id/confirm-plan
|
||||
|
||||
验收:
|
||||
|
||||
- 任务队列化。
|
||||
- 方案保存为 shot_plans。
|
||||
|
||||
### 任务 21:预览图生成
|
||||
|
||||
接口:
|
||||
|
||||
- POST /api/projects/:id/generate-preview
|
||||
- POST /api/projects/:id/confirm-preview
|
||||
|
||||
验收:
|
||||
|
||||
- 生成水印预览图。
|
||||
- 用户可确认。
|
||||
|
||||
### 任务 22:正式图生成
|
||||
|
||||
接口:
|
||||
|
||||
- POST /api/projects/:id/generate-final
|
||||
|
||||
验收:
|
||||
|
||||
- 按 shot_plans 生成正式图。
|
||||
- 图片 asset 绑定镜头。
|
||||
|
||||
### 任务 23:图片质检任务
|
||||
|
||||
要求:
|
||||
|
||||
- 先做基础检查
|
||||
- 后续接高级检测
|
||||
|
||||
验收:
|
||||
|
||||
- fail 任务可重试。
|
||||
|
||||
## 10. 阶段 8:视频合成
|
||||
|
||||
### 任务 24:字幕生成
|
||||
|
||||
要求:
|
||||
|
||||
- 根据旁白/文案生成 SRT
|
||||
|
||||
验收:
|
||||
|
||||
- SRT 文件保存为 asset。
|
||||
|
||||
### 任务 25:FFmpeg 视频合成 Worker
|
||||
|
||||
要求:
|
||||
|
||||
- 图片转视频
|
||||
- 简单推拉
|
||||
- BGM
|
||||
- 字幕
|
||||
- 输出 MP4
|
||||
|
||||
验收:
|
||||
|
||||
- 生成可播放视频。
|
||||
- 项目 video_asset_id 更新。
|
||||
|
||||
### 任务 26:成品下载
|
||||
|
||||
接口:
|
||||
|
||||
- GET /api/assets/:id/download-url
|
||||
|
||||
验收:
|
||||
|
||||
- 签名链接有效。
|
||||
- 非本人不能下载。
|
||||
|
||||
## 11. 阶段 9:订单和额度
|
||||
|
||||
### 任务 27:订单创建
|
||||
|
||||
接口:
|
||||
|
||||
- POST /api/projects/:id/orders
|
||||
|
||||
验收:
|
||||
|
||||
- 创建 pending 订单。
|
||||
|
||||
### 任务 28:支付模拟和状态推进
|
||||
|
||||
第一版可做后台手动标记支付。
|
||||
|
||||
验收:
|
||||
|
||||
- paid 后项目进入 payment_paid。
|
||||
- 未支付不能正式生成。
|
||||
|
||||
### 任务 29:额度和成本日志
|
||||
|
||||
要求:
|
||||
|
||||
- 任务成本记录
|
||||
- 项目成本汇总
|
||||
|
||||
验收:
|
||||
|
||||
- 后台能看到项目成本。
|
||||
|
||||
## 12. 阶段 10:后台管理
|
||||
|
||||
### 任务 30:接入 Geeker-Admin
|
||||
|
||||
要求:
|
||||
|
||||
- 登录
|
||||
- 菜单
|
||||
- 权限
|
||||
- 基础布局
|
||||
|
||||
验收:
|
||||
|
||||
- 后台可登录。
|
||||
|
||||
### 任务 31:项目管理页
|
||||
|
||||
功能:
|
||||
|
||||
- 项目列表
|
||||
- 项目详情
|
||||
- 任务查看
|
||||
- 素材查看
|
||||
|
||||
### 任务 32:模板管理页
|
||||
|
||||
功能:
|
||||
|
||||
- 主题
|
||||
- 套餐
|
||||
- 风格
|
||||
- 世界
|
||||
- 场景
|
||||
- 镜头
|
||||
|
||||
### 任务 33:任务管理页
|
||||
|
||||
功能:
|
||||
|
||||
- 查看任务
|
||||
- 重试
|
||||
- 终止
|
||||
- 转人工
|
||||
|
||||
### 任务 34:案例管理页
|
||||
|
||||
功能:
|
||||
|
||||
- 从项目生成案例
|
||||
- 上架/下架
|
||||
- 设置首页推荐
|
||||
|
||||
## 13. 阶段 11:修改与审核
|
||||
|
||||
### 任务 35:修改申请
|
||||
|
||||
接口:
|
||||
|
||||
- POST /api/projects/:id/revisions
|
||||
- 后台处理修改申请
|
||||
|
||||
验收:
|
||||
|
||||
- 修改次数扣减。
|
||||
- 大改提示重新计费。
|
||||
|
||||
### 任务 36:人工审核流程
|
||||
|
||||
要求:
|
||||
|
||||
- manual_review 状态
|
||||
- 审核通过/驳回
|
||||
|
||||
验收:
|
||||
|
||||
- 高端项目可进入人工审核。
|
||||
|
||||
## 14. 阶段 12:稳定性和运维
|
||||
|
||||
### 任务 37:任务幂等
|
||||
|
||||
要求:
|
||||
|
||||
- input_hash
|
||||
- 重复请求不重复生成
|
||||
|
||||
### 任务 38:错误码和异常处理
|
||||
|
||||
要求:
|
||||
|
||||
- 统一错误返回
|
||||
- 日志记录
|
||||
|
||||
### 任务 39:清理任务
|
||||
|
||||
要求:
|
||||
|
||||
- 临时文件清理
|
||||
- 过期下载链接
|
||||
|
||||
### 任务 40:部署脚本
|
||||
|
||||
要求:
|
||||
|
||||
- Docker Compose 或 PM2
|
||||
- Nginx 配置示例
|
||||
- 环境变量模板
|
||||
|
||||
## 15. 建议开发顺序
|
||||
|
||||
```text
|
||||
基础框架
|
||||
→ 用户登录
|
||||
→ 模板系统
|
||||
→ 项目创建
|
||||
→ 文件上传
|
||||
→ 照片质检
|
||||
→ AI Provider
|
||||
→ 创作方案
|
||||
→ 图片生成
|
||||
→ 视频合成
|
||||
→ 后台管理
|
||||
→ 订单支付
|
||||
→ 修改审核
|
||||
→ 稳定性增强
|
||||
```
|
||||
|
||||
## 15.1 V3 真人动态视频追加阶段
|
||||
|
||||
V3 不建议一开始就全片真实视频化,应按以下顺序追加:
|
||||
|
||||
```text
|
||||
V2 图集/图片视频主流程
|
||||
→ 输出模式分层
|
||||
→ 真人身份锚点
|
||||
→ 本人相似度质检
|
||||
→ 动态写真轻动效
|
||||
→ 真实 VideoProvider 配置
|
||||
→ 单镜头真实视频小样
|
||||
→ 视频片段列表/重试/质检
|
||||
→ 片段合成
|
||||
→ 口型任务,可选
|
||||
→ 隐私/未成年人/公开案例强化验收
|
||||
```
|
||||
|
||||
### 阶段 13:输出模式和身份锚点
|
||||
|
||||
任务 41:项目输出模式
|
||||
|
||||
- 增加 `output_mode`:photo_album/image_video/motion_portrait/real_video/premium_film。
|
||||
- 用户端创建项目时明确选择。
|
||||
- 后台项目列表展示输出模式。
|
||||
|
||||
任务 42:身份锚点表和接口
|
||||
|
||||
- 增加 `identity_anchors`。
|
||||
- 支持生成锚点、用户确认、后台确认。
|
||||
- 未确认锚点不允许真实视频生成。
|
||||
|
||||
任务 43:FaceConsistencyProvider
|
||||
|
||||
- 抽象本人相似度检查。
|
||||
- 第一版可 mock,后续接真实人脸一致性服务。
|
||||
- 结果写入 `face_consistency_score`。
|
||||
|
||||
### 阶段 14:动态写真和动作模板
|
||||
|
||||
任务 44:动作模板管理
|
||||
|
||||
- 增加 `motion_templates`。
|
||||
- 后台可维护动作名称、Prompt 规则、时长、难度和成本等级。
|
||||
|
||||
任务 45:动态写真片段
|
||||
|
||||
- 支持眨眼、微笑、头发衣服轻微动、背景动效。
|
||||
- 先用 mock 或轻量 Provider 跑通,不直接上全片真实视频。
|
||||
|
||||
### 阶段 15:AI 真人动态视频片段
|
||||
|
||||
任务 46:VideoProvider 国内预设
|
||||
|
||||
- 预置 MiniMax Hailuo、阿里 Wan、Vidu、Seedance、Kling、Runway。
|
||||
- 默认禁用。
|
||||
- 后台可配置 Key、Base URL、模型、单价、成本阈值。
|
||||
|
||||
任务 47:视频片段生成
|
||||
|
||||
- 增加 `video_clips`。
|
||||
- 按镜头生成 3-6 秒片段。
|
||||
- 生成前做成本估算。
|
||||
- 用户确认后才真实生成。
|
||||
- 失败不能回落 mock 假成功。
|
||||
|
||||
任务 48:视频片段质检
|
||||
|
||||
- 检查像不像本人、动作、表情、年龄变化、混脸、多出第三人。
|
||||
- 支持 passed/needs_retry/manual_review/rejected。
|
||||
|
||||
任务 49:视频片段合成
|
||||
|
||||
- 使用 FFmpeg concat 合成多个片段。
|
||||
- 加旁白、字幕、BGM。
|
||||
- 支持片段替换后重新合成。
|
||||
|
||||
### 阶段 16:口型和高端纪念片
|
||||
|
||||
任务 50:LipSyncProvider
|
||||
|
||||
- 增加 `lipsync_tasks`。
|
||||
- 绑定视频片段和音频资产。
|
||||
- 口型失败可回退旁白字幕版本。
|
||||
|
||||
任务 51:高端真人纪念片后台流程
|
||||
|
||||
- 人工报价。
|
||||
- 人工审核。
|
||||
- 多轮修改。
|
||||
- 片段精修和替换。
|
||||
|
||||
任务 52:V3 合规验收
|
||||
|
||||
- 未成年人保护。
|
||||
- 公开案例二次授权。
|
||||
- 后台访问原图审计。
|
||||
- 删除项目清理原图、锚点、关键帧、视频片段。
|
||||
|
||||
## 16. Codex 使用建议
|
||||
|
||||
每次只给 Codex 一个任务,附带:
|
||||
|
||||
- 目标
|
||||
- 相关表
|
||||
- 相关接口
|
||||
- 相关文件路径
|
||||
- 验收标准
|
||||
- 注意事项
|
||||
|
||||
不要一次让 Codex “开发完整系统”。
|
||||
Executable
+67
@@ -0,0 +1,67 @@
|
||||
# 系统B:真人照片 → 多人生主题写真 / 韩漫 / 纪念视频生成系统 文档包
|
||||
|
||||
版本:V3 真人动态视频升级版
|
||||
整理日期:2026-06-02
|
||||
|
||||
## 使用说明
|
||||
|
||||
这套文档用于把系统 B 从产品想法推进到可开发、可测试、可部署的完整项目。建议先按顺序阅读:
|
||||
|
||||
1. `00_系统B升级说明_真人动态视频.md`:说明为什么从 V2 升级到 V3。
|
||||
2. `01_系统B总需求文档_v3_真人动态视频版.md`:当前主需求基线,后续开发以此为准。
|
||||
3. `01_需求文档第一版本.md`:保留最初产品思路。
|
||||
4. `02_需求文档修改v2.md`:V2 基础版,作为写真图集和图片纪念视频链路参考。
|
||||
5. `03_功能清单_页面清单_状态流转设计.md`:前端、后台、状态机的产品实现依据。
|
||||
6. `04_技术架构设计_模块拆分.md`:系统整体技术方案。
|
||||
7. `05_数据库表结构设计.md`:MySQL 表结构草案。
|
||||
8. `06_API接口设计文档.md`:前后台接口规范。
|
||||
9. `07_uniapp用户端页面交互文档.md`:uni-app 页面流程。
|
||||
10. `08_GeekerAdmin后台管理设计.md`:后台管理端设计。
|
||||
11. `09_AI生成流水线_Provider抽象设计.md`:AI 核心流水线。
|
||||
12. `10_Prompt模板_世界观模板规范.md`:世界观、场景、Prompt 模板规范。
|
||||
13. `11_订单支付_额度_成本控制设计.md`:商业闭环和成本控制。
|
||||
14. `12_任务队列_错误重试_稳定性设计.md`:稳定性与故障恢复。
|
||||
15. `13_隐私授权_内容审核_合规设计.md`:真人照片、肖像权、隐私合规。
|
||||
16. `14_部署运维_日志监控_备份设计.md`:服务器部署和运维。
|
||||
17. `15_测试用例_验收标准.md`:测试与验收。
|
||||
18. `16_Codex开发任务拆解文档.md`:交给 Codex 的开发拆解。
|
||||
|
||||
当前系统 B 必须明确分成 4 档输出:
|
||||
|
||||
```text
|
||||
高清写真图集
|
||||
图片纪念视频
|
||||
动态写真视频
|
||||
AI 真人动态视频
|
||||
```
|
||||
|
||||
高端真人纪念片作为人工报价和多轮精修套餐处理。
|
||||
|
||||
## 当前推荐技术栈
|
||||
|
||||
- 用户端:uni-app
|
||||
- 后台端:Geeker-Admin 二开
|
||||
- 后端:Node.js + NestJS
|
||||
- 数据库:MySQL 8
|
||||
- 队列:Redis + BullMQ
|
||||
- 存储:MinIO / 后续可切云 OSS
|
||||
- 视频合成:FFmpeg
|
||||
- AI 辅助 Worker:Python 可选
|
||||
- AI 接入:统一 Provider 抽象层,不把任何模型名写死到业务代码
|
||||
|
||||
## 重要原则
|
||||
|
||||
1. 第一阶段主打婚礼、恋爱纪念、银婚金婚、情侣写真、个人形象定制。
|
||||
2. 系统底层按“人生主题 + 世界观模板 + 场景模板 + 镜头模板”设计,不要写死婚礼。
|
||||
3. 所有 AI 模型通过 Provider 管理,支持最高质量模型和后续替换。
|
||||
4. AI 真人动态视频默认不自动开启真实 Provider,必须先成本预估、用户确认、后台启用和阈值保护。
|
||||
5. 真人照片必须有授权、隐私、删除、公开案例二次授权机制。
|
||||
6. 系统 B 比系统 A 更重视本人相似度、肖像权、未成年人保护、身份锚点和后台审计。
|
||||
7. 生成流程必须队列化、可重试、可恢复、可追踪成本。
|
||||
|
||||
|
||||
## 修正说明
|
||||
|
||||
本包已升级为 V3 真人动态视频版:V1/V2 保留为历史与基础链路参考,V3 用于指导“真人会动、有表情、有动作、像真人短剧/纪念电影”的新目标。
|
||||
|
||||
开发主依据:优先使用 `01_系统B总需求文档_v3_真人动态视频版.md`。`02_需求文档修改v2.md` 作为基础链路参考,`01_需求文档第一版本.md` 作为历史需求版本与对照参考。
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"project": "系统B:真人照片 → 多人生主题写真 / 动态视频 / AI真人纪念片生成系统",
|
||||
"version": "V3-real-video-docs-package",
|
||||
"date": "2026-06-02",
|
||||
"files": [
|
||||
"00_系统B升级说明_真人动态视频.md",
|
||||
"01_系统B总需求文档_v3_真人动态视频版.md",
|
||||
"01_需求文档第一版本.md",
|
||||
"02_需求文档修改v2.md",
|
||||
"03_功能清单_页面清单_状态流转设计.md",
|
||||
"04_技术架构设计_模块拆分.md",
|
||||
"05_数据库表结构设计.md",
|
||||
"06_API接口设计文档.md",
|
||||
"07_uniapp用户端页面交互文档.md",
|
||||
"08_GeekerAdmin后台管理设计.md",
|
||||
"09_AI生成流水线_Provider抽象设计.md",
|
||||
"10_Prompt模板_世界观模板规范.md",
|
||||
"11_订单支付_额度_成本控制设计.md",
|
||||
"12_任务队列_错误重试_稳定性设计.md",
|
||||
"13_隐私授权_内容审核_合规设计.md",
|
||||
"14_部署运维_日志监控_备份设计.md",
|
||||
"15_测试用例_验收标准.md",
|
||||
"16_Codex开发任务拆解文档.md",
|
||||
"README.md"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user