Pix2Pix-Zero:预训练扩散模型 + 潜在空间编辑预处理,零样本的图像到图像转换

Pix2Pix-Zero是一种零样本图像编辑技术,通过结构保留、预训练模型和自动编辑方向发现,实现了在保持原始图像结构的同时引入显著变化。它利用交叉注意力引导编辑过程,避免了手动文本提示,适用于各种编辑任务,如将猫变成狗。但对于非典型姿势,模型可能存在局限性,需要进一步改进。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 


核心思路

 

pix2pix-zero 功能

具体问题:如何在编辑图像时保留原始结构和内容,同时引入显著的、用户指定的变化。

解法:pix2pix-zero

之所以使用 pix2pix-zero 解法,是因为:

  1. 特征1 - 结构保留:在编辑过程中能够保持图像的原始结构不变。
  2. 特征2 - 无需手动文本提示:不需要用户为每个编辑任务手动创建文本提示。
  3. 特征3 - 利用预训练模型:可以直接使用预训练的文本到图像扩散模型,无需为每种编辑类型和图像进行额外的训练。
  4. 特征4 - 快速编辑方向发现:能够快速自动发现并应用编辑方向,这对于用户友好性至关重要。
  5. 特征5 - 交叉注意力引导:使用交叉注意力机制来引导图像内容在编辑过程中的保留,提高编辑的准确性。

关键方法 - 自动编辑方向发现与应用:这是pix2pix-zero中的一个核心步骤,它涉及自动生成描述性文本的嵌入,计算其变化方向,并将这个方向应用于图像编辑过程,同时通过交叉注意力图来保证编辑操作不破坏图像的原始结构。

pix2pix-zero 避免了对每个具体编辑任务进行繁琐的手动文本描述,通过学习从大量文本中提取的普遍编辑模式来自动引导编辑过程。

例子:想要将图片中的猫变成狗,同时保留图片中的背景和其他内容。

  1. 确定性逆向:使用预训练的扩散模型将输入图像逆向映射到潜在空间的噪声图。

  2. 自动编辑方向发现:系统会自动识别从“猫”到“狗”的编辑方向,无需用户提供详细的文本描述。

  3. 交叉注意力引导:在应用编辑方向的同时,交叉注意力图用于保持图片原有的结构,确保背景和图像的其他部分在编辑成狗的过程中保持不变。

  4. 编辑应用:在潜在空间内,按照发现的编辑方向修改噪声图,然后通过扩散过程反向重建图像,从而得到编辑后的图像。

  5. 结果生成:最终生成的图像将展示一只狗,而图片的背景和其他内容保持原样,确保了原始结构的保留。

通过pix2pix-zero,可以快速且有效地进行图像编辑,无需进行复杂的模型重新训练或手动创建文本提示,大大简化了用户的工作流程,并提高了编辑任务的可用性和准确性。

对比其他方法:

从猫到狗,从马到斑马,以及给猫添加眼镜。

  1. SDEdit with word swap:这是一种利用语义编辑(如将关键词从“猫”更改为“狗”)和噪声模式编辑进行的方法,但可能不会保留原始图片的结构。

  2. prompt-to-prompt:这种方法利用文本提示来指导图像的编辑,但可能导致图像结构和内容的显著改变。

  3. DDIM with word swap:通过使用确定性逆向方法DDIM来编辑图像,但与单词交换结合使用时可能会改变图像的整体结构。

  4. Ours (pix2pix-zero):在编辑图像时保留原始结构,同时引入用户指定的显著变化。从提供的图像来看,此方法在保持背景和整体结构的同时,有效地将目标对象进行了转换。

 


图像编辑流程

图像编辑,对输入图像沿着一个编辑方向进行修改,比如将图像中的“猫”编辑成“狗”。

具体问题与解法名称:

  • 问题:如何在不改变图像整体结构的情冀下,对输入图像进行内容上的编辑(例如将图像中的“猫”转换为“狗”)。
  • 解法:确定性逆向(Deterministic Inversion)和交叉注意力引导(Cross-Attention Guidance)。
  • 之所以使用确定性逆向,是因为需要在潜在空间中准确地重建输入图像,以便进行后续的编辑。
  • 之所以使用交叉注意力引导,是因为在直接应用编辑方向时常常会导致图像内容的不想要的变化。

