# Airshelf 二期功能清单 > 由《二期需求整理总纲》拆解而来,颗粒度到「可派活/可估时」的功能项。 > 分期:**上**=二期上半程(骨架,先做);**下**=二期下半程;**并**=可并行支线。 > 状态:**明确**=可开工;**待确认**=需先对齐(对象见备注)。 > 编号:模块.序号(1=主流程 2=电商内容 3=本地生活 4=自由创作 5=保存模板)。 > 开发进度:**已完成**=代码已落地可验收;**部分完成**=已做一半,缺口见备注;**第N段**=按文末《开发分段》排期,尚未开工。 --- ## 模块 1 · 主流程优化(核心骨架,对应 PDF 9 条) | 编号 | 功能 | 说明 | 分期 | 状态 | 开发进度 | | ---- | ----------------- | -------------------------------------------------------- | --- | --------------------- | ----------------------------------------------------------------------------------------------------------- | | 1.1 | 取消项目创建阶段的视频时长选择 | 时长移到脚本阶段(见 1.9) | 上 | 明确 | **已完成**(第2段补齐)。新建向导里本就没有时长控件;脚本设定卡现在有「时长」那一栏(5–60 秒、5 秒一档),死值 60 秒已去掉 | | 1.2 | 删除脚本创建的「AI 全生」按钮 | 流程简化 | 上 | 明确 | **已完成**(第1段) | | 1.3 | 「一句话主题」改名「脚本辅助生成」 | 含删除一句话主题框(PDF 第4条) | 上 | 明确 | **已完成**(第1段)。改后确认风格人物即直接出稿,少一轮「追问主题」的来回 | | 1.4 | 脚本创建三种方式入口 | 辅助生成 / 上传脚本 / **上传视频提炼**(功能A) | 上 | 明确 | **已完成**(第5段补齐)。三个入口都在脚本页空态并排;生成后脚本卡的「来源」徽标能分清是哪个入口出的稿(原先三种都记成「脚本辅助生成」) | | 1.5 | 脚本辅助生成三选栏 | 表现形式 × 视频结构 × 时长;系统按商品信息**推荐默认值 + 保留用户选择权** | 上 | 明确 | **已完成**(第2段)。设定卡改成「表现形式 × 视频结构 × 人物 × 时长」四栏,进卡即带推荐值,每栏下方一句话说明 | | 1.6 | 表现形式选项 | 口播 / 短剧 / Vlog | 上 | 待确认(需求方:选项是否定死/可增删) | **已完成**(第2段)。三个选项前后端共用一份枚举,加一个 = 前后端各加一行 + 补一份套路文档 | | 1.7 | 视频结构选项 | 痛点解决 / 前后对比 / 测评验证 / 场景种草 | 上 | 待确认(同上) | **已完成**(第2段)。同 1.6,可增删 | | 1.8 | 组合联动筛选 | 表现形式为主,视频结构按其筛选,禁矛盾组合(如口播+短剧) | 上 | 待确认(产品:组合规则) | **已完成**(第2段)。表现形式为主筛结构;目前只禁一组「短剧 × 测评验证」(演出来的实测没可信度),要加规则改一张表即可 | | 1.9 | 时长逻辑 | **复用另一平台现成「完全自由 5s 步长 5–60s」实现** + 表现形式推荐默认;后端单镜≤15s 切镜 | 上 | 待确认(开发:可移植/单镜约束) | **已完成**(第2段,并进来一起做了)。总时长 5–60 秒 5 秒一档,单镜 4–15 秒不等长、加总精确等于总时长;写死 15 秒的六处已全打掉,脚本镜时长会同步到视频段(已出片的段不动)。真跑验证:40 秒短剧×痛点 → 5 镜 8/6/10/8/8;15 秒口播×前后对比 → 3 镜 4/7/4 | | 1.10 | 上传脚本 | 仅 docx/txt;平台识别结构后**优化、补齐钩子/卖点证明/转化内容** | 上 | 明确 | **已完成**(第1段)。docx 用标准库在后端拆,没加新依赖;提示词已改为先识别结构、保留原意,再补钩子/卖点证明/转化 | | 1.11 | 上传视频提炼(功能A) | 视频→结构化分镜(对齐画面描述七要素)→**可人工逐镜编辑**→喂脚本。⚠️必须可编辑(AI拆解有5类已知毛病) | 上 | 待确认(客户:是否要"迁移到新商品"步骤) | **已完成**(第5段)。**开工前那句「唯一一条新基建」经核实是高估了**:现在的脚本模型本身就会读图(已实测),拆视频的 ffmpeg 也早就装在后端(第5阶段导出一直在用),真正新写的只有「按时间轴均匀抽帧」这一小段。链路:传视频 → 抽 4–12 帧 → 模型逐镜还原 → **中文分镜稿直接落在输入框里让人改** → 改完才交给脚本 agent 按你自己的商品重写。上限 3 分钟 / 200 MB,整条约 30–60 秒,计一次文本生成的费。**语音转写没做**,理由见下方「第5段」说明 | | 1.12 | 三视图资产:双通道 | **AI 生成 + 用户上传 均保留**;样式调整:单独上传框、取消替换按钮 | 上 | 明确 | **已完成**(第1段)。替换按钮已删,改成「上传三视图」直接选文件;还没图时预览区本身就是虚线上传框 | | 1.13 | 三视图:重新生成入口确认 | 「取消替换按钮」不等于取消「重新生成三视图」能力,需保留生成入口 | 上 | 待确认(开发) | **已完成**(第1段)。开发侧结论:**不受影响**——「AI 重新生成三视图」和「替换」本就是两个独立按钮,删一个不动另一个,预览面板里的「重跑」也在 | | 1.14 | 故事板进页面自动生成 | 不再手动点「开始生成」;**防刷新/返回/切页重复创建** | 上 | 明确 | **暂缓,需先补后端防重复**。这条听起来是「删掉一个手动按钮」,但那个按钮正是目前唯一的防重复措施——后端收到一次请求就新建一次任务、预扣一次积分,本身不检查「这段是不是已经在跑了」。改成进页面自动触发后,用户每刷新一次页面就重新触发一次。前置工作 = 给后端补「已经在跑就不重复建」的判断,对用户不可见,但省掉它这功能不能上线 | | 1.15 | 视频进页面自动生成 | 同 1.14;防重复创建视频任务 | 上 | 明确 | **暂缓,风险高于 1.14**。视频是全流程最贵的一步,而提交侧后端**完全没有**防重复:点两次就是两个任务、扣两份积分。现在只有前端按钮禁用挡着,绕开它(刷新、开两个标签页、点太快)就会重扣。**不补后端就上线 = 用户刷新一次重扣一批**。补法与 1.14 同源,视频优先做 | | 1.16 | 全流程积分消耗展示 | 生成前预估 + 结束后明细。⚠️依赖各环节**计费标准先定清** | 上 | 待确认(PM:计费标准) | **部分完成,余下待 PM**。余额、每步单价、单任务预估、实际扣除、消费流水都已经有了;缺的只是流程级汇总(进条前总预估 + 出片后一次性明细)。⚠️这个汇总**不能让前端把各步单价加起来自己算**:视频按实际时长和用量动态计价,还有重跑次数、团队折扣两步取整,前端算的数跟最后真扣的对不上,用户会觉得平台乱扣钱。得先定清计费口径,再由后端出数 | | 1.17 | 保存模板 | 见模块 5(同一功能) | 下 | — | **已完成**(第7段,见模块 5) | --- ## 模块 2 · 电商脚本内容(并入模块1,内容层) | 编号 | 功能 | 说明 | 分期 | 状态 | 开发进度 | | --- | ------------------ | ---------------------------------- | --- | ------------- | ----------------------------------------------------------------- | | 2.1 | 表现形式 × 视频结构 套路内容沉淀 | 每个(合理)组合对应一份套路:结构骨架、镜头逻辑、钩子/CTA 规则 | 上 | 待确认(PM:内容谁沉淀) | **草稿已落地**(第2段)。3 份表现形式 + 4 份视频结构 + 1 份组合矩阵,共 8 份套路文档已进技能库并生效。**内容质量待 PM / 内容同学过一遍**,改的是 md 文档,不用动代码 | | 2.2 | 电商专家知识 v0.1 → 扩展 | 已有客户 SOP + 益生菌案例打底,扩为多组合 | 上 | 待确认(内容归属) | **已完成**(第2段)。技能库新增「表现形式 × 视频结构」两个维度,按用户所选**只加载对应的两份套路**,不再一次性灌全部提示词 | | 2.3 | 系统按商品信息推荐默认组合 | 品类/人群/卖点 → 推荐表现形式+结构默认值 | 上 | 明确 | **已完成**(第2段)。按品类关键词推荐组合 + 时长(如数码 3C → 口播 × 测评验证 · 30 秒),推荐值可随时改,「重新推荐」可退回 | --- ## 模块 3 · 本地生活(依赖模块1先落地) | 编号 | 功能 | 说明 | 分期 | 状态 | 开发进度 | | --- | ------------- | ----------------------------------- | --- | --------------- | ----------------------------------------------------------------------------- | | 3.1 | 商品库新增「类目」字段 | 电商/本地生活;驱动后续挂 skill 与节点屏蔽。⚠️涉及商品库结构 | 下 | **已完成(第8段)** | **已完成**。新开 `Product.business_type`(`ecommerce` / `local_life`),**没有复用现有「品类」字段**。存量商品默认电商。新建抽屉、详情编辑、商品库筛选都单独有「类目」这一维;选本地生活后品类下拉换成餐饮/丽人/酒店那一套 | | 3.2 | 团购 = 虚拟商品建模 | 无实物商品,沿用主流程 SOP | 下 | **已完成(第8段)** | **已完成**。本地生活允许不传主图也能建(团购没有实物可拍),卖点仍必填。建完照常走「生成视频」进主流程:脚本 → 基础资产 → 故事板 → 出片。脚本提示词会带上「业务类型:本地生活(团购/到店核销,无实物)」,模型按虚拟商品写,不按货架 SKU 写 | | 3.3 | 探店脚本结构 + 镜头语言 | 达人→门店→点餐→试吃→环境→到店核销;探店镜头语言 | 下 | 跳过(等原料) | **跳过**。跟 2.1/2.2 同类:**内容活不是代码活**。没有探店案例和镜头语言稿,硬写一套会把脚本质量钉死在瞎编上。3.2 已经能用现有 SOP 出片;等客户补原料再单独立一段挂 skill | | 3.4 | 本地生活节点屏蔽 | 三视图可跳过、模特上身图入口隐藏(按类目标签自动) | 下 | **已完成(第8段)** | **已完成**。按 `business_type=local_life` 自动:商品库卡不标「缺三视图」;详情页藏「AI 生成三视图」和「模特上身图」;流水线基础资产页三视图按钮换成「无需商品三视图,可直接进入下一步」;模特上身图工作台侧栏也不列出本地生活商品。**不挡进入下一步** | | 3.5 | 是否覆盖图片线(平台套图) | 覆盖则平台清单换(美团/点评/抖音本地生活…) | 下 | 跳过(等 PM) | **跳过**。平台套图入口还在(本地生活也能用现有电商平台清单出图)。要换成美团/点评/抖音本地生活封面规范,得先有各平台尺寸清单和是否覆盖图片线的明确答复,否则会做错一版再推翻 | --- ## 模块 4 · 自由创作打通(相对独立,可并行) | 编号 | 功能 | 说明 | 分期 | 状态 | 开发进度 | | --- | ----------- | ------------------------------------ | --- | --- | --------------------------------------------------------------------- | | 4.1 | 三库接入自由创作 | 商品库/模特库/资产库可 @引用(现状完全不能引用) | 并 | 明确 | **已完成(第6段)**。自由创作页新增「引用平台素材」入口(页头按钮 + 输入条图标),弹窗里三个 tab 切换资产库 / 模特库 / 商品库;商品要先点进商品再挑它的素材;模特卡上直接给「形象图 / 三视图」两个引用按钮。挑中的素材和上传的一样进参考区、支持 @ 引用,首尾帧模式也能用 | | 4.2 | 审核状态跟资产走机制 | 平台生成=已审免审;用户上传=审一次打标记;**避免按库免审架空审核** | 并 | 明确 | **已完成(第6段)**。判断只看素材的「来源」和「审核状态」两个字段,**不看它在不在库里**——按库免审就是架空审核:用户传一张图进资产库、再从自由创作引用出去,整套人像审核就白做了。表现:平台生成的直接可用;用户上传的没审过会显示黄色「待送审」并挡住,卡片上给一个「送审」按钮,审核通过后自动变成可引用。审核中/未通过都有明确文案,不会让用户一脸问号 | | 4.3 | 分步实施 | 资产库先行(最干净)→ 模特库 → 商品库 | 并 | 明确 | **已完成(第6段)**。三个库一次接完。后端只认一种「引用平台素材」,三个库的差别全在挑素材的界面上——以后再加第四个库也不用动后端 | | 4.4 | 存量资产补审核状态标记 | 数据迁移:平台生成批量标已审、用户上传标待审 | 并 | 明确 | **跳过,不需要做**。原计划是跑一次数据迁移给老资产批量打标记,实际不用:4.2 的判断是「按来源实时算」,平台生成的老资产天然免审、用户上传的老资产天然显示「待送审」,不刷数据结论也一样。**少跑一次全表刷新 = 少一个出错的机会**,故不做 | --- ## 模块 5 · 保存模板 / 视频替换(PDF 第9条) | 编号 | 功能 | 说明 | 分期 | 状态 | 开发进度 | | --- | -------------- | --------------------------------------------- | --- | -------------- | ------------------------------------------------------------------ | | 5.1 | 保存模板 | 存带货套路/脚本结构/人物场景风格/镜头节奏/转化方式 | 下 | **已完成(第7段)** | 脚本页底栏加「存为模板」。存的是**套路不是文案**:带货套路(表现形式 × 视频结构)、脚本结构(每镜作用序列 钩子→痛点→卖点→CTA)、镜头节奏(镜数 + 每镜秒数)、人物设定、商品露出方式、结尾转化写法。**旧商品的口播文案一律不进模板**,弹窗里把「会存进去的内容」逐条摊开给用户看,并写明文案不存 | | 5.2 | 换商品重跑 pipeline | 换商品后重做商品理解、卖点适配、资产生成、故事板生成(=满足「视频商品替换」需求,路径②) | 下 | **已完成(第7段)** | 新建项目第 2 步多一个「套路模板(可选)」下拉。选中后**后端按库里的模板回填**表现形式/结构/时长/人物到 `metadata.wizard`(前端只传 template_id,不留两份真相),脚本页设定卡自动带好,生成时把镜序节奏并进提示词。因为是**开新项目**,商品理解、卖点适配、基础资产、故事板全都按新商品重跑一遍,没有走「复制旧项目」的捷径 | | 5.3 | 视频替换预期管理 | 产出为「同套路重出新视频」,非「仅换商品的原片」,需告知用户 | 下 | **已完成(第7段)** | 两处说明,都在用户点下去之前:① 新建项目选中模板时展开模板镜序 + 一句「文案、画面、模特与故事板都会按新商品重新生成 —— 不是把上一条片子换个商品名」;② 脚本页设定卡顶部再提示一次。**客户口径仍需签字前当面对齐**(见文末第 2 条) | | 5.4 | 模板私有 vs 平台公共库 | 公共库价值大但复杂 | 下 | 跳过(等 PM) | **本期只做团队私有模板**,按建议执行。跳过理由:公共库要额外解决审核(谁能上架)、跨团队权限(模板里带的人物/场景设定是不是商业机密)、下架与版本治理三件事,都是产品先定规则、代码才好写的活。私有模板的数据结构已经预留 `team` 维度,将来加公共库=加一个「可见范围」字段,不用推翻重做 | --- ## 明确不做(防蔓延,一并记录) | 项 | 处置 | | ------------- | ------------------ | | 模特库改造 | 独立立项(已备《模特库机制设计》) | | 商品链接解析入库 | backlog(爬虫维护+合规风险) | | 一键白底图 | backlog(定位漂移) | | 视频成片直接替换(路径①) | 不做,用模块5 路径②替代 | --- ## 待确认汇总(按对象,便于对齐) **需求方 / 客户**:1.6/1.7 选项是否可增删 · ~~1.11 是否要迁移到新商品~~(**已按「要迁移」实现**:拆完的分镜稿会自动按当前项目的商品重写,参考视频里的商品/品牌/人物一律不保留;若客户其实想要「原样还原参考片」,回来改一句提示词即可)· 1.11 是否要接语音转写拿原片口播(**当前没接**,理由见第5段) · ~~3.5 是否覆盖图片线~~(**本期不覆盖**:本地生活仍用现有电商平台套图;要换美团/点评/抖音本地生活封面规范,需先给平台清单) · 5.3 替换确切含义 · 3.3 本地生活案例原料 **PM**:2.1/2.2 内容谁沉淀(★最高)· 1.16 计费标准 · ~~3.1 商品库改动排期~~(**已做**:新开 `business_type` 字段,不碰现有品类筛选)· ~~5.4 模板公共化~~(**本期按建议只做团队私有模板**;公共库要先定审核、跨团队权限、下架治理三条规则,规则定了再另立一期,数据结构已预留)· 全局分期 **开发**:1.9 时长现成方案可移植/单镜约束 ~~(已验证可移植,见 1.9 进度栏)~~ · 1.13 三视图重新生成入口 ~~(已确认不受影响)~~ · 4.x 自由创作从0做引用工作量 --- ## 开发分段(「开发进度」列里「第N段」的含义) | 段 | 内容 | 说明 | | ------- | --------------------------------------------------- | ------------------------- | | **第1段** | 脚本入口清扫:1.2 · 1.3 · 1.4(上传脚本部分) · 1.10 · 1.12 · 1.13 | 无前置依赖,纯前端 + 一个小接口。**已完成** | | **第2段** | 表现形式 × 视频结构 + 时长:1.5 · 1.6 · 1.7 · 1.8 · 2.1 · 2.2 · 2.3 · 1.9 · 1.1 | 第3段的时长并进来一起做了(同一排选项,不搭两遍)。**已完成**,2.1 套路内容是草稿,待内容同学过一遍 | | ~~**第3段**~~ | ~~时长自由化:1.9 + 补 1.1 遗留的脚本阶段时长控件~~ | **已并入第2段** | | ~~**第4段**~~ | ~~自动生成 + 积分汇总:1.14 · 1.15 · 1.16~~ | **暂缓**。1.14/1.15 的前置(后端防重复)没做完之前不开工,否则用户刷新一次重扣一批;1.16 等 PM 定计费口径 | | **第5段** | 上传视频提炼:1.11 · 补 1.4 的第三个入口 | **已完成**。原判「唯一一条新基建」偏保守:读图能力和 ffmpeg 都是现成的,实际只新写了抽帧。**两件要跟需求方说清的**:① **没接语音转写** —— 拆解只看画面,口播词只能从画面上的字幕读;带货参考片绝大多数带硬字幕,且口播本来就要按新商品重写,所以先不接。真要原片口播,需另开火山语音识别服务(新凭证 + 新计价,约 1 段工作量)。② **拆解稿是给人改的,不是直接出片** —— 稿子落在输入框里,用户逐镜校对完再点确定;AI 自己会在稿尾列「拆解存疑」提示该重点核对哪几条 | | **第6段** | 自由创作接三库:模块 4 | 独立支线,不碰主流程 → 提前做掉。**已完成**(4.4 数据迁移经判断不需要做,理由见该行) | | **第7段** | 保存模板 + 换商品重跑:模块 5(含 1.17) | **已完成**。5.1/5.2/5.3 做掉,5.4 公共库按建议跳过(只做团队私有)。做法比预想轻:模板存的是「怎么讲」的一页大纲(镜数 / 每镜作用 / 秒数 / 商品露出 / 转化写法),换商品=**照常新建项目**,只是把这页大纲喂给脚本助手,后面商品理解、卖点、资产、故事板全部按新商品正常跑。**一条要跟需求方说清的**:模板里**不存旧商品的口播文案**(存了就会把上一个品牌漏进新片),所以「同套路重出」拿到的是结构一致、文案全新的一条片子 | | **第8段** | 本地生活:模块 3 | **已完成能做的部分**。3.1 新开类目字段、3.2 团购无实物可建、3.4 按类目自动屏蔽三视图/上身图。**3.3 探店镜头语言跳过**(没案例原料)、**3.5 平台套图换清单跳过**(等需求方是否覆盖图片线) | 主链:**第1 → 2 → 6 → 5 → 7 → 8 已全部完成能做的部分**(第3段并入第2段;第4段暂缓,等后端防重复补完 + PM 定计费口径再回来)。剩下的都是卡原料/口径的:2.1/2.2 内容过一遍、3.3 探店案例、3.5 是否覆盖图片线、1.14/1.15/1.16 自动生成。 **模块 1(脚本)除 1.14/1.15/1.16 三条暂缓项外全部做完**;**模块 3(本地生活)工程侧做完**(3.3/3.5 等原料);**模块 4(自由创作)、模块 5(模板 / 换商品重跑)已完成**。 ### ⚠️ 需要跟 PM / 客户提前说清楚的四条(听起来简单、实际有雷) 0. **1.11「画面描述七要素」的具体七项,需求文档里没给**。开发按「下游重拍时最少需要哪些信息」定了这七项,**请需求方比对确认**:① 主体(谁/什么在画面里)② 动作 ③ 场景/环境 ④ 景别(特写/中景/全景)⑤ 运镜(固定/推拉摇移/跟拍)⑥ 光线氛围 ⑦ 商品露出方式(手持/特写/使用中/未出现)。这七项是照着平台脚本已有的字段挑的,**改一项要连着改脚本结构**,所以趁早对齐;纯加一项文字描述则很便宜。 1. **1.14 / 1.15 自动生成** —— 见上,删按钮 = 拆掉唯一的防重复措施,会重复扣积分。**已暂缓**。 2. **5.3 视频替换** —— 客户很可能理解成「原片不动,只把里面的商品换掉」,平台实际能做的是「沿用同一套路,重新生成一条新视频」。这两件事在客户脑子里是一回事,在验收现场是两回事。**代码量很小,说不清楚的代价是整批返工**,务必在签字前对齐。**产品侧已按「同套路重出」实现并在界面上写明**(选模板时、生成前各提示一次),但**口径本身仍要当面跟客户确认**:如果客户坚持要「原片不动只换商品」,那是另一条技术路线(逐帧抠像 + 商品贴合),不在本期范围内,需单独评估。 3. **3.1 商品库「类目」字段** —— **已按建议新开字段**(`business_type` = 电商 / 本地生活),没有塞进现有「品类」。筛选、新建、编辑、节点屏蔽都认这一维。存量商品默认电商,老数据不用迁。 --- *功能清单 v1。与《二期需求整理总纲》配套,随分期与对齐结论更新。*