ai-doc-stableDiffusion

prompt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 杰作,最好的质量
masterpiece, best quality,

# 透明背景
transparent background,

# 前视图,侧视图,后视图,顶视图
front view, side view, back view, Top view

# 1个女孩,独个, q版, 全身
1girl, solo, chibi full body,

# 着色书,单色,一行画,简单和基本
colouring book, monochromatic, one line draw, simple and basic

negative prompt

1
2
# (最差质量,低质量),(变形,扭曲,毁容,眼睛不好),错误的鼻子,奇怪的嘴,奇怪的耳朵,糟糕的解剖,错误的解剖,截肢,多肢,缺肢,浮肢,(坏牙,变异的手,错误的手指:1.2),断肢,变异,丑陋,恶心,坏手4,
(worst quality, low quality), (deformed, distorted, disfigured, bad eyes), wrong nose, weird mouth, strange ears, bad anatomy, wrong anatomy, amputation, extra limb, missing limb, floating limbs, (bad teeth, mutated hands, wrong fingers:1.2), disconnected limbs, mutation, ugly, disgusting, badhandv4,

sampler

采样器就是通过去除图像噪声,生成随机图像并重复几次这个过程得到干净的图像。去噪的方法有很多种。通常需要在速度和准确性之间做出权衡。

此外这里同时还要引出另外一个功能采样迭代步数(Steps),简单来说采样迭代步数(Steps)就是希望出图时,采样器来计算多少步数来出图,但并非步数越多越好,不同出图效果、模型选择等在使用采样迭代步数上都需要有相应的调整,多数情况迭代步数20-30步就可以了。

名称 描述
Euler a 是个插画,tag利用率仅次与DPM2和DPM2 a,环境光效菜,构图有时很奇葩
Euler 柔和,也适合插画,环境细节与渲染好,背景模糊较深。
Heun 单次出图平均质量比Euler和Euler a高,但速度最慢,高step表现好。
DDIM 适合宽画,速度偏低,高step表现好,负面tag不够时发挥随意,环境光线与水汽效果好,写实不佳。
DPM2 该采样方法对tag的利用率最高,几乎占80%+
DPM2 a 几乎与DPM2相同,对人物可能会有特写
PLMS 单次出图质量仅次于Heun。
LMS 质感OA,饱和度与对比度偏低,更倾向于动画的风格
LMS Karras 会大改成油画的风格,写实不佳。
DPM fast 此为上界开发者所遗留的测试工具,不适合魔术师使用

模型类型

模型后缀

.ckpt 的全称是 checkpoint,中文翻译就是检查点,这是 TensorFlow中用于保存模型参数的格式,通常与 .meta 文件一起使用,以便恢复训练过程。

简单理解的话,.ckpt模型就好比我们打游戏时,每通过一关时对这一关的一个“存档”,因为你在训练模型时也是如此,没办法保证能一次就训练成功,中途是有可能因为各种因素失败的,所以可能在训练到20%时就存一次档,训练到40%时又存一次档,这也是为什么它叫 checkpoint 的一个原因。

在提到.ckpt模型时,我想顺便补充下.pt 模型,前面提到,.ckptTensorFlow 用于保存模型参数的格式,而.pt 则是PyTorch保存模型参数的格式。TensorFlowPyTorch都是比较出名的深度学习框架,只不过一个是Google发布的,另外一个是Facebook发布的。

PyTorch 保存模型的格式除了.pt之外,还有 .pth.pkl.pt.pth 之间并没有本质的差别,而.pkl 只是多了一步用Python的 pickle 模块进行序列化。讲完了 .ckpt 模型,那么就该说说 .safetensors 模型了。

之所以有 .safetensors 模型,是因为 .ckpt为了让我们能够从之前训练的状态恢复训练,好比从50%这个点位重新开始训练,从而保存了比较多的训练信息,比如模型的权重、优化器的状态还有一些Python代码。

这种做法有两个问题,一是可能包含恶意代码,因此不建议从未知或不信任的来源下载并加载.ckpt 模型文件;二是模型的体积较大,一般真人版的单个模型的大小在7GB左右,动漫版的在2-5GB之间。

.safetensors模型则是 huggingface 推出的新的模型存储格式,专门为Stable Diffusion模型设计。这种格式的文件只保存模型的权重,而不包含优化器状态或其他信息,这也就意味着它通常用于模型的最终版本,当我们只关心模型的性能,而不需要了解训练过程中的详细信息时,这种格式便是一个很好的选择。

由于 .safetensors 只保存模型的权重,没有代码,所以会更安全;另外由于保存的信息更少,所以它的体积也比 .ckpt 小,加载也更快,所以目前是比较推荐使用 .safetensors 的模型文件。

总的来说,如果你想在某个SD模型上进行微调,那还是得用 .ckpt 模型;但如果你只关心出图结果,那么使用 .safetensors 模型会更好!

Stable diffusion大模型

这类模型俗称“底模”。这类模型代表了Stable diffusion的一个知识库,比如说我们训练大模型用的全是二次元的图片,那么它最终生成的图片效果也会趋于二次元;而如果训练的时候用的是真人图片,则最终出图效果则趋于真人。

由于这类模型包含的素材非常多,训练的时间也非常长,所以体积也比较大,一般在2GB以上,后缀的话就是上面提到的 .ckpt.safetensors

vae模型

VAE全称Variational autoenconder,中文叫变分自编码器,这种模型可以简单理解为起到一个滤镜的效果。在生成图片的过程中,主要影响的是图片的颜色效果。

