Paper Reading · arXiv:2403.12035v1

修补视频,
还要让运动成立

CoCoCo 把文本引导视频修补拆成三项工程问题:跨帧运动一致性、文本与区域的可控对应,以及个性化 Text-to-Image 模型与九通道修补 UNet 的兼容。

23 页(正文 15 页,参考文献与附录至第 23 页)2024-03-18WebVid-10MStable Diffusion Inpainting 1.5离线 MathJax 3

论文身份与证据状态

论文 PDF、arXiv 条目和项目主页一致给出九位作者。PDF 首页以星号明确标记 Xianbiao Qi 为通讯作者,第一作者是 Bojia Zi。

正式信息

标题:CoCoCo: Improving Text-Guided Video Inpainting for Better Consistency, Controllability and Compatibility

作者:Bojia Zi, Shihao Zhao, Xianbiao Qi, Jianan Wang, Yukai Shi, Qianyu Chen, Bin Liang, Kam-Fai Wong, Lei Zhang

机构:CUHK、HKU、Tsinghua、IDEA

版本:arXiv v1;没有在论文或 arXiv 页面声明正式会议。

来源冲突

项目主页 Citation 区把编号写成 2403.12305,并在标题中多出 “blue”;当前 GitHub README 的页面作者行还多出 Rong Xiao。论文 PDF、arXiv 元数据与仓库 BibTeX 均支持 2403.12035 及九位作者,因此本页以这三处一致证据为准。

PDF SHA-256:3D9D0311876FF058F620EF0E0B24FECDCD672F92DACD6F0FD02DC9A720F2280A

Paper verified正文实验证明 CoCoCo 在给定评测协议下取得最低背景误差 BP 6.2 和最高相邻帧特征相似度 TC 97.2;用户研究的四项选择率也均为最高。
Author claim作者把 TC 提升解释为更好的运动一致性。该指标只比较相邻帧 CLIP 特征余弦相似度,高值也可能偏好静态内容,因此它不能单独证明真实运动更合理。

研究问题:修补区域必须同时服从三种约束

输入是一段视频、每帧掩码和文本描述;输出是在掩码内生成动态内容、在掩码外尽量保留原视频的完整视频。困难来自时间、语义和模型结构三个方向。

01

一致性

仅沿时间轴做 attention 时,同一空间位置能看见其他帧,却看不见其他空间位置。修补对象的运动容易脱离周围背景和相邻区域。

02

可控性

随机掩码可能没有覆盖 caption 中的对象,或者只覆盖对象的一部分。训练信号会把文本与无关区域配对。

03

兼容性

生成模型只接收四通道噪声 latent;修补模型接收四通道噪声 latent、四通道 masked latent 和一通道 mask,共九通道,参数形状无法直接替换。

形式化输入输出

  • 视频 \(v^{1:f}\in\mathbb{R}^{f\times c\times w\times h}\),\(f\) 是帧数。
  • 二值掩码 \(m^{1:f}\),论文写 \(v_m^{1:f}=v^{1:f}\odot m^{1:f}\)。掩码的前景取值方向在正文中没有额外定义,复现时应以实现预处理为准。
  • 文本提示 \(y\),经 CLIP text encoder 得到 \(c_\theta(y)\)。
  • 模型输出噪声预测 \(\epsilon_\theta\),DDIM 反向采样还原 latent,再由 VAE decoder 得到修补视频。

完整流程

单场景视频
与 caption
Grounding DINO
对象框与 phrase
三类掩码/文本
概率采样
VAE 编码
九通道条件
冻结空间 UNet
训练 motion modules
DDIM 50 步
CFG 引导
VAE 解码
修补视频
CoCoCo 官方仓库中的模型结构图
Figure 2 · Overall framework. 官方仓库图像。三路输入进入 latent UNet;可训练 motion capture module 插入冻结的图像修补模块;上方展示个性化 T2I 参数转换。

Motion Capture Module

每个 motion block 顺序包含两层 Temporal Self-Attention、一层 Damped Global Attention(DGA)和一层 Textual Cross-Attention。前两层继承 AnimateDiff v2;DGA 与文本 cross-attention 使用 Kaiming 初始化,四层采用相同学习率训练。

Temporal attention 将每个空间坐标独立处理,只让长度为 \(f\) 的帧序列互相注意。DGA 先把空间分辨率从 \(w_1\times h_1\) 缩小到 \(w'_1\times h'_1\),再把帧和空间展平成长度 \(L=fw'_1h'_1\) 的序列进行 self-attention。这样能在降低注意力规模的同时传播跨空间、跨时间的信息。

