逼真复刻「完美中国情侣」,加强版 Stable Diffusion 免费体验,最新技术报告出炉

就在刚刚,号称是「开源版 Midjourney」的 Stable Diffusion XL 0.9 的技术报告,新鲜出炉。

「加强版」Stable Diffusion 最新技术报告出炉了!

报告地址:

https://github.com/Stability-AI/generative-models/blob/main/assets/sdxl_report.pdf

在 4 月开启公测后,Stable Diffusion XL 受到不少人的青睐,号称「开源版的 Midjourney」。

在画手、写字等细节上,SDXL 能够全局把控,最重要的是不用超长 prompt 就可实现。

不仅如此,比起需要氪金的 Midjourney,SDXL 0.9 可以免费体验!

有趣的是,研究团队在最后的附录中,竟然感谢了「ChatGPT 提供的写作帮助」。

「小胜」Midjourney

那么,与 Midjourney 相比,SDXL 究竟有多能打?

报告中,研究人员从每个类别中随机选择了 5 个提示,并针对每个提示使用 Midjourney(v5.1,种子设定为 2)和 SDXL 生成了四张 1024×1024 的图像。

然后将这些图像提交给 AWS GroundTruth 任务组,该任务组根据遵循提示进行投票。

总体而言,在遵循提示方面,SDXL 略优于 Midjourney。

来自 17,153 个用户的反馈

对比涵盖了 PartiPrompts(P2)基准测试中的所有「类别」和「挑战」。

值得注意的是,SDXL 在 54.9% 的情况下优于 Midjourney V5.1。

初步测试表明,最近发布的 Midjourney V5.2 在理解提示方面反而有所降低。不过,生成多个提示的繁琐过程妨碍了进行更广泛测试的速度。

P2 基准中的每个提示都按照类别和挑战进行了组织,每个类别和挑战都专注于生成过程的不同难点。

如下展示了 P2 基准中每个类别(图 10)和挑战(图 11)的比较结果。

在 6 个类别中的 4 个,SDXL 表现优于 Midjourney,在 10 个挑战中的 7 个,两个模型之间没有显著差异,或者 SDXL 表现优于 Midjourney。

大家也可以来猜猜看,下面这组图中,哪些是 SDXL 生成的,哪些是 Midjourney 生成的。

(答案会在下文中揭晓)

SDXL:开源最强文生图

去年,号称最强文生图模型 Stable Diffusion 开源,点燃了全球生成式 AI 的火把。

比起 OpenAI 的 DALL-E,Stable Diffusion 让人们能够在消费级显卡上实现文生图效果。

Stable Diffusion 是一种潜在的文本到图像的扩散模型(DM) ,应用非常广泛。

近来基于功能磁共振成像 fMRI 重建大脑图像的研究,以及音乐生成的研究都是基于 DM 展开的。

而这个爆火工具背后的初创公司 Stability AI,在今年 4 月再次推出,Stable Diffusion 改进版本 ——SDXL。

根据用户研究,SDXL 的性能始终超过 Stable Diffusion 以前所有的版本,比如 SD 1.5 、SD2.1。

报告中,研究人员提出了导致这种性能提升的设计选择,包括:

1)与以前的 Stable Diffusion 模型相比,UNet 主干架构增加了 3 倍;

2)两种简单而有效的附加调节技术,不需要任何形式的额外监督;

3)一个单独的基于扩散的细化模型,该模型对 SDXL 产生的潜在信号采用去噪处理 ,以提高样本的视觉质量。

改善 Stable Diffusion

研究人员对 Stable Diffusion 架构进行了改进。这些都是模块化的,可以单独使用,或一起使用来扩展任何模型。

报告称,尽管以下策略是作为潜在扩散模型的扩展开展的 ,但其中大多数也适用于像素空间的对应物。

当前,DM 已被证明是图像合成的强大生成模型,卷积 UNet 架构成为基于扩散的图像合成的主导架构。

随着 DM 发展,底层架构也在不断演进:从增加自注意力和改进升级层,到文本图像合成的交叉注意力,再到纯粹基于 Transformer 架构。

在 Stable Diffusion 不断改进中,研究人员也在遵循这一趋势,将大部分 Transformer 计算转移到 UNet 中较低级的特征中。

