本文详细讲解Stable Diffusion的原理与工作流程
[一、Stable Diffusion简介](#一、Stable Diffusion简介)
[二、Stable Diffusion原理解析](#二、Stable Diffusion原理解析)
[三、Stable Diffusion处理流程](#三、Stable Diffusion处理流程)
一、Stable Diffusion简介
**Stable Diffusion是一种深度学习文本到图像生成模型,它可以根据文本描述生成详细图像,并且可以应用于内补绘制、外补绘制以及在提示词指导下的图像转换等任务。**它是由慕尼黑大学的CompVis研究团体、StabilityAI、Runway以及LAION合作开发的潜在扩散模型,并于2022年发布。Stable Diffusion的源代码和模型权重已经公开发布,可以在大多数配备适度GPU的电脑上运行。
Stable Diffusion 拓展性强,可免费学 习创作 Stable Diffusion拥有强大的扩展性,任何人都可以通过官方免费 公开的论文和模型代码进行学习与创作,解锁AI艺术更多可能性。
**Stable Diffusion 集成了110+功能 ,**Stable Diffusion是一款功能强大 的图像处理软件,集成了110多个 扩展插件的功能介绍,包括局部 重绘、人物姿势控制、图像高清 修复和线稿提取等,用户可以根 据需要选择不同的插件来扩展软 件的功能。
**精准控制图像分辨率 ,**行业内无法精准控图和图像分辨率低等问题都是其普遍痛点,但 这些在 Stable Diffusion 中通过 ControlNet 和 UpScale 等插件 都能完美解决。
学术名词和相关解释:
|-------------------------|-------------------------------------------------------------------------------------------|
| Diffusion Model | 扩散模型,一款支持图像生成的算法模型,市面上主流的 DALL E、Midjourney、imagen、 Stable Diffusion 等 AI 绘画工具是基于此底层模型开发的 |
| Latent Diffusion Model | 潜在扩散模型,基于扩散模型基础上 制出的更高级模型,图像图形生成速度更快,而且对计算资源和内存消耗需求更低 |
| Stable Diffusion | 简称SD模型,其底层模型就是上面的潜在扩散模型,之所以叫这个名字是因为 发公司名叫 Stability AI |
| Stable Diffusion Web Ul | 简称SD WebUI,用于操作上面Stable Diffusion模型的网页端界面,通过该系统就能控制模型出图,而无需学习代码 |
二、Stable Diffusion原理解析
Stable Diffusion的工作原理可以概括为三个主要步骤:首先,用户输入的文本提示(prompt)被文本编译器(Text Encoder)编译成词特征向量;其次,这些向量与一张随机图一起被转换到潜在空间(Latent Space)里,并通过降噪过程生成一个中间产物;最后,这个中间产物由图片解码器(Image Decoder)解码成一张真正的图片。
扩散模型之所以用 Diffusion 来命名,因为它的运作过程就是向训练图像不断地添加噪声,直到变为一张无意义的纯噪声图,再逐步恢复的过程。
加噪过程类似于在干净的水中滴墨汁,颜料会逐渐扩散导致整个水 体变浑,AI绘画过程是从模糊的噪声图逐渐变为清晰的图像,即逆向降噪的过程。
标准扩散模型在像素空间中进行,需要处理大量数据和高性能显卡。
潜在扩散模型先缩小图像再运算,减少数据处理量和硬件要求。
潜在扩散模型运算空间为潜空间,即低维空间。
Diffusion Model的整体思路如下图所示:
正向过程:对于一张原始图片x0,我们给x0添加一个高斯噪声,图片由x0变成变成x1。接着我们会在x1的基础上再添加高斯噪声得 到x2。重复上述添加高斯噪声步骤,直到图片变成xn,由于添加了足够多的高斯噪声,现在的x近似服从高斯分布。
反向过程:随机生成一个服从高斯分布的噪声图片,然后一步一步的减少噪声直到生成想要的图片。 我们希望将t时刻的高斯噪声 变成0时刻的图像,是很难一步到位的,和正向过程一样,先考虑t时刻图像和t−1时刻的关系,然后一步步向前推导得出结果.
三、Stable Diffusion处理流程
Stable diffusion从文本生成图像的流程如下所示:
-
Stable Diffusion在潜空间中生成随机张量。可以通过设置随 机数生成器的来控制此张量。如果将种子设置为某个值,获得 相同的随机张量。
-
网络 U-Net 将潜在噪声图像和文本提示作为输入,并预测噪 声,也在潜在空间(4x64x64 张量)中。
-
从潜在图像中减去潜在噪声。这将成为新潜在图像。
-
步骤 2 和 3 重复一定数量的采样步骤,例如 20 次
-
最后,VAE的解码器将潜在图像转换回像素空间。这是运行 Stable Diffusion后获得的图像。
四、结语
Stable Diffusion 3是该模型的最新版本,它在多主题提示、图像质量和拼写能力上都有显著改进。这个版本的模型参数范围从800M到8B不等,旨在提供不同的选项以满足用户的创意需求。Stable Diffusion 3结合了扩散变换架构和流匹配技术,并将发布详细的技术报告。
Stable Diffusion因其开源性、可扩展性、出图效率高以及数据安全性等优势,在AI绘画领域得到了广泛应用。它的开源性质使得任何人都可以自由使用、学习和修改代码,而且社区中存在大量不断迭代优化的图像调整插件和模型。此外,Stable Diffusion的本地部署确保了数据处理的安全性和隐私性。
关于Stable Diffusion的争议,有观点认为其相对于Latent Diffusion的改进不多,主要集中在算力基础提升、训练数据增加和数据质量改善上,并没有架构本质的升级换代。尽管存在争议,Stable Diffusion因其强大的图像生成能力,仍然是目前AI绘画工具中的佼佼者。