分镜先通过 Shot Contract 与 Prompt Linter,再进入付费生成
Pi StoryLab
先看两种故事结局
再看 Agent 如何保证生产可靠
两条 60 秒 A/B 成片置顶播放;下方分别展示 25 秒 Agent 技术证据、四类局部审核案例,以及 38 个单动作镜头的 v5 终版生产架构。
失败按错误码返回对应节点,不重跑整条工作流
CPU 指标与 VLM 语义审核共同决定镜头是否通过
Reflection 检索历史失败经验,只修正当前镜头
生成、审核、复用和返工都有可追溯的成本与延迟
两条独立 A/B 剧情成片
《二周目的放课后》A/B 双结局成片
两条 60 秒成片共享前 51 秒,只在结尾表达不同选择;含调色、字幕、配音、音乐与场景音。
悠真再次完成所有正确答案,人生结构没有改变。
悠真允许不完美,并第一次保留自己的选择。
当前可播放版基于 v4 已审核资产;不冒充尚未生成完毕的 v5 38 镜头终版。
v5 终版生产架构
共享主线只生成一次,A/B 只生产各自结尾
00:00–00:47 · A/B 复用 100%
继续成为标准答案
选择无人夸奖的答案
- 01反常钩子
- 02上一次的人生
- 03时光瓶与穿越
- 04摆烂失败
- 05新评分表
- 06未央看穿
- 07A · 标准答案
- 08B · 自主选择
场景音、声音桥与动作匹配
- 列车
- 蝉鸣
- 走廊
- 快门
- 舞台
- J-cut / L-cut
- 声音桥
- 动作匹配
视频模型只负责干净底片
- 生成干净底片
- 预留空白区域
- 记录 ROI 与蒙版
- 生成透明特效层
- FFmpeg 合成
时光瓶通知 · 相机屏幕 · 玻璃倒影 · 监控墙 均在视频审核通过后合成。
Agent 技术闭环主片
25 秒看完预测、审核、Reflection 与局部返工
主片只使用 8 个 v2 原生 720P 入选镜头,并把 Agent 节点、错误码、路由与复用指标直接叠加到证据画面。
本轮关键决策
- 保留 7 个已通过镜头
- 只重写 AL04_GRIP_GUITAR
- 重生成后重新进入 CPU + VLM 双审核
- Story Agent因果与目标→
- Shot Contract结构化交接→
- Prompt Linter生成前拦截→
- Cost Router三候选路由→
- Generate24 × 720P→
- CPU + VLM14 通过→
- Reflection失败记忆→
- Local Retry只返工 1/8→
- Compose25 秒交付
prompt_linter→shot_contractACTION_OVERLOAD → 重写当前 Contractdual_review→reflectionEXTRA_PERSON / MOTION_MISSING → 读取失败记忆reflection→local_retry新 Motion Profile → 只返工当前镜头local_retry→dual_review重生成结果 → 再次双审核
- 1Story Agent锁定目标与因果
- 2Shot Contract8 个单动作镜头
- 3Prompt Linter拦截 3 类生成前风险
- 4Cost Router24 个原生 720P 候选
- 5CPU + VLM14 个候选通过
- 6Reflection失败码命中局部路由
- 7Local Retry只返工失败镜头
- 8Compose25 秒主片交付
指标范围:24 个 v2 原生 720P 候选;CPU 与 VLM 双审核;8 个镜头逐镜头人工确认后合成。
四个局部审核案例
失败码必须绑定视频证据、测量值与返工路由
生成前风险与生成后失败分开呈现;自动标签只用于审核路由,不冒充人工训练真值。
EXTRA_PERSON生成后审核人物数量与 Shot Contract 不一致
CPU 指标未报错,VLM 在语义层发现人物数量和起始状态不符合 Contract;只替换当前镜头。
- CPU: pass
- VLM: EXTRA_PERSON
- 复用 7 / 8 镜头
clean_first_frame_then_retry_same_shotMOTION_MISSING生成后审核画面稳定,但指定动作没有发生
balanced 候选重复帧率偏高且试卷未移动;Reflection 切换 motion_plus 后,动作完成并保持结束姿态。
- 首轮重复帧率 95%
- VLM: MOTION_MISSING
- motion_plus: accepted
motion_plus_same_shotSUBJECT_SCALE_JUMP生成前 + 生成后固定机位先约束尺度,再用测量验证
Prompt Linter 在付费生成前阻断会引发尺度跳变的机位变化;通过候选继续接受 CPU 主体面积测量。
- 生成前:SUBJECT_SCALE_JUMP blocked
- 生成后:主体面积变化 12.1%
- 阈值:≤ 30%
lock_camera_reduce_motionACTION_OVERLOAD生成前审核六个动作不进入一次付费生成
关试卷、推合同、拿吉他、起身、转身、离场被判定为动作过载;Reflection 只重写当前 Contract。
- 原 Contract:6 个动作
- 安全改写:3 个单动作镜头
- 付费生成前阻断
split_into_three_single_action_shots底层可靠性 · #7053
镜头完成即持久化,中断后只恢复真正缺失的结果
并行工具结果在完成时写入恢复点,公开事件仍保持源码顺序。GPU Worker 断线或任务重启时,不会重复计算已经完成的镜头。