Press "Enter" to skip to content

SDXL 1.0的到来

介绍 SDXL 1.0:理解扩散模型

一个可爱的小机器人学习如何绘画 — 使用 SDXL 1.0 创建

在快速发展的机器学习世界中,新模型和新技术几乎每天都在涌现,保持更新和做出明智选择变得艰巨。今天,我们将关注 SDXL 1.0,这是一个文本到图像生成模型,在该领域无疑引起了相当大的兴趣。

SDXL 1.0,即“Stable Diffusion XL”的简称,被吹嘘为一种潜在的文本到图像扩散模型,据说通过一系列有前景的增强功能超越了其前辈。在接下来的章节中,我们将仔细研究这些声明,并对新的增强功能进行更详细的了解。

值得注意的是,SDXL 是一个开源模型,它解决了生成模型领域的一个重要问题。虽然黑盒模型作为最先进的模型获得了认可,但其架构的不透明性阻碍了对其性能的全面评估和验证,限制了更广泛的社区参与。

在本文中,我们将详细探索这个有前途的模型,检查它的能力、构建块,并与之前的稳定扩散模型进行深入比较。我的目标是提供一个清晰的理解,而不过多涉及技术复杂性,使这篇文章对所有人来说都是一个引人入胜且易于理解的阅读。让我们开始吧!

理解稳定扩散:揭开文本到图像生成的魔力

如果您对稳定扩散的工作原理感到自信,或者不涉及技术部分,请随意跳过本章。

稳定扩散,这个突破性的深度学习文本到图像模型,在2022年发布后,在人工智能界引起了轰动,利用了尖端的扩散技术的力量。

这一重大进展代表了人工智能图像生成的显著进步,有可能将高性能模型的使用扩展到更广泛的受众。将纯文本描述转化为复杂的视觉输出的有趣能力已经引起了体验过的人们的注意。稳定扩散在生成高质量图像方面表现出色,同时还展示出显著的速度和效率,从而提高了人工智能生成艺术创作的可访问性。

稳定扩散的训练使用了大规模的公共数据集,如 LAION-5B,利用了大量带标题的图像来完善其艺术能力。然而,促进其进展的一个关键方面在于社区的积极参与,提供了有价值的反馈,推动模型的持续发展并增强其能力。

它是如何工作的?

让我们从稳定扩散模型的主要构建块开始,以及如何单独训练和进行预测。

U-Net 和扩散过程的本质:

为了使用计算机视觉模型生成图像,我们超越了依赖标记数据(如分类、检测或分割)的传统方法。在稳定扩散领域,目标是使模型能够自主学习图像的复杂细节,通过一种创新的方法“扩散”来捕捉复杂的上下文。

扩散过程分为两个独特的阶段:

  • 第一部分,我们对输入图像引入一定量的随机噪声。这一步骤被称为前向扩散
  • 第二部分,我们旨在去噪图像并重构原始内容。这个过程被称为反向扩散
通过步骤添加噪声。来源:用去噪扩散生成对抗网络解决生成学习三难问题

第一部分,在每个时间步骤t中向输入图像添加高斯噪声相对较为简单。然而,第二个阶段存在一个挑战,因为直接计算原始图像是不可行的。为了克服这个障碍,我们使用了一个神经网络,这就是巧妙的U-Net发挥作用的地方。

通过利用U-Net,我们训练我们的模型来预测给定时间步骤t的随机加噪图像中的噪声,并计算预测和实际噪声之间的损失。通过具有足够大的数据集和多个噪声步骤,模型获得了在噪声模式上做出明智预测的能力。这个经过训练的U-Net模型对于从给定的噪声生成近似重建图像也非常有价值。

Reverse Diffusion. Source: Denoising Diffusion Probabilistic Models

