前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ICCV 2023 | TF-ICON: 基于扩散的免训练跨域图像合成

ICCV 2023 | TF-ICON: 基于扩散的免训练跨域图像合成

作者头像
用户1324186
发布2023-11-02 17:11:55
6100
发布2023-11-02 17:11:55
举报
文章被收录于专栏:媒矿工厂媒矿工厂

来源:ICCV 2023 作者:Shilin Lu 等 论文题目:TF-ICON: Diffusion-Based Training-Free Cross-Domain Image Composition 论文链接:https://arxiv.org/abs/2307.12493 项目主页:https://shilin-lu.github.io/tf-icon.github.io/ 内容整理:汪奕文 文本驱动的扩散模型具有强大的生成能力,可以完成各种图像编辑任务。在本文中,作者提出了一种新颖的免训练图像合成框架(TF-ICON),该框架利用文本驱动扩散模型的强大功能进行跨域图像引导合成。这项任务旨在将用户提供的对象无缝整合到特定的视觉环境中。目前基于扩散的方法通常涉及昂贵的基于实例的优化或在特定数据集上对预训练模型进行微调,这可能会破坏其丰富的先验。相比之下,TF-ICON 可以利用现成的扩散模型来执行跨域图像引导合成,而无需额外的训练、微调或优化。此外,作者还引入了不包含任何信息的特殊 prompt,以帮助文本驱动的扩散模型准确地将真实图像反演为潜在特征。

引言

图像合成任务(Image composition)涉及将不同照片中的对象融入到特定的视觉环境中,以创建一个和谐的图像,也即图像引导合成。这项任务本身就极具挑战性,因为它要求保持光照一致性并保留识别特征。当图像来自不同域时,任务的挑战就会进一步加剧。

虽然最近大规模的文本-图像模型在文本驱动的图像生成方面取得了显著的成功。但自然语言固有的模糊性给细致的视觉细节带来了挑战,即使对于高度详细的文本 prompt 也是如此。 虽然个性化概念学习的引入有效地解决了这一难题,但这些方法需要昂贵的基于实例的优化,而且在生成具有特定背景的概念时受到限制。扩散模型可以通过加入额外的引导图像来实现图像引导合成。然而,这些模型需要在特定数据集上在预训练模型上重新训练,这会破坏预训练模型的丰富先验。因此,这些模型在训练域之外的合成能力有限,而且仍然需要大量的计算资源。

对于真实图像编辑框架来说,寻找既能重建输入图像又能保持其可编辑性的潜在编码(image inversion)是一个具有挑战性但又至关重要的步骤。虽然 DDIM inversion 对于无条件扩散模型有效,但对于文本驱动的扩散模型来说,它呈现出不足。为了解决这个问题,本文引入了一个特殊的 prompt,即在预训练的文本-图像模型基础上,将真实图像准确地反演为潜在编码,以便进一步生成合成。将潜在编码作为扩散过程的起始噪声,通过逐步注入自注意图,将背景中的上下文信息注入到合并的对象中,从而实现一致的图像引导合成。

本文的主要贡献如下:

  • 展示了高阶扩散 ODE 求解器与常用的 DDIM inversion 相比,在实际图像反演中的优越性能。
  • 提出了一个特殊的 prompt,它允许文本驱动模型实现精确的反演,为后续编辑奠定了坚实的基础。
  • 提出了第一个无需训练的框架,它能为基于注意力的扩散模型提供跨域图像引导合成。
  • 定量和定性地证明了本方法的框架在图像引导合成方面优于先前的 baseline。

图 1

先验

扩散概率模型(DPM)通过对高斯噪声逐步去噪生成图像。形式上,给定数据样本

\textbf{x}_0 \sim p_0 = p_{\text{data}}

,随机噪声被逐渐注入,最终得到样本

\textbf{x}_T

。样本

\textbf{x}_T

的分布通常为可处理的先验

p_T

,而不包含任何

p_0

的信息,如下面的 SDE 所描述:

d\textbf{x}_t = \textbf{f}(\textbf{x}_t, t)dt + g(t)d\textbf{w}_t \quad (1)

其中,

\textbf{w}_t \in \mathbb{R}^d

是标准的维纳过程,

\textbf{f}(\cdot, t)

g(t)

通常分别称为漂移系数和扩散系数。 另一方面,反向扩散过程可以用从

T

0

的反向时间 SDE 描述:

d\textbf{x}_t = [\textbf{f}(\textbf{x}_t, t)-g(t)^2\nabla_{\textbf{x}}\log p_t(\textbf{x}_t)]dt+g(t)d \overline{\textbf{w}}_t \quad (2)

其中,

\overline{\textbf{w}}_t

是反向时间的维纳过程。分数

\nabla_{\textbf{x}}\log p_t(\textbf{x}_t)

