资料整理不易,SD 保姆教程,从原理功能到案例输出展示,最后简述 ControlNet 的
使用技巧,图文约 1 万 5 千字左右,阅读时长约 20 分钟~
Stable Diffusion 的基本介绍
首先官方给出的解释是:
这和 MJ 有什么区别?
为了更方便的理解我们将 Stable Diffusion 与 Midjourney 做一个对比
1. 提示词:
提示词分为两个部分
正向提示词:
生成图像时,我们可以使用正向提示词来指定想要生成的图像。正向提示词可以是脑子里想到的图
片或一句话,将其拆分成不同的关键词,并用逗号隔开作为输入。
需要注意的是,相同的指令在不同的模型库和参数下,生成的输出图像可能会不一样。此外,提示
词的顺序也非常重要,因为它们的顺序会影响到生成图像的权重。通常情况下,越靠前的提示词权
重越大,越靠后的提示词权重越小。
排除词:
输入框内输入的标签内容就是你画面中不想要出现的东西,如:低质量的,缺手指,五官不齐等等
下图给大家做一个案例演示
提示词拆分:
【⼦⽲AIGC学堂】 by Vx:ziheAI567
①对于使用提示词生成图像生成的小伙伴来说,当看到喜欢的图像或脑海中想到很多画
面,但却不知道如何用提示词准确描述,现在有三种方法可以帮助大家快速拆分和生成
图像。
Stable Diffusion 中自带反推功能,可以通过将想要拆分的图像拖入反推,点击按钮来
获得生成该图像的提示词。第一次使用可能会有些慢,需要稍等片刻。需要注意的是,
这些提示词需要进行后期的优化,常用的方法是通过百度翻译后进行增删改,或者输入
到 GPT 中进行优化,优化后将提示词放入相应的框内进行图像输出。
②第二种方法我们可以借助三方网站:https://replicate.com/
来进行拆分,拆分好后,同第一条一样,进行一个增删改,然后我们对两种方法进行比
较,通过比较后,我们可以进行词汇的筛选与合并
③利用 gpt 或文心等相关工具,将想要描述的长句输入,最后加一句描述,请将这句话
拆分为 Stable Diffusion 的提示词,如果不满意可以继续恢复优化提示词,或者换一批
相关描述,然后将转换好的提示词同 ①一样增删改
2. 符号的使用
正如前文所述,词汇在提示中的位置越靠前,其所占的权重就越大。为了进一步调整提
示关键词的权重,我们可以通过以下语法来设置关键词的权重:在选中关键词的同时,
按下键盘上的 Ctrl+⬆️ ⬇️来快速调整权重。每次调整的权重值为0.1,建议将权重值控
制在0.7-1.4 之间。简单来说,将每个提示词看作一个独立的个体,权重默认为1,而后
面的数值就相当于在修改这个默认值。当然,我们也可以将权重调整为负数,从而在提
示中产生与原意相反的影响。
通过这种方法,我们可以更加精确地控制提示关键词的权重,以达到更好的提示效果。
同时,我们也需要注意保持提示内容的流畅性和自然性,避免过度的修改导致提示内容
的语义不连贯或不符合实际情况。
3. 图像的输出
画面的信息量取决于输出图片的大小。在全身构图中,一些细节,例如脸部、饰品和复
杂的纹样,只有在较大的图像中才能得到充分的展示空间,如图像太小,脸部,手部,
一些细节就会被压缩成一团,无法得到充分的表现,以下图的风景为例,当画幅越大
时,展示的内容越多。
二、界面部分
1. 采样迭代步数
输出画面需要的步数,每一次采样步数都是在上一次的迭代步骤基础上绘制生成一个新
的图片,一般来说采样迭代步数保持在 18-30 左右即可,低的采样步数会导致画面计
算不完整,高的采样步数仅在细节处进行优化,对比输出速度得不偿失。
常用的有三种,分别是 Euler a,DPM++2S a Karras 和 DDI
⼦⽲AIGC学堂 by Vx:ziheAI567
Euler a:
①Euler a 是一种用于控制时间步长大小的可调参数,在 Stable Diffusion 中采用
Euler 时间步长采样方法。适当的 Euler a 值能够捕捉到细节和纹理,但如果值太大会
导致过度拟合,生成图像出现噪点等不良效果。
②一句话概括:采样生成速度最快,但是如果说在高细节图增加采样步数时,会产生不
可控突变(如人物脸扭曲,细节扭曲等)
适合:ICON,二次元图像,小场景
下图为大家展示同提示词不同步幅
DPM++2S a Karras:
⼦⽲AIGC学堂 by Vx:ziheAI567
①采用 DPM++2S a Karras 采样方法生成高质量图像,该方法在每个时间步长中执行
多次操作,同等分辨率下细节会更多,比如可以在小图下塞进全身,代价是采样速度更
慢
②适合:写实人像,复杂场景刻画
下图展示 elura a 同提示词不同步幅下的输出图像,可以看到步幅越高,细节刻画越好
DDIM
①DDIM 采样方法可以快速生成高质量的图像,相比其他采样方法具有更高的效率,想
尝试超高步数时可以使用,随着步数增加可以叠加细节
②适合:写实人像,复杂场景刻画
⼦⽲AIGC学堂 by Vx:ziheAI567
下图为大家展示 DDIM 同提示词不同步幅下的输出图像,可以看到随着步幅的提高,
细节和丰富度逐渐提高
3. 提示词相关性
Stable Diffusion 中的提示词相关性指的是输入提示词对生成图像的影响程度。当我们
提高提示词相关性时,生成的图像将更符合提示信息的样子;相反,如果提示词相关性
较低,对应的权重也较小,则生成的图像会更加随机。因此,通过调整提示词相关性,
可以引导模型生成更符合预期的样本,从而提高生成的样本质量。
①在具体应用中,对于人物类的提示词,一般将提示词相关性控制在 7-15 之间;
②而对于建筑等大场景类的提示词,一般控制在 3-7 左右。这样可以在一定程度上突出
随机性,同时又不会影响生成图像的可视化效果。因此,提示词相关性可以帮助我们通
过引导模型生成更符合预期的样本,从而提高生成的样本质量。
4. 随机种子
随机种子是一个可以锁定生成图像的初始状态的值。当使用相同的随机种子和其他参
数,我们可以生成完全相同的图像。设置随机种子可以增加模型的可比性和可重复性,
同时也可以用于调试和优化模型,以观察不同参数对图像的影响。
在 Stable Diffusion 中,常用的随机种子有-1 和其他数值。当输入-1 或点击旁边的骰
子按钮时,生成的图像是完全随机的,没有任何规律可言。而当输入其他随机数值时,
就相当于锁定了随机种子对画面的影响,这样每次生成的图像只会有微小的变化。因
此,使用随机种子可以控制生成图像的变化程度,从而更好地探索模型的性能和参数的
影响。
在工作产出中,如果细微调整,我们将会固定某个种子参数然后进行批量生成三、模型部分
Checkpoint,VAE,embedding 和 lora 的使用详解
2. Checkpoint 的介绍
对于模型作者而言,训练模型通常指生成 Checkpoint 文件。这些文件包含了模型参数
和优化器状态等信息,是训练过程中定期保存的状态快照。
⼦⽲AIGC学堂 by Vx:ziheAI567
对于使用者而言,可以将 Checkpoint 文件理解为一种风格滤镜,例如油画、漫画、写
实风等。通过选择对应的 Checkpoint 文件,您可以将 Stable Diffusion 模型生成的
结果转换为您所选择的特定风格。需要注意的是,一些 Checkpoint 文件可能需要与特
定的低码率编码器(如 Lora)配合使用,以获得更好的效果。
在下载 Checkpoint 文件时,您可以查看相应的模型简介,通常作者会提供相应的文件
和说明事项,以帮助您更好地使用和理解该文件。
总之,Checkpoint 文件是 Stable Diffusion 模型训练过程中定期保存的状态快照,使
用者可以将其理解为一种风格滤镜,用于将模型输出结果转换为特定的风格。在使用
Checkpoint 文件时,需要注意文件的匹配和相应的使用说明。
3. VAE 的介绍
可以将 VAE 理解为对模型的滤镜加微调,不同的 VAE 可能有一些细节上的差异,但不会影响输出
的效果。
它可以增强模型的表现,有些模型文件已经自带了 VAE 效果,因此不需要盲目地去挂载,可以选择
自动模式来简化日常使用。
4. embedding 的介绍
如果你有做过 UI 的经验,那么你应该知道组件的概念。在 Stable Diffusion 中,
embedding 技术就可以被理解为一种组件,它可以将输入数据转换成向量表示,方便
模型进行处理和生成。
举个例子,如果我们想要生成一个开心的皮卡丘,通常需要输入很多描述词,如黄毛、
老鼠、长耳朵、腮红等等。但是,如果引入皮卡丘的 embedding,我们只需要输入两
个词:皮卡丘和开心。皮卡丘的 embedding 打包了所有皮卡丘的特征描述,这样我们
就不用每次输入很多单词来控制生成的画面了。
⼦⽲AIGC学堂 by Vx:ziheAI567
在日常使用中,embedding 技术通常用于控制人物的动作和特征,或者生成特定的画
风。相比于其他模型(如 LORA),embedding 的大小只有几十 KB,而不是几百兆
或几 GB,除了还原度对比 lora 差一些但在存储和使用上更加方便。
总之,embedding 技术将输入数据转换为向量表示,为模型的处理和生成提供了便
利。通过使用 embedding,我们可以更加轻松地生成符合预期的样本,而不需要手动
输入大量的描述词汇。
评论0