一、基础模型和外挂VAE模型

Ⅰ. 基本术语讲解

基础模型(大模型/底模型):属于预调模型,它决定了AI图片的主要风格。

VAE模型:全称Variational auto enconder变分自编码器,它类似于图片生成后的滤镜。

“基础模型”和“外挂VAE模型”之间的区别:首先正常情况下,每个模型都是自带了一个VAE的,VAE虽然不是滤镜但可以把它们看做是一种类似于滤镜的效果。而在大模型内的VAE出现问题、损坏或者是我们不满意的情况下,才需要使用外部手动去进行VAE选择VAE权重。

下载方式:大模型和VAE的下载我们可以从下面这些网站进行下载,而在模型下载的时候需要留意其哈希值。因为有些模型可能名字不一样,但哈希值一样,这就意味着两者几乎没有区别。

【网站①】:https://huggingface.co/

【网站②】:https://civitai.com/

Ⅱ. 不同基础模型的区别:

如下图显示,左边的图是二次元风格,右边的图是写实风格,模型的不同决定了基础的图像样子。

不同基础模型的区别

Ⅲ. 不同外挂VAE模型的区别:

如下图显示,该张图片展示了是否外挂VAE的差别,可以看到在加载新的一个VAE模型后,图片变得清晰起来。

是否加载VAE模型的区别

我们往下看,下面的图片展示了不同VAE模型下的图片差别,可以清晰看见图片的展现效果都不一样,“滤镜”效果完全不同。

不同VAE之间的区别

【总结】:所以,选用不同的VAE模型在制图的过程中很有必要,具体选用哪个模型,小编建议是用XYZ Plot(做出如图1-3的效果)选出你最喜欢的那一个。


二、clip终止层数

(clip skip)

【参考文章】:

https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/5674

大家想要深入理解 clip终止层数 需从Stable diffusion的原理入手,具体原理可以参考这两篇文章:

【SD原理性】:

https://openaccess.thecvf.com/content/CVPR2022/papers/Rombach_High-Resolution_Image_Synthesis_With_Latent_Diffusion_Models_CVPR_2022_paper.pdf

【SD解释性】:

https://stable-diffusion-art.com/how-stable-diffusion-work/

简单来说,我们可以将Stable diffusion理解为一个扩散模型(Stable:稳定的;diffusion:扩散),通过你所给的prompt词扩散出你想要的东西。

例如,当我们尝试生成一个人的插图时,会是这样的一个情况(当然,实际情况可能远比这个更复杂):

Clip的原理图解

为什么是到12层呢?可能会有同学有所疑问,原因是因为在该版本的模型中,深度为12层。

而你想处理到那一层就是:

clip的终止层数(clipskip)

  • ClipSkip为1:处理到最后一层(即所有层)

  • ClipSkip为2:处理到倒数第二层(忽略最后一层)

  • ClipSkip为3:处理到倒数第三层(忽略最后和倒数第二层)

简而言之,随着剪辑跳过的增加,要处理的层数逐渐减少。结果就是详细信息被按顺序丢弃,没有反映的提示数量增加了。(一个词含有的意思很少,需要扩散来丰富)

再举一个比较具体的例子:

Prompt:masterpiece, best quality, 1girl, white hair, black skirt, purple eyes, full body, black dress.

不同clip skip的表现

可见ClipSkip值较小,生成含有丰富提示词的插图;ClipSkip的值较大,生成忽略提示词的插图。


三、提示词与预设样式存储

提示词与预设样式存储在网上都有很多资料,小编这里就不再赘述了,大家感兴趣可以去B站或者百度搜索一下。总之,提示词需要具有一定的指向性和有效性,同时注意权重的搭配,以及英文输入。

【权重改变格式】:

():一个括号的权重提升1.1倍。

(()):两个括号的权重提升1.1^2倍。

(prompt词:1.8):该词权重提升1.8倍。

接下来小编给大家介绍一下本地SD的快捷键:

快捷键一览

这些键从左到右依次为:

从提示词或上次生成的图片中读取生成参数、清空提示词内容、显示和隐藏扩展模型、将所选预选样式插入到当前提示词之后、将当前提示词存储为预设样式。

通过这些可以快速帮我们念咒语,做到无吟唱施法。


四、迭代步数(采样步数)

首先,我们简单介绍一下Stable diffusion的相关原理。小编前天发布的SD文章也有详细介绍,这里再简单地提一下。

我们可以把模型理解为一个迭代过程——从文本输入生成随机噪声开始的重复循环,每一步都会消除一些噪声,并随着迭代步数的增加会产生更高质量的图像。而当完成所需的步骤数时,重复就会停止(可以结合第五节采样方式来看)。