特别是,与原来的 SD 架构相比,研究人员在 UNet 中使用了不同的 Transformer 块异构分布。

为了提高效率,并在最高特征级别中省略了 Transformer 块,在较低级别中使用 2 个和 10 个块,还在 UNet 中完全删除了最低级别(8 倍下采样),如下图所示。

SDXL 与 Stable Diffusion 不同版本模型的比较

研究人员选择了一个更强大的预训练文本编码器,用于文本调节。

具体来说,将 OpenCLIP ViT-bigG 与 CLIP ViT-L 结合使用,这里沿着通道轴连接倒数第二个文本编码器输出。

除了使用交叉注意层来约束模型的文本输入之外,研究人员还遵循 ,并且 OpenCLIP 模型的混合嵌入文本上附加约束模型。

由此,这些因素导致了 UNet 中的模型参数大小为 2.6B,文本编码器总参数为 817M。

微调

潜在扩散模型(LDM)最大的缺点是,由于它是两阶段架构,训练一个模型需要最小的图像大小。

解决这个问题主要有 2 个方法,要么丢弃低于某个最小分辨率的训练图像,(SD 1.4/1.5 丢弃所有低于 512 像素的图像)要么选择超小的高级图像。

然而,第一种方法会导致可能导致大量的训练数据被丢弃,图像性能会损失。研究人员为 SDXL 预先训练数据集做了一个可视化效果。

对于特殊的数据选择,丢弃低于 256×256 像素预训练分辨率的所有样本,将导致 39% 数据丢失。

而第二种方法,通常会带来升级的伪影,这些伪影可能会泄露到最终的模型输出中,导致样本模糊。

对此,研究人员建议将 UNet 模型以原始分辨率为条件。这在训练期间非常容易获得。

特别是,提供了原始图像的高度和宽度作为模型

的附加条件。

每个组件都使用傅里叶特征编码独立嵌入,并连接成一个向量,研究团队通过添加到时间步长嵌入中来反馈到模型中。

在推断时,用户可以通过这种尺寸调节来设置图像所需的直观分辨率。显然 ,模型已经学会将条件

与分辨率相关的图像特性。

如图,研究人员显示了从 SDXL 中用相同的随机种子抽取 4 个样本,并改变大小调节。当调节较大的图像尺寸时,图像质量明显提高。

如下是 SDXL 的输出,与 SD 以前版本的比较。对于每个 prompt,研究人员在 DDIM 采样器和 cfg-scale 8.0 的 50 步的 3 个随机样本。

在先前的 SD 模型中,合成的图象可能会被不正确地裁剪,比如左边例子中 SD 1.5 和 SD 2.1 生成的猫头。

而从以下这些对比中不难看出,SDXL 基本上已经把这个问题给解决了。

能够实现如此显著的改善,是因为研究人员提出了一种简单而有效的条件化方法:

在数据加载过程中,统一采样裁剪坐标

(分别指定从左上角沿高度和宽度轴裁剪的像素数量的整数),并通过傅里叶特征嵌入将它们作为条件化参数输入模型,类似于上述尺寸条件化方法。

然后使用连接嵌入

作为附加条件参数。

在此,研究团队特别强调,这并不是唯一适用于 LDMs 的技术,裁剪和尺寸调节可以很容易地结合起来。

在这种情况下,沿着通道维度连接嵌入的特征,然后将其添加到嵌入 UNet 的时间步长中。

如图,通过调优

,可以成功地模拟推理过程中的裁剪量。

全面训练

受到以上技术启发,研究人员还对模型进行微调,以同时处理多个纵横比:将数据分割成不同纵横比的桶形,在这里尽可能保持像素计数接近 1024×1024,相应地以 64 的倍数改变高度和宽度。

改进的自编码器

虽然大部分的语义构成是由 LDM 完成的,但研究人员可以通过改进自编码器来改善生成图像中的局部、高频细节。

为此,研究人员以更大的批处理规模(256 vs 9)来训练用于原始 SD 相同的自编码器结构,并以指数移动平均数来跟踪权重。

由此产生的自编码器在所有评估的重建指标中,都优于原始模型。

SDXL 诞生了

