Stable Diffusion 新手入门手册

这篇具有很好参考价值的文章主要介绍了Stable Diffusion 新手入门手册。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

可以使用括号人工修改提示词的权重,方法如:

  • (word) - 将权重提高 1.1 倍

  • ((word)) - 将权重提高 1.21 倍(= 1.1 * 1.1)

  • [word] - 将权重降低至原先的 90.91%

  • (word:1.5) - 将权重提高 1.5 倍

  • (word:0.25) - 将权重减少为原先的 25%

  • (word) - 在提示词中使用字面意义上的 () 字符

( n ) = ( n : 1.1 ) (( n )) = ( n : 1.21 ) ((( n ))) = ( n : 1.331 ) (((( n )))) = ( n : 1.4641 ) ((((( n )))) = ( n : 1.61051 ) (((((( n )))))) = ( n : 1.771561 )

请注意,权重值最好不要超过 1.5。

还可以通过 Prompt Editing 使得 AI 在不同的步数生成不一样的内容,譬如在某阶段后,绘制的主体由男人变成女人。

Stable Diffusion,新手入门,AI艺术创作,模型训练

语法为:

[to:when] 在指定数量的 step 后,将to处的提示词添加到提示
[from::when] 在指定数量的 step 后从提示中删除 from处的提示词
[from:to:when] 在指定数量的 step 后将 from处的提示词替换为 to处的提示词

例如: a [fantasy:cyberpunk:16] landscape 在一开始,读入的提示词为: the model will be drawing a fantasy landscape. 在第 16 步之后,提示词将被替换为:a cyberpunk landscape, 它将继续在之前的图像上计算
又例如,对于提示词为: fantasy landscape with a [mountain:lake:0.25] and [an oak:a christmas tree:0.75][ in foreground::0.6][ in background:0.25][shoddy:masterful:0.5],100 步采样, 一开始。提示词为: fantasy landscape with a mountain and an oak in foreground shoddy 在第 25 步后,提示词为: fantasy landscape with a lake and an oak in foreground in background shoddy 在第 50 步后,提示词为:fantasy landscape with a lake and an oak in foreground in background masterful 在第 60 步后,提示词为:fantasy landscape with a lake and an oak in background masterful 在第 75 步后,提示词为:fantasy landscape with a lake and a christmas tree in background masterful

提示词还可以轮转,譬如

[cow|horse] in a field

在第一步时,提示词为“cow in a field”; 在第二步时,提示词为"horse in a field.“; 在第三步时,提示词为"cow in a field” ,以此类推。

Token

实际上,程序是将输入的关键词以 Token 的形式传入模型进行计算的:

Stable Diffusion,新手入门,AI艺术创作,模型训练

(Medieval astronomer using a telescope with a cosmic starry sky in the background.sketch, hand draw style, con, uncomplicated background )”转换为 Token ID 即: 263, 10789, 40036, 1996, 320, 19037, 593, 320, 18304, 30963, 2390, 530, 518, 5994, 8, 11, 263, 5269, 267, 2463, 4001, 1844, 267, 5646, 267, 569, 16621, 5994, 264

一个单词可能对应一个或多个 Token,多个单词也可能对应同一个 Token。

提示词模板

可参考Civitai | Stable Diffusion models, embeddings, hypernetworks and more中优秀作品的提示词作为模板。

类似的网站还有:

  • Majinai:MajinAI | Home

  • 词图:词图 PromptTool - AI 绘画资料管理网站

  • Black Lily:black_lily

  • Danbooru 标签超市:Danbooru 标签超市

  • 魔咒百科词典:魔咒百科词典

  • AI 词汇加速器:AI 词汇加速器 AcceleratorI Prompt
    NovelAI 魔导书:NovelAI 魔导书

  • 鳖哲法典:鳖哲法典

  • Danbooru tag:Tag Groups Wiki | Danbooru (donmai.us)

  • AIBooru:AIBooru: Anime Image Board

Controlnet

Controlnet 允许通过线稿、动作识别、深度信息等对生成的图像进行控制。

请注意,在使用前请确保 ControlNet 设置下的路径与本地 Stable Diffusion 的路径同步

Stable Diffusion,新手入门,AI艺术创作,模型训练

基本流程

Stable Diffusion,新手入门,AI艺术创作,模型训练

Stable Diffusion,新手入门,AI艺术创作,模型训练

  • 点击 Enable 启用该项 ControlNet

  • Preprocessor 指预处理器,它将对输入的图像进行预处理。如果图像已经符合预处理后的结果,请选择 None。譬如,图中导入的图像已经是 OpenPose 需要的骨架图,那么 preprocessor 选择 none 即可。

  • 在 Weight 下,可以调整该项 ControlNet 的在合成中的影响权重,与在 prompt 中调整的权重类似。Guidance strength 用来控制图像生成的前百分之多少步由 Controlnet 主导生成,这点与[:]语法类似。

  • Invert Input Color 表示启动反色模式,如果输入的图片是白色背景,开启它。

  • RGB to BGR 表示将输入的色彩通道信息反转,即 RGB 信息当做 BGR 信息解析,只是因为 OpenCV 中使用的是 BGR 格式。如果输入的图是法线贴图,开启它。

  • Low VRAM 表示开启低显存优化,需要配合启动参数“–lowvram”。

  • Guess Mode 表示无提示词模式,需要在设置中启用基于 CFG 的引导。

  • Model 中请选择想要使用解析模型,应该与输入的图像或者预处理器对应。请注意,预处理器可以为空,但模型不能为空。

可用预处理/模型
  • canny 用于识别输入图像的边缘信息。

Stable Diffusion,新手入门,AI艺术创作,模型训练

  • depth 用于识别输入图像的深度信息。

Stable Diffusion,新手入门,AI艺术创作,模型训练

  • hed 用于识别输入图像的边缘信息,但边缘更柔和。

Stable Diffusion,新手入门,AI艺术创作,模型训练

  • mlsd 用于识别输入图像的边缘信息,一种轻量级的边缘检测。 它对横平竖直的线条非常敏感,因此更适用于于室内图的生成。

Stable Diffusion,新手入门,AI艺术创作,模型训练

  • normal 用于识别输入图像的法线信息。

Stable Diffusion,新手入门,AI艺术创作,模型训练

  • openpose 用于识别输入图像的动作信息。

Stable Diffusion,新手入门,AI艺术创作,模型训练

OpenPose Editor 插件可以自行修改姿势,导出到文生图或图生图。

Stable Diffusion,新手入门,AI艺术创作,模型训练

  • scribble 将输入图像作为线稿识别。如果线稿是白色背景,务必勾选“Invert Input Color”

Stable Diffusion,新手入门,AI艺术创作,模型训练

  • fake_scribble 识别输入图像的线稿,然后再将它作为线稿生成图像。

Stable Diffusion,新手入门,AI艺术创作,模型训练

  • segmentation 识别输入图像各区域分别是什么类型的物品,再用此构图信息生成图像。

Stable Diffusion,新手入门,AI艺术创作,模型训练

如果想绘制一张符合 segementation 规范的图像,可以使用以下色表绘制。 color_coding_semantic_segmentation_classes - Google 表格

Stable Diffusion,新手入门,AI艺术创作,模型训练

多 ControlNet 合成

在 ControlNet 的设置下,可以调整可用 ControlNet 的数量。

Stable Diffusion,新手入门,AI艺术创作,模型训练

在多个 ControlNet 模式下,结果会将输入的信息合并生成图像:

Stable Diffusion,新手入门,AI艺术创作,模型训练

Stable Diffusion,新手入门,AI艺术创作,模型训练

模型
模型下载

模型能够有效地控制生成的画风和内容。 常用的模型网站有:

Civitai | Stable Diffusion models, embeddings, hypernetworks and more > Models - Hugging Face > SD - WebUI 资源站 > 元素法典 AI 模型收集站 - AI 绘图指南 wiki (aiguidebook.top) > AI 绘画模型博物馆 (subrecovery.top)

模型安装

下载模型后需要将之放置在指定的目录下,请注意,不同类型的模型应该拖放到不同的目录下。 模型的类型可以通过Stable Diffusion 法术解析检测。

Stable Diffusion,新手入门,AI艺术创作,模型训练

  • 大模型(Ckpt):放入 models\Stable-diffusion

Stable Diffusion,新手入门,AI艺术创作,模型训练

  • VAE 模型: 一些大模型需要配合 vae 使用,对应的 vae 同样放置在 models\Stable-diffusion 或 models\VAE 目录,然后在 webui 的设置栏目选择。

Stable Diffusion,新手入门,AI艺术创作,模型训练

Stable Diffusion,新手入门,AI艺术创作,模型训练

Stable Diffusion,新手入门,AI艺术创作,模型训练

  • Lora/LoHA/LoCon 模型:放入 extensions\sd-webui-additional-networks\models\lora,也可以在 models/Lora 目录

Stable Diffusion,新手入门,AI艺术创作,模型训练

Stable Diffusion,新手入门,AI艺术创作,模型训练

  • Embedding 模型:放入 embeddings 目录

Stable Diffusion,新手入门,AI艺术创作,模型训练

模型使用
  • Checkpoint(ckpt)模型 对效果影响最大的模型。在 webui 界面的左上角选择使用。

Stable Diffusion,新手入门,AI艺术创作,模型训练

一些模型会有触发词,即在提示词内输入相应的单词才会生效。

  • Lora 模型 / LoHA 模型 / LoCon 模型

对人物、姿势、物体表现较好的模型,在 ckpt 模型上附加使用。 在 webui 界面的 Additional Networks 下勾线 Enable 启用,然后在 Model 下选择模型,并可用 Weight 调整权重。权重越大,该 Lora 的影响也越大。 不建议权重过大(超过 1.2),否则很容易出现扭曲的结果。

Stable Diffusion,新手入门,AI艺术创作,模型训练

多个 lora 模型混合使用可以起到叠加效果,譬如一个控制面部的 lora 配合一个控制画风的 lora 就可以生成具有特定画风的特定人物。 因此可以使用多个专注于不同方面优化的 Lora,分别调整权重,结合出自己想要实现的效果。

LoHA 模型是一种 LORA 模型的改进。

LoCon 模型也一种 LORA 模型的改进,泛化能力更强。

  • Embedding

对人物、画风都有调整效果的模型。在提示词中加入对应的关键词即可。大部分 Embedding 模型的关键词与文件名相同,譬如一个名为为“SomeCharacter.pt”的模型,触发它的关键词检索“SomeCharacter”。

模型训练
环境搭建

以GitHub - bmaltais/kohya_ss为例,它提供了在 Windows 操作系统下的 GUI 训练面板。

如果需要在 Linux 上部署且需要 GUI,请参考GitHub - P2Enjoy/kohya_ss-docker: This is the tandem repository to exploit on linux the kohya_ss training webui converted to Linux. It uses the fork in the following link

Stable Diffusion,新手入门,AI艺术创作,模型训练

需要保证设备拥有 Python 3.10.6 及 git 环境。

  1. 首先,以管理员模式启动 Powershell,执行“Set-ExecutionPolicy Unrestricted”命令,并回答“A"。然后可以关闭该窗口。

Stable Diffusion,新手入门,AI艺术创作,模型训练

  1. 启动一个普通的 Powershell 窗口,在需要克隆该仓库的路径下,执行以下命令:

git clone https://github.com/bmaltais/kohya_ss.git
cd kohya_ss

python -m venv venv
.\venv\Scripts\activate

pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
pip install --use-pep517 --upgrade -r requirements.txt
pip install -U -I --no-deps https://github.com/C43H66N12O12S2/stable-diffusion-webui/releases/download/f/xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl

cp .\bitsandbytes_windows\*.dll .\venv\Lib\site-packages\bitsandbytes\
cp .\bitsandbytes_windows\cextension.py .\venv\Lib\site-packages\bitsandbytes\cextension.py
cp .\bitsandbytes_windows\main.py .\venv\Lib\site-packages\bitsandbytes\cuda_setup\main.py
accelerate config

在执行“accelerate config”后,它将询问一些设置选项。请按照以下选项依次选择:

This machine No distributed training NO NO NO all fp16

30 系、40 系显卡可选择安装 CUDNN:

.\venv\Scripts\activate
python .\tools\cudann_1.8_install.py

环境更新

如果需要更新仓库,请执行以下命令:

git pull
.\venv\Scripts\activate
pip install --use-pep517 --upgrade -r requirements.txt

界面启动

在 Powershell 中执行:

.\gui.ps1

双击 gui.bat 也可以。弹出以下界面后,直接访问 URL 即可。

Stable Diffusion,新手入门,AI艺术创作,模型训练

Stable Diffusion,新手入门,AI艺术创作,模型训练

训练流程

模型训练主要有三种结果:欠拟合,效果好,过拟合。 欠拟合:模型完全没有从数据集中学习到经验,对各种输入都得出差距很大的结果。 效果好:模型不仅对训练集中的输入有接近的结果,对不来自训练集中的输入也有接近的效果。 过拟合:模型只训练集中的输入有非常非常接近的结果,对不来自训练集中的输入给出差距很大的结果。

1. 准备训练集

图片尽可能高清,风格统一但内容形式多样(譬如动作多样、服装多样)。

样本数量可能影响到拟合结果。

样本量太少,模型可能欠拟合;样本量过大,模型可能过拟合。

譬如让一个人学习英语,只给他几条例句去看,他可能什么都没学会【欠拟合】;给了它几十亿条例句去看,他可能只会根据别人说的话查字典一样回话,如果字典里没有就完全不会说了【过拟合】

2. 图片裁剪

将训练集裁剪为多个尺寸相同的图片。可以在 SD webui 界面中自动裁剪,也可以手动裁切。

Stable Diffusion,新手入门,AI艺术创作,模型训练

一般使用的图片尺寸是 512*512,也可更换为其他尺寸,尺寸越大占用显存越高,但对细节的捕捉也会越好。

3. 图片打标
  • 关键词生成 可以在训练环境的页面下打标:

Stable Diffusion,新手入门,AI艺术创作,模型训练

也可以在 sd webui 的页面下打标:

比较这几种不同的打标器的效果,在同一输入下:

【本义:一个在铁匠铺里打铁的男铁匠】

打标器效果效果(中文翻译)
Stable Diffusion webui-训练-图像预处理-BLIPa man in a kitchen with a fire in the fireplace and a hammer in his hand and a hammer in his other hand一个男人在厨房里,壁炉里生着火,手里拿着锤子,另一只手拿着锤子
Stable Diffusion webui-训练-图像预处理-deepbooru1boy, black_gloves, gloves, indoors, male_focus, shirt, short_sleeves, solo一个男孩,黑色手套,手套,室内,男人特写,衬衫,短袖,单人
Stable Diffusion webui-Tagger(WD14)1boy, cooking, frying pan, male focus, solo, gloves, apron, fire, brown footwear, black gloves, boots, stove, kitchen, holding, facial hair, bandana, blue shirt, shirt一个男孩,烹饪,煎锅,男人特写,单人,手套,围裙,火,棕色鞋,黑色手套,靴子,炉子,厨房,握着,胡子,头巾,蓝色衬衫,衬衫
kohya webui-Utilities-Captioning-BLIP Captioninga man is working on a piece of metal一个男人正在加工一块金属
kohya webui-Utilities-Captioning-GIT Captioninga drawing of a blacksmith with a hammer and a glove on his hand.一幅画,画的是一个手上戴着手套、拿着锤子的铁匠。

打标对图片的描述越准越好,如果条件允许,尝试人工打标。

  • 关键词合并 在生成出的关键词中,我们需要把与训练目标强相关的关键词划为一个统一的特征表述。 以"1boy, cooking, frying pan, male focus, solo, gloves, apron, fire, brown footwear, black gloves, boots, stove, kitchen, holding, facial hair, bandana, blue shirt, shirt"为例,假如我们的训练对象就是一个男性大胡子,那么他必然始终携带着”男人、胡子“这两个要素,那么我们可以用一个词总结这个角色,例如用”Smith“替代”1boy,facial hair",整条句子将变为:

--
原关键词1boy, cooking, frying pan, male focus, solo, gloves, apron, fire, brown footwear, black gloves, boots, stove, kitchen, holding, facial hair, bandana, blue shirt, shirt
合并后Smith, cooking, frying pan, male focus, solo, gloves, apron, fire, brown footwear, black gloves, boots, stove, kitchen, holding, bandana, blue shirt, shirt

以此类推,我们需要为目标绑定什么要素,就将它从关键词中删去。而类似于动作、背景这种与对象绑定关系不紧密,在日后生成图期间需要改变的,就保留在关键词中。

  • 编组 一些具有同组关系的图片可以利用关键词引导 AI 去归纳它们。 譬如,我们训练的对象 Smith 有三张图,分别是全图、背景、前景,那么我可以如此处理:

Stable Diffusion,新手入门,AI艺术创作,模型训练

4. 正则化

训练集中的每张图片通常能被分解为两大部分:“训练目标+其他要素”,依然以 Smith 为例:

-完整内容训练目标其他要素

在铁匠铺里打铁的铁匠 SmithSmith铁匠铺、打铁、铁匠

其中,”铁匠铺、打铁、铁匠“都是模型中已有的内容,称为“先验知识”。我们需要将这部分知识为 AI 指明,省去重新学习这部分内容的时间;也能引导 AI 明确学习的目标,让模型具有更好的泛化性。

正则化通过降低模型的复杂性提高泛化能力。模型越复杂,模型的泛化能力越差,要达到相同的泛化能力,越复杂的模型需要的样本数量就越多,为了提高模型的泛化能力,需要正则化来限制模型复杂度。

正则化的标签需要与训练集中的 Class 相对应,图片数量也要一致。正则化不是必须的,可以根据训练集的情况和训练目的的不同来调整。同一张图片不允许在训练集和正则化中同时出现。

5. 文件路径组织

在训练前,我们需要用特定的方式组织文件路径: 譬如,训练目标是一群女孩,其中有一位名为 sls 的女孩好一位名为 cpc 的女孩,那么文件路径应该为:

●train_girls ----○10_sls 1girl ----○10_cpc 1girl
●reg_girls ----○1_1girl

其中,train_girls 目录下放置的是训练集,命名规则是“训练次数_<标识符> <类别>”,如“10_sls 1girl”表示“名为 sls 的对象,她是一个女孩(类别),这个文件夹下的训练集每个训练 10 次”。

reg_girls 目录下放置的是正则化内容。命名规则是“训练次数_<类别>”,如“1_1girl“表示”文件夹下的图片都是一个女孩,不重复使用数据“。*需要日后补充

6. 训练参数

在 kohya webui 界面训练时,ckpt 与 lora 训练方法类似。

a. 底模

Stable Diffusion,新手入门,AI艺术创作,模型训练

它表明我们此次训练将以哪个模型为基础进行训练。 这个模型需要根据自己的需求选择。如果很明确自己的目标是属于某一大类下的分支,那么可以用接近这一大类的模型进行训练。譬如想训练一个二次元角色,那么可以使用二次元的底模(如 NovelAI)进行训练。如果自己的像训练的目标需要比较好的泛化性,可以使用 sd 模型,因为它包含的人物、物品、风格最多。 如果模型为 sd2.0,则需要勾选 v2 和 v_parameterization

b. 最大分辨率 Max resolution

Training parameters 下的 Max Resolution 用于指定当前输入训练集图片的分辨率,请与文件夹内的保持一致。如果尺寸不一会被裁切。

img

c. Epoch

Epoch 是指一次将训练集中的所有样本训练一次(即对每个样本完成一次正向传播与一次反向传播)的过程。有时,由于一个训练样本过于庞大,它会被分成多个小块分批学习,每个小块就叫 batch。

在深度学习中,程序通过不断地将数据集在神经网络中往复传递来更新网络中的权重,以此建立对目标的拟合关系,因此只有反复地迭代才能增强数据集的拟合度。随着 epoch 的增加,模型将从欠拟合(右一,表示即便是来自于数据集中的输入,模型也很难达到它应该有的结果,类似于“只做题库里的题都做不对的差生”)变为过拟合(左一,表示模型对于来自于数据集中的输入,总能精确地达到对应的对结果,但是如果输入一旦有些许偏差,比如输入一些不是训练集中的输入,那结果就会很差,类似于“只会做题库里的题的书呆子”)。 我们希望能达到中间的效果,即对训练集输出相对准确的结果,又对不在训练集里的输入也有较好的表现。这种特征就叫泛化

Stable Diffusion,新手入门,AI艺术创作,模型训练

因此,我们需要不少于一个 epoch 才能建立起较好的拟合关系,当然也不能太多。对于不同的数据集,使用的 epoch 都可能有所不同。

d. Batch size

batch size 表示训练时的批量大小,也就是一次训练中选取的样本数量。 这个参数对性能有一定要求,如果性能足够,增加 batch size 在理论上会提高模型的准确性。如果数据集样本量较小,Batch Size 可以等于样本数量,即把所有数据集一起输入网络进行训练,这样做的效果也很好;但是如果样本量较大,这肯定让设备吃不消,因此需要减小 Batch Size。但是,如果 Batch Size 太小,那么意味着在一个 Epoch 中迭代的次数也会减小,训练时权重的调整速度变慢,为了抵消这种影响,还得提高 epoch 才能有更好的效果。所以 Batch Size 与 Epoch 参数二者是相辅相成的,他们二者的关系就好比一次刷多少题和总共刷多少次题。 合适的 batch size 应该让 GPU 正好满载运行。

e. Save every N epochs

每 N 个 Epoch 保存一次

f. 学习率 Learning Rate
Stable Diffusion,新手入门,AI艺术创作,模型训练

学习率指的是一次迭代(即输入一个样本对它学习,并用此次学习的经验调整神经网络)的步长。这个值越大,表明一次学习对模型的影响越大。为了让学习循序渐进,学习率不应该太高,我们需要 AI 在训练中反复总结一点点经验,最后累积为完整的学习成果。 合理的学习率会让学习过程收敛,Loss 达到足够低。

学习率太低,容易出现局部最优解,类似于“一个开车的 AI 稀里糊涂地开完全程,车技很菜”;学习率太高,容易使得模型不收敛,找不到解,类似于“一个开车的 AI 完全不会开车,只会原地打圈瞎操作”。

g. 学习率调度器 Learning Rate Scheduler

Stable Diffusion,新手入门,AI艺术创作,模型训练

学习率调度器是一种用于动态调整学习率的技术,它可以在训练过程中根据模型的表现自动调整学习率,以提高模型的训练效果和泛化能力。 通常,学习率在训练开始时设置为比较高的值,允许 AI“在一次训练中学得更多更快”。随着训练的进行,学习率会降低,逐步收敛到最优。在训练过程中降低学习率也称为退火衰减

  • adafactor:自适应学习率。

  • constant :恒定,学习率不变。

  • constant_with_warmup:恒定预热。学习率在开始会增大一点,然后退回原学习率不变。

  • Cosine:使用余弦函数来调整学习率,使其在训练过程中逐渐降低。常被称为余弦退火。

  • cosine_with_restarts:余弦退火重启。在 consine 的基础上每过几个周期将进行一次重启,该值在选择后可以设定。

  • linear:线性。学习率线性下降。

  • Polynomial:使用多项式函数来调整学习率。

h.学习率预热比例 LR warmup

刚开始训练时模型的权重是随机初始化的,如果此时选择一个较大的学习率,可能会带来模型的不稳定。 学习率预热就是在刚开始训练的时候先使用一个较小的学习率,先训练一段时间,等模型稳定时再修改为预先设置的学习率进行训练。

例如,假设我们在训练神经网络时设置了一个学习率为 0.1,预热比例为 0.1。则在训练的前 10% 的迭代次数中,我们会逐渐将学习率从 0.01 增加到 0.1,然后在剩余的训练迭代次数中使用设定的学习率 0.1。

i. 优化器 Optimizer

在训练神经网络时,我们需要在反向传播中逐步更新模型的权重参数。优化器的作用就是根据当前模型计算结果与目标的偏差,不断引导模型调整权重,使得偏差不断逼近最小。Adafactor 和 Lion 是推荐使用的优化器。

  • Adam:一种常用的梯度下降算法,被广泛应用于神经网络模型的优化中。它结合了动量梯度下降和自适应学习率方法的优点,既可以加快收敛速度,又可以避免学习率调整不当导致的振荡和陷入局部最优解。并且对于不同的参数有不同的学习率,更加适用于高维度的参数空间。

  • AdamW:对 Adam 算法的改进方案,对惩罚项参数进行控制,能更好地控制模型的复杂度,防止模型过拟合,提高泛化性能。

  • AdamW8bit:8bit 模式的 AdamW,能降低显存占用,略微加快训练速度。

  • Adafactor:自适应优化器,对 Adam 算法的改进方案,降低了显存占用。参考学习率为 0.005 1 。

  • DAdaptation2:自适应优化器,比梯度下降(SGD)方法更加稳定有效、使用时请将学习率设置为 1。

  • Lion3:自适应优化器,节省更多显存、速度更快,与 AdamW 和 Adafactor 相比有 15%左右的加速。参考学习率为 0.001。

  • SGDNesterov:一种常用的优化算法,基于梯度下降(SGD)方法进行优化,通过引入动量的概念加速收敛速度。

  • SGDNesterov8bit:8bit 模式的 SGDNesterov,能降低显存占用,略微加快训练速度。

j. Text Encoder 与 Unet

img

机器不能直接识别人类的语言,Text Encoder 是一种用于将文本数据转换为机器可读形式的模型或算法。对于输入的一串提示词,程序会将它们分解为一个个标记(Token)输入给 Text Encoder(一个 Token 通常代表着一个特征),这样一句话就能被转为一个向量为机器所识别 4

Unet 是一种用于图像分割的深度学习模型,它的作用是将图像分割为多个不同的构成部分。经过训练后,它可以来填充图像中缺失或损坏的部分,或者对灰度草图进行着色。 5

我们可以为它们设置不同的学习率,分别对应了“识别文字描述”和“识别图片”的能力。

在原版 Dreambooth 训练中,我们只能让 AI 学习 UNET 模型,XavierXiao 改进添加了额外训练 Text Encoder 6 ,在本文使用的仓库中就沿用了这种改进。

k. Network Rank(Dimension)

表示神经网络的维度,维度越大,模型的表达能力就越强。如果训练 lora,该值不要超过 64;如果训练 loha,该值不要超过 32;如果训练 locon,该值不要超过 12 参考 ,但还是要根据具体的训练目标来定,如果目标比较简单,就完全不需要太高的 Rank。

在神经网络中,每一层都由许多个神经元节点构成,它们纵横交错构成了一个 N 维空间。维度越大,代表模型中就越多的神经元节点可以处理各种要素。——当然,这也意味着模型的训练难度就越大,也可能变得更容易过拟合,它可能需要更多的、更准确的数据集,更大的迭代次数。

l. Network Alpha

对模型过拟合的惩罚权重。它表示对模型在训练时出现完全拟合(即输出结果与样本一致)时的惩罚的权重,适当提高它可以增加模型的泛化能力(当然也不能太高)。目前经验认为设置为 alpha 设置在 1 以下效果更好 参考。

举一个通俗的例子,一个学生在抄学霸的作业,为了不与学霸的结果完全相同,他需要对每个答案做一些小小的改动。对老师而言,一个完全照抄答案的学生约等于一个只会抄不会想的学生,而能稍作修改的学生说明还有对题目思考理解的能力。所以我们要稍微地“惩罚”那些只会照抄的学生,引导学生自己思考。因此这个值不能太低(完全不惩罚照抄),也不能太高(太大的惩罚让学渣完全不能从学霸的答案里获得参考)。

m. Caption Dropout

Stable Diffusion,新手入门,AI艺术创作,模型训练

Dropout 是在深度学习中一种防止过拟合的技术,在训练中,可能模型会反复计算某些节点,随着训练的进行,这可能导致错误的路径依赖,即模型会变得总是依赖这些节点解决问题,就像某个学生碰巧刷到了几道解题方法相似的题目,就误认为所有的题目都要用这种解题方法。Dropout 的解决方法是随机关闭某些神经元,迫使模型在训练时减少神经元之间的依赖关系,从而让神经网络的泛化能力更强。当然,在实际使用模型的时候,Dropout 是关闭的。

在训练中,我们也可以随机将一些训练集的标记(Caption)剔除。在 Drop out caption every n epochs 中,我们可以指定每隔多少 epoch 就剔除一些标记;在 Rate of caption dropout 中,我们可以指定剔除几成的标记。

n. Noise Offset

在原版的 Stable Diffusion 中,模型得出的图片在亮度上总是很平均,亮的场景不够亮,暗的场景不够暗,而且用传统的训练方法也无法让它学会避免这个问题 7 。一般输入 0.1。

通过 Noise Offset,我们可以让图像在亮和暗上的表现更加明显(右图)。

o.xformers

Xformers 是一个用于加快图像生成速度并减少显存占用的库。

p. Gradient checkpointing

Stable Diffusion,新手入门,AI艺术创作,模型训练

梯度检查点(Gradient checkpointing)是一种在训练模型时减少显存占用的方法,但是会增加训练时长。 它避免在训练期间一次计算所有权重,而是逐步计算权重,从而减少训练所需的显存量。关闭它不会影响模型的准确性,但打开它后我们可以使用更大的 Batch Size。

虽然单次训练的时长可能增加了我们单次训练的时长,但如果我们增大了 Batch Size,总的学习时间实际上可能会更快。

q. shuffle caption
Stable Diffusion,新手入门,AI艺术创作,模型训练

打开它,可以让训练时训练集的标签被打乱(Shuffle,洗牌)。如输入"铁匠铺,工人,打铁",可能被转换为”铁匠铺,打铁,工人“或”工人,铁匠铺,打铁“。

这种操作通常用于增强模型对于不同文本顺序的鲁棒性,从而提高模型的泛化能力。打乱操作可以多次进行,从而更大程度地增加数据的随机性。

Shuffle caption 可以在多种相似的图像中使用。如果差异较大,就不要使用了。

在每一个 epoch 中,输入的前 4 个 token 会被当做触发词,此外的 token 会被当做排除集。ai 会将排除集中的元素在素材中删除后,把素材的剩余部分学进前 4 个 token 中。因此,如果不开启 keep tokens,在进行打乱后,打标中的每一个 tag 在足够多的 epoch 后,都将成为触发词。

r. Token文章来源地址https://www.toymoban.com/news/detail-852961.html

到了这里,关于Stable Diffusion 新手入门手册的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Stable Diffusion入门修炼手册

    作为新入门的新手,通常安装完Stable Diffusion之后,一打开界面,在文生图输入 girl 或者 dog ,结果出来的画面比较糟糕,看起来像素很低,画面不清晰,人物也不怎么美,等等其他问题,总之就觉得自己生成的图片怎么跟别人差距那么大?是不是大家也曾经这样过来过? 今天

    2024年02月12日
    浏览(46)
  • AI 绘画 | Stable Diffusion 艺术字与光影效果

    这篇文章教会你如何使用Stable Diffusion WEB UI扩展插件ControlNet控制光影模型实现艺术字与图片的光影效果。艺术字主要原理是用到了Depth (深度)算法和模型,光影效果是用到了control_v1p_sd15_brightness(亮度)和control_v1p_sd15_illumination(光亮)两个模型其中之一就行。 借助一些文本

    2024年02月04日
    浏览(53)
  • 揭秘Stable Diffusion 3:当AI遇上艺术,创意无界限!

    博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接 : 🔗 精选专栏 : 《面试题大全》 — 面试准备的宝典! 《IDEA开发秘籍》 — 提升你的IDEA技能! 《100天精通鸿蒙》 — 从Web/安卓到鸿蒙大师! 《100天精通Golang(基础入门篇)》 — 踏入

    2024年03月23日
    浏览(42)
  • AI - stable-diffusion 艺术化二维码

    系列文章: 《AI - stable-diffusion(AI 绘画)的搭建与使用》 《AI - AI 绘画的精准控图(ControlNet)》 近日,AI 绘画(stable-diffusion)用来艺术化二维码算是比较火热的事了,这个 idea 是由国人用 Checkpoint + LoRA + QR Code ControlNet 组合实现出来的,下面是几张图片案例: 这是原作者的文章:

    2024年02月10日
    浏览(42)
  • Stable DIffusion 炫酷应用 | AI嵌入艺术字+光影光效

    目录  1 生成AI艺术字基本流程 1.1 生成黑白图 1.2 启用ControlNet 参数设置 1.3 选择大模型 写提示词 2 不同效果组合 2.1 更改提示词 2.2 更改ControlNet 2.2.1 更改模型或者预处理器 2.2.2 更改参数 3. 其他应用 3.1 AI光影字 本节需要用到ControlNet,可以查看之前博文 Stable Diffusion 系统教程

    2024年02月06日
    浏览(43)
  • AI 作画《Concept Art概念艺术》| 用stable diffusion生成

    前言 “Concept Art”是一个艺术门类,即所谓“概念艺术”、“概念设计”,也称为“初步设计”。一般常见于影视或游戏设计中,服务产品最初的视觉效果,是游戏或影片的核心工作内容之一。 下面让我们使用当前很火的扩散模型stable diffusion,生成一些概念艺术作品!看看

    2024年02月11日
    浏览(65)
  • 使用Stable Diffusion进行Ai+艺术设计(以智慧灯杆为例)

    Stable Diffusion 是一种以 CLIP ViT-L/14 文本编码器的(非池化)文本嵌入为条件的潜在扩散模型。 创建并激活一个合适的名为conda的环境: ldm 更新现有的虚拟环境: Stable Diffusion v1 指的是模型架构的特定配置,该架构使用下采样因子 8 自动编码器和 860M UNet 和 CLIP ViT-L/14 文本编码器

    2024年02月11日
    浏览(45)
  • 【AI作画】使用Stable Diffusion的艺术二维码完全生成攻略

    文中有彩蛋 随着人工智能技术的快速发展,特别是深度学习和生成模型的突破,AI作图已经成为许多领域的主要工具和方法之一。它不仅提高了创造力和效率,还改变了我们与图像、数据和媒体的交互方式。今天请跟随阿Q的脚步,一起来使用 Stable Diffusion 创作出属于我们自己

    2024年02月13日
    浏览(94)
  • MBTI+大模型=甜甜的恋爱?美国新年AI裁员潮;中国大模型人才分布图;20分钟览尽NLP百年;Transformer新手入门教程 | ShowMeAI日报

    日报周刊合集 | 🎡 生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! www.trueup.io/layoffs 补充一份背景:👆 上方链接是 TrueUp 网站关于科技行业裁员、招聘、股票等信息的汇总页面,其中「The Tech Layoff Tracker」 实时密切追踪着全球科技公司的裁员信息,覆盖大型科技公司

    2024年02月22日
    浏览(44)
  • 利用Stable diffusion Ai 制作艺术二维码超详细参数和教程

    大家有没有发现最近这段时间网上出现了各种各样的AI艺术二维码,这种二维码的出现,简直是对二维码的“颠覆式创新”,直接把传统的二维码提升了一个维度!作为设计师的我们怎么可以不会呢? 今天就教大家怎么制作这种超有艺术的二维码,硬是把二维码上升到了艺术

    2024年02月15日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包