守听 发表于 2024-7-12 17:52:33

Stable Diffusion——stable diffusion基础原理详解与安装秋叶整合包进行出

前言

在2022年,人工智能创作内容(AIGC)成为了AI范畴的热门话题之一。在ChatGPT问世之前,AI绘画以其独特的创意和便捷的创作工具迅速走红,引起了广泛关注。随着一系列以Stable Diffusion、Midjourney、NovelAI等为代表的文本生成图像的跨模态应用相继涌现与Stable Diffusion的开源,Stable Diffusion以其出色的人物和场景生成效果备受瞩目。它包括文本生成图像、图像生成图像、特定角色的刻画,甚至超分辨率和修复缺损图像等使命。
感爱好可加入:566929147 企鹅群一起学习讨论
介绍

Stable Diffusion的应用范围广泛,这不仅由于它生成的图像逼真,还由于它可以或许以多种差别的方式利用。让我们起首关注文本生成图像的方式(text2img)。
在上述示例中,我们输入了文本描述(prompt),模型就可以或许生成出一幅风雅的图像。比方,输入“天堂、广袤的、沙岸”,就得到了一幅美丽的画面。
https://img-blog.csdnimg.cn/direct/0a035c76eb98451eb789d231c4b38731.png
除了文本到图像的转换,另一种主要的利用方式是通过文本来修改现有图像。在这种情况下,输入是文本和图像的组合。比方,将文本描述为“海盗船”,模型生成的图像就会包罗海盗船。
https://img-blog.csdnimg.cn/direct/6cbe4ab590f94ce18c893f5969865bf3.png
Stable Diffusion构成模块

Stable Diffusion实际上是一个相当复杂的系统,其中包罗各种差别的模型模块。起首必要解决的问题是如何将人类理解的笔墨转换为计算机可理解的数学语言,毕竟计算机无法理解天然语言。这就必要一个文本理解器(text understander)来资助进行转换。在生成图像之前,下图中蓝色的文本理解器起首将文本转换成某种计算机可以或许理解的数学表示:
https://img-blog.csdnimg.cn/direct/306d2e4874ed4dc596dbef8a7521f146.png
1.图片信息生成器

https://img-blog.csdnimg.cn/direct/f62007e86f4c409d9c36aaa05011914b.png
上图粉色的模块是Stable Diffusion与别的Diffusion模型最大的区别之一,也是SD性能提拔的着急之一。起首,必要明白一点:图片信息生成器不直接生成图片,而是生成较低维度的图片信息,即所谓的隐空间信息(latent space information)。在下图中,这个隐空间信息被表示为粉色的 4x3 的方格,随后将这个隐空间信息输入到下图中黄色的解码器中,就可以乐成生成图片了。Stable Diffusion主要引用的论文“latent diffusion”中的latent一词也来自于隐变量中的“latent”。
一般的Diffusion模型直接生成图片,而不会有先生成隐变量的过程,因此普通的Diffusion在这一步上必要生成更多的信息,负荷也更大。因此之前的Diffusion模型在速率和资源利用上都不如Stable Diffusion。技术上来说,这个图片隐变量是如何生成的呢?实际上,这是由一个Unet和一个Schedule算法共同完成的。Schedule算法控制生成的进度,而Unet则负责一步一步地实行生成的过程。在Stable Diffusion中,整个Unet的生成迭代过程大约必要重复 50~100 次,隐变量的质量也在这个迭代的过程中不停地改善。下图中粉色的Image Information Creator左下角的循环标志也象征着这个迭代的过程。
2、图片解码器

https://img-blog.csdnimg.cn/direct/204786b14a96462bad36b30d3ddd8c77.png
图片解码器,从图片信息生成器(Image Information Creator)中吸取图片信息的隐变量,然后将其升维放大(upscale),还原成一张完整的图片。图片解码器只在末了的阶段起作用,也是我们能得到一张真实图片的终极过程。
如今让更具体地了解一下这个系统中输入输出的向量形状,这样对Stable Diffusion的工作原理应该能有更直观的熟悉:


