引言: 图像编辑中语言的局限性

我们正处于文本生成图像的黄金时代。像 Midjourney、DALL-E 和 Stable Diffusion 这样的模型,让通过简单的句子构建细节丰富的世界变得异常简单。然而,从零开始生成图像与精确编辑现有图像之间,仍然存在巨大的鸿沟。

想象一个具体的场景: 你有一张普通轿车的照片,想把它变成一辆兰博基尼。你输入指令: *“把它变成兰博基尼。” (Make it a Lamborghini.) *

如果 AI 模型在训练期间见过成千上万辆兰博基尼,它可能会成功。但如果这个概念很罕见,或者你想要的特定视觉属性很难用语言描述呢?用纯文字来描述精确的空气动力学曲线、某种纹理的特定“外观”,或复杂的艺术风格,往往令人沮丧且不够精确。语言本身存在歧义性。

这正是 少样本图像编辑 (Few-Shot Image Manipulation) 的用武之地。与其告诉模型做什么,不如直接展示给它看。你提供一张“修改前”的图像和一张“修改后”的图像 (即一个示例对) ,然后说: “对那张新图片也做这种修改。”

InstructPix2Pix 与 InstaManip 的对比。上一行显示仅使用文本导致失败 (变成了黑色汽车) ,下一行显示使用视觉示例成功转换。

正如上图所示,标准的文本引导模型 (如 InstructPix2Pix) 在概念 (例如“兰博基尼”) 未包含在其训练数据中时往往会失败。它们可能只是改变颜色或者什么都不做。然而,通过提供一个视觉示例,我们可以引导模型准确理解我们的意图。

在这篇文章中,我们将深入探讨 InstaManip , 这是一篇提出解决该问题新方法的可以研究论文。与以往严重依赖扩散模型的方法不同,InstaManip 利用了 自回归模型 (Autoregressive Models,即大型语言模型背后的架构) 的推理能力,通过示例即时“学习”编辑操作,并将其应用于新图像。

背景: 扩散模型的推理差距

要理解 InstaManip 的重要性,我们首先需要了解当前 AI 图像编辑的格局。

当今最先进的图像编辑工具大多建立在 扩散模型 (Diffusion Models) 之上。这些模型擅长生成高质量的像素。像 ControlNet 或 InstructPix2Pix 这样的方法通过调整扩散模型的内部状态来引导生成。

然而,从 视觉示例 中学习不仅仅需要生成能力,更需要 推理 (Reasoning) 能力。模型需要观察图像对 A (源图 \(\rightarrow\) 目标图) ,找出其中的关系 (例如,“物体变成了粘土材质”或“天气变成了下雪”) ,然后将这种抽象关系应用到完全不同的图像 B 上。

相比于 自回归 (AR) 模型 , 扩散模型在这种抽象推理方面通常较弱。AR 模型通过预测序列中的下一个 Token 来工作,是 GPT-4 和 LLaMA 的基础。它们在“上下文学习 (In-Context Learning) ”方面取得了巨大的成功——即仅通过阅读包含示例的提示词就能学习新任务的能力,而无需任何权重更新。

InstaManip 背后的研究人员提出了一个关键问题: 我们能否释放大型语言模型的上下文推理能力,来解决少样本图像编辑的问题?

InstaManip 方法

InstaManip 的核心理念深受认知科学的启发。研究表明,人类的学习过程分为两个明显的阶段:

  1. 学习/抽象: 我们观察示例并抽象出一个高层次的概念或规则。
  2. 应用: 我们将该概念应用到新的情境中。

现有的自回归视觉模型通常将这两个步骤混在一起,试图同时关注所有内容。InstaManip 明确地将它们分开了。

数学公式化

让我们将问题形式化。我们要拥有:

  • 一条指令 \(\mathcal{T}\) (文本) 。
  • 示例图像: 源图 \(\mathcal{X}'\) 和目标图 \(\mathcal{Y}'\)。
  • 一张查询图像 \(\mathcal{X}\) (我们想要编辑的那张) 。
  • 目标: 生成输出 \(\mathcal{Y}\)。

标准方法试图在给定所有输入的情况下同时对 \(\mathcal{Y}\) 的概率进行建模。InstaManip 引入了一个隐变量 \(\mathcal{Z}\)——代表 操作特征 (manipulation features) (即编辑的“规则”) 。

分离学习和应用阶段的公式。

如上图公式所示,过程被分解了。第 1 部分 (圈 1) 是在给定指令和示例的情况下,操作特征 \(\mathcal{Z}\) 的概率。第 2 部分 (圈 2) 是在给定查询图像 \(\mathcal{X}\) 和那些学习到的特征 \(\mathcal{Z}\) 的情况下,输出图像 \(\mathcal{Y}\) 的概率。