如果您熟悉基本概率和计算机视觉模型,这个过程相对简单。然而,值得注意的是还有一个问题。训练数百万个加入噪声的图像并重新构建它们将非常耗时,并且会消耗计算能力。为了解决这个挑战,研究人员重新审视了一个众所周知的架构:自编码器。由于我们已经使用了类似的方法,使用转置卷积和残差块来利用U-Net,这些元素在处理条件文本输入方面也将非常重要。

使用自编码器,可以将数据“编码”成一个更小的“潜在”空间,然后将其“解码”回到原始空间。事实上,这就是为什么原始的稳定扩散论文被称为潜在扩散。这使我们能够有效地将大型图像压缩到较低的维度。

Simple AutoEncoder representation.

前向和反向扩散操作现在将在显著较小的潜在空间中进行,从而降低存储需求并大大加快处理速度。

我们几乎已经完成了著名的“稳定扩散”架构;唯一剩下的部分是条件化。通常,可以使用文本编码器来实现这一方面,尽管还存在使用图像作为条件的其他方法,例如ControlNet,但这超出了本文的范围。在基于提供的文本生成图像的过程中,文本条件化在生成模型的真正魔力中起着关键作用。

为了实现这一点,可以训练一个文本嵌入模型,如BERTCLIP,使用带有标题的图像,并将令牌嵌入向量添加为条件输入。通过采用交叉注意力机制(查询、键和值),可以将条件的文本嵌入映射到U-Net残差块中。因此,在训练过程中,我们可以将图像标题与图像本身一起有效地结合,并根据提供的文本条件生成图像。

Latent Diffusion Model — Source: Paper

现在,您已经了解了稳定扩散模型的构建模块,凭借这些知识,我们可以方便地比较以前的稳定扩散模型,并更加明智地评估它们的优势和局限性。

SDXL中的新功能是什么?

现在我们已经掌握了SD模型的基本原理,让我们深入研究SDXL论文,揭示这个新模型引入的变革性改变。总结起来,SDXL提出了以下进展:

  • 增加的U-Net参数数量:SDXL通过增加更多的U-Net参数来增强其模型容量,实现更复杂的图像生成。
  • 转换块的异构分布:与先前模型中均匀分布的转换块([1,1,1,1])不同,SDXL采用了异构分布([0,2,4]),引入了优化和改进的学习能力。
  • 增强的文本条件化编码器:SDXL利用更大的文本条件化编码器OpenCLIP ViT-bigG,有效地将文本信息纳入图像生成过程中。
  • 额外的文本编码器:该模型使用额外的文本编码器CLIP ViT-L,它将其输出进行串联,以用补充的文本特征丰富条件化过程。
  • 引入“尺寸条件化”:一种名为“尺寸条件化”的新型条件器将原始训练图像的宽度和高度作为条件输入,使模型能够根据与尺寸相关的线索调整图像生成。
  • “裁剪条件化”参数:SDXL引入了“裁剪条件化”参数,将图像裁剪坐标作为条件输入。
  • “多方面条件化”参数:通过将桶大小纳入条件, “多方面条件化”参数使SDXL能够适应各种纵横比。
  • 专门的精细模型:SDXL引入了第二个SD模型,专门处理高质量、高分辨率的数据,有效捕捉复杂的局部细节。

现在,让我们仔细看一下这些新增功能与以前的稳定扩散模型相比的情况。

Stability.ai的官方比较:

让我们首先来看一下Stability.ai的官方比较,正如作者所述。这个比较为我们提供了有关SDXL和稳定扩散之间用户偏好的宝贵见解。然而,我们必须谨慎对待这些研究结果…

比较SDXL和以前的模型之间的用户偏好。来源:论文

这项研究表明,参与者更喜欢SDXL模型而不是以前的SD 1.5和2.1模型。特别是,带有Refiner附加功能的SDXL模型的胜率达到了48.44%。值得注意的是,虽然这个结果在统计上具有显著性,但我们还必须考虑到人为因素和生成模型固有的随机性引入的固有偏见。