[Figure 3 Placeholder] Temporal Attention 与 Damped Global Attention

原图用虚线表示可互相注意的位置:Temporal Attention 只连接相同空间坐标的多帧 token;DGA 连接缩小后所有帧、所有位置。PDF Figure 3 为关键结构示意,当前单文件使用文字与公式完整重建其含义。

文本 Cross-Attention

DGA 的缩小视觉 token 作为 query,文本 embedding 作为 key/value。论文声称这一做法把 attention map 从 \((fw_1h_1l_{\mathrm{text}})^2\) 降到 \((fl_{\mathrm{text}})^2\)。这里的复杂度描述写法不够严谨:标准 cross-attention 的权重矩阵一般为 query 数量乘 key 数量,并不整体平方;读者应把它理解为缩小空间 token 带来的内存下降方向,不能把该表达式当作严格复杂度推导。

Instance-aware Region Selection

  1. SceneDetect 阈值 20,只保留单场景视频,减少一个训练 clip 跨镜头的问题。
  2. 第一帧由 Grounding DINO 依据 caption 检测 phrase 和 bounding box。
  3. 后续帧固定第一帧识别出的 TokenSpan,以同一个 phrase 寻找对应区域,避免同一对象在不同帧返回不同短语。
  4. 用随机形状 mask 覆盖检测框,形成跨帧对象相关的 precise mask。
  5. 训练时以 0.7 / 0.2 / 0.1 采样 precise-mask clip、random-mask clip、null-prompt clip。null prompt 对应 classifier-free guidance 的无条件分支。
[Figure 4 Placeholder] Instance-aware pipeline

原论文 Figure 4 展示第一帧检测、TokenSpan 固定 phrase、逐帧 bounding box、随机形状遮罩,以及 precise / random / null 三类训练样本的概率分支。

个性化 T2I 转换

CoCoCo 官方仓库中的 task-vector 转换示意图
Figure 5 · Task-vector transformation. 官方仓库图像。先把四通道生成模型输入层零填充到九通道,再从共同 base 分离 inpainting 与 personalized 两个参数差分。

作者观察到 SD 生成模型与修补模型的大部分中深层参数余弦相似度超过 0.95,主要差异集中在浅层和输出层。该观察提供了参数算术可行的经验解释。转换过程不需要为每个个性化模型重新训练 CoCoCo。

数学表示逐式解释

1. 两个 task vector

\[ \tau_{\mathrm{ip}}=\theta_{\mathrm{ip}}-\theta_{\mathrm{base}},\qquad \tau_p=\theta_p-\theta_{\mathrm{base}} \]

\(\theta_{\mathrm{base}}\) 是输入层从四通道零填充至九通道的 SD 1.5 生成模型;\(\theta_{\mathrm{ip}}\) 是 SD Inpainting 1.5;\(\theta_p\) 是同一 base 上的个性化 T2I。两个差分分别编码“修补能力”和“个性化外观”。

2. 参数组合

\[ \theta_{\mathrm{new}}=\theta_{\mathrm{base}}+\alpha\tau_{\mathrm{ip}}+\beta\tau_p \]

\(\alpha\) 控制修补任务差分,\(\beta\) 控制个性化差分。论文建议 \(\alpha\in[0.5,1.5]\)、\(\beta\in[1,2]\),Appendix Figure 10 显示较大的两者会让模型失效;\(\alpha=0\) 会退化为生成模型,较小 \(\beta\) 则更像普通修补模型。此范围来自经验扫描,没有提供自动选择方法。

3. 前向扩散

\[ z_t^{1:f}=\sqrt{\bar{\alpha}_t}\,z_0^{1:f}+\sqrt{1-\bar{\alpha}_t}\,\epsilon^{1:f}, \qquad \epsilon^{1:f}\sim\mathcal{N}(0,I) \]

VAE 对每帧编码得到 \(z_0^{1:f}\)。调度器在时间步 \(t\) 以 \(\bar{\alpha}_t\) 混合信号与高斯噪声,得到 UNet 需要去噪的 \(z_t^{1:f}\)。

4. 噪声预测目标

\[ \mathcal{L}=\mathbb{E}\left[ \left\lVert\epsilon^{1:f}-\epsilon_\theta\!\left(z_t^{1:f},\bar{m},z_{0,m}^{1:f},t,c_\theta(y)\right)\right\rVert_2^2 \right] \]

