在之前的教程里,我带大家学习了Midjourney这款商业级AI绘画应用,但是很多朋友都苦恼Midjourney无法精确控图的问题,而从今天开始,我会带大家学习另外一款更强大的AI绘画工具——Stable Diffusion,可以帮你解决很多应用层面的AI控图问题。
关于Stable Diffusion的内容很多,在本篇教程里,我会先为你介绍Stable Diffusion模型的运行原理、发展历程和相较于其他AI绘图应用的区别。
关于Stable Diffusion的几个名词
相信大家或多或少有看到过以下几个名词,因此有必要先给大家做个区分,以便你更好理解后续教程的内容。
-
Diffusion Model:扩散模型,一款支持文本生成图像的算法模型,目前市面上主流的DALL E、Midjourney、Stable Diffusion等AI绘画工具都是基于此底层模型开发的
-
Latent Diffusion Model:即潜在扩散模型,基于上面扩散模型基础上研制出的更高级模型,升级点在于图像图形生成速度更快,而且对计算资源和内存消耗需求更低
-
🌟Stable Diffusion:简称SD模型,其底层模型就是上面的潜在扩散模型,之所以叫这个名字是因为其研发公司名叫Stability AI,相当于品牌冠名了
-
🌟Stable Diffusion Web Ul:简称SD WebUI,用于操作上面Stable Diffusion模型的网页端界面,通过该操作系统就能控制模型出图,而无需学习代码
在本系列的教程中,我们需要学习的内容就是使用SD WebUI来调用Stable Diffusion模型生成图像。
Stable Diffusion模型的运行原理
在上面介绍的几个概念中,你会发现都包含了Diffusion扩散模型这个词,所以我们先从它开始讲起。
Diffusion模型是图像生成领域中应用最广的生成式模型之一,除此之外市面上还有生成对抗模型(GAN)、变分自动编码器(VAE)、流模型(Flow based Model)等其他模型,它们都是基于深度学习为训练方式的模型。
扩散模型之所以用Diffusion来命名,因为它的运作过程就是向训练图像不断地添加噪声,直到变为一张无意义的纯噪声图,再逐步恢复的过程。
其中加噪的过程就像在干净的水中滴了一滴墨汁,颜料会逐渐向整个水体扩散,直至整个水体变浑。如果你之前有尝试过AI绘画,会发现整个绘图过程就是从一张模糊的噪声图,逐渐变为清晰的图像,而这就是逆向降噪的过程。
正常来说,标准的扩散模型已经可以实现图像训练和绘制了,为什么要再出一套 Latent Diffusion Model 潜在扩散模型呢?这里主要是为了计算量的问题:
标准的扩散模型是在像素空间(可以理解为高维空间)中进行的,对于一张512x512尺寸的RBG图片,这将是一个768432(512x512x3)维度的空间,意味着生成一张图需要确定768432个值,这个过程往往需要多台专业显卡同时运算,我们平时自己用的商业级显卡资源是不可能完成这个任务的。
而潜在扩散模型就是解决这个问题的,它的过程是先把训练图像先缩小48倍再进行运算,结束后再恢复到原始尺寸,这样运算过程中需要处理的计算数据就少了许多,运算速度也会比正常的像素空间中快了很多&