一般来说,大约25个采样步骤(20个也可以)通常足以获得高质量图像,使用更多的步骤可能会产生略有不同的图片,但不一定有更好的质量。此外,当我们使用的步骤越多,生成图像所需的时间就会越多。不过在大多数情况下,额外的等待时间是不值得的。

例如,一个“太空中的小狗”的展示(迭代步数从1-100,gif图片较大可能需要一定的等待时间):

不同迭代步数的区别

迭代步数为4-7时,小狗会从斑点中显现,然后在生成大约20-25个步骤后,它就达到了较高质量。

超过25个步骤后不会造成质量的显着差异,只是小狗的形状将会反复变化,但没有产生更多细节。


五、不同采样方法的区别

采样方法一览

为了生成图像,Stable diffusion首先在潜在空间中生成完全随机的图像,然后噪声预测器估计图像的噪声,再从图像中减去预测的噪声。这个过程重复十几次,最后便会得到一个干净的图像。

这个去噪过程称为采样,因为稳定扩散在每个步骤中都会生成一个新的样本图像。抽样所采用的方法称为抽样器或抽样方法。

Ⅰ. 采样方式介绍

从目前这些采样方法来看,主要分为几个类型:Euler、LMS、Heun、DPM、DDIM、PLMS、UniPC,下面我们来详细解释一下!

①:《Euler》

其是最简单的采样器。它在数学上与求解常微分方程的欧拉方法相同。它是完全确定性的,这意味着采样期间不会添加随机噪声。

它的一般步骤为:

  • 步骤1:噪声预测器根据潜在图像估计噪声图像。

  • 步骤2:根据噪声表计算需要减去的噪声量。这就是当前步骤和下一步之间的噪声差异。

  • 步骤3:将潜像减去归一化噪声图像(来自步骤1)乘以要减少的噪声量(来自步骤2)。

  • 重复步骤1至3,直到噪声计划结束。

②:《LMS》

其与欧拉方法非常相似,线性多步法(LMS)是求解常微分方程的标准方法。它的目的是通过巧妙地使用先前时间步骤的值来提高准确性。

③:《Heun》

是对Euler方法更精确的改进。但它每一步需要预测噪声两次,因此比欧拉慢两倍。

④:《DPM》

DPM(扩散概率模型求解器)和DPM++(对DPM的改进)是为2022年发布的扩散模型设计的新采样器,它们代表了一系列具有相似架构的求解器。DPM自适应可能会很慢,因为它不能保证在采样步骤数内完成。

⑤:《DPM2》

DPM和DPM2类似,只不过DPM2的DPM-Solver-2算法,求解器精确到二阶,其更加准确但速度更慢。

⑥:《DDIM和PLMS》

DDIM(去噪扩散隐式模型)和PLMS(伪线性多步方法)是原始稳定扩散v1附带的采样器。DDIM是最早为扩散模型设计的采样器之一。PLMS是DDIM更新、更快的替代方案。它们通常被认为已经过时并且不再广泛使用。

⑦:《UniPC》

(Unified Predictor Corrector方法)这个是2023年新开发的扩散采样器,其由两部分组成:统一预测器(UniP)、统一校正器(UniC)它支持任何求解器和噪声预测器。

Ⅳ.总结与建议

就收敛行为而言(选择收敛=选择稳定、可重复的图像):

  • 不收敛:Euler_a、DPM2a、DPMFast、DDIM、PLMS、DPMAdaptive、DPM2aKarras

  • 收敛:Euler、LMS、Heun、DPM2、DPM++2M、LMSKarras、DPM2Karras、DPM++2MKarras

按所需步骤时间:

Euler_a=Euler=DPM++2M=LMSKarras(图像在高步长时退化)>LMS=DPM++2MKarras=Heun(较慢)=DPM++2S a(较慢)=DPM++2S a Karras>DDIM=PLMS=DPM2(较慢)=DPM2 Karras>DPM快速=DPM2a(较慢)

  • 如果你想使用快速且质量不错的东西,那么最好的选择是DPM++2M Karras,UniPC

  • 如果你想要高质量的图像并且不关心收敛,那么不错的选择是DPM++SDE Karras

  • 如果你喜欢稳定、可重复的图像,请避免使用任何ancestral samplers(加a的东西)。

  • 如果你喜欢简单的东西,Euler和Heun是不错的选择。


六、面部修复

其实SD内置的面部修复目前的用处并不大,我简单跑了两组对比图,大家可以简单看一下效果:

动漫风格的面部修复(自制)

真人风格的面部修复(自制)

这两组图中,左边是没有开面部修复,右边是开了面部修复的。其中真人的要变得稍微自然一点(也没有过于改进),但是动漫风格的反而变得模糊了,所以面部修复一般是不建议用在非写实的图片生成上。

不过相比于SD内置的面部修复,这里更推荐使用after detailer。

写在最后

感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!
在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述
在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

若有侵权,请联系删除
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