InstructMove: 观看视频如何教会 AI 执行复杂的图像编辑

近年来,文本到图像生成领域呈现爆炸式增长。我们现在可以通过一个简单的句子变幻出超写实的场景。然而,一个巨大的挑战依然存在: 编辑 。 一旦图像生成完毕 (或者你有一张真实照片) ,如何在不破坏图像其他部分身份特征的前提下,改变特定的元素——比如让一个人微笑或旋转一辆车?

当前最先进的方法通常依赖于合成数据集。它们使用 AI 生成的图像与 AI 生成的指令配对来训练模型。虽然这种方法对于风格迁移或添加新物体很有效,但在被要求执行“非刚性”编辑时——即涉及复杂物理运动的变化,如狗转头或人改变姿势——效果往往大打折扣。

在这篇文章中,我们将深入探讨 InstructMove , 这篇研究论文提出了一个令人耳目一新的解决方案: AI 不应从合成数据中学习,而应通过观看真实视频来学习。通过观察事物在视频片段中如何自然移动和改变视角,模型学会了执行以前的模型无法处理的复杂、逼真的操作。

展示姿势变化、表情变化和相机移动的基于指令的图像操作示例。

如图 1 所示,该模型擅长那些需要理解 3D 几何和语义的任务,例如“低下的马头 (Lower the horse’s head) ”或“将视图更改为侧面 (Change the view to the side) ”,同时完美地保持主体的身份特征。

合成训练数据的问题

要训练一个 AI 编辑图像,你需要海量的“三元组 (triplets) ”数据集:

  1. 源图像 (Source Image) : 原始照片。
  2. 指令 (Instruction) : 告诉 AI 做什么的文本 (例如,“让猫睡觉”) 。
  3. 目标图像 (Target Image) : 编辑后的结果。

大规模获取这些三元组非常困难。你不可能在光照条件完全相同的情况下,分别拍摄一只猫醒着和睡着时的照片,而不改变背景或让猫跑掉。

由于收集真实数据很困难,研究人员转向了合成数据。像 InstructPix2Pix 这样的模型利用其他 AI 模型 (如 GPT-3 和 Stable Diffusion) 来引导生成这些三元组。虽然这是一个突破,但它引入了“合成上限 (synthetic ceiling) ”。

现有方法 (如 InstructPix2Pix 和 MagicBrush) 的编辑失败案例对比。

如图 2 所示,在合成数据上训练的模型难以实现真实感。当被要求“把玩具的腿并拢”时,现有的方法通常会产生幻觉伪影、无法正确移动物体,或者只是模糊细节。这是因为训练数据本身缺乏真实世界的自然动态。合成数据通常是静态的或在风格上一致,缺乏现实中存在的复杂物理变换。

核心洞察: 视频作为自然监督

InstructMove 的作者发现了一个用于学习图像操作的丰富且未被充分利用的资源: 互联网视频

视频帧天然地解决了身份保持的问题。如果你从一个人行走的视频中截取两帧:

  1. 内容一致性: 是同一个人,穿着同样的衣服,处于同样的环境中。
  2. 自然动态: 帧 A 和帧 B 之间的差异代表了真实的物理变化 (姿势、相机角度、表情) 。

如果 AI 能看到帧 A (源) 和帧 B (目标) ,并理解其中的差异,它就能学会复制这些变化。拼图中缺失的一块是 指令 。 视频并没有附带文字说“这个人向左转了”。

数据构建流程

为了填补这一空白,研究人员开发了一种利用 多模态大语言模型 (MLLMs) (如 GPT-4o 或 LLaVA) 的新颖流程。这些先进的语言模型能够“看到”图像并描述它们。

数据构建流程: 帧选择、通过 MLLM 生成指令以及三元组形成。

