Stable Diffusion学习指南【初识篇】
来源:极绘AI(jihuiai)
有关Stable Diffusion几个名词
想必大家多多少少有看见过以下几种名词,因此有必要先给大家做个区别,便于你更好理解后续教程的内容。
·Diffusion Model:扩散模型,一款适用文本生成图像的算法模型,现在市面上热门的DALLE、Mid journey、Stable Diffusion等AI绘画工具都是围绕此底层模型开发的
·Latent Diffusion Model:即潜在扩散模型,基于上边扩散模型前提下研制出的更高级模型,升级点在于图像图型生成速度更快,并且对计算资源和内存耗费要求更低
·Stable Diffusion:简称SD模型,其底层模型就是上面潜在扩散模型,之所以叫这个名字是因为它研发公司名叫StabilityAI,等同于品牌冠名了
·Stable Diffusion WebUl:简称SDWebUI,用以操作上边Stable Diffusion模型网页端页面,通过此操作系统就能控制模型出图,而无需学习代码
在本系列教程中,大家要学习的内容就是应用SDWebUI来启用Stable Diffusion模型生成图像。
Stable Diffusion模型运行原理
在上面介绍的几个概念中,你会发现都包含了Diffusion扩散模型这个词,因此我们先从它开始讲起。
Diffusion模型是图像生成领域里应用最广的生成式模型之一,除此之外市面上也有生成抵抗模型(GAN)、变分自动编码器(VAE)、流模型(Flow based Model)等其他模型,它们是基于深度学习为训练方式模型。
扩散模型之所以用Diffusion来命名,由于它的运行过程就是向训练图像不断添加噪音,直至变成一张无意义的纯噪音图,再逐步恢复的过程。
其中加噪的过程就像在干净的水中滴了一滴墨水,颜料会逐步向整个水质蔓延,直到整个水质变浑。假如你之前有试过AI绘画,会发现整个制图过程就是从一张模糊的噪音图,逐渐变为清楚的图像,而这就是反向减噪的过程。
正常来说,标准的扩散模型已经能够完成图像练习和绘制了,为何要再出一套Latent Diffusion Model潜在扩散模型呢?这里主要目的是运算量的问题:
标准的扩散模型要在像素空间(可以看作高维空间)中进行的,针对一张512x512规格的RBG照片,这将是一个768432(512x512x3)维度的空间,代表着生成一张图需要确定768432个值,这一过程通常需要多台专业显卡同时计算,我们平常自己用的商业级显卡资源是不可能完成这个任务的。
而潜在扩散模型便是解决这个问题的,它的过程是先将训练图像先缩小48倍再进行计算,结束后再恢复到初始规格,那样计算环节中需要处理的测算数据就少了许多,运算速度也要比正常像素空间内快了许多,在硬件上的要求也大大降低,而这个压缩后再计算空间便是Latent潜空间(可以看作低维空间)。
以上是潜在扩散模型的工作原理,但Stable Diffusion模型并不是单一的文生图模型,而是多个模型构成的运营系统,其中的技术能够拆卸为3个结构来看:
·ClipText文字编码器:用以分析提示词的Clip模型
·Diffusion扩散模型:用以生成图像的U-Net和Scheduler
·VAE模型:用以压缩和恢复得图像解码器
先来看看编码器Clip,是由OpenAI公司开发模型,包含文字编码和图像编号2个部分,分别用于提取文本和图像的特点,根据收集大量网络上的图像和文字信息再对Clip模型进行训练,能够实现文本和图像的相互关系。
在SD模型运作过程中,它可以提取提示词文字部分的特点传达给图像生成器,让模型了解大家输入提示词内容,从而达到文字操纵图像产生的目的。
图像生成器里包含了U-Net神经网络和Scheduler采样算法2个部分。
U-Net本来是用以生物医学图像分割的神经网络模型,由于工作结构像一个U型字母,因此被称为U型神经网络训练模型。在扩散模型中,U-Net可以辅助获取并解构训练图像的特点,拥有它就能在较少训练样本的情形下得到更加准确多样的数据信息,从而使模型在出图结果上更加精确。
在练习扩散模型环节中,能够选择不同的算法来添加噪声,而Scheduler是用来定义使用哪种算法来运行程序,它能够定义减噪的流程、是否具有偶然性、搜索去噪后样版的算法等,所以它也被称为采样算法。在WebUI中,这是可调节的一项,我们可以根据图像种类和使用的模型来选择不同的采样器,从而达到更佳的出图效果。
最后的解码器VAE,全称为Variational Auto Encoder变分自动编码器。简单的说,它的作用是将高维数据(像素空间)映射到低维空间(潜空间),进而实现数据的压缩和降维。它由编码器(Encoder)和解码器(Decoder)两部分组成,编码器用于将图像信息降维并传到潜空间内,解码器将潜在数据表示转换回初始图像,但在潜在扩散模型的推理生成环节中我们只需用到VAE的解码器部分。
在WebUI中,VAE模型一般是训练好的内置模型,实际效果类似模型调色滤镜,可以修饰最后图像的色彩和质感。
是否说到这里早已有点头晕了,别担心,这里只需简单掌握每一部分的功能即可,在后期WebUI的功能介绍中大家还跟他们有更深的触碰,那时候就更容易理解每一部分的概念了。
Stable Diffusion背景介绍
Stable Diffusion是怎样崛起的
下面,我再为大家介绍下Stable Diffusion的发展史,有助于你更深层次的掌握这款AI绘画工具。
如今提及Stable Diffusion,就不得不说Stability AI,这家独角兽公司在去年以十亿美元的估值一跃成为这以往半年中AIGC领域的黑马。但其实Stable Diffusion并不是由Stability独立研发,而是Stability AI和CompVis、Runway等团队合作开发的。
在去年上半年AI绘画还没开始被大家熟知时,来自慕尼黑大学的机器学习研究小组CompVis和纽约的Runway团队合作研发了一款高分辨率图像生成模型,该模型具备生成速度快、对计算资源和内存耗费要求小等优势,而这是我们前面提到的Latent Diffusion模型。
我们都知道,训练模型必须高额的核算成本与资源规定,Latent Diffusion模型也是如此。而当时的Stability正巧也在寻找AI行业发展的机会,于是就向手头拮据的研究团队递出了橄榄叶,提出愿意为其提供研发资源支持。在确认合作意向后,Stability才正式加入到后续Stable Diffusion模型研发过程中。
随后到了7月底,训练后的新模型以Stable Diffusion的名头正式亮相,如今大家知道Stable这个词其实是源于其背后的赞助企业Stability。相较于Latent Diffusion模型,改进后的Stable Diffusion使用了更多的数据来训练模型,用以训练的图像规格也更大,包含文字编号也采用了更好的CLIP编码器。在实践应用上来讲,Stable Diffusion生成模型会更加准确,且支持的图像分辨率也更高,比单一的Latent Diffusion模型更强大。
在Discord中进行短期内测后,Stable Diffusion于8月22日正式开源。后面的事情大家都知道了,就在上线的几天后,Stability拿到了1亿美金的融资,让这家年青公司直接获得了约10亿美金的估值,可谓是名利双收。
尽管Stability AI根据Stable Diffusion这款开源模型闻名世界,但它背后其实暗藏着让人诟病的商业行为。就在6月初,福布斯发布了一条有关Stability创办人夸大Stable Diffusion成就的新闻,其中罗列了盗取Stable Diffusion科研成果、学历造假、欠薪等9大罪行。
从开源到百花争艳
针对Stability的商业行为大家不做过多评价,但他们在开源这条路上的确践行的很好,如同他们官网首页所说:AI by the people,for the people—AI取之于民,用之于民。
最初,Stable Diffusion和Mid journey一样先是在Discord上进行了小范围的免费首测。之后在22年8月22日,有关Stable Diffusion代码、模型和权重参数库在Hugging face的Github上全面开源,到此所有人都可以在本地部署并免费运作Stable Diffusion。
有朋友可能对开源这个词比较陌生,这里简单介绍下:开源是指开放源代码,即所有用户都能够自由学习、修改及其传播此软件代码信息,而且无需支付任何花费。举个不太恰当的比喻,就像是一家餐厅把自己辛苦探索的独门食谱向全社会发布,所有人都可以拿来自由使用,不论是自己制作品味,还是从而开一家新餐厅都能够。但这里有个难题,并不是每个人都是主厨,更别提做这种需要繁杂环境部署和基础设施构建的“独门菜”。
开源后的Stable Diffusion文档,最初只是一串你我那样新手都看不懂的源码,更别提入门感受。但伴随着愈来愈多开发者的介入,Stable Diffusion的上手门槛逐渐下降,开始走向群众视线,它生态链逐渐发展为商业和社区2个方向。
一方面,海量的中小研发部门发现了商机,把它封装为商业化的套壳运用去进行增收,有些是APP网站等程序,有些是嵌入在自家产品中的特效和滤镜。依据Stable Diffusion官网统计的数据,在Stable Diffusion2.0发布一个月后,苹果应用商店排名前十的App里就有四款是基于Stable Diffusion研发的AI绘画运用。
这些应用在一定程度上都做了简化和设计,即便是小白用户还可以快速入门,自然缺点是基本都要付费才能使用,而且很难针对个人做到功能定制化。
另一方面,开源的Stable Diffusion社区得到了普遍民间开发者全力支持,诸多为爱发电的程序员自告奋勇的是其制作便捷操控GUI图形化界面(Graphical User Interface)。其中流传最广也是被公认最为方便的,就是由越南超人AUTOMATIC1111(下面统一用A41别称)研发的WebUI,而这正是前面提到的Stable Diffusion WebUI,后边的教程内容都是围绕该程序进行的。
它集成了大量代码方面的繁杂运用,将Stable Diffusion的各种制图参数转换成可视化的选项数值和操纵按键。如今各种开源社区里90%以上拓展应用都是围绕它而研发的。
自然,除了WebUI还有一些其他的GUI运用,例如ComfyUI和Vlad Diffusion等,不过它们的使用场景更加专业跟小众,感兴趣的可以点击下面的GitHub连接掌握,这里就不再赘述了。
Stable Diffusion的特征
说到这里,你已经了解了Stable Diffusion的发展背景和生态环境,那它和其它AI绘画工具相比究竟有哪些优势呢?
目前,市面上绝大部分商业级AI绘画运用都是采用开源的Stable Diffusion做为研发基本,当然也有一些其他被大众熟知的AI绘画工具,例如最热门的Mid journey和OpenAI公司发布的DALL·E2。但不可否认的是,开源后的Stable Diffusion在实际应用上相较其他AI绘画工具存有巨大优势:
可扩展性强
首先最关键的一点便是极其丰富的扩展性。归功于官方免费公开的论文和模型代码,所有人都可以使用它来开展学习和创作且无需支付任何花费。光是在A41WebUI的说明文档中,目前就早已集成了110多个拓展插件的功能介绍。
从局部重绘到人物姿势控制,从图像高清修复和到线稿获取,现在的Stable Diffusion社区中有大量持续迭代优化的图像调节插件及其免费资源模型可以用。但对于专业团队来说,即便社区里没有自己满意的,还可以通过自主训练来定制专属的制图模型。
在Mid journey等其它商用绘画运用中,没法精确控图和图像分辨率低等问题都是其广泛困扰,但这些在Stable Diffusion中通过ControlNet和UpScale等插件都能轻松解决。如果单从工业化运用角度出发,现在的Stable Diffusion在AI绘画行业毫无疑问是首选工具。
出图效率高
其次是其高效的出图模式。用过Mid journey的朋友应该都有感受过排队等了几分钟才出一张图的现象,而要得到一张合适的目标图大家通常需要实验数次才会得到,这个试错成本便被进一步拉长。其主要原因还是因为商业级AI运用也是通过浏览云主机来操作,除了排队等待服务器回应外,网络延时与资源负载都会造成制图效率的下降。
而布署在本地的Stable Diffusion制图效率全部由硬件配置决定,只需显卡算力跟上,甚至能够完成3s一张的超高出图效率。
数据安全保障
一样是由于布署在当地,Stable Diffusion在数据安全性上有其他线上绘画工具所不具备的。商业化的绘画运用为了运营和丰富数据,会主动将用户的制图结果作为案例进行传播。但Stable Diffusion所有的制图过程彻底在当地开展,基本不必担心信息泄漏的现象。
总的来说,Stable Diffusion是一款图像生产+调控的结合工具,根据启用各种模型和插件工具,能够实现更加精准的商业出图,加上数据安全性和扩展性强等特点,Stable Diffusion特别适合AI制图升阶用户和专业团队应用。
但对于具有极客精神的AI绘画爱好者来说,应用Stable Diffusion过程中可以学到很多有关模型技术的知识,明白了Stable Diffusion等于就掌握了AI绘画的精髓,能够更好的向下兼容其他随意一款低门槛的绘画工具。