是唯一的未知项,可通过神经网络

\epsilon_{\theta}(\textbf{x}_t, t)

估计,其参数

\theta

通过去噪目标函数进行优化。 在本研究中,利用了预训练的文本-图像潜在扩散模型(LDM),在潜在空间中应用 VP SDE。

方法

任务目标是利用主(背景)图像

\textbf{I}^m

、参考(前景)图像

\textbf{I}^r

、文本 prompt

\mathcal{P}

和指定主图像中感兴趣区域的二进制 mask

\textbf{M}_{user}

来生成修改后的图像

\textbf{I}^*

。生成的图像

\textbf{I}^*

在 mask 内应包含具有识别特征的参考对象,即

id(\textbf{I}^* \odot \textbf{M}_{user}) \approx id(\textbf{I}^r)

。同时,需确保剩余区域与主图像相似,即

\textbf{I}^* \odot (1 - \textbf{M}_{user}) ≈ \textbf{I}^m \odot (1 - \textbf{M}_{user})

。此外,mask 内外区域之间的过渡最好是不易被察觉的。

本文提出了一种无需训练的框架,可以利用基于注意力的预训练文本-图像模型来完成图像引导合成任务。本方法可以在 20 个采样步骤内完成。该框架主要包括两个步骤:图像图像反演过程和图像合成生成过程。

图 2

图像反演过程

要实现对真实图像的精确操作,往往需要一个精确的反演过程来定义相应的潜在表示,这不仅提供了可编辑性,而且还能准确地重建输入图像。对于扩散模型,最佳可编辑性的典型特征是噪声编码符合零均值、单位方差高斯噪声的理想统计特性。

ODE Inversion

大多数用于图像编辑的扩散模型框架都使用 DDIM inversion 将原始图像反演为其潜在表示。然而,我们的研究结果表明,DDIM inversion 可能不是反演真实图像的最佳选择。事实证明,DDIM inversion 是 SDE 的相关概率流常微分方程(ODE)的一阶离散化。

d\textbf{x}_t = [\textbf{f}(\textbf{x}_t, t)-\frac12 g(t)^2\nabla_{\textbf{x}}\log p_t(\textbf{x}_t)]dt \quad (3)

可以用

\epsilon_{\theta}(\textbf{x}_t, t)

求解,并与 SDE 共享一致的边缘概率分布

\left\{p_t(\textbf{x}_t)\right\}^T_{t=0}

。为了实现快速采样,人们开发了各种采样器,用于从噪声

\textbf{x}_T

开始求解扩散 ODE。我们认为,利用这些 ODE 求解器反过来作为编码器,从真实图像

\textbf{x}_0

开始,可以得到比 DDIM inversion 更好的潜在表示

\textbf{x}_T

高阶 DPM-Solver++ 增强了前向和后向 ODE 轨迹之间的一致性,这意味着它更适合真实图像反演。因此,本文将其用于所有扩散模型的反演。

特殊 prompt

在无条件

\epsilon_{\theta}(\textbf{x}_t, t)

中,求解从

0

T

的扩散 ODE 可以将真实图像

\textbf{x}_0

编码获得较好的潜在表示

\textbf{x}_T

。然而,在文本驱动

\epsilon_{\theta}(\textbf{x}_t, t,\mathcal{E})

的情况下,由于 CFG 引起的不稳定性,反演过程容易产生显著的重建误差:

\hat{\epsilon}_{\theta}(\textbf{x}_t, t,\mathcal{E},\varnothing)=s \cdot \epsilon_{\theta}(\textbf{x}_t, t,\mathcal{E})+(1-s)\cdot \epsilon_{\theta}(\textbf{x}_t, t,\varnothing) \quad (4)

即使没有 CFG,文本到图像扩散模型的条件输出

\epsilon_{\theta}(\textbf{x}_t, t,\mathcal{E})

和非条件输出

\epsilon_{\theta}(\textbf{x}_t, t,\varnothing)

仍然会产生很大的重建误差。

图 3

为了实现精确反演,本文提出了简单而有效的解决方案,即特殊 prompt。直观地说,输入的 prompt 中包含的任何信息都会导致后向 ODE 轨迹与前向轨迹出现偏差。因此,特殊 prompt 中删除了所有信息,将所有 token 设置为相同值,并消除了文本 prompt 的位置嵌入。重要的是,特殊 prompt 与空 prompt 的区别在于它没有特殊标记,如

\mathtt{[startoftext]}

\mathtt{[endoftext]}

\mathtt{[pad]}

,这些标记仍然保留了信息。特殊提示符只用于图像反演过程,而不用于合成过程。token 值的选择不会对反演产生重大影响。使用特殊 prompt 嵌入