图像编辑解法:

  1. 确定性逆向(Deterministic Inversion):通过确定性方法逆向图像到对应的噪声图,为后续的编辑方向提供基础。

    这是一个过程,我们使用算法将输入的猫图像转换为一个潜在的表示形式,也就是一个“噪声图”。

    这个噪声图包含了可以重建原始图像的所有必要信息。

  2. 文本嵌入空间中编辑方向的预计算(Pre-computing Edit Directions in Text Embedding Space):自动发现适用于多种输入图像的编辑方向,并提前计算保存。

    在这个步骤中,系统会自动找到从“猫”到“狗”的转换路径,并将其保存下来,以便在实际的编辑过程中使用。

  3. 交叉注意力引导(Cross-Attention Guidance):引导扩散采样过程,帮助保持输入图像的结构,防止编辑过程中产生不必要的变化。

    交叉注意力机制会帮助模型集中注意力在需要编辑的部分,例如猫的形象,同时忽略不需要改变的部分,如石头和背景。

关键步骤

  • 潜在空间编辑预处理(Latent Space Editing Preprocessing):在将图像编码到潜在空间之前,生成一个初步的文本提示(使用BLIP模型),描述输入图像的内容。

这一步是为了确保文本条件模型能够准确地理解和反映出输入图像的特征,为后续的编辑操作设定一个准确的出发点。

  1. 使用BLIP模型生成文本提示:首先,你会使用BLIP模型来分析照片并生成一个描述它的文本提示,比如“一只灰色的猫坐在棕色的沙发上”。这个文本提示帮助编辑模型了解当前图像中的主要内容和上下文。

  2. 编码到潜在空间:然后,这个描述被用来将图像中的猫编码成一个潜在空间表示,这个潜在空间是模型用来理解和编辑图像的高维空间。这就好比你给计算机一个关于图像的详细说明,计算机用这个说明来构建一个可以编辑的内部表示。

  3. 设置编辑的起点:这个描述性的文本提示成为了编辑过程的起点,它告诉编辑模型:“我们的目标是改变图像中的这只猫,但保持沙发和其他元素不变。”

这个预处理步骤非常关键,因为它为编辑模型提供了必要的上下文信息,确保模型在编辑过程中能够专注于用户想要变更的部分(猫),而不去触动那些应保持不变的部分(沙发和背景)。

所以,通过这个预处理步骤,模型就有了一个明确的目标和方向,这在后续的图像编辑过程中是至关重要的,因为它有助于模型做出更加精确的编辑决策。

上图展示的是pix2pix-zero方法的概览,这是一个图像编辑流程:

  1. 逆向(Inversion)

    • 输入图像(input x˜):开始时,有一张小猫坐在石头上的图像。
    • 文本生成(BLIP):使用BLIP模型自动生成对输入图像的描述(例如,“a small kitten sitting on top of a rock”)。
    • 文本嵌入(CLIP):然后使用 CLIP 模型将这段文本转换为文本嵌入(c)。
    • 确定性逆向(Regularized forward DDIM):接着通过正规化的DDIM逆向过程,将输入图像逆向为噪声图(x_inv)。
  2. 编辑与交叉注意力引导(Editing with cross-attention guidance)

    • 参考注意力图(Reference attention maps):这些是从原始输入图像中获得的注意力图,它们将被用作保持图像结构完整性的参考。
    • 重建(Reconstruction):使用交叉注意力图和原始文本嵌入(c),通过一定的损失函数(L2损失)来引导重建过程,得到未编辑的重建图像。
    • 编辑(Edit):将修改后的文本嵌入(c + Δc_edit)应用到重建过程中,得到编辑后的图像。这里的Δc_edit代表文本嵌入中的编辑方向,比如将“猫”改为“狗”。
    • 对比(Comparison):最后的对比展示了使用交叉注意力引导的编辑结果和没有使用交叉注意力引导的编辑结果。没有交叉注意力引导的编辑导致了图像结构的显著偏差,而使用交叉注意力引导则能保持图像的原始结构。

 


编辑图像时,如何在引入显著变化的同时保持原始图像结构?

解法:交叉注意力引导(Cross-Attention Guidance)。

  • 之所以使用交叉注意力引导解法,是因为这种方法能够在编辑图像(如改变图像内容)时保持其结构的完整性。

交叉注意力引导:

  • 特征1(结构保持):在编辑过程中,需要保持图像的原始结构,这通过 CLIP 准确率(CLIP Acc)来评估。

  • 特征2(条件生成):利用文本嵌入来条件化生成过程,以实现具体的编辑效果,通过结构一致性(Structure Dist)来评估。

  • 特征3(背景保持):图像的背景区域在编辑过程中需要保持不变,通过背景LPIPS错误(BG LPIPS)来评估。

  • 特征4(交叉注意力映射):通过交叉注意力映射,可以精准地控制编辑效果对图像结构的影响

  • 特征5(梯度步骤匹配):通过匹配编辑后的交叉注意力映射与原始图像的参考映射,可以使图像编辑更加精确。