架构概览

InstaManip 基于 LLaMA 主干网络,使用特定的架构实现了这种两阶段逻辑。

InstaManip 架构和提示词结构概览。

如上图所示,工作流程如下:

  1. Token 化: 文本和图像被转换为 Token (嵌入) 。
  2. 提示词构建: 输入按照特定模板排列: 指令 \(\rightarrow\) 示例源图 \(\rightarrow\) 示例目标图 \(\rightarrow\) 操作 Token (Manipulation Tokens) \(\rightarrow\) 查询图像。
  3. 处理: 模型通过多个层处理这些 Token。
  4. 生成: 最后,产生“生成 Token”,这些 Token 被输入到图像解码器 (如 SDXL) 以创建最终图像。

魔力在于模型如何处理“操作 Token” (图中黄色的方块) 。这些 Token 充当桥梁。它们是从示例流向新查询图像的信息流的唯一瓶颈。

核心创新: 群组自注意力 (Group Self-Attention, GSA)

在标准的 Transformer 中,“自注意力”允许每个 Token 查看所有之前的 Token。虽然强大,但这可能会产生噪声。模型可能会被示例图像中不相关的细节 (如背景风景) 分散注意力,而它本应该专注于转换规则 (如“将风格改为梵高”) 。

为了解决这个问题,作者提出了 群组自注意力 。 他们在单次前向传播中人为地将注意力机制分为两个独立的组。

标准自注意力与群组自注意力的对比。

如上图所示,群组自注意力产生的编辑效果明显更干净。在标准方法 (左) 中,模型难以应用完整的“小丑”妆容,可能是过多关注了示例中特定的人脸形状。在群组自注意力方法 (右) 中,转换被全面地应用了。

GSA 如何工作

该机制将提示词分为两组:

  1. 第 1 组 (学习阶段) : 包含文本指令、示例源图、示例目标图和 操作 Token
  • 在这里,操作 Token “阅读”示例和文本以学习 做什么。它们将这些知识浓缩成向量 \(\mathcal{Z}\)。
  • 关键是,这一组 不能 看到查询图像。这迫使 \(\mathcal{Z}\) 成为编辑的一般表示,而不是针对新图像的特定表示。
  1. 第 2 组 (应用阶段) : 包含 操作 Token、查询图像和生成 Token。
  • 在这里,生成 Token 观察查询图像以了解内容,并观察操作 Token (\(\mathcal{Z}\)) 以了解风格/编辑方式。
  • 它们 不能 直接看到原始示例图像。它们必须依赖 \(\mathcal{Z}\) 提供的“摘要”。

这种分离简化了问题。第 1 组只关注“什么变了?”第 2 组只关注“我如何在这里应用这种变化?”

这种分裂注意力机制的数学实现定义为:

群组自注意力公式 1。

群组自注意力公式 2。

在这些方程中,\(\mathcal{S}_1\) 和 \(\mathcal{S}_2\) 代表强制执行上述可见性约束的掩码 (Masks) 。

关系正则化 (Relation Regularization)

还有一个风险: 如果操作 Token 学到了错误的东西怎么办?例如,如果你提供了一个将红车变成蓝车的例子,模型可能会学到“把它变成蓝色”。但如果示例图像的背景恰好是城市街道,它也可能意外地学到“把背景变成城市街道”。

为了防止这种情况,作者引入了 关系正则化

直觉是,如果两条不同的指令在语义上相似 (例如,“把它变成老虎”和“转变为老虎”) ,它们对应的操作 Token (\(\mathcal{Z}\)) 也应该是相似的。反之,不同的指令应该产生不同的 Token。

作者使用预训练的 CLIP 文本编码器来测量指令之间的相似度。然后,他们强制学习到的操作 Token 的点积与 CLIP 文本嵌入的点积相匹配。

关系正则化公式。

该损失函数 (\(\mathcal{L}_{relation}\)) 确保学习到的特征 \(\mathcal{Z}\) 实际上与指令的语义相关,从而将 转换 与示例图像的 内容 解耦。

最终的训练目标结合了标准的重建损失 (能否生成正确的像素?) 和这一新的正则化项:

最终损失函数。

实验与结果

作者使用 LLaMA-13B 架构训练了 InstaManip,并将其与几个强大的基线进行了测试: InstructPix2Pix (仅文本) 、ImageBrush、VISII 和 PromptDiffusion。

定性表现

视觉结果令人惊叹。InstaManip 展现了处理多样化和复杂指令的强大能力,这些指令通常需要理解纹理和高层语义。

展示各种转换 (如改变物体、风格和天气) 的 InstaManip 示例。

