DragDiffusion: Harnessing Diffusion Models for Interactive Point-based Image Edi

227 阅读3分钟

DragDiffusion: Harnessing Diffusion Models for Interactive Point-based Image Editing

1. Introduction

同样是有两个连续的程序,即运动监测和点跟踪。

特别地,首先优化第tt轮隐向量来最小化运动监测的loss。随着diffusion latent的变化,控制点(handle points)可能也会随之变化。因此,在运动监测后面会跟一个点跟踪操作,来保证控制点的位置踪迹始终是最新的。

2. Methodology

2.1. Preliminaries on Diffusion Models

去噪扩散概率模型(DDPM)构成了潜在生成模型的一个系列。具体来说,DDPM 将概率密度q(Z0)q(Z_{0})作为Z0Z_0与一系列潜变量Z1:TZ_{1:T}的联合分布的边际进行建模,即:

图片.png

潜变量序列(ZT,ZT1,,Z1,Z0)(Z_{T},Z_{T-1},\dots,Z_{1},Z_{0})形成了一个马尔可夫链。在这篇文章中,Z0Z_0代表用户给定的初始图片,ZtZ_t代表经过了tt次diffusion操作之后对应的“噪声图片”。

图片.png

2.2. Method Overview

Our proposed DRAGDIFFUSION aims at optimizing a certain diffusion latent to achieve interactive point-based image editing.

  1. 首先在diffusion模型上微调了LoRA,来重构用户输入的图片。如此可以更好地保护输入图片中对象的特性和风格。
  2. 然后在输入图像上应用了DDIM inversion to obtain the diffusion latent of a certain step tt.
  3. 随后,重复地将动作监督和点跟踪应用到优化之前获得的第tt个diffusion latent上,来将控制点(handle points)上的内容 “drag”向目标点(target points).

在编辑的过程中,会应用正则化项,以确保图像的“unmasked”区域保持不变。最后,优化后的第tt步diffusion latent通过DDIM去噪来获得编辑后的结果。图2给出了方法概览。

2.3. Motion Supervision and Point Tracking

这部分介绍了运动监督迭代和diffusion模型点跟踪的细节

Motion supervision:

输入图像表示为z0z_0,第tt层的扩散编码(即第t步DDIM Inversion的结果 diffusion latent)表示为ztz_t。将第kk次迭代的运动监督中的n个handle points表示为{hik=(xik,yik):i=1,......,n}\{h_i^k=(x_i^k,y_i^k) : i = 1,......,n\} ,其对应的target points表示为{gi=(x~i,y~i):i=1,,n}\{g_i=(\tilde{x}_i,\tilde{y}_i):i=1,\ldots,n\}

运动监督以UNet倒数第二个block的特征图F(zt)F(z_t)为输入,像素位置hikh_i^k处的特征向量为Fhik(zt)\boldsymbol{F_{h_i^k}(z_t)}.

我们将Ω(hik,r1)={(x,y):xxikr1,yyikr1}\Omega(h_{i}^{k},r_{1})=\{(x,y):|x-x_{i}^{k}|\leq r_{1},|y-y_{i}^{k}|\leq r_{1}\}定义为边长为2r1+12r_1+1,以hik=(xik,yik)h_i^k=(x_i^k,y_i^k)为中心的正方形块。

运动监督的第k次迭代的优化目标定义为:

image.png

其中,z^tk\hat{z}_{t}^{k}是第kk个运动监督之后的第tt步扩散编码,di=(gihik)/gihik2d_i=\left(g_i-h_i^k\right)/\left\|g_i-h_i^k\right\|_2是第kk次迭代中从第ii个控制点到第ii个目标点的归一化方向量,MM是用户指定的二进制掩码,保证扩散潜码未被屏蔽的部分保持不变。当 q+diq+d_i不是整数,Fq+di(z^tk)F_{q+d_i}(\hat{z}_t^k)的值通过双线性插值计算。sg()sg(·)是停止梯度操作,防止反向移动。

优化目标第一项约束控制点移动后其附近的特征响应保持不变,第二项约束去噪之后的潜码在掩码区域之外的区域保持不变。

具体更新方法是: 给定z^tk\hat{z}_{t}^{k},首先应用一步DDIM去噪得到z^t1k\hat{z}_{t-1}^{k},然后将z^t1k\hat{z}_{t-1}^{k}的未屏蔽区域正则化为与z^t10\hat{z}_{t-1}^{0}相同,最后,执行一步梯度下降更新:

image.png

Point Tracking:

运动监督更新z^tk\hat{z}_{t}^{k}后,控制点的位置也可能随之发生了变化,所以需要进行点跟踪来进行更新控制点。由于UNet特征可以很好的捕获点的响应,所以可以使用F(z^tk+1)F\left(\hat{z}_t^{k+1}\right)F(z^tk)F\left(\hat{z}_t^k\right)来跟踪新的控制点。

具体来说,本文在方块Ω(hik,r1)={(x,y):xxikr2,yyikr2}\Omega(h_{i}^{k},r_{1})=\{(x,y):|x-x_{i}^{k}|\leq r_{2},|y-y_{i}^{k}|\leq r_{2}\}内应用最近邻搜索来更新控制点hikh_i^k,即hik+1=argminqΩ(hik,r2)Fq(z^tk+1)Fhik(zt)1.h_i^{k+1}=\underset{q\in\Omega\left(h_i^k,r_2\right)}{\operatorname*{\arg\min}}\left\|F_q\left(\hat{z}_t^{k+1}\right)-F_{h_i^k}\left(z_t\right)\right\|_1.

2.4. Implementation Details