与最先进的黑盒模型的性能对比:

来源:论文

目前,Midjourney在用户中非常受欢迎,有些人认为它是目前最先进的解决方案。根据官方调查,SDXL在“食品与饮料”和“动物”等类别中展现出更高的偏好率。然而,在“插图”和“抽象”等其他类别中,用户仍然更喜欢Midjourney V5.1。

来源:SDXL:改进潜在扩散模型以进行高分辨率图像合成

再次,我们观察到在复杂提示的情况下出现了类似的模式。论文声称,在10个复杂主题中,它们被优先选择了7次。然而,由于不了解具体使用的提示信息,很难得出结论。此外,关于Midjourney中提示编码器的信息缺乏进一步复杂化了问题,只有时间才能揭示真正的偏好。

U-Net参数数量

正如前面提到的,U-Net模型在稳定扩散中扮演着重要角色,可以从给定的噪声中重建图像。在SDXL中,作者通过使用比以前版本的SD更大的U-Net模型进行改进,总共使用了26亿个U-Net参数,而以前版本只有大约8.6亿个。

作者提供的图片。

虽然参数更多可能一开始看起来很有希望,但是必须考虑到复杂性和质量之间的权衡。随着参数数量的增加,训练和生成的系统要求也会增加。虽然对于产品的质量还不能得出最终结论,但复杂性和质量之间的权衡已经显现出来。

文本编码器参数数量

事实上,当考虑到文本编码器参数数量时,我们发现SDXL 1.0相比以前的版本有显著增加。SDXL引入了两个文本调节器,而以前的版本只有一个,这就解释了文本编码器参数数量的显著增长。这种扩展使SDXL能够利用更多的文本信息。

SDXL使用具有6.947亿个参数的OpenCLIP G/14文本编码器,而以前的版本使用具有1.2365亿个参数的CLIP L/14,总共超过8亿个参数。这是与以前版本相比的重大进步。

作者提供的图片。

再次提到,使用更大和多个文本编码器可能一开始看起来很有吸引力,但它引入了额外的复杂性,可能会带来负面影响。考虑这样一种情况,您正在使用自己的数据对SDXL模型进行微调。在这种情况下,确定最佳参数比以前的SD模型更具挑战性,因为找到两个编码器的超参数的“最佳点”更加困难。

工作流程

事实上,SDXL中的“XL”一词表明了与以前的SD模型相比的扩展规模和增加的复杂性。在各个方面,SDXL都超过了它的前辈,拥有更多的参数,包括两个文本编码器和两个U-Net模型 – 基础模型和细化器,它基本上是一个图像到图像模型。自然而然,SDXL的这种增加的复杂性导致了以下几个方面:

作者提供的通常的SD 1.5生成流程图
作者提供的SDXL生成流程图

SDXL的实践应用

SDXL的模型权重已经正式发布,并且可以作为Python脚本免费使用,这要归功于Hugging Face的diffusers库。此外,还提供了一个名为ComfyUI的用户友好的GUI选项。这个GUI提供了一个高度可定制的、基于节点的界面,允许用户直观地放置稳定扩散模型的构建块并进行可视化连接。

有了这个现成的实现,用户可以无缝地将SDXL集成到他们的项目中,使他们能够利用这种先进的潜在的文本到图像扩散模型的力量。

diffusers用法的基本示例

作者提供的ComfyUI工作流程图示例

SDXL的当前状态和个人经验

虽然SDXL中的新特性和增加的内容看起来很有前景,但一些经过微调的SD 1.5模型仍然提供更好的结果。这个结果主要归功于蓬勃发展的社区的大力支持 – 这是开源方法的一个优势。

在其初始模型阶段,SDXL在1.5的基础上展现出了改进,我相信在持续的社区支持下,它的性能只会变得更强。然而,必须承认,随着模型变得更加复杂,使用和微调它们在计算上需要更多的资源。但目前还不需要担心…