关键方法:

  • 参考交叉注意力映射生成(Reference Cross-Attention Maps Generation):在应用编辑方向之前,先使用原始文本嵌入生成未编辑图像的参考交叉注意力映射。

    使用图像标题生成模型(如BLIP)自动生成图像描述,例如“一只猫坐在草地上”。

    然后,使用这个描述通过CLIP模型创建文本嵌入。

    接着,输入未经编辑的文本嵌入(即刚才生成的描述)到模型中,以生成参考交叉注意力映射。

    这些映射捕捉了原始图像中猫和背景的关系。

  • 编辑映射匹配优化(Editing Maps Matching Optimization):在应用编辑方向生成编辑后的交叉注意力映射后,采用梯度下降步骤调整潜在的图像表示,以减少编辑映射与参考映射之间的差异。

    修改文本嵌入以反映想要的编辑,如将“一只猫坐在草地上”改为“一只狗坐在草地上”。

    使用修改后的文本嵌入进行图像重建,同时生成新的交叉注意力映射,这些映射现在应该反映狗而不是猫的特征。

    通过计算新的交叉注意力映射和参考映射之间的差异(使用L2损失),优化图像的潜在表示,以减少它们之间的差异。

    这样做的目的是调整编辑后的图像,使其结构更接近原始图像,即保持背景不变,只改变动物。

其实完整的解法,应该算:

  • 使用交叉注意力引导(Cross-Attention Guidance)的稳定扩散模型(Stable Diffusion)

 


不足

pix2pix-zero进行编辑时,如果目标对象在图像中呈现出非常规或罕见的姿态,模型可能无法准确地进行编辑。

这种情况下的失败可能是由于以下原因:

  • 预训练模型通常是在大量标准姿势的图像上训练的,因此它们对于常见的、典型的图像特征有很好的识别能力。
  • 当对象的姿势偏离常规,例如一个复杂的扭曲动作或者一个罕见的视角,模型可能没有足够的训练数据来识别和处理这些情况。

例子
假设有一张猫做瑜伽的图片,猫的身体呈现出一种不常见的扭曲姿势,比如“猫式”瑜伽动作。

在这种情况下,如果我们尝试使用图像编辑模型将这只猫编辑成狗,模型可能会挣扎:

  • 由于猫的非典型姿势在训练数据中不常见,模型可能无法找到正确的特征来映射到狗的相应姿势。
  • 结果可能是一个结构上混乱的图像,其中狗的头可能被放置在一个不自然的位置,或者狗的身体部分与原来猫的姿势不匹配。

因此,模型可能无法以一种真实或准确的方式完成编辑任务,导致编辑后的图像在视觉上看起来不自然或扭曲。

这种情况下需要进一步的模型改进或更多的针对性训练数据,以增强模型对非典型姿势的编辑能力。

 


总结

具体问题与解法名称:

  • 问题:如何在图像编辑中引入内容变更而不改变图像的原始结构?
  • 解法:使用pix2pix-zero

之所以使用pix2pix-zero解法,是因为

  • 特征:它结合了交叉注意力映射和文本嵌入的编辑方向学习,以实现精确且结构保持的图像编辑。

问题与解法组成:

  1. 子问题、子解法1(图像内容编辑):如何确保编辑操作能够准确映射用户的编辑意图?

    • 介绍:通过学习文本嵌入空间的编辑方向,自动化地理解并实现从源文本到目标文本的内容变更。
    • 关键方法:编辑方向自动化学习(Edit Direction Auto-Learning)。
  2. 子问题、子解法2(结构保持编辑):在编辑图像时,如何保持图像的原始结构?

    • 介绍:利用交叉注意力映射保持编辑后图像的结构与原始图像一致。
    • 关键方法:交叉注意力映射一致性校验(Cross-Attention Map Consistency Verification)。
  3. 子问题、子解法3(高分辨率结构控制):如何在细腻的结构级别上控制图像编辑过程?

    • 介绍:在存在更高分辨率交叉注意力映射的模型中,进一步提升结构的控制精细度。
    • 关键方法:分辨率适配性增强(Resolution Adaptability Enhancement)。
  4. 子问题、子解法4(编辑典型姿势):如何处理非典型姿势下的图像编辑?

    • 介绍:当编辑对象姿势非常规时,需要额外的方法来处理这种复杂性。
    • 关键方法:结构细节增强(Structural Detail Enhancement)。

总结

Pix2Pix-Zero =

  • 编辑方向自动化学习(理解和计划编辑的变化) +
  • 交叉注意力映射一致性校验(保证编辑过程中的结构一致性) +
  • 分辨率适配性增强(提供高分辨率的编辑控制) +
  • 结构细节增强(对非常规姿势提供细致的编辑处理)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值