DragDiffusion: Harnessing Diffusion Models for Interactive Point-based Image
Editing
1. Introduction
同样是有两个连续的程序,即运动监测和点跟踪。
特别地,首先优化第t轮隐向量来最小化运动监测的loss。随着diffusion latent的变化,控制点(handle points)可能也会随之变化。因此,在运动监测后面会跟一个点跟踪操作,来保证控制点的位置踪迹始终是最新的。
2. Methodology
2.1. Preliminaries on Diffusion Models
去噪扩散概率模型(DDPM)构成了潜在生成模型的一个系列。具体来说,DDPM 将概率密度q(Z0)作为Z0与一系列潜变量Z1:T的联合分布的边际进行建模,即:

潜变量序列(ZT,ZT−1,…,Z1,Z0)形成了一个马尔可夫链。在这篇文章中,Z0代表用户给定的初始图片,Zt代表经过了t次diffusion操作之后对应的“噪声图片”。

2.2. Method Overview
Our proposed DRAGDIFFUSION aims at optimizing a certain diffusion latent to achieve interactive point-based image editing.
- 首先在diffusion模型上微调了LoRA,来重构用户输入的图片。如此可以更好地保护输入图片中对象的特性和风格。
- 然后在输入图像上应用了
DDIM inversion to obtain the diffusion latent of a certain
step t.
- 随后,重复地将动作监督和点跟踪应用到优化之前获得的第t个diffusion latent上,来将控制点(handle points)上的内容 “drag”向目标点(target points).
在编辑的过程中,会应用正则化项,以确保图像的“unmasked”区域保持不变。最后,优化后的第t步diffusion latent通过DDIM去噪来获得编辑后的结果。图2给出了方法概览。
2.3. Motion Supervision and Point Tracking
这部分介绍了运动监督迭代和diffusion模型点跟踪的细节
Motion supervision:
输入图像表示为z0,第t层的扩散编码(即第t步DDIM Inversion的结果 diffusion latent)表示为zt。将第k次迭代的运动监督中的n个handle points表示为{hik=(xik,yik):i=1,......,n},其对应的target points表示为{gi=(x~i,y~i):i=1,…,n} 。
运动监督以UNet倒数第二个block的特征图F(zt)为输入,像素位置hik处的特征向量为Fhik(zt).
我们将Ω(hik,r1)={(x,y):∣x−xik∣≤r1,∣y−yik∣≤r1}定义为边长为2r1+1,以hik=(xik,yik)为中心的正方形块。
运动监督的第k次迭代的优化目标定义为:

其中,z^tk是第k个运动监督之后的第t步扩散编码,di=(gi−hik)/∥∥gi−hik∥∥2是第k次迭代中从第i个控制点到第i个目标点的归一化方向量,M是用户指定的二进制掩码,保证扩散潜码未被屏蔽的部分保持不变。当 q+di不是整数,Fq+di(z^tk)的值通过双线性插值计算。sg(⋅)是停止梯度操作,防止反向移动。
优化目标第一项约束控制点移动后其附近的特征响应保持不变,第二项约束去噪之后的潜码在掩码区域之外的区域保持不变。
具体更新方法是: 给定z^tk,首先应用一步DDIM去噪得到z^t−1k,然后将z^t−1k的未屏蔽区域正则化为与z^t−10相同,最后,执行一步梯度下降更新:

Point Tracking:
运动监督更新z^tk后,控制点的位置也可能随之发生了变化,所以需要进行点跟踪来进行更新控制点。由于UNet特征可以很好的捕获点的响应,所以可以使用F(z^tk+1)和F(z^tk)来跟踪新的控制点。
具体来说,本文在方块Ω(hik,r1)={(x,y):∣x−xik∣≤r2,∣y−yik∣≤r2}内应用最近邻搜索来更新控制点hik,即hik+1=q∈Ω(hik,r2)argmin∥∥Fq(z^tk+1)−Fhik(zt)∥∥1.
2.4. Implementation Details