LoRA(局部自适应分解)已经在Fine-tuning大型语言模型方面变得越来越流行。这种方法涉及将秩分解权重矩阵对添加到现有的权重中,并仅对这些新添加的权重进行训练。结果,训练变得更快,计算效率更高。LoRAs的引入预计将为社区开辟道路,以在不久的将来创建更好的定制版本。值得注意的是,SDXL已经完全支持LoRAs。

尽管有积极的发展,但值得注意的是,SDXL仍然面临一些通常的Stable Diffusion的缺点,这一点已经由作者正式承认:

  • 模型无法达到完美的照片逼真度
  • 模型无法呈现可读的文本
  • 模型在涉及组合性的更困难的任务中,如渲染与“一个红色立方体在蓝色球体上方对应的图像”
  • 人脸和人物可能无法正确生成。
  • 模型的自编码部分是有损的。

个人观察

就我个人而言,在使用SDXL模型进行实验时,我仍然发现在某些情况下更喜欢以前的SD 1.5社区检查点。在经过几个月的社区支持后,相对容易找到适合特定需求(如逼真度或更卡通风格)的合适微调模型。然而,由于高计算能力需求,目前很难找到针对SDXL的特定微调模型。尽管如此,SDXL的基本模型在图像质量和分辨率方面似乎比SD 1.5或2.1的基本模型表现更好,随着进一步的优化和时间,这可能会在不久的将来改变。

值得注意的是,随着模型规模的增加,一些用户报告说在他们的日常笔记本电脑或个人电脑上运行模型存在困难,这是令人遗憾的。我希望在这个领域中,常用的量化技术也能找到它们的位置。

此外,随着文本编码器的变化,我的常用提示在SDXL上不再产生满意的结果。尽管SDXL的开发人员声称在SDXL上更容易进行提示,但我自己还没有找到合适的方法。对于那些来自以前版本的人来说,可能需要一些时间来适应新的提示样式。

结论

在我们的文章中,我们发现了稳定扩散XL的能力,它能够将纯文本描述转化为复杂的视觉表达。我们发现,SDXL的开源性质以及其解决与黑盒模型相关的问题的方法,使其受到了广泛的欢迎,使其能够触达更广泛的受众。

由于其增加的参数数量和额外的功能,SDXL已经证明自己是一个“XL”模型,与其前身相比具有更高的复杂性。

通过huggingface免费提供的Python脚本以及用户友好的ComfyUI GUI选项,SDXL的实际实现变得更加容易。

尽管SDXL显示出巨大的潜力,但向完美迈进的道路仍在继续。一些经过精心调整的SD 1.5模型在某些场景中仍然胜过SDXL,这要感谢充满活力的社区支持。然而,通过积极的参与和支持,我可以看到SDXL将继续发展和改进。

尽管如此,我们必须承认,与其前身一样,SDXL也有一些限制。实现完美的逼真度、渲染可读文本、处理组合性挑战以及准确生成面部和人体等领域是该模型需要改进的方向之一。

总之,SDXL 1.0代表了文本到图像生成领域的重大飞跃,释放了人工智能的创造潜力,并推动了可能性的边界。随着人工智能社区的持续合作和创新,我们期待在SD模型及其它领域中见证更多令人惊叹的发展。

参考文献:

  • 去噪扩散概率模型 — Jonathan Ho, Ajay Jain, Pieter Abbeel, 2020
  • 使用潜在扩散模型进行高分辨率图像合成 — Robin Rombach, Andreas Blattmann, Dominik Lorenz, Patrick Esser, Björn Ommer, 2021
  • SDXL:改进潜在扩散模型用于高分辨率图像合成 — Dustin Podell, Zion English, Kyle Lacey, Andreas Blattmann, Tim Dockhorn, Jonas Müller, Joe Penna, Robin Rombach, 2023
Leave a Reply

Your email address will not be published. Required fields are marked *