页面 (电商AI平台/) - account / team / settings / index / products / projects: 累积迭代 - restraint.css: 设计 token 补充 - login.html / register.html: 新增登录注册页 - _ARCHIVE.md: 归档说明 Next.js 工程骨架 - app/ + components/: 新一代 SPA 雏形 (page / layout / sidebar / topbar / GridBg / Icon) - package.json / package-lock.json / next.config.mjs / tsconfig.json / postcss.config.mjs / next-env.d.ts 历史归档 / 文档 - v1/: 原 V1 静态稿镜像 (含 mockup-A/B/C) - PRD.md / deployment-guide.md / _check.html - ui参考/ / screenshots/ 杂项 - .gitignore 调整 - 删除根 README.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
58 KiB
带货流水线(暂名) — 产品 PRD v0.3
2026-05-09 起草|v0.3 = v0.2 + 用户多轮对齐 + brief 视觉路线 文档定位:产品 PRD,描述"做什么/怎么用/长什么样",不涉及技术实现
0. 文档约定
- 本文档"用户"指商家端使用者(运营、内容策划、店主、代运营成员)
- 商品 = SKU,是一等公民业务对象
- 资产 = 视觉素材的统称(商品/人物/场景/故事板/视频片段/成片)
- 工序 = Stage = 流水线阶段(共 5 段)
- 数字(时长、阈值、积分)均为 V1 默认值,运营可后台调整
- 视觉风格:克制现代 SaaS,谱系参考 Linear / Stripe / Vercel / Notion(详见 §4)
1. 产品定位
1.1 一句话定义
抖音白牌商家的 AI 短剧化带货视频生成平台——商家选商品 → AI 出脚本(自动切镜+切段)→ 生成基础资产(人物/场景/商品图)→ GPT-image-2 出故事板大图 → Seedance 按段出 15s 视频片段 → 时间线组装 → 导出 ≤60 秒短剧化带货成片。
1.2 解决的核心问题
| 现状痛点 | 我们的方案 |
|---|---|
| 商家拍带货视频成本高(主播/场地/剪辑),单条 ≥ 数百元 | AI 全流程生成,单条算力成本几元到十几元 |
| 第三方代运营周期 3-7 天,沟通成本高 | 自助创建,1-2 小时出成片 |
| 现有 AI 视频工具碎片化,不能直发抖音 | 端到端流水线,输出 9:16 ≤60s 直发成片 |
| 商家怕 AI 出错浪费钱 | 5 阶段每段都有人工审核门,失败不扣费、确认后扣 |
| 同商家做多条视频,要复用主播/场景/商品图 | 团队级跨项目资产库,主播/场景/商品图沉淀复用 |
| 商家自己已写好口播稿,想要平台只做视觉 | 脚本入口支持"自带粘贴" |
| 商家不会写脚本 | 脚本入口支持"AI 全生" + "一句话主题" |
| MCN/代运营管多账号、需要分工 | 团队 + 角色 + 四层额度 + 共享资产库 |
1.3 V1 / V2 范围
V1 In scope
- 完整 B2B 团队体系:超管 / 团管 / 成员 + 四层额度(用户日/月 + 团队月/总)+ 团队共享资产库
- 商品库(独立一级模块)
- 项目管理(创建/列表/搜索/复制/归档/删除)
- 5 阶段流水线:脚本 → 基础资产 → 故事板 → 视频片段 → 拼接导出
- 4 种脚本入口(AI 全生 / 自带粘贴 / 一句话主题 / 复刻爆款灰掉占位)
- GPT-image-2 故事板大图(一次出整张,整张重跑)
- Seedance 按 15s 段生成(60s = 4 段)
- 失败不扣费 + 确认后扣 + 团队级额度预检
- 时间线组装(裁剪/排序/转场/字幕/BGM)
- 成片 ≤ 60 秒,9:16 竖版
- 资产库(跨项目共享 + 项目内)+ 中间产物可下载
- 运营后台简化版(商家管理 / 任务监控 / Skill 管理 / 财务对账)
V2 Out of scope
- 4-8 条变体批量生成
- 复刻爆款(依赖 Gemini Vision API)
- 组装编辑器的"我的模板"保存与套用
- 抖音直发对接 / 数据回流
- 长视频(>60s) / 横屏视频
- 多商品同框(一个项目带多 SKU)
- 登录风控规则(5 条规则 + 自动封号 + 飞书告警)—— 待评估接 AirDrama 已有实现
V1 明确不做
- 内容审核 / 合规违禁词前置
- 直播间相关
- 投放(DOU+/千川)
- 带货商品系统对接(淘宝/拼多多)
2. 目标用户与场景
2.1 用户画像
| 画像 | 占比预估 | 特征 | 关键诉求 |
|---|---|---|---|
| 抖音白牌商家 | 50% | 抖店/淘宝小店主,SKU 5-50,自己或小团队做内容 | 便宜、快、成片直接能发 |
| 代运营机构 / MCN | 35% | 服务多个商家,专业团队 5-20 人 | 团队协作、四层额度、批量生产 |
| 达人/带货号 | 15% | 个人 IP 或小团队,做种草/测评 | 主播形象稳定、剧情多变 |
2.2 核心场景
场景 A:MCN 老张 + 5 个运营成员
- 老张作为团队超管,注册团队账号,充值 ¥5000 总额度,设月限额 ¥3000
- 邀请 5 个运营成员,分配每日 ¥100 / 月 ¥1500 额度
- 老张把"主播虚拟人小美"的人物图上传到团队共享资产库
- 运营 A 接到商家"补水面膜"任务,新建项目时选商品 → 资产生成阶段绑定团队已有"小美" → 节省费用
- 运营 B 同时做另一个项目,也用"小美"
- 老张在「消费」页看本月已消耗、各成员明细、按项目分摊
场景 B:店主小李第一次用平台
- 注册账号自动建独立"团队"(团队=店铺,仅小李一人)
- 进商品库建第一个商品"补水面膜",传 3 张图、写卖点+人群
- 进项目创建:选商品 → AI 全生 + 痛点种草模板 → 开始
- Stage 1 脚本:AI 出 60s 脚本(4 段 × 15s × 6 镜 = 24 镜),小李对话改钩子 → 确认
- Stage 2 基础资产:
- 2a 人物图:AI 自动按脚本提取"主播-小美 / 朋友 A",出图,过;用户加了一个"宠物猫"角色
- 2b 场景图:AI 提取"卧室 / 浴室",第一张不满意重跑,过
- 2c 商品图:从商品库引用面膜图,[AI 优化] 一键去白底+打光,过
- Stage 3 故事板:GPT-image-2 一次出 4 张故事板大图(每张 ~6 镜),第 3 张不满意 → 改提示词重跑该张 → 全过
- Stage 4 视频片段:4 段并发提交 Seedance(每段输入第 K 张故事板 + 全套基础资产 + "按故事板生成视频"),全过(其中 1 段重跑了 1 次)
- Stage 5 拼接:4 段 15s 自动拼成 60s → 加抖音电商字幕样式 → 选卡点 BGM → 导出 1080P MP4
- 总时长 ~50 分钟,消耗 ¥22
3. 信息架构(页面地图)
登录 / 注册
│
▼
┌─────────────── 主应用(左侧 Sidebar 持久导航)─────────────────┐
│ │
│ 📊 工作台 ──► /dashboard 概览 + 最近项目 │
│ │
│ 🛍️ 商品库 ──► /products 商品卡片网格 ⭐核心 │
│ │ │
│ ├──────► /products/new 新建商品 │
│ └──────► /products/:id 商品详情 │
│ │
│ 🎬 视频项目 ──► /projects 项目列表(按状态 Tab) │
│ │ │
│ ├──────► /projects/new 新建项目向导(4 步) │
│ │ │
│ └──────► /projects/:id 流水线主界面 ⭐核心 │
│ ├ stage 1 脚本 │
│ ├ stage 2 基础资产(2a/2b/2c) │
│ ├ stage 3 故事板(K 张) │
│ ├ stage 4 视频片段(K 段) │
│ └ stage 5 拼接导出 │
│ │
│ 📦 资产库 ──► /library 跨团队共享 + 项目内 │
│ │
│ 👥 团队 ──► /team 成员 / 角色 / 邀请 │
│ │
│ 💰 消费 ──► /billing 余额 / 充值 / 额度 / 账单│
│ │
│ ⚙️ 设置 ──► /settings 个人 + 团队偏好 │
│ │
└────────────────────────────────────────────────────────────────┘
3.1 页面优先级
| 优先级 | 页面 | 状态 |
|---|---|---|
| P0 | 工作台 Dashboard | 必出 |
| P0 | 商品库(列表+详情+新建) | 必出 |
| P0 | 项目列表 | 必出 |
| P0 | 新建项目向导 | 必出 |
| P0 | 流水线主界面(5 阶段) | 必出 |
| P1 | 资产库 | 必出 |
| P1 | 团队(成员/角色/邀请/额度) | 必出 |
| P1 | 消费(余额/充值/账单) | 必出 |
| P2 | 登录/注册 | 必出 |
| P2 | 设置 | 出占位 |
| 平行 | 运营后台 | V1 独立工程,简化版 |
4. 视觉风格规范 ⭐
整体定位:克制现代 SaaS + 工业级精致 + 轻未来感 谱系:Linear(极简系统感)+ Stripe(金融级精致)+ Vercel(黑白现代)+ Notion(留白克制) 不用:电商红/橙/亮黄、渐变铺面、磨砂玻璃拟物、霓虹色、暗色玻璃紫 商家是抖音白牌商家但他们也用 Mac、看 Apple、用 Notion——给一套"看着就像专业工具"的界面,强化平台权威感。
4.1 配色系统
主色调:浅色为主(白天作业场景多),暗色模式延后 V2
| 用途 | 颜色 | 色值 |
|---|---|---|
| 主背景 | 纯白 | #FFFFFF |
| 浅暖灰背景 | 暖灰 | #FAFAF9 |
| 表面层 | 极浅灰 | #F5F5F4 |
| 边框/分隔 | 极轻灰 | #E7E5E4 |
| 主文字 | 近黑 | #0C0A09 |
| 次级文字 | 中性灰 | #57534E |
| 弱化文字 | 浅灰 | #A8A29E |
| 强调色(主 CTA) | 深沉电致蓝 | #1E40AF |
| 成功 | 森林绿 | #15803D |
| 警告 | 沉稳琥珀 | #B45309 |
| 错误 | 克制红 | #B91C1C |
| 信息 | 同强调色蓝 | #1E40AF |
4.2 字体系统
| 用途 | 字体 | 字号梯度 | 字重 |
|---|---|---|---|
| 中文 | HarmonyOS Sans(首选)/ 思源黑体 / PingFang SC | 12 / 14 / 16 / 20 / 24 / 32 / 40 | 400 主用,500 强调,600 标题 |
| 英文/数字 | Inter(首选)/ SF Pro | 同上 | 同上,避免 Bold(700+) |
| 数字(金额/计数) | Inter tabular numerals 等宽 | — | — |
行高:1.5 正文 / 1.3 标题
4.3 形状 / 间距 / 层级
| 项 | 标准 |
|---|---|
| 圆角 | 6-8px 主流元素 / 12px 大卡片 / 不超过 16px |
| 阴影 | 极轻量。优先 1px border 划层级,shadow 仅用于浮层 |
| Modal | 0 8px 24px rgba(0,0,0,0.08) |
| Card hover | 0 1px 3px rgba(0,0,0,0.04) |
| 间距系统 | 4px 基准,常用 8 / 12 / 16 / 24 / 32 / 48 |
| 栅格 | 12 列,最大内容宽 1280px,左右 padding |
4.4 动效
- 基调:ease-out 200-300ms,克制不张扬
- 不要:Material Ripple、bouncy spring 弹跳、夸张 page transition
- 要:状态切换轻量过渡、hover 微反馈(亮度+5% 或 scale 1.02)、loading 用 skeleton 不用 spinner
4.5 图标
- 风格:线性图标,2px stroke,圆角端点
- 库:Lucide / Heroicons / Tabler Icons(统一一套,不混用)
- 大小:16 / 20 / 24
4.6 按钮层级
| 层级 | 样式 |
|---|---|
| Primary(主行动) | 实色填充强调色 #1E40AF,白字,hover 加深 5% |
| Secondary(次要) | 白底 + border + 主色文字 |
| Tertiary(弱化) | 无 border 无 bg,纯文字 + hover 加底色 |
| Destructive(删除) | 错误色 border,hover 才转实色 |
4.7 关键 DO / DON'T
DO ✅
- 大量留白,不怕空
- 信息分层用字号 + 字重 + 颜色
- 数字用 tabular numerals
- 视频缩略图保持 9:16 真实比例
- 状态用色斑(小色块/徽章),不用大面积填充
DON'T ❌
- 不用渐变铺面(除极小面积装饰)
- 不用电商红 / 拼多多橙 / 大牌饱和色
- 不用磨砂玻璃 / 拟物化 / Skeuomorphism
- 不用浮动操作按钮(FAB)
- 不堆叠 3 层以上阴影
- 不用 emoji 做装饰图标
4.8 主应用布局
┌─────────────┬─────────────────────────────────────────────────────────┐
│ │ ┌─────────────────────────────────────────────────────┐│
│ │ │ Breadcrumb:项目 / 补水面膜 / 流水线 ││
│ Sidebar │ │ [操作区] ││
│ 240px │ └─────────────────────────────────────────────────────┘│
│ (白底) │ │
│ ───── │ ※ 主内容区(白底,max-w 1280)※ │
│ 📊 工作台 │ │
│ 🛍️ 商品库 │ (根据当前页面渲染) │
│ 🎬 项目 │ │
│ 📦 资产 │ │
│ 👥 团队 │ │
│ 💰 消费 │ │
│ ⚙️ 设置 │ │
│ ───── │ │
│ 👤 用户 │ │
│ ◀ 收起 │ │
└─────────────┴─────────────────────────────────────────────────────────┘
5. 业务流程(端到端)
5.1 完整旅程图
注册账号 (创建团队,注册者自动为超管)
│
▼
进入 Dashboard
│
▼
[超管/团管] 邀请成员、分配额度 (可选,单人也能直接做项目)
│
▼
进商品库 ──► [+ 新建商品] (传图+卖点+人群)
│ │
│ ▼ 商品入库
│
▼
回 Dashboard 点 [+ 新建项目]
│
▼
向导 4 步:① 选商品 → ② 选脚本来源 → ③ 选模板(仅 AI 全生时)→ ④ 摘要确认
│
▼
进入流水线(落到 Stage 1)
│
▼
【Stage 1】脚本 ──► 用户审核 ──► [✓ 确认]
│ ↑
▼ │
【Stage 2】基础资产 │
│ ├ 2a 人物图(AI 自动出 + 用户增/删/改)│
│ ├ 2b 场景图(同上) │
│ └ 2c 商品图(商品库引用 + AI 优化)│
│ 入跨项目共享库 │
│ ↑
▼ │
【Stage 3】故事板(K 张大图,1:1 对应 K 段视频)│
│ GPT-image-2 一次出整张,可整张重跑 │
│ 入项目内库 │
│ ↑
▼ │
【Stage 4】视频片段 ──► K 段并发跑 ──► 逐段审核 ──► [全通过]
│ 每段输入:第 K 张故事板 + 基础资产 │
│ 入项目内库 │
│ ↑
▼ │
【Stage 5】拼接导出 ──► 字幕/BGM/转场 ──► [✓ 确认导出] │
│ │
▼ │
成片入库 + 可下载 │
│
任意阶段可点 [↩ 回退] 回到上游 ────────────────────────────┘
5.2 阶段详细规则
【Stage 1】脚本生成(Agent 对话)
入口(4 选 1,新建项目时确定):
| 入口 | 输入 | 适合场景 |
|---|---|---|
| AI 全生 | 商品(来自商品库)+ 卖点 + 模板 | 不会写脚本的小白商家 |
| 自带脚本 | 商家粘贴自己写的口播稿 | 已有文案的商家、达人 |
| 一句话主题 | 商品 + 一句话方向 | 有想法但懒得写 |
| 复刻爆款 | 抖音爆款视频 URL | V1 灰掉占位(V2 接 Gemini Vision) |
AI 输出(全自动结构化):
- 总时长:30s / 45s / 60s(用户选档位 or AI 推荐)
- 自动切分为 K 段(每段 15s):30s→K=2,45s→K=3,60s→K=4
- 每段约 6 镜,总 N 镜(N = K × 6 ± 浮动)
- 每镜含:镜号、时长(如"0-2s")、场景、角色行为、对白/旁白、镜头建议
镜数和切分点全由 AI 决定,用户不关心也不调整。
界面:双栏
- 左:Agent 对话框(聊天 UI)
- 右:脚本结构化预览(按段+镜分组)
用户操作:
- 对话框跟 AI 沟通调整("第二段语气改活泼")
- 行内编辑某镜文字
- 单镜重跑 / 整体重跑
审核门:[✓ 确认脚本] —— 主蓝色 CTA
回退:后续阶段可点 [↩ 回 Stage 1] 改脚本,弹窗确认"清空下游所有产出"
【Stage 2】基础资产生成(3 子步,不再有元素提取阶段)
AI 自动从已确认脚本中提取人物 + 场景清单,直接进入生图,无需中间审核步。 用户在生图阶段可以增/删/改清单。
Stage 2a — 👤 人物图
系统行为:AI 提取脚本中的人物 → 并发调用 image-2 出图
界面:每个人物一张卡片
- 人物名 + AI 生成的图片预览
- 提示词(默认 AI 生成,用户可改)
- 操作按钮
用户操作:
| 操作 | 行为 |
|---|---|
| [✓ 通过] | 入【跨项目共享库 - 人物图】 |
| [↻ 重跑] | 同提示词再生 |
| [📝 改词重跑] | 改提示词后重生 |
| [📤 上传替换] | 上传本地图替代,也入库 |
| [🔗 绑定已有] | 从团队共享库选已有人物图(不重生,省费) |
| [+ 添加资产] | 用户主动加一个 AI 没提取出的人物 |
| [- 删除资产] | 用户认为该人物不需要,删除 |
| [🔍 看大图] | 模态框看高清版 |
审核门:所有人物都已 [✓ 通过] / [🔗 绑定] / [📤 上传] → [→ 进入场景图]
Stage 2b — 🌆 场景图
操作完全镜像 2a,针对场景清单。入库到【跨项目共享库 - 场景图】。
Stage 2c — 📦 商品图
输入:项目创建时选定的商品(从商品库引用)
界面:商品图卡片 + 操作选项
- 显示商品库的原图
- [📷 用原图] —— 不优化
- [✨ AI 优化] —— 一键预制 pipeline:
- 自动跑:去白底 → 重打光 → 清晰化锐化
- 输出优化版与原图并排展示
- 选 [✓ 用优化版] / [↺ 重新优化] / [↺ 用原图]
- [📤 上传新图] —— 上传新的商品图替代
- [+ 添加商品图] —— 同一项目可用多张商品图
AI 优化是预制提示词驱动的固定操作,不开放菜单细分("去背景/换光/调角度"等)。一键解决,V2 加"专家模式"。
入库:原图 + 优化版都入【跨项目共享库 - 商品图】,标签区分
审核门:所有商品图都已确认 → [→ 进入故事板生成]
【Stage 3】故事板生成 ⭐ 核心
输入:脚本 + 人物图 + 场景图 + 商品图(Stage 2 全套基础资产)
系统行为:
- 脚本被切分为 K 段(K = 1/2/3/4,基于总时长 / 15)
- 对每段调用 GPT-image-2 一次性生成一张大图
- 这张大图包含该段所有镜头的视觉布局(如示例:6 镜表格,每行:镜号+时长 / 画面 / 机位运动 / 对白音效)
- 整张是一个不可拆分的视觉单元
界面:K 张故事板卡片并列展示
┌─────────────────────────────────────────────────────────────┐
│ 故事板列表(共 K=4 张) │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ 第 1 段 │ │ 第 2 段 │ │ 第 3 段 │ │ 第 4 段 │ │
│ │ 0-15s │ │ 15-30s │ │ 30-45s │ │ 45-60s │ │
│ │ 6 镜 │ │ 6 镜 │ │ 6 镜 │ │ 6 镜 │ │
│ │[缩略图] │ │[缩略图] │ │[缩略图] │ │[缩略图] │ │
│ │ ✓ 通过 │ │ ✓ 通过 │ │ ⚠ 待审 │ │ ○ 待跑 │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ │
└─────────────────────────────────────────────────────────────┘
单张故事板审核页(点缩略图打开):
┌────────────────────────────────────────────────────────────┐
│ 第 3 段 · 30-45s · 6 镜 [↩ 回 Stage 2 改基础资产]│
│ ──────────────────────────────────────────────────────────│
│ ┌──────────────────┬─────────────────────────────────┐ │
│ │ │ │ │
│ │ 故事板大图 │ 右侧元数据列(只读) │ │
│ │ 居中展示 │ ────────────────── │ │
│ │ (9:16 长图) │ 镜 1 (0-2s) │ │
│ │ 保持原比例 │ 中景/固定 · 画外音"..." │ │
│ │ │ 镜 2 (2-5s) │ │
│ │ 工具: │ ... │ │
│ │ [🔍 放大] │ ... │ │
│ │ [📥 下载] │ │ │
│ │ │ ★ 元数据由 AI 同步生成 │ │
│ │ │ ★ V1 不支持单镜文字编辑 │ │
│ └──────────────────┴─────────────────────────────────┘ │
│ │
│ 提示词(用户可改后重跑): │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 6 镜分镜板,镜号+时长+画面+机位+对白格式... │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ [↺ 整张重跑] [✓ 通过这张故事板] │
└────────────────────────────────────────────────────────────┘
用户操作(每张故事板独立):
| 操作 | 行为 |
|---|---|
| [↺ 整张重跑] | 用默认提示词整张重新生成 |
| [📝 改提示词后重跑] | 编辑提示词,整张重新生成 |
| [✓ 通过] | 入【项目内库 - 故事板】,进度推进 |
| [↩ 回 Stage 2] | 回退改基础资产,下游清空 |
| [↩ 回 Stage 1] | 回退改脚本,全部下游清空 |
关键约束:
- ⚠ 不能局部改单张内的某镜(GPT-image-2 输出是不可拆的整张图)
- ⚠ Seedance 用的也是整张故事板(下一阶段)
- 单张故事板可独立重跑,不影响其他张
审核门:所有 K 张都 [✓ 通过] → [→ 进入视频生成]
【Stage 4】视频片段生成(Seedance)
输入(每段独立):
- 第 K 张故事板(整张)
- 全套基础资产(人物图 + 场景图 + 商品图)
- 提示词:默认 "按照分镜故事板生成视频",用户可改
系统行为:
- K 段并发提交 Seedance(K = 故事板张数 = 1/2/3/4)
- 每段输出 15s 视频片段
界面:K 段视频卡片
┌─────────────────────────────────────────────────────────────┐
│ 片段 3 30-45s [✓通过][↻重跑]│
│ ────────────────────────────────────────────────────── │
│ │
│ ┌── 输入资产(只读)─────────────────────────────────────┐│
│ │ [故事板3 缩略] [人物图×N] [场景图×N] [商品图×N] ││
│ │ ★ 要改资产请回 Stage 3 / Stage 2 ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ 提示词(可编辑): │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 按照分镜故事板生成视频 │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ ┌── 视频预览(9:16)──────────────────────────────────┐ │
│ │ [视频播放器,15s] │ │
│ │ 生成中… ●●● 65% 预计剩余 1:20 │ │
│ └────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
用户操作(每段独立):
| 操作 | 行为 |
|---|---|
| [✓ 通过] | 视频片段入【项目内库 - 视频片段】 |
| [↻ 重跑] | 同提示词再生 |
| [📝 改词重跑] | 改提示词后再生 |
| [↩ 回 Stage 3] | 改故事板(影响该段及下游) |
审核门:所有 K 段都通过 → [→ 进入拼接]
【Stage 5】拼接 & 导出
输入:所有通过的视频片段(按段号排序)
系统行为:
- 默认按段号顺序自动拼接(无转场,无字幕,无 BGM)
- 生成预览版(低码率快速版)
用户操作区:
┌── 时间轴预览 ────────────────────────────────────────────┐
│ [片段1] [片段2] [片段3] [片段4] │ ← 拖拽重排,可删
│ 15s 15s 15s 15s 共 60 秒 │
└──────────────────────────────────────────────────────────┘
┌── 字幕(5-8 套预设样式)────────────────────────────────┐
│ ☑ 启用字幕 │
│ 来源:从脚本台词自动生成 │
│ 样式:[大字综艺▼] 备选:简洁电商/高级排版/弹幕轻量/强调爆款│
│ 编辑:可逐句调整文字 │
│ ★ 记忆:"上次选 大字综艺" │
└─────────────────────────────────────────────────────────┘
┌── BGM(V1 内置 20-50 首抖音热门授权曲)─────────────────┐
│ ☑ 启用 BGM │
│ 选择:[抖音 Top10 卡点曲库 ▼] │
│ 音量:原视频 80% / BGM 40% │
│ ★ 记忆:"上次选 卡点 #3" │
└─────────────────────────────────────────────────────────┘
┌── 转场 ─────────────────────────────────────────────────┐
│ ☑ 启用转场 │
│ 类型:[淡入淡出 / 滑动 / 缩放] │
│ 时长:0.3 秒 │
└─────────────────────────────────────────────────────────┘
[👁 预览成片] [✓ 确认导出 1080P MP4]
审核门:[✓ 确认导出] —— 触发高清渲染(2-5 分钟),完成弹"导出成功"卡片,提供下载链接
导出后:
- 成片入【项目内库 - 成片】
- 项目状态 →
completed - 商家可基于该项目复制做下条
5.3 跨阶段通用规则
5.3.1 审核门是阻塞的
- 上一阶段未确认前,下一阶段 tab 灰色不可点
- hover 灰色 tab 显示"请先完成 Stage X"
5.3.2 任意阶段可回退
| 当前位置 | 可回退到 | 影响 |
|---|---|---|
| Stage 2-5 | Stage 1(改脚本) | 下游全清空 |
| Stage 3-5 | Stage 2(换基础资产) | Stage 3-5 清空 |
| Stage 4-5 | Stage 3(改故事板) | Stage 4-5 清空 |
| Stage 5 | Stage 4(重做视频) | Stage 5 清空 |
回退一律弹窗二次确认。
5.3.3 状态持久化
- 任何阶段中关浏览器/刷新状态不丢
- 后台任务(生图/生视频)继续跑,回来即看结果
- 同项目同时只允许一人编辑(其他人只读 + 提示"X 正在编辑")
5.3.4 失败处理
| 失败场景 | 处理 |
|---|---|
| 单张图生成失败 | 该图标红,[↻ 重跑],其他图继续 |
| 单张故事板失败 | 该张标红,[↻ 重跑] |
| 单段视频生成失败 | 该段标红,[↻ 重跑] |
| 余额/额度不足 | 进入阶段前预检 → 弹窗"额度不足",禁止开始 |
| 模型 API 故障 | 自动重试 3 次,仍失败标红 + 错误码透传 |
| 任务超时(> 10 分钟) | 标"超时",[↻ 重跑] |
5.3.5 扣费规则 ⭐
失败不扣费,确认后扣
- 每次生图 / 生故事板 / 生视频任务:仅在用户点 [✓ 通过] 时才扣费
- 失败、超时、用户重跑(旧版本作废)一律不扣
- 进入阶段前预检团队额度 + 个人额度(按预估消耗 × 1.2 安全系数),不足直接禁止
- 余额信息在 Sidebar 底部 + Dashboard 统计条实时显示
6. 资产库模型与流转规则
6.1 资产分类
资产库
├─ 跨项目共享(团队级,所有项目可见可引用)
│ ├─ 📦 商品图(来自商品库 / Stage 2c 上传或优化)
│ ├─ 👤 人物图(Stage 2a 生成 / 手动上传)
│ └─ 🌆 场景图(Stage 2b 生成 / 手动上传)
│
└─ 项目内(仅本项目可见)
├─ 🎬 故事板(Stage 3 生成的 K 张大图)
├─ 🎞️ 视频片段(Stage 4 生成的 K 段 15s 片段)
└─ 📺 成片(Stage 5 输出的最终视频)
6.2 资产入库来源
| 来源 | 触发 | 入库分类 |
|---|---|---|
| 商品库新建商品 | 上传商品图 | 跨项目-商品图 |
| Stage 2a [✓ 通过] | AI 生成的人物图 | 跨项目-人物图 |
| Stage 2a [📤 上传] | 商家本地上传 | 跨项目-人物图 |
| Stage 2b 同上 | 场景图 | 跨项目-场景图 |
| Stage 2c [✨ 优化] | 优化版商品图 | 跨项目-商品图(标"优化") |
| Stage 3 单张 [✓ 通过] | 故事板大图 | 项目内-故事板 |
| Stage 4 单段 [✓ 通过] | 视频片段 | 项目内-视频片段 |
| Stage 5 [✓ 导出] | 最终成片 | 项目内-成片 |
| 资产库 [+ 上传] | 商家手动上传 | 视用户选择 |
6.3 资产引用规则
- Stage 2a/2b 可绑定团队共享库已有资产(不重生)
- Stage 2c 必从商品库引用(或新上传到库)
- 资产被引用时仅记录关系,不复制
- 删除资产前检查引用:被 N 个项目用 → 不允许直接删,提示先解除
- 软删除:标记
deleted隐藏,已引用项目仍可见
6.4 资产权限(团队级别)
| 操作 | 超管 | 团管 | 成员 |
|---|---|---|---|
| 上传到团队共享库 | ✓ | ✓ | ✓ |
| 删除自己上传的 | ✓ | ✓ | ✓ |
| 删除别人上传的(团队共享) | ✓ | ✓ | ✗ |
| 上传/删除项目内资产 | ✓ | ✓ | ✓(仅自己项目) |
6.5 中间产物可下载
- 跨团队共享 + 项目内(除成片外)所有资产都可下载
- 视频片段下载为 MP4,图片下载为 PNG/JPG
7. 业务对象(产品语义层)
7.1 团队 Team ⭐ 一等公民
| 属性 | 说明 |
|---|---|
| 名称 | 团队/公司名 |
| 类型 | 个人(自动建)/ 企业(手动建) |
| 总额度池 | 充值累加,不自动重置 |
| 月限额 | 每月可消费上限,按自然月重置 |
| 当月已消耗 | 实时统计 |
| 成员列表 | 引用 User ID + 角色 |
| 创建者 ID | 默认超管 |
7.2 用户 User & 角色
| 属性 | 说明 |
|---|---|
| 用户 ID | 唯一 |
| 团队 ID | 归属团队(一人可多团队?V1 一人一团队) |
| 角色 | 超管 / 团管 / 成员 |
| 每日额度 | 当日可消费上限 |
| 月度额度 | 当月可消费上限 |
| 当日/月已消耗 | 实时统计 |
7.3 商品 Product ⭐ 一等公民
| 属性 | 说明 |
|---|---|
| 名称 | 商家自填,必填 |
| 团队 ID | 归属(团队共享) |
| 商品图 | 1-5 张,第一张为主图 |
| 卖点 | 多行文本,3-5 条要点 |
| 目标人群 | 多行文本,可选 |
| 价格区间 | 可选,预留 |
| 关联项目数 | 系统统计 |
7.4 项目 Project
| 属性 | 说明 |
|---|---|
| 名称 | 自填或自动 |
| 关联商品 | 引用 Product ID |
| 团队 ID + 创建者 ID | 归属 |
| 脚本来源 | AI 全生 / 自带 / 一句话 / 复刻爆款 |
| 模板 | 仅 AI 全生时 |
| 总时长 | 30 / 45 / 60 |
| 状态 | 草稿 / 进行中 / 已完成 / 失败 / 已归档 |
| 当前阶段 | 1-5 |
| 关联资产 | 引用资产 ID 列表 |
7.5 脚本 Script
| 属性 | 说明 |
|---|---|
| 项目 ID | 归属 |
| 来源 | AI 全生 / 自带 / 一句话 / 复刻爆款 |
| 总时长 | 30 / 45 / 60 |
| 段数 K | 总时长 / 15 |
| 镜头列表 | N 个镜头(每镜:镜号、时长、场景、角色、对白、镜头建议、所属段号) |
| 状态 | 草稿 / 已确认 |
7.6 故事板 Storyboard ⭐
| 属性 | 说明 |
|---|---|
| 项目 ID | 归属 |
| 段号 | 1 至 K |
| 大图 URL | GPT-image-2 输出的整张图 |
| 提示词 | 生成用的提示词 |
| 状态 | 生成中 / 待确认 / 已确认 |
一个项目有 K 个故事板对象(K = 1/2/3/4)。
7.7 资产 Asset
| 属性 | 说明 |
|---|---|
| 类型 | 商品/人物/场景/故事板/视频片段/成片 |
| 范围 | 跨项目共享 / 项目内 |
| 来源 | AI 生成 / 手动上传 / AI 优化 / 官方预置 |
| URL + 缩略图 | 存储位置 |
| 提示词 | 仅 AI 生成有 |
| 模型 | image-2 / GPT-image-2 / Seedance |
| 元数据 | 尺寸、时长、文件大小 |
| 引用记录 | 被哪些项目用过 |
| 上传者 ID | 团队权限判定用 |
7.8 模板 Template
| 属性 | 说明 |
|---|---|
| 名称 | 开箱测评 / 痛点种草 / 对比展示 / 教程演示 / 剧情带货 |
| 脚本结构 | 系统提示词模板(AI 全生入口用) |
| 默认时长档 | 30 / 45 / 60 推荐值 |
| 示例视频 | 1-3 个示例 |
8. 详细页面说明
8.1 工作台 Dashboard /dashboard
┌─────────────────────────────────────────────────────────────────┐
│ H1:工作台 [+ 新建项目] │
│ │
│ ┌── 概览卡片(4 张并排,浅色卡片 + 1px border)─────────────┐ │
│ │ 总项目 │ 进行中 │ 本月成片 │ 团队余额 │ │
│ │ 12 │ 3 │ 8 │ ¥4,327 [充值] │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ┌── 最近项目 ──────────────────────────────────────────────┐ │
│ │ 缩略图 / 项目名 / 商品 / 5段进度条 / 时间 / [继续] │ │
│ │ ... │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌── 快捷入口 ─────────────────────────────────────────────┐ │
│ │ [+ 新建商品] [📦 资产库] [👥 邀请成员] [💰 充值] │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
8.2 商品库 /products
┌─────────────────────────────────────────────────────────────────┐
│ H1:商品库 [+ 新建商品] │
│ 副标题:管理你的带货商品,团队共享 │
│ │
│ ┌── 工具栏 ────────────────────────────────────────────────┐ │
│ │ [🔍 搜索...] [↕ 排序▼] │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌── 商品卡片网格(4 列)───────────────────────────────────┐ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │[主图] │ │[主图] │ │[主图] │ │[主图] │ │ │
│ │ │补水面膜 │ │蓝牙耳机 │ │速食面 │ │防晒霜 │ │ │
│ │ │关联 5 个│ │关联 3 个│ │关联 2 个│ │关联 0 个│ │ │
│ │ │5/2 创建 │ │5/1 创建 │ │4/30 创建 │ │4/28 创建 │ │ │
│ │ │[⋯] │ │[⋯] │ │[⋯] │ │[⋯] │ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
新建商品(侧滑抽屉):商品名 * + 商品图 1-5 张 * + 卖点(多行)+ 目标人群(多行)+ 价格区间(可选预留)
8.3 项目列表 /projects
┌─────────────────────────────────────────────────────────────────┐
│ H1:视频项目 [+ 新建项目] │
│ │
│ Tab: [全部 12] [草稿 1] [进行中 3] [已完成 7] [失败 1] │
│ │
│ [🔍 搜索...] [↕ 最近更新▼] │
│ │
│ 列表行(行视图): │
│ 缩略图 / 项目名+商品 / 5段进度条 / 时间 / [继续/打开] [⋯] │
└─────────────────────────────────────────────────────────────────┘
进度条 5 段:脚本 / 资产 / 故事板 / 视频 / 拼接
8.4 新建项目向导 /projects/new
4 步:
- 选商品(横向滑动卡片选择器,最后一张是 [+ 新建商品])
- 选脚本来源(4 个 Tab 切换):AI 全生 / 自带粘贴 / 一句话主题 / 复刻爆款(V1 灰)
- 选模板 + 时长(仅 AI 全生 / 一句话时显示)
- 摘要确认(项目名可改 + 预估消耗 + 当前余额)
8.5 流水线主界面 /projects/:id
┌──────────────────────────────────────────────────────────────────┐
│ Breadcrumb:项目 / 补水面膜 / 流水线 [设置] │
│ │
│ ┌── Stage 进度条(5 段,sticky)──────────────────────────────┐ │
│ │ ① 脚本 ► ② 资产 ► ③ 故事板 ► ④ 视频 ► ⑤ 拼接 │ │
│ │ ✓完成 ✓完成 ⚠当前 ○待机 ○待机 │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ┌── 主内容区(按当前 Stage 渲染,详见 §5.2)───────────────────┐│
│ └────────────────────────────────────────────────────────────────┘│
│ │
│ ┌── 底部固定操作条 ────────────────────────────────────────────┐ │
│ │ 已花费 ¥0 / 预估总额 ¥27 [↩ 回退] [↺ 整体重做] [✓ 通过] │ │
│ └─────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘
8.6 资产库 /library
┌──────────────────────────────────────────────────────────────────┐
│ H1:资产库 [+ 上传资产] │
│ │
│ 范围:[● 团队共享] [○ 项目资产 ▼ 选项目] │
│ │
│ Tab: [全部] [📦 商品图] [👤 人物图] [🌆 场景图] [🎬 故事板] │
│ [🎞️ 视频片段] [📺 成片] │
│ │
│ [🔍 搜索...] [↕ 排序▼] [⊞⊟ 视图] │
│ │
│ 网格:缩略图 + 名称 + 来源标签 + 引用次数 + […] 菜单 │
└──────────────────────────────────────────────────────────────────┘
8.7 团队 /team
┌──────────────────────────────────────────────────────────────────┐
│ H1:团队管理 [+ 邀请成员] │
│ │
│ 团队信息卡:[团队名][充值余额][月限额][当月消耗] + [⚙ 团队设置] │
│ │
│ 成员列表(表格): │
│ 头像/姓名 / 角色 / 每日额度 / 月度额度 / 已消耗 / [编辑] [移除] │
│ ... │
│ │
│ 邀请成员(弹窗):手机号 + 角色(团管/成员)+ 默认额度 │
└──────────────────────────────────────────────────────────────────┘
8.8 消费 /billing
┌──────────────────────────────────────────────────────────────────┐
│ H1:消费 │
│ │
│ ┌── 余额卡片 ──────────────────────────────────────────────┐ │
│ │ 团队余额 ¥4,327 月限额 ¥3,000 当月已用 ¥1,673 [充值] │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ Tab: [总览] [按项目] [按成员] [账单流水] │
│ │
│ 总览:折线图(按天消耗) + 环形图(按 Stage 分类) │
│ 按项目/成员:表格 │
│ 账单流水:时间 / 项目 / 阶段 / 消耗 / 操作者 / 状态 │
└──────────────────────────────────────────────────────────────────┘
8.9 设置 /settings(V1 简版)
个人信息 + 偏好(默认模板/默认字幕/默认 BGM 库)
9. 状态机
9.1 项目状态机
[新建]──创建向导完成──►[草稿]──进入Stage1──►[进行中]──Stage5导出──►[已完成]
│ │ │
│ 用户归档 │ 重试3次仍失败 │ 用户归档
▼ ▼ ▼
[已归档] [失败] [已归档]
9.2 单资产状态机
[生成中]──成功──►[待审核]──通过──►[已入库]
│ │ │
└─失败─►[失败] └─手动上传替换─►[已入库(替换)]
│
└─重跑─►[生成中]
9.3 单故事板状态机
[生成中]──成功──►[待审核]──通过──►[已入库]
│ │
│ ├─整张重跑(默认提示词)─►[生成中]
│ └─改提示词后重跑──────►[生成中]
│
└─失败──►[失败]──重跑──►[生成中]
9.4 单视频片段状态机
[资产就绪]──提交Seedance──►[生成中]──成功──►[待审核]
│ │
└─失败─►[失败] ├─通过──►[已入库]
└─重跑──►[生成中]
9.5 项目工序状态机(5 阶段)
[草稿]──选商品+选脚本来源──►
[Stage 1 脚本生成中]──完成──►[Stage 1 待审核]──编辑/重生──→ 回流
│ 商家确认
▼
[Stage 2 基础资产生成中](2a/2b/2c 顺序)──全通过──►
[Stage 3 故事板生成中]──完成──►[Stage 3 待审核]──单张重跑──→ 局部回流
│ 全部确认
▼
[Stage 4 视频片段生成中](K 段并行)──全通过──►
[Stage 5 拼接编辑中]──商家点导出──►[已完成]
10. 角色与权限
10.1 角色定义
| 角色 | 权限 |
|---|---|
| 超管 | 团队所有权限 + 总额度划拨 + 团管任命 + 财务查看 |
| 团管 | 成员管理(邀请/移除)+ 成员每日/月额度分配 + 团队共享资产库管理 |
| 成员 | 创建项目 + 流水线操作 + 个人项目管理 + 引用团队资产 |
| 观察者 | 仅查看团队项目和资产,不可创建、不可消费(V2) |
10.2 权限矩阵
| 功能 | 超管 | 团管 | 成员 |
|---|---|---|---|
| 创建项目 | ✓ | ✓ | ✓ |
| 编辑别人的项目 | ✓ | ✓ | ✗ |
| 删除别人的项目 | ✓ | ✓ | ✗ |
| 上传到团队共享资产库 | ✓ | ✓ | ✓ |
| 删除别人上传的团队共享资产 | ✓ | ✓ | ✗ |
| 邀请成员 | ✓ | ✓ | ✗ |
| 设置成员额度 | ✓ | ✓ | ✗ |
| 划拨团队总额度(充值) | ✓ | ✗ | ✗ |
| 查看团队消费明细 | ✓ | ✓ | ✗(仅自己) |
| 团队设置(名称/限额) | ✓ | ✗ | ✗ |
10.3 四层额度检查(每次任务确认前)
预检顺序(任一不通过即拒绝):
1. 当前用户当日剩余额度 ≥ 任务预估消耗 × 1.2
2. 当前用户当月剩余额度 ≥ 同上
3. 团队当月剩余额度 ≥ 同上
4. 团队总余额 ≥ 同上
11. 边界情况与异常处理
11.1 输入异常
| 场景 | 处理 |
|---|---|
| 商品名为空 | 表单校验,提示"请填商品名" |
| 商品图 0 张 | 至少 1 张,否则不能保存 |
| 上传图 > 5MB | 前端拦截 |
| 上传图格式 | 仅 jpg/png/webp |
| 自带脚本太长(> 80s 估算) | 弹窗"建议 ≤ 60s,仍要继续?" |
11.2 额度异常
| 场景 | 处理 |
|---|---|
| 进入阶段前预检不足 | 弹窗"额度不足,预估 ¥X,剩余 ¥Y",区分用户/团队层级 + [充值/联系超管] |
| 团队月限额到 | 跨月自动重置,期间禁止新任务 |
| 团队总额度耗尽 | 所有任务暂停,仅超管可充值 |
11.3 网络异常
| 场景 | 处理 |
|---|---|
| 提交任务时断网 | 自动重试 3 次 |
| 轮询任务状态时断网 | 静默重试,恢复后自动同步 |
| 长时间无响应(> 10 分钟) | 标"超时",[↻ 重跑] |
11.4 并发异常
| 场景 | 处理 |
|---|---|
| 同项目两人同时编辑 | 后进入者只读 + 顶部提示"X 正在编辑" |
| 同时多个项目跑视频生成 | 排队,顶部 Toast 提示"已有 N 个任务排队" |
11.5 内容合规异常
| 场景 | 处理 |
|---|---|
| 提示词触发审核(医疗/绝对化用语) | AI 拒绝,提示用户改 |
| 商家上传违规图片 | 入库前预审拒收(V1 简版规则) |
| 成片合规 | V1 依赖商家自检,V2 接审核 API |
12. V1 验收标准
12.1 功能验收
- 注册账号自动建团队,注册者为超管
- 超管可充值、设月限额、邀请成员、分配额度
- 商品库 CRUD 跑通
- 4 步项目向导跑通(4 种脚本入口至少前 3 种可用)
- 5 阶段流水线跑通(mock 数据下)
- 每阶段都有审核门,未确认前下一阶段不可点
- Stage 2 三子步顺序:人物 → 场景 → 商品;用户可增/删/改资产
- Stage 2c 商品图一键 AI 优化可用
- Stage 3 K 张故事板独立审核 + 整张重跑(不能局部改)
- Stage 4 K 段视频并发生成,单段可重跑/改提示词
- Stage 5 时间线编辑 + 字幕预设 + BGM + 导出 1080P MP4
- 资产入库自动 + 资产库可查看 + 中间产物可下载
- 跨阶段回退规则正确(清空下游 + 二次确认)
- 四层额度预检 + 失败不扣 + 确认后扣 规则正确
- 团队权限矩阵符合 §10.2
12.2 性能验收
- Dashboard 首屏 < 1 秒
- 流水线主界面切换 Stage < 200ms
- 资产库网格滚动流畅
- 视频预览 buffer < 3 秒
12.3 视觉验收
- 严格遵循 §4 视觉规范(浅色 SaaS 风)
- 主色严格用
#1E40AF,无电商红/橙 - 字体中文 HarmonyOS Sans,英文 Inter
- 阴影克制,多用 1px border 划分层级
- 数字用 tabular numerals 等宽
- 视频缩略图保持 9:16
- 无 emoji 作 UI 图标(全 Lucide/Heroicons)
- 动效 200-300ms ease-out,克制
13. 待补充事项
| 项目 | 谁来定 | 备注 |
|---|---|---|
| 5 个模板的脚本结构、示例视频、封面图 | 运营提供 | 影响 Stage 1 AI 全生 |
| 商品图 AI 优化的预制提示词 | 产品+模型工程师调试 | 去白底+重打光+清晰化 |
| BGM 库选曲(V1 内置 20-50 首) | 运营+法务 | 抖音热门授权曲 / royalty-free |
| 字幕样式预设(5-8 套) | 设计提供 | 大字综艺/简洁电商/高级排版/弹幕轻量/强调爆款 |
| 算力定价细则 | 财务 | 影响预估消耗显示 |
| 项目命名规则 | 待决 | 商家自填 vs 自动生成 |
| 平台水印 | 待决 | 默认水印 + VIP 去 |
| 复刻爆款 V2 启用时机 | 取决于 Gemini Vision API 集成 | V1 灰掉占位 |
| 登录风控(5 条规则)是否 V1 接 | 待决 | AirDrama 已有代码可复用 |
| GPT-image-2 故事板的尺寸/比例 | 模型工程师 | 影响 §5.2 Stage 3 输出规格 |
14. 文档历史
| 版本 | 日期 | 作者 | 变更 |
|---|---|---|---|
| v0.1 | 2026-05-09 | Claude + 用户对齐 | 初稿,5 阶段,无故事板,无商品库独立 |
| v0.2 | 2026-05-09 | Claude + 用户对齐 + brief 合并 | 6 阶段(增故事板、元素提取),商品库独立,4 种脚本入口,失败不扣,V1 单商家 + 团队 V1.5 占位 |
| v0.3 | 2026-05-09 | Claude + 用户最终对齐(视觉切浅色 SaaS、团队完整 B2B、砍元素提取阶段、故事板=GPT-image-2 一张大图、Seedance 1:1 K 段) | 重大重构:5 阶段、视觉切 Linear 风、完整 B2B、故事板大图整张重跑、Seedance 60s=4 段 |