如图 3 所示,该流程分三个步骤运行:

  1. 帧选择: 系统从视频中采样帧对 \((I^s, I^e)\)。它会对这些帧对进行仔细过滤。如果帧太相似 (没有运动) ,它们就没用。如果帧太不同 (切换到了不同场景) ,它们也没用。系统使用光流 (运动跟踪) 来确保有“适度”的运动——足以代表有意义的编辑,但又不会因为运动过大而丢失上下文。

  2. 指令生成: 选定的帧对被输入到 MLLM 中。提示词 (Prompt) 要求 MLLM 分析差异并生成精确的编辑指令。例如,MLLM 看到帧 A 中一位女士在阅读,而帧 B 中她在抬头看,于是生成文本: “调整女士的视线,从看书变为直视相机。”

  3. 三元组创建: 结果是一个高质量的真实世界数据集,包含源帧、目标帧和生成的指令。

这种方法允许创建一个海量的数据集 (600 万对) ,其中捕捉到了非刚性变换 (弯曲、微笑、移动) 和视角变化 (相机平移) ,这些在以前的数据集中基本是缺失的。

对比 InstructMove 数据集与 InstructPix2Pix、MagicBrush 等其他数据集的表格。

表 1 强调了这种新方法与先前尝试之间的差距。InstructMove 是唯一一个在支持复杂的非刚性和视角编辑的同时,利用 真实目标 (Real Target) 图像的大规模数据集。

架构: 空间条件化

拥有好的数据集只是成功了一半。作者还对扩散模型引入了一项巧妙的架构变更,以更好地利用这些数据。

大多数基于指令的编辑模型使用 通道条件化 (Channel Conditioning) 。 在这种标准设置中,参考图像 (源图像) 像三明治的层一样堆叠在噪声输入之上。这迫使模型在像素级别上将源图像和目标图像进行空间对齐。虽然这对颜色校正很好,但对结构变化却很糟糕。如果你想把一只狗从左边移到右边,通道条件化会将狗“锚定”在左边,因为参考像素就在那里。

解决方案: 空间拼接

InstructMove 引入了 空间条件化 (Spatial Conditioning) 。 它们不再在深度 (通道) 维度上堆叠图像,而是将源图像和带噪声的目标潜变量 并排 (沿宽度维度) 拼接。

展示潜变量空间拼接的模型架构概览。

如图 4 所示,该过程如下:

  1. 源图像 \(I^s\) 和目标图像 \(I^e\) 被编码为潜变量 \(z^s\) 和 \(z^e\)。
  2. 目标潜变量被加噪以创建 \(z^e_t\)。
  3. 通过将 \(z^s\) 和 \(z^e_t\) 彼此相邻放置来形成模型输入。
  4. 这个加宽的输入被送入 U-Net。

为什么这样效果更好? 通过并排图像,模型利用 自注意力 (self-attention) (或层内的交叉注意力) 机制处理源图像和目标图像之间的关系。网络可以“看”左边的源图像来理解物体的身份,但不被强迫在右边的相同 \(x,y\) 坐标上完美对齐像素。这赋予了模型移动物体、旋转头部或改变相机角度的灵活性,同时仍能完全访问源外观信息。

训练目标是标准的去噪损失,但仅在输出的目标部分计算:

损失函数公式。

在这里,模型学习预测添加到目标的噪声 \(\epsilon\),条件是源图像和文本指令 \(C\)。

超越文本: 精确控制

虽然文本指令很强大,但它们可能存在歧义。“让这个人看向侧面”并没有说明是 一边,或者具体转 远。为了解决这个问题,InstructMove 与额外的控制机制无缝集成。

掩码 (Masking)

该模型支持基于掩码的编辑以进行定位。如果你只想编辑人群中的某一张脸,你可以提供一个掩码 \(m\)。潜变量更新将保留的背景与编辑后的前景融合:

用于局部编辑的掩码公式。

ControlNet 集成

由于 InstructMove 保持了标准扩散模型 (如 Stable Diffusion) 的底层结构,它与 ControlNet 兼容。这允许用户除了文本指令外,还提供“空间指南”——如骨架姿势或草图。

