Paper name
KANDINSKY 3.0 TECHNICAL REPORT
Paper Reading Note
Paper URL: https://arxiv.org/pdf/2312.03511.pdf
Project URL: https://ai-forever.github.io/Kandinsky-3/
Code URL: https://github.com/ai-forever/Kandinsky-3
本文介绍了 Kandinsky 3.0,这是一种基于潜在扩散的新型文本到图像生成模型。Kandinsky家族的早期模型(Kandinsky 1.0)架构基于在图像和文本的潜在向量空间之间使用扩散映射的两阶段 pipeline,然后进行解码。在 Kandinsky 3.0 模型中,专注于改善对文本的理解、图像质量,并通过提供单阶段 pipeline 来简化架构,在该 pipeline 中,生成直接使用文本嵌入,无需任何额外的先验知识。整个 pipeline 包含 119 亿(11.9B)个参数,几乎是 Kandinsky 家族先前模型中最大的模型的三倍。此外,作者将 Kandinsky 3.0 集成到用户友好的交互系统中。完全公开了模型,以促进新技术的发展并在科学界推动开放性。
这份技术报告的结构如下:
demo system 地址:https://fusionbrain.ai/en/editor/ (注册后可免费玩,页面如下,注意一开始登录进去是俄文显示,点左下角的按钮后切换为英文)
该系统可以接受俄语、英语和其他语言的文本提示。还允许在文本描述中使用表情符号。文本的最大长度为1000个字符;
在“Negative prompt”字段中,用户可以指定模型在生成过程中不应使用的信息(例如颜色);
最大分辨率为1024 × 1024;
选择边缘比例:1:1,16:9,9:16,2:3或3:2;
选择生成样式以加速推理:数字图像,像素艺术,卡通,肖像照片,工作室照片,赛博朋克,3D渲染,古典主义,动漫,油画,铅笔画,霍赫洛马绘画风格,以及著名艺术家如艾瓦佐夫斯基,康定斯基,马列维奇和毕加索的风格;
放大/缩小;
使用橡皮擦突出显示可以用新的文本描述进行填充的区域(修补技术);
使用滑动窗口扩展生成图像的边界,并使用新边界进行进一步生成(扩展技术);
我们还实现了我们开发的内容过滤器,以处理不正确的请求。
该网站还支持具有以下特征的图像到视频生成:
做了 500 次左右的模型架构实验,探索要将主要的参数放在 CNN 上还是 transformer 上
在探讨了以上所有架构之后,我们选择了 ResNet-50 block 作为我们去噪U-Net的主要模块。因此,我们的架构的输入和输出的残差块包含具有1×1核的卷积层,相应地减少和增加通道数。我们还通过一个具有 3×3 核的额外卷积层扩展了它,就像 BigGAN-deep 残差块架构一样。在残差块中使用瓶颈使得我们能够加倍卷积层的数量,同时保持几乎相同数量的参数。与Kandinsky 2.x 模型的先前版本相比,我们新架构的深度增加了 1.5 倍。在放大和缩小的更高级别的部分,我们仅放置了我们实现的卷积残差 BigGAN-deep 块。同时,在较低分辨率处,架构包括自注意和交叉注意层。我们的 U-Net 架构、残差 BigGAN-deep 块和交叉注意块的完整方案如下图所示:
我们的BigGAN-deep残差块版本与 BigGANs 中提出的版本有以下不同之处:
为在文本和人脸等复杂领域实现高质量的图像重建,我们开发了 Sber-MoVQGAN 自编码器,在 Kandinsky 2.2 中取得了良好的结果。
Sber-MoVQGAN 架构基于 VQGAN 架构,并添加了 MoVQ 的空间条件归一化。空间条件归一化的实现方式类似于 StyleGAN 架构中使用的自适应实例归一化(AdaIN)层,其计算公式为:
F
i
=
?
γ
(
z
q
)
F
i
?
1
?
μ
(
F
i
?
1
)
σ
(
F
i
?
1
)
+
?
β
(
z
q
)
F_i = \phi_\gamma(z_q)\frac{F_{i-1} - \mu(F_{i-1})}{\sigma(F_{i-1})} + \phi_\beta(z_q) \quad
Fi?=?γ?(zq?)σ(Fi?1?)Fi?1??μ(Fi?1?)?+?β?(zq?)
其中,
F
i
?
1
F_{i-1}
Fi?1? 是中间特征图,
z
q
z_q
zq? 是 encoder 输出的量化后的 latent 特征,
μ
\mu
μ 和
σ
\sigma
σ 是激活的均值和标准差计算函数,
?
γ
\phi_\gamma
?γ? 和
?
β
\phi_\beta
?β? 是可训练的仿射变换,将
z
q
z_q
zq? 转换为缩放和偏置值。我们的实现的其他重要特征包括在训练阶段使用了 EMA(指数移动平均)权重和修改的来自 ViT-VQGAN 的损失函数。
我们训练了 Sber-MoVQGAN 的三个版本 – 67M、102M 和 270M。67M版本与标准 VQGAN 的大小相同。102M 模型相较于 67M 使用了两倍数量的残差块,而270M模型则使用了两倍原始通道数。Kandinsky 3.0使用270M模型作为图像解码器。我们在 LAION HighRes 数据集上训练了 Sber-MoVQGAN,获得了在图像重建方面的 SOTA 结果。我们在下表中对我们的自编码器与竞争对手以及 Sber-VQGAN 进行了比较。我们在开源许可下发布了这些模型的权重和代码。
我们将训练过程分为以下几个阶段,以使用更多的数据并训练模型在广泛的分辨率范围内生成图像: