Stable Cascade 是 stability.ai 在2024年2月份发布的文本转图像模型。这种创新的文本转图像模型引入了一种有趣的三阶段方法,为质量、灵活性、微调和效率设定了新的基准,重点是进一步消除硬件障碍。此外,stability.ai 还在Stability GitHub 上发布了训练和推理代码,以允许进一步自定义模型及其输出。该模型可在 diffusers 库中进行推理。
- Stable Cascade 是一个基于Würstchen架构的新文本到图像模型。该模型是根据非商业许可证发布的,仅允许非商业用途。
- 由于其三阶段方法,Stable Cascade 非常容易在消费类硬件上进行训练和微调。
- 除了提供检查点和推理脚本之外,还发布了用于微调、ControlNet 和 LoRA 训练的脚本,使用户能够进一步试验这种新架构,可以在Stability GitHub 页面上找到该架构。
技术细节
Stable Cascade 与 Stable Diffusion 系列模型不同,因为它建立在由三个不同模型组成的管道上:阶段 A、B 和 C。此架构允许对图像进行分层压缩,在利用高度压缩的潜在空间的同时实现出色的输出。让我们看看每个阶段,以了解它们是如何组合在一起的:
潜在生成器阶段(Latent Generator,阶段 C)将用户输入转换为紧凑的 24×24 潜在数据,然后传递到潜在解码器阶段(Latent Decoder,阶段 A 和 B),用于压缩图像,类似于 VAE 在稳定扩散中的作用,但实现更高的压缩。
通过将文本条件生成(阶段 C)从解码分离到高分辨率像素空间(阶段 A 和 B),stable cascade 可以允许额外的训练或微调,包括 ControlNets 和 LoRAs,在阶段 C 上单独完成。与训练类似大小的稳定扩散模型(如原始论文所示)相比,这可将成本降低 16 倍。阶段 A 和 B 可以选择性地进行微调以获得额外的控制,但这与在稳定扩散模型中微调 VAE 相当。对于大多数用途,它将提供最小的额外好处,我们建议仅训练阶段 C 并使用原始状态的阶段 A 和 B。
C 和 B 阶段将发布两种不同的模型:C 阶段的参数为 1B 和 3.6B,B 阶段的参数为 700M 和 1.5B。建议对 C 阶段使用 3.6B 模型,因为该模型具有最高质量的输出。但是,对于那些想要关注最低硬件要求的人来说,可以使用 1B 参数版本。对于 B 阶段,两者都取得了很好的效果,但是 15 亿在重建精细细节方面更胜一筹。得益于 Stable Cascade 的模块化方法,推理的预期 VRAM 要求可以保持在约 20gb,但可以通过使用较小的变体进一步降低(如前所述,这也可能会降低最终的输出质量)。
性能比较
在评估过程中,我们发现 Stable Cascade 在几乎所有模型比较中在提示对齐和美观质量方面都表现最佳。下图显示了使用部分提示和美观提示进行人工评估的结果:
Stable Cascade 对效率的关注体现在其架构和更高压缩的潜在空间上。尽管最大的模型比 Stable Diffusion XL 多包含 14 亿个参数,但它的推理时间仍然更快,如上图所示。
附加功能
除了标准的文本到图像生成之外,Stable Cascade 还可以生成图像变体和图像到图像生成。
图像变体的工作原理是使用 CLIP 从给定图像中提取图像嵌入,然后将其返回到模型。下面您可以看到一些示例输出。左侧图像显示原始图像,而右侧的四幅图像是生成的变体。
图像到图像的工作原理是简单地向给定图像添加噪声,然后将其用作生成的起点。以下是为左图添加噪声,然后从那里运行生成的示例。
训练、微调、ControlNet 和 LoRA 的代码
随着 Stable Cascade 的发布,stability.ai 将发布用于训练、微调、ControlNet 和 LoRA 的所有代码,以降低进一步试验此架构的要求。以下是将随模型发布的一些 ControlNet:
修复/修复外层(Inpainting/Outpainting):输入一张带遮罩的图片,并附上文字提示,模型会根据提供的文字提示,填充图片被遮罩的部分。
Canny Edge:通过跟踪输入到模型的现有图像的边缘来生成新图像。根据我们的测试,它还可以扩展草图。
2x 超级分辨率:将图像放大至其边长的 2 倍(例如,将 1024 x 1024 图像转换为 2048×2048 输出),也可用于阶段 C 生成的潜在图像。
这些详细信息可以在stability.ai GitHub 页面上找到,包括训练和推理代码。
文章评论