在上图 1 中,我们看到模型处理像“把它变成乐高积木做的城堡”或“像梵高的画一样”这样的指令。这些并非易事,因为模型必须从示例中理解乐高积木的结构属性或梵高的笔触风格,并将它们应用到完全不同的结构 (如房子或窗户) 上。

让我们看看与竞争对手的直接比较:

定性比较网格。与其他竞争对手相比,InstaManip 显示出对视觉提示更好的依从性。

在“Make it a Lamborghini” (图 5) 这一行中,注意 InstructPix2Pix 生成的车看起来有点像跑车,但很普通。 ImageBrushPromptDiffusion 做出了改变,但在汽车的具体身份或透视方面经常很吃力。 InstaManip (最右侧) 生成了一辆明显带有示例中兰博基尼视觉特征的车辆,同时尊重了查询图像的姿态。

同样,在“Make it in clay” (做成粘土材质) 一行中,InstaManip 比竞争对手更好地捕捉到了光滑的橡皮泥纹理,而竞争对手只是简单地应用滤镜或扭曲了面部。

定量分析

研究人员使用基于 CLIP 的指标来评估性能:

  • CLIP-Dir: 衡量变化的方向 (文本 \(\rightarrow\) 编辑) 是否与图像变化匹配。
  • CLIP-Vis: 衡量示例中的视觉变化是否与输出中的视觉变化匹配。
  • CLIP-T: 输出图像与文本之间的相似度。

表 2: 显示群组自注意力和正则化贡献的消融研究。

消融研究 (表 2) 证明了架构选择的正确性。

  1. 基础模型: 起点。
  2. + Group SA (群组自注意力) : 添加群组自注意力显著提升了性能 (CLIP-Vis 从 28.96 跃升至 31.08) 。这证实了分离“学习”和“应用”阶段是有帮助的。
  3. + Relation Reg (关系正则化) : 添加正则化进一步提高了、一致性 (CLIP-Vis 达到 32.39) 。

人类评估

虽然像 CLIP 这样的指标很有用,但人类的判断才是图像编辑的金标准。

显示人类偏好的饼图。InstaManip 以巨大优势获胜。

在一项盲测用户研究 (图 6) 中,评估者在 超过 40% 的时间里 偏好 InstaManip,而第二好的竞争对手 (PromptDiffusion) 仅占约 20%。这在生成式 AI 研究中是一个巨大的差距,表明了明显的质量飞跃。

示例的力量

最有趣的发现之一是模型性能如何随着提供的示例数量而扩展。

显示性能随更多示例对而提高的图表。

如图 9 所示,随着你添加更多的示例对 (1个,2个,直到3个) ,性能 (CLIP-Vis) 稳步攀升。这种行为是“上下文学习”的典型特征——模型在看到更多数据点后真正变得更聪明了,而无需任何重新训练。

此外,模型对示例的 内容 很敏感。如果你改变视觉示例,输出也会随之改变,即使文本保持不变。

通过改变示例图像生成的不同颜色的兰博基尼。

在图 12 中,文本指令始终是“Make it a Lamborghini”。然而,当示例目标显示一辆 绿色 兰博基尼时,输出就是绿色的。当示例是 黄色 时,输出就是黄色的。这证明模型不仅仅依赖于其内部对“兰博基尼”一词的知识;它正在主动观察视觉提示以确定颜色和风格等属性。

多功能性

最后,让我们看看模型如何处理针对 同一张 图像的不同指令。

对同一张厨师图像进行的各种操作。

在图 10 中,一张厨师的图像被转换成了热带场景、幼儿、小丑或棕褐色照片。模型保持了语义布局 (一个人站在中间) ,同时根据组合的文本和视觉指导彻底改变了内容。

结论与启示

InstaManip 代表了使 AI 图像编辑更加可控和稳健的重要一步。通过摆脱纯粹基于扩散的推理,采用带有 群组自注意力自回归 架构,作者创建了一个在“绘画”之前先“思考”的系统。

关键要点:

  1. 两阶段学习: 明确分离编辑的“学习”和编辑的“应用”能产生更好的结果。
  2. 视觉提示很重要: 文本往往是不够的。视觉示例提供了文字遗漏的局部细节 (纹理、确切颜色、形状) 。
  3. 正则化是关键: 强制模型将其内部操作特征与语义文本嵌入对齐,可以防止它过拟合于示例中不相关的视觉细节。

这项工作为“通用”视觉模型铺平了道路——这种系统不再只执行一组固定的任务 (如“去背景”或“放大”) ,而是可以通过观察几个示例即时学习 任何 新的视觉操作。随着自回归多模态模型的不断扩展,我们可以期待这种“上下文”能力成为创意 AI 工具的新标准。