\mathcal{W}=\psi(\mathcal{P}_{exceptional})

时,我们的结果

\epsilon_{\theta}(\textbf{x}_t, t,\mathcal{W})

比其他结果更加直观准确。

图 4

图像合成生成

噪声合成

在将图像反演为噪声之前,需要对参考图像进行简单的预处理。通常情况下,参考图像中只有前景是需要合成的,因此首先使用预训练的分割模型移除背景,调整对象的大小和位置以匹配主图像中用户提供的 mask,并用 zero padding 以确保其与主图像大小相同。 预处理结束之后,通过求解从

0

T

的扩散 ODEs,将主图像和参考图像反演为相应的噪声

\textbf{x}_T^m

\textbf{x}_T^r

然后将

\textbf{x}_T^m

\textbf{x}_T^r

与标准高斯噪声

\textbf{z}

合并,以得到起始噪声

\textbf{x}_T^*

。合并噪声

\textbf{x}_T^*

的计算公式为

\textbf{x}_T^*=\textbf{x}_T^r\odot \textbf{M}_{seg}+\textbf{x}_T^m \odot (1-\textbf{M}_{user})+\textbf{z} \odot (\textbf{M}_{user} \oplus \textbf{M}_{seg}) \quad (5)

其中,

\textbf{z} \sim \mathcal{N}(\textbf{0,I})

,

\textbf{M}_{user}

是用户提供的 mask,

\textbf{M}_{seg}

是参考图像的分割 mask,

\textbf{M}_{user} \oplus \textbf{M}_{seg}

\textbf{M}_{user}

\textbf{M}_{seg}

的异或,也即过渡区域。

\textbf{z}

的加入增强了用户 mask 内外区域之间的平滑过渡,因为有效地利用了文本驱动扩散模型的先验知识对过渡区域进行填充。根据经验,对于跨域合成,在噪声空间中生成起点通常更为有效;而对于逼真度而言,在像素空间或隐空间中合成,然后将其反演作为起点则更为有效。

合成自相关图注入

以合成噪声

\textbf{x}_T^*

为起点,求解从

T

0

的扩散 ODE,并用 prompt

\mathcal{P}

来生成最终的合成图像。

\mathcal{P}

的作用是帮助合成过渡区域。然而,如果仅仅依靠噪声融入,预训练的文本-图像模型无法有效保留主图像和参考图像的外观。为了解决这个问题,作者建议以一种特殊设计的方式注入复合自我注意力图,因为语义信息基本上保留在自我注意力图的行和列中。

复合自注意力图由三个部分组成:两个自注意力图

\textbf{A}_{l,t}^m

\textbf{A}_{l,t}^r

,分别对应主图像和参考图像,以及一个交叉注意力图

\textbf{A}_{l,t}^{cross}

图 5

如果想要在上图(a)中蓝色区域的参考图像与主图像合成,其自注意力图

\textbf{A}_{l,t}^r

应放在上图(b)的相应蓝色区域,因为第 5 个 patch 在自注意背景下只能注意到第 6、9 和 10 个patch。上图(b)中绿色的区域应该包含交叉注意图

\textbf{A}_{l,t}^{cross}

,它将白色区域的上下文信息注入蓝色区域。如果将绿色区域保留为白色区域的自注意力而不进行替换,则其中存储的信息只能反映原始 patch 之间的关系。

\textbf{q}_{l,t}^m,\textbf{k}_{l,t}^m,\textbf{v}_{l,t}^m \in \mathbb{R}^{(h\times w)\times d}

是使用预训练Stable Diffusion 的自注意力模块计算得出的。通常,第

l

层的自注意模块包含三个投影矩阵

\textbf{W}_l^q,\textbf{W}_l^k,\textbf{W}_l^v

,维度为

\mathbb{R}^{d\times d}

。将时间步

t

l

层的主图像和参考图像的空间特征记为

\textbf{f}_{l,t}^m \in \mathbb{R}^{(h\times w)\times d}

\textbf{f}_{l,t}^r \in \mathbb{R}^{(h'\times w')\times d}

,其中

h'\times w'

是参考图像根据用户 mask 调整大小后的尺寸。每个自我关注模块的

Q,K,V

的计算公式为

\begin{aligned} \textbf{q}_{l,t}^m=\textbf{f}_{l,t}^m\textbf{W}_l^q,~\textbf{k}_{l,t}^m=\textbf{f}_{l,t}^m\textbf{W}_l^k,~\textbf{v}_{l,t}^m=\textbf{f}_{l,t}^m\textbf{W}_l^v \\ \textbf{q}_{l,t}^r=\textbf{f}_{l,t}^r\textbf{W}_l^q,~\textbf{k}_{l,t}^r=\textbf{f}_{l,t}^r\textbf{W}_l^k,~\textbf{v}_{l,t}^r=\textbf{f}_{l,t}^r\textbf{W}_l^v \end{aligned} \quad (6)

