Four-Slot
Reference Memory
面向视频播客生成的固定四槽视觉记忆结构:Environment、Person A、Person B、Person C 各自占据完整、等长、可寻址的 Reference Bank,并通过 Caption 中的普通 View 标签引导镜头选择。
不再要求 DiT 同时理解 Sheet 版式、局部 crop、人物绑定和身份迁移;Reference 选择直接成为标准 attention 路由问题。
四个完整、对称的 Reference Bank
每张1280×704参考图独立经过单图 causal VAE 编码和 patchify,得到880个视觉 token。四个槽位共享同一个时间线外位置 t=-1;目标视频不再整体平移,严格保持预训练的原生 RoPE 时间,从 t=0 开始。
为什么四个 Bank 都是 t=-1
这四张图是并列的可查询记忆,并不是目标视频之前依次发生的四帧。若排列成 −4/−3/−2/−1,会无意中让 Person C 永远最接近 Target、Environment 永远最远,产生与语义无关的 RoPE 距离偏置。共享 t=-1 后,四个 Bank 与 Target 的时间关系完全对称,地址只由 eslot 决定。
RoPE 主要编码相对位置,因此 Δφ(−1,0)=Δφ(0,1):仅靠 t=-1,模型仍可能把 Reference 理解成普通历史帧。eis-ref 明确标记“这是参考记忆”,eslot 再区分 Environment 与 Person A/B/C。LTX 的位置只进入连续 sin/cos RoPE,没有非负查表或 clamp,负坐标可直接使用。
人物图必须分别编码为一张独立图片,不能合成四帧后进入 causal VAE。后者会在时间维混合互不相关的参考图,也不符合标准8n+1像素帧结构。
缺失也保持一个完整 Memory Bank
缺少 Environment 或 Person C 时仍保留880个 token,以保证四个 Bank 在 attention 中拥有相同键数量、相同空间坐标和相同 softmax 先验。缺失状态不能来自黑色图片,因为黑图仍是有视觉语义的有效图像。
会携带黑色画面、边缘、VAE bias 等视觉内容,模型可能把它当作背景条件。
880个无视觉内容的 learned tokens,加上固定槽位和 missing-state embedding。
如果某个 Bank 只有一个缺失 token、另一个有880个视觉 key,即使单个 logit 相同,softmax 总质量也会受 key 数量影响。等长 Bank 消除了这种非语义偏置。
让人物选择成为标准 Attention
目标视频 token 不再从一张复杂 Sheet 中定位局部,而是面对四个完整的视觉键值库。共享 eis-ref 把它们与正常视频帧分开,槽位 embedding 再让每组 key 线性可分;模型仍可同时参考人物、环境和多个出镜人物。
[View: Person A]Q(Gₜ | text context)K(Person A + e_is-ref + e_A)这里不使用硬 one-hot 路由。单人镜头可以集中注意 Person A;双人镜头可以同时关注 A/B;所有人物镜头仍能持续读取 Environment Bank。
View 标签保持为普通 Caption 文本
保留数据中的 [View: Person A/B/C],但不把它编译成专用 control token,不引入 U·eslot 投影,也不在 text hidden 中手工注入 Reference slot embedding。它与其他镜头描述、人物对白一样进入现有文本编码器和 video→text cross-attention。
[View: Person A] [Person A] 这个我觉得还是可能会有点早吧……
[View: Person A + Person B] [Person A] 我们可以从另一个角度来理解。
模型通过现有 cross-attention 学习普通文本中的 Person A/B/C 含义,再通过 video self-attention 读取带 eslot 的对应 Reference Bank。这保留了清晰监督,同时避免新增文本侧参数、checkpoint 契约和训练/推理分支。
Reference 侧的 eis-ref + eslot 是解决视觉记忆歧义所必需的;文本侧先沿用基础模型已经具备的普通 Caption 条件能力。只有消融证明普通 View 标签形成明确瓶颈时,才考虑额外的结构化绑定。
10%静音削弱声纹捷径
以样本为单位将输入音频替换为等长度数字静音,保留完整 audio token 形状。模型在这些样本上不能通过声纹猜人物,只能依据 Caption 中的 View 标签和 Reference Bank 完成选择。
同一期节目内仍需随机交换人物进入 A/B/C 的槽位,并同步重写人物描述、[Person X] 和全部 [View: Person X];否则模型仍可能记忆固定声纹与固定槽位。
建议的完整训练协议
- 独立编码环境和每个人物分别编码为一个完整的单图 causal latent frame。
- 原生 Target 时间线四个880-token Bank 全部位于 t=-1;Target 保持预训练原生位置,从 t=0 开始。
- 两级类型编码所有 Bank 共享 eis-ref,并分别叠加 Environment/A/B/C 的 eslot。
- 显式状态真实图使用 present embedding,缺失图使用完整 learned NULL Bank。
- 原子换位人物 latent、描述、说话人和 View 标签同步执行 A/B/C permutation。
- 普通 View Caption保留 [View: Person X] 文本标签,但不增加专用 control token 或 slot 投影。
- 声音 Dropout10%概率使用等长数字静音,不能删除 audio modality。
- First Frame保持极低出现率,防止模型绕过 Reference Memory。
- Loss Contract所有 Reference/NULL tokens 均 sigma=0、loss_mask=0,仅 Target 计算 loss。
| Token group | Content | Slot signal | RoPE time | Loss |
|---|---|---|---|---|
| Environment | Visual or NULL Bank | eis-ref + eenv + state | −1 | 0 |
| Person A | Visual Bank | eis-ref + eA + present | −1 | 0 |
| Person B | Visual Bank | eis-ref + eB + present | −1 | 0 |
| Person C | Visual or NULL Bank | eis-ref + eC + state | −1 | 0 |
| Target video | Noisy generation tokens | 0 | ≥0(原生) | Flow matching |
先证明路由,再扩大训练
上一个实验在3,600步后仍未建立稳定人物绑定,因此新结构不应只依靠总 loss 判断。正式32卡长跑前,先用短视频和未见人物验证槽位选择。
| Experiment | Question | Expected evidence |
|---|---|---|
| Single-sample overfit | 四槽结构和 loss 是否正确 | 1秒目标视频可稳定复现指定人物 |
| RoPE contract | 是否真正保留预训练时间线 | Target positions 与基础管线逐元素相等;Reference 恰为 [−1/24,0),且训练/推理一致 |
| A/B permutation | 模型是否读取槽位而非记忆身份 | 换图并改标签后,出镜人物同步交换 |
| Silent audio | 是否仍通过声纹绕过 | 静音条件下 View 遵循率接近正常音频 |
| Unseen identities | 是否学会通用 Reference reader | 未见人脸的指定槽位准确率持续上升 |
| Multi-person View | 是否支持软组合 | A+B 镜头同时保留两人身份 |
| NULL Bank | 缺失槽位是否产生污染 | 不生成黑背景或虚构 Person C |
Reference 是可寻址的视觉记忆,不是历史视频。
四个等长 Bank 提供固定拓扑,t=-1 将它们放在目标时间线之外,eis-ref 提供类型,slot embedding 提供地址,普通 Caption View 标签提供查询意图,现有 attention 完成选择与组合。
Reference 共享 t=-1,Target 原生从 t=0 开始
eis-ref 区分参考/视频,eslot 区分四槽
人物、环境、多人镜头可以同时读取
人物换位 + 10%静音 + 极低 First Frame