方法由两部分组成:pivotal inversion for diffusion models(ddim inversion提供下一步优化的起点) + null text optimization(优化CFG使用的null text embedding),因为模型主体参数没有改变,所以可以支持prompt-based editing这个任务;
methods
定义初始图片 I I I和编辑后图片 I ∗ I^* I∗,原始prompt和编辑后prompt P , P ∗ P,P^* P,P∗;
pivotal inversion: CFG放大了ddim inversion的累积误差,导致inverse不准,首先使用ddim+guidance scale=1进行inverse得到初始trajectory z T ∗ , ⋯ , z 0 ∗ z_T^*,\cdots,z_0^* zT∗,⋯,z0∗,其中 z 0 ∗ = z 0 z_0^*=z_0 z0∗=z0;
null text optimization:将null text embedding替换成了optimized one,也就是 { ∅ } t = 1 T \{\empty\}_{t = 1}^T {∅}t=1T,并且 ∅ t \empty_t ∅t使用上一步的 ∅ t + 1 \empty_{t + 1} ∅t+1来进行初始化;
以 t = T , ⋯ , 1 t=T,\cdots,1 t=T,⋯,1的顺序进行优化,每一个step优化 N N N次,初始化 z T ‾ = z T ∗ \overline{z_T}=z_T^* zT=zT∗,guidance scale设置为7.5,训练的目标是 m i n ∅ t ∣ ∣ z t − 1 ∗ − z t − 1 ( z t ‾ , ∅ t , C ) ∣ ∣ 2 2 min_{\empty_t}||z^*_{t - 1} - z_{t - 1}(\overline{z_t},\empty_t,C)||_2^2 min∅t∣∣zt−1∗−zt−1(zt,∅t,C)∣∣22;