研究人员在一个多阶段的过程来训练最终的模型 SDXL。SDXL 使用了自编码器,和 1000 步的离散时间扩散计划。

首先,在一个内部数据集上预训练一个基础模型,其高度和宽度分布显示为 60 万个优化步骤,分辨率为 256 × 256,批大小为 2048,使用如上所述的尺寸和裁剪调节。

然后,研究人员继续对 512×512 的图像进行训练,再进行 20 万个优化步骤,最后利用全面训练,结合 0.05 的偏移噪声水平,在约 1024×1024 像素区域不同纵横比训练模型。

在细化阶段上,研究人员发现得到的模型有时会产生局部质量低的样本,如下图所示。

为了提高样本质量,他们在相同的潜在空间中训练了一个独立的 LDM,专门处理高质量、高分辨率的数据,并采用 SDEdit 在基本模型样本上引入去噪处理。

在推理过程中,研究人员使用相同的文本输入,从基本 SDXL 渲染潜在信息,并使用细化模型在潜在空间中直接扩散和去噪。

来自 SDXL 的 1024×1024 样本放大,没有(左)和有(右)细化模型

值得一提的是,这一步能够提高背景和人脸的样本质量,并且可选。

局限性

虽然 SDXL 在性能上已经有了不小的提升,但模型依然存在着明显的局限性。

首先,SDXL 还是不能很好地处理比如人手这类的复杂结构。

研究人员推测,产生这种问题的原因是,由于不同图像中人手以及其他结构复杂的物体,存在着很大的差异性,因此模型很难提取出真实的 3D 形状。

其次,SDXL 生成的图像还远不及照片那样逼真。

在一些微妙的细节上,比如弱光效果或纹理变化,AI 生成的图像可能会出现缺失或表现得不够准确。

此外,当图像中包含有多个物体或主体时,模型可能会出现所谓的「概念溢出」现象。这个问题表现为,不同视觉元素的意外合并或重叠。

例如,下图中的橙色太阳镜,就是因为「橙色毛衣」出现了概念溢出。

而在图 8 中,本应该戴着「蓝色帽子」和「红色手套」的企鹅,在生成的图像中却是戴着「蓝色手套」和「红色帽子」。

与此同时,一直困扰着文生图模型的「文字生成」部分,依然是个大问题。

如图 8 所示,模型生成的文本有时可能包含随机字符,或者与给定的提示并不一致。

未来的工作

对此,研究人员表示,对于模型的进一步改进,主要会集中在以下几个方面:

・单阶段生成

目前,团队使用的是一个额外的细化(refinement)模型以两阶段的方式,来生成 SDXL 的最佳样本。这样就需要将两个庞大的模型加载到内存中,从而降低了可访问性和采样速度。

・文本合成

规模和更大的文本编码器(OpenCLIP ViT-bigG)有助于改善文本渲染能力,而引入字节级 tokenizer 或将模型扩展到更大规模,可能会进一步提高文本合成的质量。

・架构

在探索阶段,团队尝试了基于 Transformer 的架构,如 UViT 和 DiT,但没有显著改善。然而,团队仍然认为,通过更仔细的超参数研究,最终能够实现更大的基于 Transformer 的架构的扩展。

・蒸馏

虽然原始的 Stable Diffusion 模型已经得到了显著的改进,但代价是增加了推断的成本(包括显存和采样速度)。因此,未来的工作将集中于减少推断所需的计算量,并提高采样速度上。比如通过引导蒸馏、知识蒸馏和渐进蒸馏等方法。

目前,最新报告还只在 GitHub 上可以查看。Stability AI 的 CEO 称,马上会上传到 arxiv 上。

参考资料:

  • https://twitter.com/emostaque/status/1676315243478220800?s=46&t=iBppoR0Tk6jtBDcof0HHgg

  • https://github.com/Stability-AI/generative-models/blob/main/assets/sdxl_report.pdf

本文来自微信公众号:新智元 (ID:AI_era)

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

文章价值:
人打分
有价值还可以无价值
置顶评论
    热门评论
      文章发布时间太久,仅显示热门评论
      全部评论
      一大波评论正在路上
        取消发送
        软媒旗下人气应用

        如点击保存海报无效,请长按图片进行保存分享