文章的工作聚焦于利用扩散模型语义传播实现交互式点控制的图像编辑,只需点几个点,即可对用户输入的真实图片和生成图片精准快速的编辑,再也不用担心甲方 “天马行空” 的要求!拖拽P图又双叒升级了!DragNoise实现更快更准的拖拽编辑

新加坡管理大学何盛烽团队联合华南师范大学在 CVPR 2024 上发表了工作《Drag Your Noise: Interactive Point-based Editing via Diffusion Semantic Propagation》。这一工作聚焦于利用扩散模型语义传播实现交互式点控制的图像编辑,只需点几个点,即可对用户输入的真实图片和生成图片精准快速的编辑,再也不用担心甲方 “天马行空” 的要求!

DragNoise 对内容填充、擦除、转脸、姿势控制等要求都能轻松快速的搞定,想要拖动哪里只需点一个红点,想要拖到哪里只需点一个蓝点,DragNoise 即可将红点的内容拖拽到蓝点。相对于 SOTA 方法 DragDiffusion,我们方法在有效保留图片原有信息的同时实现更精准快速的拖拽。

论文题目:

Drag Your Noise: Interactive Point-based Editing via Diffusion Semantic Propagation

论文地址:

https://arxiv.org/abs/2404.01050

代码地址:

https://github.com/haofengl/DragNoise

DragNoise_拖拽

DragNoise

DragNoise_人工智能_02

DragDiffusion

DragNoise_去噪_03

在这一领域,一些近期的工作引起了广泛关注。利用生成对抗网络 (GAN) 的 DragGAN 是一个重要里程碑,DragDiffusion 进一步应用到扩散模型上,下图展示了这两个方法的主要思想。不同于传统的“Outer-inversion”将真实图像反演至 latent 空间,我们将这种将用户编辑反演至 latent 空间的内部优化过程称为“Inner-inversion”。 
1. DragGAN:使用 StyleGAN2 生成器的第 6 层特征作为运动监督,将拖拽编辑反演至 latent code,从而产生相应的拖动结果图。尽管 DragGAN 具有创新性,但基于 GAN 固有的生成效果局限性使其无法获得高质量的编辑结果。此外,该工作和其他基于 GAN 的编辑方法涉及优化新的 latent code,难以保留图片全局内容。

DragNoise_去噪_04

DragGAN

2. DragDiffusion 利用大规模预训练扩散模型的优势,在这一领域取得了显著进步。DragDiffusion 延续了 DragGAN 的“Inner-inversion”方法,利用 U-Net 中间特征来监督优化噪声 latent map,从而控制后续去噪过程生成编辑后的图片。

然而,我们发现 DragDiffusion 出现了两个主要问题:梯度消失导致的拖拽不足或无效,以及较低的反演保真度。DragDiffusion 的反演反向传播链较长,当控制点前后的特征差异很小时,梯度消失的问题就会加剧,导致结果出现“欠拖拽”。

此外,保持图像的保真度仍然是反演技术的长期挑战。虽然 DragDiffusion 相比 DragGAN,通过将“Inner-inversion”扩展到二维 latent map,改善了空间控制,但由于其优化路径为反传到去噪过程中的有噪声 latent map,仍然难以保持较高的保真度。

DragNoise_拖拽_05

DragDiffusion

相比于以上的方法,我们提出的方法 DragNoise 改变预测的噪声并传播优化来进行图像编辑。

DragNoise 的核心思想来源于我们对在扩散模型中一种“middle-block replacement”的操作的探索。该操作从某个去噪时间步开始,将不同层的特征复制到所有后续 timestep 的对应层。通过观察 DDIM inversion 重建图像的效果,我们探索了扩散模型在何时以及何处学习到何种层次的语义信息。

如下图所示,我们发现,bottleneck 特征是一种最优扩散语义表示,适合于高效编辑。由于它可以在早期 timestep 中有效地被编辑,因此操纵 bottleneck 特征可以平滑地传播到后面的去噪步骤,从而确保结果图像扩散语义的完整性。此外,由于优化 bottleneck 的路径短,有效地避免了梯度消失问题。 

DragNoise_拖拽_06

Middle-Block Replacement

如下图所示,我们的方法 DragNoise 包括两个过程——扩散语义优化和扩散语义传播:

  1. 扩散语义优化:DragNoise 的编辑过程开始于训练高级语义的 timestep (例如,t=35),在此阶段针对用户的拖拽编辑对 U-Net 的 bottleneck 特征进行扩散语义优化。优化后的 bottleneck 特征学习到预期的拖拽效果,并使 U-Net 输出相应的操纵噪声。
  2. 扩散语义传播:上一个步骤中优化的 bottleneck 特征包含了目标语义,因此与上面讨论的“middle-block replacement”操作相似,我们通过替换相应的 bottleneck 特征将优化后的 bottleneck 特征传播到所有后续时间步,从而避免了冗余的特征优化。这种替换以稳定、高效的方式显著增强了操纵效果。

DragNoise_人工智能_07

DragNoise

我们使用拖拽编辑数据集 DragBench 和不同的示例图像进行了广泛的定量和定性实验。如下图,DragDiffusion 在大幅编辑时,会出现破坏周围特征的情况。DragGAN 由于其生成能力的限制, 对用户输入的图片编辑会严重失真,即使对于 GAN 生成的图片(下图中小猫),由于其优化的 latent code 为一维特征,缺少空间控制能力,会出现全局变化。

DragNoise_人工智能_08

DragNoise_拖拽_09

另外,我们在编辑点周围特征相似的极端情况下进行了实验,我们方法可以实现精准的控制,且控制能力优于 FreeDrag 方法。

DragNoise_空间控制_10

与 DragDiffusion 相比,DragNoise 显著减少了 50% 以上的优化步骤。结果表明了 DragNoise 的编辑具有突出的效率和灵活性。

DragNoise_拖拽_11

我们在 DragBench 数据集上进行了定量实验,结果达到了 SOTA。

DragNoise_去噪_12

 此外,我们展示更多和 DragDiffusion 的对比效果,以表明我们方法广泛的有效性。

DragNoise_空间控制_13

DragNoise_人工智能_14

最后,我们展示更多的 DragNoise 的编辑过程,以表明 DragNoise 的连续性和稳定性。