可控图像生成:Composer: Creative and Controllable Image Synthesis with Composable Conditions
当条件是可组合的而不是独立使用时,生成模型的控制空间可以大大扩展。此外,我们提出了多种基于无分类器和双向指导的 Composer 用于一系列图像生成和操作任务的方法,为未来的研究提供有用的参考。尽管我们在 4.3 节中凭经验找到了一种简单、可行的多条件联合训练配置,但该策略并不完美,例如,它可能会降低单条件生成性能的权重。例如,如果无法访问全局嵌入,则基于草图或基于深度的生成通常会生成相对较暗的图
Composer: Creative and Controllable Image Synthesis with Composable Conditions
文章目录
一、研究目的
提供了一种新的生成范式,可以灵活控制输出图像,如空间布局和调色板,同时保持合成质量和模型的创造性。(这里生成可控图像的方式与IP adapter 和 ControlNet的区别都挺大的,似乎Composer编辑的方式相对来说非常自由!)
图 1.构图图像合成的概念,它首先将一张图像分解成一组基本组件,然后重新合成一张具有高度创造力和可控性的新图像。为此,各种格式的组件作为生成过程中的条件,并允许在推理阶段进行灵活的定制。最好在大尺寸下观看。
二、研究背景
“The infinite use of finite means.”
“有限手段的无限使用”(The infinite use of finite means)这一概念最早由语言学家威廉·冯·洪堡(Wilhelm von Humboldt)提出,他强调语言通过有限的语法和词汇能够创造出无限多的句子,表达无限多的思想。这一观点后来被诺姆·乔姆斯基(Noam Chomsky)在其语言学理论中进一步发展和强调,成为生成语法(generative grammar)的核心理念之一。
乔姆斯基认为,人类语言的创造性在于使用有限的语法规则和词汇来生成和理解无限多的句子。这种能力是人类语言独特的属性,也是人类心智的一部分。他提出,每个说话者都掌握了一种生成语法,这种语法能够以一种明确和定义良好的方式为句子分配结构描述。这种语法是无意识的,超越了实际或潜在意识水平,是说话者所不知道的知识。
以往的可控图像生成模型在实际应用中仍然只能为设计者提供有限的可控性。例如,生成模型往往难以同时准确生成具有语义、形状、风格和颜色规格的图像,而这在现实世界的设计项目中很常见。
我们认为,可控图像生成的关键不仅取决于条件,更重要的是取决于组合性。后者可以通过引入大量的潜在组合(例如,一百张图像有八个表征,每个表征产生约 1008 种组合),以指数方式扩大控制空间。
三、研究内容(主要贡献)
我们在上述想法的基础上,提出了合成生成模型的实现方法–Composer。所谓合成生成模型,是指能够无缝重组视觉组件以生成新图像的生成模型(图 1)。具体来说,我们将 Composer 作为具有 UNet 主干网的多条件扩散模型来实现。Composer 的每次训练迭代分为两个阶段:在分解阶段,我们使用计算机视觉算法或预训练模型将一批图像分解为单个表征;而在合成阶段,我们对 Composer 进行优化,使其能够从表征子集重建这些图像。尽管只以重建为目标进行训练,但 Composer 仍能从未曾见过的表征组合中解码出新奇的图像,这些表征组合可能来自不同来源,也可能互不兼容。
四、技术路线
4.1. Diffusion Models
扩散模型是一种生成模型,通过迭代去噪过程从高斯噪声中生成数据。通常,去噪目标是简单的均方误差:
L simple = E x 0 , c , ϵ , t ( ∥ ϵ − ϵ θ ( a t x 0 + σ t ϵ , c ) ∥ 2 2 ) , \mathcal{L}_{\text {simple }}=\mathbb{E}_{\mathbf{x}_0, \mathbf{c}, \boldsymbol{\epsilon}, t}\left(\left\|\boldsymbol{\epsilon}-\boldsymbol{\epsilon}_\theta\left(a_t \mathbf{x}_0+\sigma_t \boldsymbol{\epsilon}, \mathbf{c}\right)\right\|_2^2\right), Lsimple =Ex0,c,ϵ,t(∥ϵ−ϵθ(atx0+σtϵ,c)∥22),
其中, x 0 \mathbf{x}_0 x0 是带有可选条件 c c c 的训练数据, t ∼ U ( 0 , 1 ) , ∼ N ( 0 , I ) t ∼ U(0,1),∼ N (0, I) t∼U(0,1),∼N(0,I) 是加性高斯噪声(additive Gaussian noise), a t a_t at、 σ t \sigma_t σt 是 t t t 的标量函数, θ \theta θ 是带有可学习参数 θ \theta θ 的扩散模型。最近的研究(最广泛地采用了无分类器引导技术,从扩散模型中进行条件数据采样,通过以下方式调整预测噪声:
ϵ ^ θ ( x t , c ) = ω ϵ θ ( x t , c ) + ( 1 − ω ) ϵ θ ( x t ) \hat{\boldsymbol{\epsilon}}_\theta\left(\mathbf{x}_t, \mathbf{c}\right)=\omega \boldsymbol{\epsilon}_\theta\left(\mathbf{x}_t, \mathbf{c}\right)+(1-\omega) \boldsymbol{\epsilon}_\theta\left(\mathbf{x}_t\right) ϵ^θ(xt,c)=ωϵθ(xt,c)+(1−ω)ϵθ(xt)
这里我们又遇到了一个老问题 就是什么是无分类器引导任务?
其中, x t = a t x 0 + σ t ϵ \mathbf{x}_t = a_t\mathbf{x}_0 + \sigma_t\epsilon xt=atx0+σtϵ, ω \omega ω 为引导权重。通常采用 DDIM 和 DPM-Solver 等采样算法来加快扩散模型的采样过程。DDIM 还可用于将样本 x 0 \mathbf{x}_0 x0 确定性地反转回其纯噪声潜值 x t \mathbf{x}_t xt,从而实现各种图像编辑操作。
引导方向: Composer 是一个可接受多种条件的扩散模型,可提供各种方向的无分类器指导:
ϵ ^ θ ( x t , c ) = ω ϵ θ ( x t , c 2 ) + ( 1 − ω ) ϵ θ ( x t , c 1 ) \hat{\boldsymbol{\epsilon}}_\theta\left(\mathbf{x}_t, \mathbf{c}\right)=\omega \boldsymbol{\epsilon}_\theta\left(\mathbf{x}_t, \mathbf{c}_2\right)+(1-\omega) \boldsymbol{\epsilon}_\theta\left(\mathbf{x}_t, \mathbf{c}_1\right) ϵ^θ(xt,c)=ωϵθ(xt,c2)+(1−ω)ϵθ(xt,c1)
其中 c 1 c_1 c1 和 c 2 c_2 c2 是两组条件。对 c 1 c_1 c1 和 c 2 c_2 c2 的不同选择代表了对条件的不同强调。( c 2 c_2 c2 \ c 1 c_1 c1)内的条件会得到强调,指导权重为 ω \omega ω;( c 1 c_1 c1 \ c 2 c_2 c2)内的条件会受到抑制,指导权重为 ( 1 − ω ) (1 - \omega) (1−ω); c 1 ∩ c 2 c_1 ∩ c_2 c1∩c2 内的条件的指导权重为 1.0。
双向引导: 通过使用条件 c 1 c_1 c1 将图像 x 0 \mathbf{x}_0 x0 反转为其潜在的 x T \mathbf{x}_T xT,然后使用另一个条件 c 2 c_2 c2 从 x T \mathbf{x}_T xT 中采样,我们就能使用 Composer 以分解的方式操作图像,操作方向由 c 2 c_2 c2 和 c 1 c_1 c1 之间的差值定义。我们在第 3.2 节和第 3.3 节中使用了这种方法。
4.2. Decomposition
我们将图像分解成不同的表征,以捕捉图像的各个方面。我们描述了在这项工作中使用的八种表征,其中所有表征都是在训练过程中即时提取的。
- Caption: 我们直接使用图像文本训练数据(如 LAION-5B)中的标题或描述信息作为图像标题。在没有注释的情况下,我们也可以利用预先训练好的图像标题模型。我们使用预训练的 CLIP ViT-L/14@336px 模型提取的句子和单词嵌入来表示这些标题。
- Semantics and style 我们使用经过预训练的 CLIP ViT-L/14@336px 模型提取的图像嵌入来表示图像的语义和风格,这与 unCLIP类似。
- Color:我们使用平滑的 CIELab 直方图来表示图像的颜色统计。我们将 CIELab 色彩空间量化为 11个色调值、5 个饱和度值和 5 个亮度值,并使用 10 的平滑西格玛。根据经验,我们发现这些设置效果良好。
- Sketch 我们采用边缘检测模型和草图简化算法来提取图像的草图。草图捕捉图像的局部细节,语义较少。
- Instances: 我们使用预训练的 YOLOv5模型对图像进行实例分割,以提取实例掩码。实例分割掩码反映了视觉对象的类别和形状信息。
- Depthmap 我们使用一个预训练的单目深度估计模型来提取图像的深度图,深度图可以大致捕捉图像的布局。 强度:我们将原始灰度图像作为一种表示方法,以迫使模型学习一种用于处理颜色的分离自由度。为了引入随机性,我们从一组预定义的 RGB通道权重中均匀采样,创建灰度图像。
- Masking 我们引入图像遮罩,使 Composer 能够将图像生成或处理限制在可编辑区域内。我们使用 4 通道表示法,其中前 3个通道对应遮罩的 RGB 图像,最后一个通道对应二进制遮罩。
用户可以使用 Composer 自由定制自己的条件。
这里又见到了一个很熟悉的词 unCLIP, 之前的不少论文都出现了这个词
4.3. Composition
我们利用扩散模型从一组表征中重新组合图像。具体来说,我们利用 GLIDE架构 并修改其调节模块。我们探索了两种不同的机制,以根据我们的表征对模型进行调节:
这里的 GLIDE架构 大概是什么?
全局调节: 对于包括 CLIP 句子嵌入、图像嵌入和调色板在内的全局表征,我们将其投影并添加到时间步嵌入中。此外,我们还将图像嵌入和调色板投射到八个额外的标记中,并将它们与 CLIP 词嵌入连接起来,然后将它们用作 GLIDE 中交叉注意的上下文,这与 unCLIP 类似。由于交叉注意中的条件可以是相加的,也可以是选择性屏蔽的,因此在训练和推理过程中可以直接放弃条件,或者引入新的全局条件。
局部调节: 对于包括草图、分割遮罩、深度图、强度图像和遮罩图像在内的本地化表征,我们使用堆叠卷积层将其投影到与噪声潜像 xt 具有相同空间大小的统一维嵌入中。然后,我们计算这些嵌入的总和,并将结果与 xt 连接起来,再输入 UNet。由于嵌入是相加的,因此很容易适应缺失条件或纳入新的局部条件。
联合训练策略: 必须设计一种联合训练策略,使模型能够从各种条件组合中学习解码图像。我们尝试了几种配置,并确定了一种简单而有效的配置,即对每个条件使用 0.5 的独立辍学概率,对所有条件使用 0.1 的辍学概率,对所有条件使用 0.1 的保留概率。我们对强度图像使用 0.7 的特殊放弃概率,因为强度图像包含了图像的绝大部分信息,在训练过程中可能会降低其他条件的权重。
基本扩散模型生成 64 × 64 分辨率的图像。为了生成高分辨率图像,我们训练了两个无条件扩散模型进行升采样,分别将图像分辨率从 64 × 64 升至 256 × 256,以及从 256 × 256 升至 1024 × 1024。上采样模型的架构是在 unCLIP(Ramesh 等人,2022 年)的基础上修改而来的,我们在低分辨率层中使用了更多通道,并引入了自我注意块来扩大容量。我们还引入了一个可选的先验模型(Ramesh et al. 我们根据经验发现,在某些条件组合下,先验模型能够提高生成图像的多样性。
五、实验结果
5.1. Training Details
我们训练了一个参数量为2B基础模型,用于以 64 × 64 的分辨率生成条件图像,训练一个参数量为1.1B模型,用于将图像放大到 256 × 256 分辨率,以及一个参数量为300M模型,用于将图像进一步放大到 1024 × 1024 分辨率。此外,我们还训练了一个参数量为1B先验模型,用于选择性地将标题(Caption)投影到图像嵌入。我们分别将 4096、1024、512 和 512 的批量大小用于先验、基本和两个增加采样模型。对于基础模型,我们仅使用图像嵌入作为条件,在整个数据集上用 1M 步对其进行预训练,然后在启用所有条件的情况下,在原始数据集中的 60M 示例子集(不包括美学分数低于 7.0 的 LAION 图像)上对模型进行 200K 步微调。先验模型和上采样模型在整个数据集上训练 1M 步。
还是有一个老问题还没解决 就是什么是先验 什么是先验模型? 一说起这个好像现在对大模型微调的方式还是很模糊 看看能不能找到一篇综述论文看看大模型微调到底是什么意思!!
5.2. Image Manipulation
对其表示的特定子集进行调节,我们具有很大的灵活性来控制图像变化的范围(图 2a)。
插值:通过在两个图像之间的全局表示的嵌入空间中遍历,我们可以将两个图像混合以进行变体。Composer 进一步让我们能够精确控制在两个图像之间插入哪些元素,哪些元素保持不变,从而产生多个插值方向(图 2b)。
这里其实还有一个问题不懂 就是什么叫做插值,这儿的插值又是如何实现的呢?
重新配置(Reconfigurations):图像重新配置(Reconfigurations)是指通过直接修改其一个或多个表示来操纵图像。具体来说,给定一个图像 x,我们可以通过应用以一组表示 c i c_i ci 为条件的 DDIM 反转来获得其潜在 x T \mathbf{x}_T xT ;然后,我们从 x T \mathbf{x}_T xT 开始应用 DDIM 采样,以修改后的一组表示 c j c_j cj 为条件,以获得图像 x ^ \hat{\mathbf{x}} x^ 的变体。预计变体 x ^ \hat{\mathbf{x}} x^ 沿 c j c_j cj 和 c i c_i ci 之间的差异定义的变化方向与 x \mathbf{x} x 不同,但它们在其他方面是相似的。通过遵循这个过程,我们能够从不同方向操纵图像。
可编辑区域:通过将 Composer 限制在一组表示 c 和蒙版图像 m 上,可以将变化限制在 m 定义的区域内。值得注意的是,可编辑区域与所有图像生成和操作都正交,为 Composer 提供了比单纯的修复更大的图像编辑灵活性(图 4)。
5.3. Reformulation of Traditional Generation Tasks
许多传统的图像生成和操作任务可以使用 Composer 架构重新制定。下面我们介绍几个示例。
基于调色板的着色(Palette-based colorization):有两种方法可以使用 Composer 根据调色板 p 为图像 x 着色:一种需要在 x 和 p 的灰度版本上调节采样过程,而另一种涉及根据调色板对 x 应用重新配置(Reconfigurations)。我们发现后一种方法会产生更合理和多样化的结果,我们在图 5a 中使用了它。
风格迁移(Style transfer):Composer 粗略地解开了内容和样式表示,这允许我们通过简单地调节 x 1 x_1 x1 的样式表示和 x 2 x_2 x2 的内容表示,将图像 x 1 x_1 x1 的样式转移到另一个图像 x 2 x_2 x2。还可以通过在两个图像之间插入样式表示来控制传递强度。我们在图 5b 中展示了示例。
图像翻译(Image translation):图像翻译是指将图像转换为内容保持不变但样式转换为与目标域匹配的变体的任务。我们使用图像的所有可用表示来描述其内容,并使用文本描述来捕获目标域。我们利用第 4.1 节中描述的重配置方法来操作图像(图 5c)。\
姿势传输(Pose transfer):图像的 CLIP 嵌入可捕获其样式和语义,使 Composer 能够在不影响其身份的情况下修改对象的姿势。我们使用对象的分割图来表示其姿态,并使用图像嵌入来捕获其语义,然后利用第 4.1 节中描述的重配置方法来修改对象的姿态(图 5d)。
虚拟试穿(Virtual try-on):给定一个服装图像 x1 和一个身体图像 x2,我们可以先在 x2 中遮罩衣服,然后在蒙版图像 m2 上调节采样过程以及 x1 的 CLIP 图像嵌入,以产生虚拟试穿结果(图 5e)。尽管质量中等,但结果表明 Composer 可以通过一个统一的框架处理难题。
六、总结
当条件是可组合的而不是独立使用时,生成模型的控制空间可以大大扩展。此外,我们提出了多种基于无分类器和双向指导的 Composer 用于一系列图像生成和操作任务的方法,为未来的研究提供有用的参考。
尽管我们在 4.3 节中凭经验找到了一种简单、可行的多条件联合训练配置,但该策略并不完美,例如,它可能会降低单条件生成性能的权重。例如,如果无法访问全局嵌入,则基于草图或基于深度的生成通常会生成相对较暗的图像。
另一个问题是,当出现不兼容的情况时,可能存在冲突。例如,当同时使用具有不同语义的图像和文本嵌入时,文本嵌入通常会在生成的结果中降低权重。 以前的研究强调了与图像生成模型相关的潜在风险,例如欺骗性和有害内容。Composer 在可控性方面的改进进一步增加了这种风险。我们打算彻底调查 Composer 如何降低滥用的风险,并可能在公开作品之前创建过滤版本。
七、感想
这篇文章的想法和之前读过的一篇论文叫做SemanticStyleGAN挺像的,SemanticStyleGAN是2022年字节提出的一款专门用于人脸合成与编辑的一个GAN模型,他的思想也是单独合成人脸的面部器官,再将各个器官根据深度图进行拼接,再交给判别器去判别。
这篇Composer给我的感觉就是提供了更为自由的方式去合成(生成)我们想要的图片的,虽然付出的代价明显比IP adapter和ControlNet的大(IP adapter无需对Stable Diffusion的参数做任何调整, ControlNet会更改参数但是基本的大方向以及再预训练的过程中已经确定了)。
但是这篇文章Method的内容相对较少,可能还得多看一下Code
明天看看unclip这篇文章的大致内容(遇到太多次了)
更多推荐
所有评论(0)