一般来讲,在生成图片时,如果没有外挂VAE模型,生成的图片整体颜色会比较暗淡;而外挂了VAE模型的图片整体颜色会比较明亮。

不过需要注意的是,有一些大模型在训练的时候就已经嵌入了VAE的效果,所以即使没有使用VAE效果,出图的效果也不会那么暗淡。

另外,有时候使用VAE反倒会出现一个不好的效果,比如在最后一刻变成一张蓝色废图,这时候就需要把外挂VAE改成自动(Automatic)即可

Lora模型

LoRA的英文全称为Low-Rank Adaptation of Large Language Models,直译为“大语言模型的低阶适应”。这是一项由微软研究人员提出的大语言模型微调技术,简单来说,它的作用是让这些庞大的模型变得更加灵活和高效,能够在特定任务上进行优化(比如对样式进行一些修改),而不需要从头开始训练整个模型。

比如在大模型的基础上增加一些森林水母发光的效果(就是我们不必为了增加这个效果,重新训练我们的大模型,因为训练大模型花费时间很长,通过Lora就可以提高效率)

需要注意的是,Lora模型并不能单独使用,它必须与前面的大模型一起使用!

另外,由于Lora训练的图片较少,比如上面的Lora就是用100+图片训练的,所以它的体积一般不会很大,一般在几十到几百MB之间,这样大大节省了磁盘的占用量。

最后,有些Lora模型启用是需要触发词的(也就是在提示词那里加上这个触发词)

Embedding模型

Embedding模型也称为textual inversion,即文本反转。在Stable Diffusion中,Embedding模型使用了嵌入技术以将一系列输入提示词打包成一个向量,从而提高图片生成的稳定性和准确性。

简单来说,如果我们要通过SD生成火影里面的鸣人形象,我们需要好几个提示词来进行描述,比如什么外形,穿什么颜色的衣服,而Embedding就是将这一系列提示词打包成为一个新的提示词,假设叫鸣人。

这样后续我们只要引入这个 Embedding模型,然后输入鸣人提示词,就会生成我们想要的鸣人形象,提高了写提示词的效率!

由于Embedding模型只是将提示词整合了,所以它的体积非常小,一般在几十到几百KB之间。

Hypernetwork模型

Hypernetwork可以翻译为“超网络”,它是一种基于神经网络的模型,可以快速生成其他神经网络的参数,常应用于Novel AI的Stable Diffusion模型中。

Hypernetwork可以用来对模型进行微调,比如在Stable Diffusion这样的图像生成模型中,通过插入一个小型的超网络来修改输出风格,而不改变原始模型的核心结构

这个模型的作用其实和Lora模型功能有点重叠,所以在实际使用中,用得比较少。

ControlNet模型

ControlNet模型是Stable Diffusion的一个插件,用于图像的精准控制,如姿势识别、边缘检测等。它通过预处理器和模型两部分工作,使得AI绘画上升到生产力级别。

适用于需要高精度控制生成图像的场景,如服装设计、角色动画等。

DreamBooth模型

DreamBooth模型用于训练预调模型,使用指定主题的图像进行演算,训练后可以让模型产生更精细和个性化的输出图像。

适用于需要根据特定主题或场景生成精细和个性化图像的场景,如主题艺术创作、场景设计等。

LyCORIS模型

LyCORIS模型属于Lora模型的一种,用于特定风格的图像生成,如微缩世界风格等。它通常体积较小,训练方式与常见的Lora不同,但效果似乎会更好。

适用于需要生成具有特定风格或效果的图像,如微缩模型、特定风格的艺术创作等。

模型的剪枝

大家在下载模型的时候,可能还会看到两个版本,一个版本带 pruned,另外一个版本是带 pruned-emaonly

这是因为大模型在训练的时候会保存两组不同类型的权重:第一组取的是最后一次的权重,也就是只带 pruned 的模型

在深度学习模型训练的过程中,模型的参数(或称为“权重”)会在每一次迭代(或训练步)中根据损失函数(loss function)对数据的拟合情况进行调整。当训练结束时,模型所拥有的权重就是经过所有训练样本反复教导后的最终状态。这部分权重代表了模型在训练数据上学习到的知识,没有经过额外的平滑处理,直接反映了最后一次更新的结果

而第二组则是最近几次迭代的权重进行加权平均,加权平均即EMA(Exponential Moving Average),使用加权平均主要是减少短期波动的影响,这样得到的模型泛化性更好,也更稳定,也就是带 pruned-emaonly 的模型

由于带 pruned-emaonly 的模型体积更小,所以占用的显存(VRAM)也更少,适合用于直接出图;带 pruned 的模型体积更大,占用的显存也更多,更适合对其进行微调

链接

c站 https://civitai.com/
arthub https://arthub.ai
哩布哩布ai https://www.liblibai.com/#/
模型网 https://huggingface.co/
ai专属图站 https://aibooru.online/
pixai图站 https://pixai.art/
finding图站 https://finding.art/#/
aigodilike https://www.aigodlike.com/
模型类型说明 https://mp.weixin.qq.com/s/sq4AbWpF5JXPSrmzPKLoJg
controlNet说明 https://zhuanlan.zhihu.com/p/619721909

收藏

https://civitai.com/models/60538/dont-starve-together
https://civitai.com/models/73649/forgottenmix-cartoon-25d
https://civitai.com/models/7240/meinamix
https://civitai.com/models/6755/cetus-mix
https://civitai.com/models/54917/breakdomainrealistic
https://huggingface.co/chenxluo/QteaMix