\(\bar{m}\) 是缩放到 latent 分辨率的掩码,\(z_{0,m}^{1:f}=\mathcal{E}(v_m^{1:f})\) 是 masked video latent。UNet 同时接收噪声 latent、mask、masked latent、时间步和文本条件,预测当初加入的 \(\epsilon^{1:f}\)。训练只更新 motion modules;图像修补空间模块保持冻结。

5. Attention 张量变换

\[ \mathbb{R}^{b\times f\times c\times w_1\times h_1} \rightarrow \mathbb{R}^{b\times(fw'_1h'_1)\times c} \xrightarrow{\mathrm{SelfAttention}} \mathbb{R}^{b\times(fw'_1h'_1)\times c} \rightarrow \mathbb{R}^{b\times f\times c\times w_1\times h_1} \]

这条式子把论文排版破碎的 DGA 公式重写为浏览器安全形式。它说明 resize 直接控制 self-attention 的 token 数;论文没有给出 \(w'_1,h'_1\) 的具体比例,官方配置以 Temporal_Light_down_resize 命名对应模块。

训练、数据与推理设置

阶段项目论文给出的设置缺失或边界
数据来源WebVid-10M,超过一千万组 Shutterstock 文本—视频对过滤后实际数量、训练/验证切分版本未给出
清洗SceneDetectthreshold = 20;只保留单场景视频没有报告误检率与剩余样本比例
检测Grounding DINO396×512;box 与 phrase threshold 均为 0.2具体 checkpoint 未给出
采样clip16 帧;sample stride 4;分辨率 256×384裁剪、缩放、帧率处理未说明
优化AdamW学习率 \(10^{-4}\),constant scheduler,一个 epoch,有效 batch size 256,gradient accumulation,mixed precisionGPU 数量、micro-batch、betas、weight decay、warmup、训练时长未给出
扩散DDPM1000 个训练时间步代码配置给出 linear beta 0.00085→0.012;论文正文没有这一细节
初始化空间 / 时间SD Inpainting 1.5 空间模块冻结;AnimateDiff v2 初始化两层 temporal attention;DGA 与 text cross-attention 使用 Kaiming参数量与 checkpoint 精确版本未给出
推理DDIM50 步,CFG 14;RTX 3090 上 1 分钟内完成论文没有给出输入视频长度与耗时测量细节
mask来源用户绘制,或 Grounding DINO、CoTracker2、XMem、SAM 自动获得mask 传播组合方案没有统一协议
Paper vs. implementation固定提交 9ebe984cf1148470ec67b26e2781e05285f1512b 的验证脚本确实使用 DDIM 50 步;命令行参数默认 CFG 20,README 基础示例写 CFG 10,论文报告 CFG 14。官方仓库 README 仍写“training code is under preparation”,所以当前公开材料无法完整复现训练。

公开推理结构核对

configs/code_release.yaml 列出四个 attention block:Temporal_Self、Temporal_Self、Temporal_Light_down_resize、Temporal_Text_Cross,与论文方法结构一致;motion modules 插入分辨率 1、2、4、8 以及 middle block。调度器为 1000 时间步、linear beta,推理脚本固定 50 步。

实验真正证明了什么

测试从 WebVid-10M validation 随机抽 1000 段视频,每段取前 16 帧、步幅 4;作者随机生成 mask 与 prompt。AnimateDiffV3 和 VideoCrafter2 通过 zero-shot inpainting 使用;VideoComposer 使用其文本引导修补模块。投稿时 AVID 未开源,因此主表没有 AVID 数字。

Table 1 · 主结果(完整重建)

方法定量结果用户研究选择率
CS ↑BP ↓TC ↑VQ ↑TA ↑TC ↑BP ↑
AnimateDiffV3* [20]25.37.296.714.620.812.525.0
VideoCrafter2* [10]26.27.896.82.18.32.16.2
VideoComposer [52]19.821.796.512.516.729.24.2
CoCoCo24.96.297.272.954.256.264.6

* 表示 zero-shot inpainting。CS 是修补区域与文本的 CLIP score;BP 是掩码外像素的 L1 差异,范围 0–255,越低越好;定量 TC 是相邻帧 CLIP feature cosine similarity。用户研究四列是被选为最佳的比例。论文没有披露参与者数量、每位参与者比较的视频数、随机化流程、显著性检验与置信区间。 原稿 VQ 列四行数值合计为 102.1%,正文没有解释这一差异;此处保留原始数值,不据此反推参与人数或归一化概率。

