第二期,A1111参数详解,尽情开始你的AI创作之旅!
novelai吧
全部回复
仅看楼主
level 7
AI绘语 楼主
接下来会详细说说stable diffusion的网页ui——Automatic1111的各项参数。
A1111的安装请看第一期内容。
为了照顾部分还没安装显卡的朋友,先简单介绍一种借助google Colab跑图的方法。
讲完之后再进入正文。
后续还会有很多
#SD教程#
,点个关注,不会错过哦[吐舌][吐舌][吐舌]
2023年05月16日 04点05分 1
level 7
AI绘语 楼主
一、引言
在上一篇文章中,我已经详细讲解了如何在电脑上安装能够使用SD模型的用户UI——Automatic1111(以下简称A1111)。如果你尚未完成安装过程,建议你先按照我提供的步骤进行操作,完成安装再接着往下看。
A1111作为SD模型的用户界面,具备了一套丰富且完善的功能,包括多种可自定义的参数选项。这些参数在图像生成过程中起着关键性的作用,因为它们可以极大影响最终生成图像的效果和质量。实际上,许多在线的AI图片生成器也提供了类似的参数调整功能。但是,A1111不仅覆盖了这些功能,还提供了更多的自定义选项,以满足更复杂的需求。
在本篇文章中,我将首先介绍A1111的一些基本参数。这些参数是控制SD模型的核心,理解它们的工作原理和作用,可以帮助你更好地掌握SD模型,充分发挥其在图像生成领域的潜力。在后续的文章中,我还将进一步探讨A1111的更多参数和特性,以便你能够更深入地了解和使用SD模型。
为了照顾部分还没安装显卡的朋友,在正式开始之前我先简单介绍一下如何在Colab(谷歌云端计算平台)上运行A1111。下面是一个简单的教程,让你轻松地使用A1111进行AI绘画
2023年05月16日 04点05分 2
level 7
AI绘语 楼主
二、使用google colab运行A1111的步骤
先简单说一下Colab:Colab是一款由Google提供的免费云端计算平台,用户可以通过浏览器访问并使用该平台提供的计算资源。Colab平台上的计算资源包括CPU和GPU。平台对CPU的使用限制较少,而GPU是一种相对重要的资源,因为它可以大大加速深度学习等计算密集型任务的运行,因而在免费版 Colab 中,用户对 GPU 等高昂资源的访问权限会受到严格限制。
对于GPU能免费使用的原因,colab这样说:“Colab 之所以能够免费提供资源,部分原因在于它的用量限额是时有变化的动态限额,并且它不会保证资源供应或无限供应资源。也就是说,总体用量限额、空闲超时时长、虚拟机生命周期上限、可用 GPU 类型以及其他因素都会不时变化。Colab 不会公布这些限额,原因之一是它们不仅可能、而且有时确实会快速变化。”
意味着免费用户能不能用上GPU有点看脸。但就我个人观察,+8时区一般早上和下午都比较大概率能分配到GPU,晚上几乎就没啥可能了。
1、使用colab前的准备:
1) 魔法上网工具
2) 正常可用gg账号
3) 开通了google drive(谷歌云盘)
2、配置A1111
1) 打开网址:
https://colab.research.google.com/github/TheLastBen/fast-stable-diffusion/blob/main/fast_stable_diffusion_AUTOMATIC1111.ipynb
2) 点击右上角的“连接”:
3) 点击这里就可以看是否分配到了GPU,有GPU RAM,说明分配到了:
4) 点击“全部运行”
5) 弹出框,点击连接,后续登录进云盘就好了:
6) 运行完了之后,你会看到这个链接,点进去
7) 点进去后就会弹出A1111界面
2023年05月16日 04点05分 3
level 7
AI绘语 楼主
三、参数详解
在打开A1111时,默认会显示在txt2img的标签页下。这个标签页提供了将文字转换为图像的基本功能,能够实现stable diffusion的基本功能。
在txt2img(text to image的缩写)标签页中,你可以输入任何文本,A1111会自动将其转换为一张图像,并在界面中显示出来。你可以通过调整不同的参数,如图像大小、字体、颜色等来自定义生成的图像。
下面将详细讲讲txt2img页面参数的详细信息:
1、Stable Diffusion Checkpoint
Chekpoint翻译为检查点,在这里指的是模型。在所有模型下载网站下载的SD模型或者基于SD的微调模型都被叫做checkpoint。在Stable Diffusion Checkpoint选项框可以选择使用不同的模型。
SD模型有很多版本,其中最常用的是V1.5版本。虽然Stability AI(即SD模型的发布者)在去年12月份发布了SD V2版本,但由于某些原因,许多微调模型仍然基于SD1.5进行训练。
目前主要的模型下载网站是Civitai和Hugging Face,但由于某些限制,我无法直接提供网址。其中,Hugging Face可以在国内网络直接访问。模型的格式有两种:一种是.ckpt,另一种是.safetensors。建议只下载.safetensors格式的模型,因为这是最安全的格式,而.ckpt格式可能会包含恶意代码。
关于这两种格式的区别,我会在以后的教程中详细解释。
新下载模型放在如下路径:
点击蓝色刷新按钮,在下拉框中就可以看到新下载的模型:
如果你是初次接触AI绘画,那么默认先使用V1.5版本的SD模型。
2023年05月16日 04点05分 4
level 7
AI绘语 楼主
2、Prompt
prompt即提示词,这个参数也被称为正向提示词(Positive prompt)。它是决定生成图片内容的最主要的参数。你只需要在Prompt输入框中键入相关的英文单词或句子,就可以生成与之相关的图像。你的描述越精确,生成的图像就越接近你所期望的效果。
Prompt参数的设定在掌握AI绘画技术中占据了关键位置。一个优质的Prompt应当尽可能具体和详细,以便引导模型准确理解并生成出你所期望的图像。例如,如果你想绘制一只猫,那么你应当提供更多的信息,如它的品种、毛色,甚至包括它的姿态。
Prompt: a cat(一只猫)
Prompt: a cute cat sitting on the ground, Persian cat(一只坐在地上的可爱的猫,波斯猫)
你需要尽可能地描述得更具体、更精确,以便生成更接近你所期待的图像。当然,如果你只是为了体验AI绘画的乐趣,而无具体的构图需求,那么这个原则就不那么重要了。
另外,你可能注意到框的右上角有“0/75”的标识,意思是你能输入的token数量上限为75。在这里,“token”可以理解为语言模型读取和处理语言的基本单元,它可以是一个单词,也可以是一个字符,取决于具体的语言和模型的设计。如果实在搞不明白也没关系,直接记住这个等式:100 tokens≈75 words。
许多网络上的图片生成式AI都不能输入超过75 tokens的提示词。然而,在Automatic1111,你实际上可以输入超过75个token。这得益于Automatic1111的一种特殊机制,该机制能够处理超出标准限制的token数量。也就意味着,你可以输入更长的描述,提供更多的细节和指示,以帮助模型更准确地生成你所期望的图像。
尽管如此,你仍然需要注意描述的简洁性和明确性,以避免过于冗长和复杂的描述导致模型理解困难。因此,如何在保证描述清晰度的同时,尽量控制token数量,也是使用Automatic时需要注意的一点。
之后会出一个专门讲解如何写一个好prompt的教程。期待一下。
2023年05月16日 04点05分 5
level 7
AI绘语 楼主
3、Negative prompt
负向提示词(Negative Prompt)是另一个重要的参数,它可以帮助你更精确地控制生成图像的内容。正如其名字所示,负向提示词是用来指导模型避免生成某些特定内容的。
与正向提示词直接描述你期望出现在图像中的内容相反,负向提示词则用于描述你不希望出现在图像中的内容。通过这种方式,负向提示词可以作为正向提示词的补充,提供额外的指导信息,帮助模型更精确地生成你期待的图像。
例如,如果你在正向提示词中输入 "a serene forest scene"(一个宁静的森林景色),但你希望避免图像中出现水,那么你可以在负向提示词中输入 "water" 等与水有关的关键词。这样,模型在生成图像时,会尽可能地避免描绘出与水有关的事物。
例如:
Prompt: a serene forest scene
Prompt: a serene forest scene
Negative prompt: water
可以看到,第一张图中的一滩水消失了,但对画面的其它部分影响较小。
总的来说,负向提示词是一个强大的工具,能够提供额外的控制度,帮助你生成更接近理想的图像。通过熟练使用正向提示词和负向提示词,你可以更好地驾驭AI绘画,创作出满意的作品。
2023年05月16日 05点05分 6
level 7
AI绘语 楼主
4、Width&Height
"Width"与"Height"指的是生成图片的宽度和高度,它们决定了生成图片的尺寸和长宽比。通过调整这两个参数,你可以根据需要更改图像的大小以及宽高比。
Stable Diffusion v1.5是使用512x512尺寸的图片进行训练的,因此,如果你维持这个尺寸,将更有可能获得理想的生成结果。这是因为在该尺寸下,模型的预测能力最强,可以更准确地生成符合描述的图像。
当然,你也可以根据具体需求,尝试其他的尺寸设置。例如,如果你的目标是生成人物图像,建议采用512x768的尺寸;如果是生成风景图像,则建议采用768x512的尺寸。需要注意的是,使用过宽的尺寸生成人像可能会产生不正常的效果,例如生成的人物可能会有两个头或者两个身体等等。
例如:
prompt:oil painting, 1 girl, solo, running, happy, highly detailed stola, Running joyfully with light steps on the grassland, by William Adolphe Bouguereau, vintage, sharp focus
上图的图片尺寸为768x512。从上图可以看出,在宽画幅里绘制人物,既使我在prompt里写了1 girl,并用solo强调,但仍然会产生两个人物。不过,并不是说设置这个尺寸就一定会产生两个人物,而是会增大这个趋势或者说概率。
在其它设置保持不变的情况下,无论改变图片的宽度或高度参数,都会对最终生成的图像产生显著的影响。因此,合理地设置并调整这两个参数,能够帮助你更好地控制生成图像的效果,达到理想的视觉体验。
例如:
除了图片尺寸以外,以下两张图的所有参数都是一致的,但是会得到两张完全不一样的图片。
此外,值得注意的是,生成更高分辨率的图片需要更大的显存。因此,如果你希望提高生成图片的分辨率,但受限于显存容量,你可能需要寻求其他的解决方案。幸运的是,Automatic1111的第三方插件提供了一系列的AI驱动的图像放大技术,这些技术不仅能够有效地提升图片的分辨率,而且在保证图像清晰度的同时,实现了图像的放大处理。
在之后的教程中,我会详细介绍如何利用Automatic1111中的这些AI放大技术,来提升你生成图片的分辨率。
2023年05月16日 05点05分 7
level 7
AI绘语 楼主
5、CFG Scale
CFG Scale,全称为Classifier Free Guidance Scale,是一个可以调整生成图像忠实于提示词程度的重要参数。这个参数的设置将直接影响模型对提示词的忠实程度,从而影响生成图像的效果和质量。
CFG Scale的值越小,生成的图像与提示词的相关程度越低,模型会展现出更大的创造力;反之,CFG Scale的值越大,生成的图像将更加忠实于提示词,模型会更严格地按照提示词的内容生成图像。
以下是对CFG Scale不同值的一些理解:
1 —— 这个值意味着模型几乎会无视你的提示词。
3 —— 这是一个比较有创造力的值,模型会根据你的提示词生成比较有创意的图片。
7 —— 这是默认值,也是创意与忠实提示词之间的一个平衡点。在这个值下,模型既能保持一定的创新性,也能较好地遵循提示词。
15 —— 在这个值下,模型将在很大程度上忠实于提示词,生成的图像将更加接近你的期望。
30 —— 这是一个极端值,模型将严格按照提示词生成图像,几乎没有任何创新性。因此要求你的描述相当完整才行。
在设置CFG Scale时,通常建议远离1和30这两个极端值。你可以从默认值7开始,然后根据需要进行调整。如果希望生成的图像更有创意,可以适当降低CFG Scale值;如果希望生成的图像更接近提示词,可以适当提高CFG Scale值。
2023年05月16日 05点05分 8
level 7
AI绘语 楼主
6、Seed
Seed,即种子,是控制图像生成效果的关键参数之一。它的存在赋予了模型随机性的特点,使得每次生成的图像都不尽相同,增加了生成图像的多样性。
当其他参数保持不变的情况下,如果种子值也相同,那么生成的图像将会完全相同。这意味着,如果你想复制一张与他人完全一样的图像,你不仅需要知道提示词(Prompt),同时也需要知道对应的种子值(seed)。
当种子值设置为-1时,系统将使用随机种子来生成图像,这将使得每次生成的图像都有所不同,增加了生成结果的多样性。然而,如果你想在某张已生成的图像基础上进行微调,你应当固定种子值,并适当调整其他参数,如Prompt,以便获得更理想的效果。
当你需要生成合适图片的时候将seed值设置为-1,而需要微调某张图片的时候再固定seed值。
例如:
Prompt:1 girl, :d, blue hair, (brown eyes:1.2), perfect nose, collarbone, detailed vintage dress, shinny glowing skin, upper body, ornate hairbind, jewelry, blue sky, cloud, grassland, sitting, highly detailed, sharp focus, stunningly beautiful, natural light
我觉得这张图片很不错,但是我想对她做点小改动,我想让她看着镜头。那么就需要将这张图片的seed值复制到seed框内,seed值可以在如下位置查看:
将这个值复制到如下位置,或者点击绿色回收按钮:
然后在prompt框内添加“looking at viewer”(看向观众),点击generate,你就可以得到一张与原图类似的图片,但是人物会看向镜头。
2023年05月16日 05点05分 9
level 7
AI绘语 楼主
另外,在seed框后边还有一个extra选项,点开之后可以看到如下四个参数调整项。
Variation seed即变异种子,Variation strength即变异强度。两者需要搭配使用,将Variation strength设定为0表示只使用seed值生成图片,将Variation strength为1则表示只使用Variation seed值生成图片,其它介于0到1之间的Variation strength值则可以获得两者不同程度融合的图像。
以下是个例子:
将seed值设定为1或100,而其他参数保持完全相同,可以得到如下两张图片:
但我想要处于两者之间的图片,那么就需要勾选extra,将Seed设定为1,将Variation seed设定为100,Variation strength则在0到1之间调整。效果如下所示:
可以看出,随着Variation strength值增大,seed=1的图片逐渐过渡到seed=100的图片。
在之前关于图像大小参数的介绍时,我提到过即使其它参数保持一致,只调整图像尺寸也会对最终结果产生显著影响。Resize seed from width&height这个参数就是为了解决这个问题而准备的。
将图像的原始尺寸输入Resize seed from width&height,将目标尺寸输入width&height参数框内,就可以获得更接近原始尺寸的图片。
比如说我喜欢这张512x512,seed=100的图片:
如果我直接改变这张图片的尺寸:
可以发现,人物脸部和姿势都变化非常大。
当你使用Resize seed from width&height,你会得到更接近原始图像的结果。虽然这两者仍然不是完全一致,但要更接近一点:
2023年05月16日 05点05分 10
level 7
AI绘语 楼主
6、sampler methods
采样方法(Sampler Methods)是Automatic1111中的一个参数选项,它决定了模型在解决扩散方程以生成图像时的策略。
Automatic1111提供了多种采样方法供用户选择:
尽管这些方法在理论上以不同的方式解决扩散方程,但在实践中,使用不同的采样器生成的图像差异通常不会很大。换句话说,从图像质量的角度来看,选择不同的采样方法对最终结果的影响相对较小。
这并不是说采样方法不重要,而是意味着在选择采样方法时,用户可以更加专注于其他参数的调整,如分辨率、噪点控制和颜色校正等,以获得更好的图像质量。当然,根据具体的应用需求和个人偏好,仍然可以尝试不同的采样方法,以找到最适合的生成效果。
以下使用不同采样器的对比图:
从这个结果来看,除了DPM fast和Euler a两个采样器的结果不尽如人意之外,其它采样器都表现良好。
然而,不同的采样方法在处理相同任务时所需的时间却可能会有所不同。每个采样方法都有其独特的计算方式和算法特点。某些采样器可能更加高效,能够在较短的时间内完成任务,这对于需要快速结果的场景非常有利。其他采样器可能会更加注重结果的准确性和质量,可能需要更多的计算时间才能达到理想的效果。
以下是对不同采样方法采样相同步数所需时间的参考:
请注意,这些时间仅供参考,实际的处理时间可能受到多个因素的影响,包括计算机性能、图像大小和选定参数等。
总的来说,在选择适合的采样器时,我们需要综合考虑时间效率和结果质量之间的权衡。对于需要迅速获得结果并能够接受一定的精度损失的任务,可以选择较为高效的采样器。而对于对结果准确性要求较高且可以接受更长计算时间的任务,则可以选择注重质量的采样器。
如果你对采样方法没有特别的需求或偏好,推荐使用DPM++ 2M Karras,这种方法在效率和效果上都表现较好,尽量避免使用Euler a和DPM fast。
2023年05月16日 05点05分 11
level 7
AI绘语 楼主
8、Sampler step
采样步数(Sampler Steps)是另一个影响图像生成效果的重要参数。它决定了使用特定采样方法进行的采样步骤的数量。一般来说,采样步数越多,生成的图片清晰度越高。
然而,这并不是说采样步数越多越好。虽然采样步数的增加可以带来图像清晰度的提升,但同时也会导致图像生成的时间增加。而且,当采样步数达到一定程度后,继续增加步数所带来的清晰度提升将会变得非常微小,甚至几乎无法察觉,而所需的时间却会大幅度增加。因此,我们需要在图像清晰度和生成时间之间寻找一个合适的平衡点。
以下是使用DPM++ 2M Karras采样方法,随着采样步数增加,生成图片的变化情况:
根据上图可以观察到,在采样步数达到15步之前,随着步数的增加,图片的清晰度变化非常明显。然而,一旦采样步数达到15步以上,随着步数的增加,图片的清晰度变化已经变得难以察觉。
基于这个观察结果,在使用DPM++ 2M Karras采样方法时,建议将采样步数设置在15到20之间。这个范围内的采样步数可以在保持合理的计算时间的同时,获得较为满意的图像清晰度。我实际的使用情况也是如此。
至于其他采样方法,合理的采样步数则需要自行尝试和评估。不同的采样方法可能具有不同的收敛速度和清晰度表现。因此建议根据具体情况进行实验,通过逐步增加采样步数并观察图像的清晰度变化,来确定最适合的采样步数。
总的来说,选择适当的采样步数是在使用不同采样方法时的需要考虑的因素。通过将采样步数设置在15到20之间,可以在DPM++ 2M Karras采样方法中实现良好的平衡。对于其他采样方法,建议自行实验和评估,以找到最佳的采样步数,从而得到满意的结果。
2023年05月16日 06点05分 12
level 7
AI绘语 楼主
9、Batch count&Batch size
批次数(Batch Count)与每批次生成的图片数量(Batch Size)是在使用SD生成图片时需要考虑的两个参数。它们决定了你每次运行模型时生成的图片的总数量,总数量等于Batch Count与Batch Size的乘积。比如,如果设置Batch Count为2,Batch Size为4,那么每次运行模型会生成2x4=8张图片。
在实践中,我们往往不会只生成一张图片,而是会一次性生成多张图片,这样可以更好地判断输入的prompt是否能得到满意的结果。
然而,Batch Count和Batch Size并不是随意设置的。它们的设定取决于你的显存,尤其是显存的大小。如果你的显存较大,那么可以设置较高的Batch Size值,因为这样可以一次性处理更多的图片,从而加快运行速度。相反,如果显存较小,那么应设置较高的Batch Count值,以防止因一次处理的图片过多导致的内存溢出。
以下是个例子:
生成4张图片,设置batch count=1,batch size=4。消耗时间91.49s,内存占用3028M
而同样生成4张图片,设置batch count=4,batch size=1。消耗时间112.77s,内存占用2656M
因此在电脑性能允许的情况下,生成相同总量的图片应该尽可能提高batch size的值,以缩短总的AI绘图时间。
2023年05月16日 06点05分 13
level 7
AI绘语 楼主
10、Restore faces
"Restore Faces"即修复脸部,是一个专门用于修复生成图片中出现的不正常人脸形态的功能。在使用SD生成人物图片时,有时可能会出现形状扭曲或者表情异常的人脸,这会大大降低生成图片的视觉质量。"Restore Faces"功能则通过对生成的图片进行后处理,专门修复人脸部分,而不会对图像的其他部分造成影响。
以下是个例子:
在Automatic1111中,提供了两种人脸修复方法,分别是CodeFormer和GFPGAN。这两种方法在安装Automatic1111的依赖项时就已经被引入。CodeFormer作为默认的修复方法,能够处理大部分的人脸异常情况。如果在使用CodeFormer方法后,人脸的修复效果仍然不理想,你可以尝试切换到GFPGAN方法。
切换方法如下:
点击setting,点击face restoration,再切换为GFPGAN即可。Codeformer weight可以用来调整面部修复的强度。请注意,codeformer weight的数值越低效果越强。
开启"Restore Faces"功能后,可以显著降低生成图片中出现不正常人脸的概率,从而提升生成图片的整体视觉质量。
虽然“Restore Faces”这个功能在修复生成图片中的人脸形态方面有着显著的效果,但并不意味着我们应该一直保持这个功能开启。事实上,这个功能在运行过程中需要占用额外的显存。因此,建议根据自己的实际需求和硬件条件来合理决定是否开启这个功能。
2023年05月16日 06点05分 14
level 7
AI绘语 楼主
11、Tiling
Tiling(瓷砖铺设)是一种将瓷砖排列在一起的技术动作,也可以理解为将图像“瓷砖化”。我们都知道,多块瓷砖可以通过巧妙的拼接方式形成反复出现的图案。这些图案可以是几何形状、花朵、动物或抽象的设计,它们可以根据个人喜好和空间条件,创造出各种风格。
Tiling的主要目的是生成一幅在水平和垂直方向上无限重复拼接的图像。这种连续的平铺效果赋予了设计更大的视觉延展性,使得整体场景呈现出连贯、统一的感觉。
以下是个启用了Tiling功能的例子:
Prompt:gems pattern(宝石图案)
启用tiling后产生的图片是周期性图片的一部分,将4张相同的图片拼接起来就可以得到下图:
这样的拼接使得图片在水平和垂直方向上呈现出周期性重复的效果。每张图片在拼接过程中与相邻图片的边缘无缝连接,形成一个连续的平铺效果。这种方法可以有效地扩展图片的尺寸,创造出更大、更全面的视觉展示。同时,这种周期性拼接的方式也能够保持原始图片的视觉一致性和整体性。
当然,这里的白色线条是为了方便区分和理解才添加进去的,实际操作过程会严丝合缝。
2023年05月16日 06点05分 15
1 2 尾页