其中,

\textbf{q}_{l,t}^m,\textbf{k}_{l,t}^m,\textbf{v}_{l,t}^m \in \mathbb{R}^{(h\times w)\times d}

\textbf{q}_{l,t}^r,\textbf{k}_{l,t}^r,\textbf{v}_{l,t}^r \in \mathbb{R}^{(h'\times w')\times d}

。由此,

\textbf{A}_{l,t}^m,\textbf{A}_{l,t}^r,\textbf{A}_{l,t}^{cross}

和融合后的

\textbf{A}_{l,t}^*

计算方式如下:

\begin{aligned} \textbf{A}_{l,t}^m=\text{Softmax}(\textbf{q}_{l,t}^m \cdot (\textbf{k}_{l,t}^m)^T/\sqrt{d}), \\\textbf{A}_{l,t}^r=\text{Softmax}(\textbf{q}_{l,t}^r \cdot (\textbf{k}_{l,t}^r)^T/\sqrt{d}),\\\textbf{A}_{l,t}^{cross}=\text{Softmax}(\textbf{q}_{l,t}^m \cdot (\textbf{k}_{l,t}^r)^T/\sqrt{d}),\\\textbf{A}_{l,t}^{*}=\vartheta_{\text{compose}}(\textbf{A}_{l,t}^{m},\textbf{A}_{l,t}^{r}\textbf{A}_{l,t}^{cross}) \end{aligned} \quad (7)

其中,

\textbf{A}_{l,t}^m \in \mathbb{R}^{(h\times w)\times (h\times w)},\textbf{A}_{l,t}^r \in \mathbb{R}^{(h'\times w')\times (h'\times w')},\textbf{A}_{l,t}^{cross} \in \mathbb{R}^{(h\times w)\times (h'\times w')}

\vartheta_{\text{compose}}

是根据 patch 生成复合自注意图

\textbf{A}_{l,t}^*

的函数。

三个 ODE同时从

T

0

求解,分别从反演噪声

\textbf{x}_T^r

,

\textbf{x}_T^*m

和合成噪声

\textbf{x}_T^*

开始求解。在求解前两个 ODE 时,会使用特殊 prompt

\mathcal{P}_{exceptional}

来逐步重建主图像和参考图像,从而在每个时间步长

t

计算

\textbf{A}_{l,t}^m,\textbf{A}_{l,t}^r,\textbf{A}_{l,t}^{cross}

。然后将这些注意力图合成并注入第三个 ODE,以生成具有文本 prompt

\mathcal{P}

的自然且连贯的合成图像。

为了平衡 high-level 上下文和细节的生成,作者设置了一个阈值

\tau_A

来决定在早期阶段注入复合自注意图

(t \in [T \times \tau_A, T])

,并允许模型在后期阶段

(t \in [0,T \times \tau_A])

在预训练模型先验的指导下,通过文本 prompt

\mathcal{P}

探索 ODE 轨迹。然而,在没有注意力注入约束的情况下,这种自由度往往会导致偏离预期背景。因此,作者设置了一个额外的阈值

\tau_B

,用于调节轨迹矫正过程。这一过程需要在前期时间阶段用重建的主图像替换用户 mask 外的区域,即

\hat{\textbf{x}}^*_t=\textbf{x}^*_t \odot \textbf{M}_{user}+\textbf{x}^m_t \odot (1-\textbf{M}_{user}) \quad (8)

其中,

t \in [T \times \tau_B,T]

实验

实验结果

在四个视觉域(真实图像、铅笔素描、油画和卡通动画)进行了定性比较,对比了 SOTA 和适用于图像引导合成的其他 baseline。本方法能够将对象无缝地合成到不同的域中,同时保持它们原本的特点。相比之下,DIB 和 DCCF 在处理过渡区域方面存在不足,导致了明显的人工痕迹。Blended Diffusion 的前景生成和Textual Inversion 的背景生成完全依赖于文本提示,这与用户意图相背离。此外,扩散时间步数较少的 SDEdit 在保留参考图像特征方面适用于图像合成,但背景会发生变化。

图 6

表 1

消融实验

图 7

表 2

结果表明除了

\text{CLIP}_{(\text{Text})}

外,完整算法在所有指标上都优于其他。值得注意的是,baseline 算法的

\text{CLIP}_{(\text{Text})}

效果最好,因为它完全依靠文本 prompt 生成图像,没有任何额外的约束。主图像和参考图像之间的交叉注意力对前景和背景在保留外观和切换域方面都非常有利。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 先验
  • 方法
    • 图像反演过程
      • 图像合成生成
      • 实验
        • 实验结果
          • 消融实验
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档