展示掩码使用和 ControlNet 集成的定性结果。

在图 6 中,我们看到了两个强有力的例子:

  • (a) 局部编辑: 使用掩码“让男孩竖起大拇指”,确保只有他的手被修改,而他的脸和衣服保持原样。
  • (b) ControlNet: 香蕉旋转的草图引导 AI “将香蕉旋转 45 度”,实现了仅凭文本难以描述的精确几何变换。

实验结果

研究人员将 InstructMove 与最先进的基准进行了比较,包括 InstructPix2Pix、MagicBrush 以及 MasaCtrl 等零样本方法。由于之前的基准主要关注风格迁移,作者专门为非刚性、结构性编辑创建了一个新的基准。

定量分析

评估依赖于两个主要指标:

  1. CLIP-Inst: 图像变化与文本指令的匹配程度如何?
  2. CLIP-I: 源图像身份的保留程度如何?

展示 InstructMove 优于基准的定量比较表。

表 2 显示 InstructMove 实现了最佳平衡。虽然某些方法 (如 InstructPix2Pix) 具有很高的身份保留度 (CLIP-I) ,但这通常是因为它们根本没有执行编辑,图像保持不变。InstructMove 在保持高图像保真度的同时,获得了最高的指令对齐分数。

人类评估讲述了一个更清晰的故事。用户被要求从各种模型中挑选最佳编辑结果。

显示人类偏好 InstructMove 比例高达 87.62% 的表格。

如表 3 所示,人类评估者在 87.62% 的情况下更喜欢 InstructMove。

定性比较

视觉上的差异是惊人的。

定性比较网格。InstructMove 在其他模型失败的复杂编辑上取得了成功。

在图 5 中,查看“抬起熊玩偶的手臂 (Raise arm on bear doll) ”这一行 (顶部) 。

  • InstructPix2PixMagicBrush 未能显着移动手臂或引入了模糊。
  • MasaCtrl 完全改变了图像风格或未能分离出手臂。
  • InstructMove (Ours) 干净利落地抬起了熊的手臂,同时保持了纹理和背景的一致性。

同样,在“让狗看相机”一行中,InstructMove 是唯一一个能在 3D 空间中令人信服地旋转狗头而不扭曲其特征的模型。

消融研究: 数据重要吗?

作者进行了消融研究,以证明 视频数据集空间条件化 都是必要的。

消融研究视觉对比。

图 7 (上半部分) 比较了三个版本:

  1. SC + IP2P data: 在合成的 InstructPix2Pix 数据集上训练的空间条件化。它产生了可怕的伪影 (看看女士的脸) 。
  2. CC + Our data: 在新视频数据集上训练的通道条件化。效果较好,但未能完全实现微笑。
  3. SC + Our data: 本文提出的方法。它产生了一个自然、高质量的微笑。

这证实了真实世界的视频数据提供了必要的真实感,而空间条件化提供了实现这些变化的架构灵活性。

展示消融数值结果的表格。

表 4 在数值上加强了这一点,显示移除数据集或空间架构都会导致性能下降。

局限性与结论

尽管取得了成功,InstructMove 并非完美。该模型依赖于 MLLM 指令的质量。如果 MLLM 产生幻觉或错过了视频对中的细节,模型就会学到错误的关联。

此外,由于模型是在现实视频上训练的,它有时难以处理物理世界中不会发生的纯艺术或抽象编辑 (如将狗变成半机械人) 。偶尔也会出现非预期的视点偏移问题,即模型可能会稍微移动相机,即使没有被要求这样做。

展示意外视点变化和分离问题的局限性。

  • (注: 参考提供的图片组中图 7/8 的下半部分) 。*

总结: InstructMove 代表了生成式 AI 向前迈出的重要一步。通过将训练范式从合成数据转变为自然发生的视频动态,作者解锁了 AI 更有效地理解和操纵物理世界的能力。它表明,要让 AI 学会如何编辑静态图像,观看世界如何运动大有裨益。