BlendDiffusion:Blended Diffusion for Text-driven Editing of Natural Images

局部图像编辑,是指仅对用户指定的区域进行编辑,同时保留图像的其余部分,生成图像要求全局上看起来一致连贯,使用 Mask 控制文本生效的区域
(图片)+Mask + 文本 ->DDPM-> 条件图片,文生图

  • 什么是 Blended?

    • 第一种通用的基于区域的现实世界的自然图像编辑方法,使用自然语言文本作为指导。具体来说,旨在实现一种文本驱动的方法:
    • 1)能够在真实图像上操作,而不是生成图像
    • 2)不被图像的具体领域限制,例如人脸或者床
    • 3)旨在用户指定区域进行修改,保留图像其余部分
    • 4)产生全局一致(seamless)的编辑结果
    • 5)能够为相同的输入生成多个结果,因为任务是一对多的
  • Blended 的基础版本(Local CLIP-guided diffusion)?

    • 这是原始使用 CLIP 引导 DDPM 编辑局部区域的过程,其最终目的是利用引导梯度,控制采样的均值中心向符合文本描述的区间靠近。这里的引导梯度分为两部分,即 DCLIPDbgD_{CLIP}、D_{bg}
    • CLIP 引导 DCLIP(x,d,m)D_{CLIP}(x,d,m):text prompt 和预测图片的 cosine distance,但是为了只考虑 mask 区域的梯度,其他背景区域计算的相似度则被忽略,其中 x 是某个时间步的噪声图,d 是目标文本,m 是遮罩

    DCLIP(x,d,m)=Dc(CLIPimg(xm),CLIPtxt(d))\mathcal{D}_{CLIP}(x,d,m)=D_{c}(CLIP_{img}(x\odot m),CLIP_{txt}(d))

    • 背景损失 Dbg(x,x^0,m)D_{bg}(x,\hat x_0,m):计算保证背景区域不发生太大的改变,2 个 loss,一个是很常见的 MSE Loss,一个是 LPIPS,

    Dbg(x1,x2,m)=d(x1(1m),x2(1m))d(x1,x2)=12(MSE(x1,x2)+LPIPS(x1,x2))\begin{aligned}\mathcal{D}_{bg}(x_1,x_2,m)&=d(x_1\odot(1-m),x_2\odot(1-m))\\d(x_1,x_2)&=\frac{1}{2}(MSE(x_1,x_2)+LPIPS(x_1,x_2))\end{aligned}

  • Blended 的升级版本(Text-driven blended diffusion)?

    • 不再用 MSE 和 LPIPS 这两个 loss 来控制原来的背景不变,而是直接把背景加同等的噪声输入到每一步中,通过在前景和背景上分别应用 DDPM,然后线性组合前景和背景即得到生成图片
    • 前景:通过 CLIP 引导,确保文本对局部区域有效,注意此时输入的图像是去躁并且进行数据增强的
    • 背景:是原始的 DDPM 过程
  • Blended 为为什么要做数据增强?

    • 在 diffusion 生成的过程中,对图像做数据增强,同时求多张图像的梯度取平均再回传。这样的效果会比较好,上图 (1) 是没有数据增强的引导结果,(2)是有数据增强的引导结果
  • Blended 的局限性?

    • 推理时间:由于 DDPM 的顺序性质,如附录中所述,在现代 GPU 上生成一张图像大约需要 30 秒
    • 排序方法并不完美:因为它只考虑了被编辑的区域,而没有考虑图像的整个上下文。因此,只包含部分目标对象的糟糕结果仍然可能获得高分,如图 (1) 所示一个更好的排名系统将使本文的方法产生更引人注目和一致的结果

参考:

  1. 【AIGC 第一篇】BlendDiffusion:基于 clip-guidance 的图像生成技术 - 知乎
  2. Blended Diffusion for Text-driven Editing of Natural Images (CVPR2022) - 知乎
  3. 扩散模型论文阅读 | Blended Diffusion for Text-driven Editing of Natural Images - 知乎
  4. CVPR2022 | Blended Diffusion for Text-driven Editing of Natural Images - 知乎