[*]文本编码器(蓝色模块)功能:将人类语言转换成机器能理解的数学向量。输入:人类语言;输出:语义向量(77,768)。
[*]图片信息生成器(粉色模块)功能:结合语义向量,逐步去除噪声,生成图片信息的隐变量。输入:噪声隐变量(4,64,64)+语义向量(77,768);输出:去噪的隐变量(4,64,64)。
[*]图片解码器功能:将图片信息的隐变量转换为一张真正的图片。输入:去噪的隐变量(4,64,64);输出:一张真正的图片(3,512,512)。
大概流程中的向量形状变化就是这样。至于语义向量的形状为什么是希奇的(77,768),会在背面讲到文本编码器里的CLIP模型时表明。
Stable Diffusion定义

Diffusion模型的名称翻译成中文就是扩散模型,扩散的过程发生在Image Information Creator模块中,起首,利用随机函数生成一个与隐变量巨细类似的纯噪声(下图中左下角透明的4x4区域)。一旦有了初始的纯噪声(下图中左下角透明的4x4区域)和语义向量(下图中左上角蓝色的3x5区域),Unet就会结合语义向量,不停地去除纯噪声隐变量中的噪声。大约重复50~100次左右就完全去除了噪声,而且不停向隐变量中注入语义信息,这样我们就得到了一个带有语义的隐变量(下图中粉色的4x4区域)。同时,我们还有一个scheduler,用来控制Unet去噪的强度,统筹整个去噪的过程。Scheduler可以在去噪的差别阶段动态调整去噪强度,也可以在某些特别使命中匀速去除噪声,这都取决于我们最初的计划。
https://img-blog.csdnimg.cn/direct/12aa1645c76e4bd9871dc149197a99e9.png
这个过程是通过一系列迭代步骤往复除噪声的,每一步都向隐变量中注入语义信息,直到噪声被完全去除。为了更直观地理解,可以将初始的纯噪声(左上方的透明44图像)和终极的去噪隐变量(右上方的粉色44图像)都通过终极的图像解码器进行解码,观察生成的图片。如预期所示,初始的纯噪声自己并不包罗有效信息,因此解码后的图片仍然是噪声。而经过去噪处理后的隐变量已经包罗了语义信息,所以解码后的图片会呈现出包罗有效语义信息的图像。
https://img-blog.csdnimg.cn/direct/c470969c6392467b86802c0c824f89f7.png
迭代过程是多次重复的过程。每一次迭代的输入是一个隐变量,经过处理后输出也是一个隐变量,但噪声镌汰了,同时蕴含更多的语义信息。在下图中,4*4的隐变量从透明变成粉色的过程,代表了迭代的过程。颜色越粉,代表迭代次数越多,噪声也就越少。
https://img-blog.csdnimg.cn/direct/0af83403c7ee499cb8e12200d7f63073.png
在这个阶段,利用图像解码器可以提前观察到每一步所对应的图片,这样就可以逐步观察到我们盼望的图像是如何从噪声中逐步生成的。
https://img-blog.csdnimg.cn/direct/713f96a93c484f81868ee023a7de5f32.png
测试

秋叶整合包是简化了Stable Diffusion的安装和利用过程,使得没有编程背景的用户也能轻松地进行AI绘画创作。并提供详细的教程、资源和技术支持。起首确保计算机装备了Nvidia的独立显卡(N卡),尤其是RTX40系列或更高级别的显卡,显存应到达6GB以上,可以提高AI绘画的效率。假如没有N卡,可以利用CPU进行图形计算,但速率较慢,性价比也较低。此外,必要CPU性能足够高,而且至少有16GB的内存。总的来说,进行AI绘画时,推荐利用N卡,特别是RTX30系列或更高级别的显卡,以提高效率和性能。
秋叶整合包的源文件只分享在夸克网盘上,我这里把它转存到百度网盘:https://pan.baidu.com/s/1C8QBbshpgpIxBOTwsMYjaQ 提取码: pth5 ,这里的版本是4.6。
1.检察自己的GPU