24.9

CoCoCo 的 CLIP Score 为 24.9,比 AnimateDiffV3 低 0.4,比 VideoCrafter2 低 1.3;自动文本一致性指标没有取得最高值。

6.2

背景 L1 最低,相比 VideoComposer 的 21.7 降低 15.5,说明冻结空间修补先验与训练设计更能保护掩码外区域。

97.2

相邻帧 CLIP 相似度最高,但四种方法只差 0.4–0.7 个点,必须结合用户观察和动态样例判断实际意义。

[Figure 6 Placeholder] 与 VideoComposer、VideoCrafter2、AnimateDiffV3 的可视比较

论文展示黄色狗摇头、小女孩换装与黑车三个案例。VideoComposer 的背景变化明显;两种 zero-shot baseline 难以保持掩码内外一致;CoCoCo 的边界和整体运动更协调。动画信息无法由静态 PDF 完整保留。

Table 2 · 消融(完整重建)

设置CS ↑BP ↓TC ↑
w/o MCB & IRS21.68.396.3
w/o MCB23.68.696.8
CoCoCo24.96.297.2

从第一行到第二行只加入 IRS:CS +2.0、TC +0.5,但 BP 变差 0.3。第二行到完整模型加入整个 MCB 改造:CS +1.3、BP 改善 2.4、TC +0.4。这个实验支持 IRS 有助于文本—区域对应,也支持完整 MCB 有助于背景与时间一致性。

证据限制MCB 同时加入 DGA 和文本 cross-attention,论文没有分别移除两者;因此无法从 Table 2 判断 DGA 与 text cross-attention 各自贡献多少。作者正文有一句把第二个设置写成“without using instance-aware region selection”,与实验定义冲突,应理解为 “without MCB”。

Table 3 · CoCoCo 与 AVID 的结构差异(完整重建)

分组子项AVIDCoCoCo
Data processingVideo clipRandomKeep in one scene
Training maskrandomInstance-aware + random
Motion capture moduleAttn types2× Temp attn2× Temp attn
1× DG attn
1× Cross attn
Text encoderNoneCLIP text encoder
Transformation strategy—✕✓
Sparse control—✓✓

Appendix Table 3 主要是设计对照,没有给 AVID 同协议数值。项目主页后来展示了若干 CoCoCo 与 AVID 同样例结果,但页面仍没有定量表,因此主论文“优于 counterparts”的范围应限定在 Table 1 三个 baseline。

附录带来的额外信息

Figure 9 · 参数相似度

作者比较生成模型和修补模型六类层:conv、query、key、value、output projection、FFN。多数中间层 cosine similarity 超过 0.95,差异更集中于浅层和输出层。该观察解释 task-vector 组合为何有可能工作,但没有建立参数相似度与生成质量之间的因果关系。

Figure 10 · 参数敏感性

以 Counterfeit V3.0 和 SD Inpainting 1.5 扫描 \(\alpha,\beta\)。较低 \(\alpha\) 会略改背景;较大 \(\beta\) 增强 checkpoint 风格;两者过高会失效。论文只提供可视网格,没有自动指标曲线。

Figure 11 · 任务范围

额外案例覆盖 uncropping、retexturing 和 swapping。uncropping 使用 AnimateDiff V3 的 sparse control 引导细节,说明模型能组合外部控制模块。

动态图限制

PDF 使用可点击动画注释,静态提取只能看到代表帧。运动一致性主张需要在 Acrobat 或项目页观看完整 clip;单帧图无法验证抖动、速度与身份漂移。

Reviewer 视角

优点

  • 三个痛点对应三个具体模块,方法动机清楚,且都能接入已有 latent diffusion UNet。
  • IRS 直接修复 caption 与 mask 错配这一训练数据问题,成本低于重新标注完整分割数据。
  • 冻结空间模块、只训练 motion module,保留 SD 修补能力并降低训练参数量。
  • task-vector 转换把大量社区 T2I checkpoint 带入视频修补,不需要逐模型训练。
  • 主表同时测文本、背景、时间和用户偏好,避免只用单一 CLIP score。