检察GPU与内存巨细,6G显存是出图的最低配置:
https://img-blog.csdnimg.cn/direct/8ef90e0c90e8442fbee91bb7a43d2830.png
2.启动项目

下载之后,安装启动所需依赖,安装过.NET6的可以跳过这一步,不懂的再安装一遍也没问题:
https://img-blog.csdnimg.cn/direct/3c18f28dd0f944eea005b513099dd519.png
解压“sd-webui-aki-v4.zip”。选择一个最少有20G以上的磁盘,由于解压出来的文件加上模型会很大,然后进入解压后的文件夹 sd-webui-aki-v4 。双击“A启动器.exe”,它会自动下载一些最新的程序文件。可能还会弹出了“设置Windows支持长路径”,确定就可以了。启动乐成后,会打开下边这个界面。假如啥都做完了,也没打开这个界面,就再次双击这个文件或者以管理员身份运行。
https://img-blog.csdnimg.cn/direct/316cadf599ae4331857373044c530479.png
之后点击 “一键启动",然后会弹出一个控制台窗口,做一些初始化的操作,出现“Startup time …”的提示就代表启动乐成了。
https://img-blog.csdnimg.cn/direct/e84c80e3b6764dbba247f8bf3224ab7b.png
然后会自动在浏览器中打开SD WebUI的窗口。不小心关了的时候,也可以用 http://127.0.0.1:7860 再次打开。打开的界面如下图所示:
https://img-blog.csdnimg.cn/direct/735fbe4a62c74d879dabf5bad4d5d8a4.png
测试出图

要生成图像,只需以下五个简朴步骤:

[*] 选择模型,可以利用默认的大型模型"anything-v5"。
[*] 添加VAE模型。
[*] 提供提示词:用英文描述你想要的图像内容。
[*] 设置反向提示词:用英文描述你不想要在图像中出现的内容。
[*] 点击生成按钮。
图像生成的速率取决于你的计算机性能,稍等片刻即可。完成后,你可以点击图像放大检察,并右键下载。
https://img-blog.csdnimg.cn/direct/60eeaa678d9845029c9dcd3a3524abd3.png
常用概念


[*] 模型(Model):模型可以理解为一个函数,接受一系列参数作为输入,并生成相应的输出。在这里,模型吸取一些参数(如提示词、反向提示词、图片尺寸、提示词引导系数、随机数种子等),并返回生成的图像数据。
[*] 大模型(Big Model):大模型通常称为基础模型,其文件巨细通常在2GB至5GB之间。这些模型经过大量数据的训练,具有数十亿、甚至上百亿个参数。SD官方发布了一个通用的大模型,但由于其通用性,不能满足全部需求。因此,许多构造或个人会训练特定范畴的模型,并将其发布到社区供大家利用。
[*] VAE模型(Variational Autoencoder Model):VAE模型类似于图片编辑软件中的滤镜,可以加强图像的色彩和线条,使图像看起来更加丰富。一些大模型可能已经集成了VAE模型,但用户也可以选择添加一个额外的VAE模型。常用的VAE模型之一是编号为840000的模型,用于加强图像的色彩。
[*] Lora模型:Lora模型是基于大模型的风格模型,用于控制图像的风格和特征。比方,在绘制人物时,可以利用Lora模型控礼服装和头饰的样式;在绘制机器四肢时,可以利用Lora模型强调机甲样式;在绘制风景时,可以利用Lora模型控制绘画风格。
[*] 提示词(Prompt):提示词用于描述盼望生成的图像内容。比方,描述场景、人物或物体的特征。良好的提示词对于生成所需的图像至关重要。
[*] 反向提示词(Negative Prompt):反向提示词用于描述不希望在生成图像中出现的内容。比方,清除特定物体或场景。利用通用的反向提示词可以简化此过程。
[*] 随机数种子(Random Seed):随机数种子影响生成图像的随机性。即使其他参数类似,差别的随机数种子也会产生差别的图像。这使得每次生成的图像都具有肯定的差异,增长了创作的多样性。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Stable Diffusion——stable diffusion基础原理详解与安装秋叶整合包进行出