缺点

  • 没有训练代码、训练硬件、过滤后数据量、参数量、训练时间和完整优化器设置,复现闭环不完整。
  • 用户研究缺少样本量、协议和统计检验;选择率的可信区间无法判断。
  • TC 指标可能奖励静止结果;缺少 optical flow、tracking consistency 或运动幅度控制。
  • 消融把 DGA 与 text cross-attention 合并,无法识别单个组件贡献。
  • 没有与 AVID 做同协议定量比较,Appendix 只比较设计。
  • 1000 个测试视频来自 WebVid-10M validation,与训练数据同源;跨数据集、真实用户 mask 与长视频泛化没有验证。
  • Grounding DINO phrase 与 box 误差会直接污染训练,论文没有分析检测失败案例。

可以形成后续工作的方向

  1. 执行感知 mask curriculum:记录 detector confidence、object visibility 和 mask coverage,在训练中对失败 frame 降权,避免错误 box 被当作精确监督。
  2. 可分解的时空模块:分别消融 DGA、text cross-attention、resize 比例和插入层级,以 motion-aware metric 分析每个模块。
  3. 长视频记忆:官方实现用 sliding window 支持任意长度,研究中可加入跨窗口 key/value memory 与重叠区一致性损失。
  4. 自动 task-vector 系数:根据背景保持、prompt 对齐和个性化身份三个目标,在测试时搜索 \(\alpha,\beta\),并用失败检测器拒绝参数组合。
  5. 三维引导:把深度、相机轨迹、3D track 或 scene flow 作为 sparse control,约束修补对象与镜头运动、遮挡关系和反射保持一致。
Our interpretationCoCoCo 最有价值的思想是把视频修补质量拆成“数据配对质量、时空信息流、模型能力组合”三层。每层都有可独立替换的接口,因此后续研究可以在不重训完整图像生成器的情况下改进检测、时间建模或个性化。
Research extension对程序化材质或 3D 内容生成,可借用同样的 task-vector 思路组合基础生成能力与局部编辑能力;该迁移仍是研究设想,CoCoCo 没有在材质、3D 或可执行图结构上验证。

复现清单与已知不确定项

能够依据公开材料确定

  • 模型基础:SD Inpainting 1.5 + AnimateDiff v2 motion 初始化。
  • 四层 motion block 类型及插入分辨率。
  • DDPM 1000 步训练、DDIM 50 步推理。
  • 视频尺寸、帧数、步幅、三类样本概率。
  • Grounding DINO 输入尺寸和阈值。
  • AdamW、学习率、scheduler、epoch、有效 batch size。
  • 公开推理脚本、checkpoint 入口、SAM2 demo 与个性化转换脚本。

公开材料仍然缺失

  • 训练代码与最终训练配置。
  • WebVid 过滤后的精确清单和样本数。
  • GPU 数量、训练时长、随机种子与 micro-batch。
  • AdamW betas、weight decay、gradient clipping。
  • DGA resize 的论文级精确比例说明。
  • 评测 prompt 与 mask 的生成代码。
  • 用户研究的参与者与显著性统计。
  • 各 personalized checkpoint 对应的 \(\alpha,\beta\) 完整记录。

实际推理顺序

  1. 准备 RGB frame 数组与同长度 mask;mask 可人工绘制或由 SAM2 等工具传播。
  2. 载入 SD Inpainting 1.5 的 tokenizer、text encoder、VAE、九通道 UNet。
  3. 载入 CoCoCo 的四组 motion module 权重。
  4. 可选:把 T2I checkpoint / LoRA 转为参数差分,并按系数写入 UNet、text encoder、VAE。
  5. 把 masked video latent、mask 和随机噪声 latent 拼接为九通道 UNet 条件。
  6. 执行 50 步 DDIM 与 classifier-free guidance。
  7. VAE 解码后组合输出视频;长视频由仓库 sliding-window 功能处理,论文正文没有给窗口边界协议。

References

  1. Zi et al. CoCoCo, arXiv:2403.12035v1 — 标题、作者、提交日期、版本与摘要。
  2. CoCoCo 官方项目页 — 动态案例、模块说明、作者与通讯标记;Citation 区含已注明的编号错误。
  3. CoCoCo 官方代码仓库 — 推理代码、配置、checkpoint 入口、SAM2 demo 与 task-vector 转换。
  4. AVID: Any-Length Video Inpainting with Diffusion Model — 论文主要视频修补参照。
  5. AnimateDiff — temporal motion module 初始化与个性化 T2I 兼容基础。
  6. Task Arithmetic — 参数差分组合思想来源。