在创建 AI 插图时,有时您想要反映非常小的版权角色或小众需求的构图。
这次,我将介绍如何使用扩展功能“sd-webui-train-tools”,它可以让您在 WebUI 上生成随心所欲训练的 LoRA。
无需调整图片大小或添加标签,只需拖放约10张图片即可轻松创建LoRA!
提前准备的东西
要使用扩展“sd-webui-train-tools”,需要做以下三个准备工作。
- 蟒蛇 3.10.6
- 提交“a9fed7c364061ae6efb37f797b6b522cb3cf7aa2”
- xformers 0.0.16 以外的任何版本
蟒蛇 3.10.6
对于 Python 3.10.6 以外的版本,存在一种模式,其中显示错误“Error loading script: train_tools.py”并且不启动。
另外,在Python3.10.9的情况下,虽然启动了,但不知为什么会发生CUDA out of memory错误,无法进行学习。
我们已收到来自具有大量 VRAM 的 RTX30xx 系列 GPU 用户的多份关于此错误的报告。
使用 6GB VRAM 几乎不可能进行 LoRA 学习,因此如果您使用超过 6GB 的 GPU 用完内存,这是值得怀疑的。
如果您使用的是 Google Colaboratory 版本的 WebUI,请参考下面的文章并将 Python 版本更改为 3.10.6。
提交“a9fed7”
简单的说,commit就是WebUI版本,但是如果不是“a9fed7c364061ae6efb37f797b6b522cb3cf7aa2”,很可能会出现各种错误,无法启动。
承诺截至 2023 年 3 月 14 日。WebUI从四月开始经历了几次大规模更新,所以我很确定它不会从最新版本开始。
对于 Google Colaboratory 版本,请参阅下面的文章。
对于本地版本,下面的文章展示了如何将 WebUI 提交降级为“ a9fed7c364061ae6efb37f797b6b522cb3cf7aa2” 。
xformers 0.0.16 以外的任何版本
这是我在评论区被告知的信息,但是好像xformers版本是0.0.16的话,即使创建了LoRA也学不会。
您可以通过下面文章中的方法更新xformers的版本,所以请将0.0.16更新到最新版本。
即使所有这些都对齐,也可能会发生错误。
我们已经收到很多报告,即使满足以上三点,但由于无法理解的错误而无法正常工作。
这个扩展功能最值得推荐的一点是易于设置,但下面介绍的“Kohya’s GUI”现在也可以很容易地设置。
所以,如果你尝试了一次但没有成功,我建议你不要坚持太久并转向“Kohya’s GUI”。
如何安装扩展“sd-webui-train-tools”
适用于 Google Colaboratory 版本
我们将使用以下方法介绍的“由 Akaibu 维护”笔记本介绍扩展“sd-webui-train-tools”。
如果您还没有看过,请先看一下。
让我们安装扩展“sd-webui-train-tools”。
在从 Google Drive 加载模型数据的单元格下方创建一个新单元格,并输入下面的代码。
#安装 LoRA 创建扩展
% cd /content/stable-diffusion-webui/extensions/
!git 克隆 https://github.com/liasece/sd-webui-train-tools/content/stable-diffusion-webui/extensions/sd-webui-train-tools
% cd /content/stable-diffusion-webui
启动WebUI,如果新增“Train Tools”选项卡,则引入成功。
对于本地版本
在“Extensions”→“Install from URL”的“URL for extension’s git repository”中输入以下URL,然后点击Install。
https://github.com/liasece/sd-webui-train-tools _ _
安装后重新启动 WebUI,您应该会看到“Train Tools”选项卡。
如何使用扩展“sd-webui-train-tools”
现在,让我们使用扩展名“sd-webui-train-tools”创建 LoRA。
首先准备10张左右的图片作为学习源。多了没关系,但是学习源图越多,创建LoRA的时间就越长。
至于学习源图像,似乎最好选择能以各种姿势和面部表情展示你想学习的角色全身特征的图像。不建议只学一种作文。
您不必担心图像大小,因为它会自动调整大小,但许多网站建议使用1024×1024 。
避免使用尺寸太小的图像。
准备好图像后,打开WebUI的“Train Tools”选项卡,点击“Create Project”,设置要创建的LoRA文件名。
最后,以“(set name).safetensors”格式创建一个LoRA文件。
单击创建版本并输入版本。在这里留下最初的v1就可以了。
如果每次更改学习源图像时都更新 v2 和 v3,则可以轻松管理版本。
将学习源图像拖放到“上传数据集”字段。
接下来是数据集设置。我将其设置如下图。
建议重复训练次数为 10-20。这个数字会影响创建 LoRA 所需的总步骤数,设置过高可能会导致过拟合,因此请保持适度。
预处理图像可以保留为默认设置 512×512。取消选中创建翻转副本。
接下来是与学习源图像的标签相关的设置。标签是描述学习源图像内容的多个词,例如使用初音未来的图像时,将“蓝头发”、“双马尾”等属性设置为标签。
这个作品要提前准备好,不过如果勾选use deepbooru for captions,它会自动打标签。
如果要使用其他插件生成的标签txt文件,上传带有图片的txt文件,将Existing Caption txt Action设置为prepend,取消勾选use deepbooru for captions。我觉得(验证中)
完成后单击更新数据集。
处理完数据集后,编辑后的训练源图像显示在左侧。
现在,让我们设置创建 LoRA 文件所需的学习。我有以下设置。
在Train base model中设置要用于学习的模型数据我觉得根据学习源图像的属性来决定就好了。(如果素材是动漫插画,模型也是动漫插画)
另外,在学习动漫插画的时候,模型数据“ ACertainModel ”好像也挺推荐的。
* 有些人推荐 Anything,有些人推荐 ChilloutMix。没有最佳解决方案,因此您必须进行大量试验和错误。
对于Clip skip,在使用动漫插图模型时建议使用 2。然而,在现实系统的情况下,似乎最好尝试 1 和 2 并采用结果更好的那个。
对于Save every n epochs,设置要保存多少个 epochs 为 LoRA。(重复次数)x(学习材料的数量)是一个epoch。就我个人而言,我认为每 5 个 epoch 保存一次就足够了。
增加批处理大小会提高 LoRA 文件生成速度,但 VRAM 使用(GPU 负载)似乎也会增加。现在,让我们使用默认设置 1。
Number of epochs设置训练的总 epoch 数。(重复次数)x(学习材料的数量)x(时期数)将是最终的步骤数。我设置了epochs的数量,让最终的步数暂时在1000到2000之间。注意,学习的次数越多,LoRA的质量不会越好。
Learning rate , Net dim , Alpha暂时用初值就OK了。
但是,我听说如果 Net dim 太高,图像往往会抖动。在这种情况下,您可能需要降低 Net dim(8、16、32、64 等)。
Alpha 应该是 Net dim 值的一半。
优化器类型有很多种,但我的印象是很多人使用 AdamW 或默认的 Lion。Optimizer 就像是一种让 AI 学习素材图像的方法。
fp16 的混合精度是可以的。
训练完成后生成所有检查点预览是一个函数,它将使用 LoRA 为生成 LoRA 的每个时期生成一个图像。我个人认为没有必要,所以我们取消勾选。
在查看LoRA的性能时,通过在WebUI上实际使用更容易理解。
完成设置后,单击“开始训练”。学习 LoRA 需要花费大量时间。
学习后,LoRA文件保存在“stable-diffusion-webui\outputs\train_tools\project\(set LoRA name)\versions\(set version name)\trains”。
右键单击将其保存到您的 PC 并像往常一样在 WebUI 中使用它。
自己制作LoRA的注意事项
对 VRAM 小于 6GB 的 GPU 严格
学习LoRA推荐使用显存8GB以上的GPU,最好是12GB以上的GPU(RTX3060等)。
但是,如果你有6GB的VRAM(比如GTX1660Ti),学习速度很慢,但是你可以勉强创建LoRA。
1000步需要1个多小时,不推荐。我想这会很有压力。
如果您的 GPU 规格较低,我认为您应该学习使用 Google Colaboratory。
使用 Colab 学习 R18 图像是有风险的
使用Google Colaboratory学习LoRA时,使用R18图像(包括2D图像)作为素材可能会导致账号被封禁。
不能100%确定你会被禁止访问,但是一旦被禁止访问,可能就无法恢复,所以要慎重选择素材图片。
如果你想使用 R18 图像制作 LoRA,但你只有低规格的 GPU,你别无选择,只能考虑购买新的 GPU。
可以创建您自己的 LoRA 的推荐工具顺序
[第一名] Kohya 的 GUI
截至 2023 年 5 月,它是在本地环境中创建 LoRA 的最受推荐的工具。
它用途广泛,易于设置,并提供本地和 Colab 版本。
如何安装和使用本地版本在下面的文章中有详细介绍。
如果您想使用 Google Colaboratory 版本,下面的视频系列非常有帮助。
每次更新笔记本版本,你都会发布一个新的视频。
[第二名] LoRA 简易训练脚本
这也是一个允许您在本地环境中生成自己的 LoRA 的工具。我认为 Colab 版本可能不存在。
下面提供了有关如何安装的详细信息。
如果用得好,可以创建具有“Kohya’s GUI”质量的LoRA,但弹出设置很困难,每次版本更新时设置方法都会改变,因此它是高级用户的工具。
[第3名] sd-webui-train-tools
不幸的是,不推荐使用本文介绍的扩展程序“sd-webui-train-tools”。
从这篇文章的评论长度可以看出,错误太多了。入门难,不推荐。
不过它的优点是不需要引入WebUI以外的其他工具,也不会对存储造成压力,而且设置方法是所有工具中最简单的。
相反,可以说自由度低,因为可以设置的项目很少。
[资料索取]成功生成LoRA示例
如果您使用此扩展创建了 LoRA 并且能够创建您满意的东西,请在评论中告诉我们!
即使像“好东西!”这样的简单评论也可以,所以请告诉我们您的想法!我们等你!
如果你告诉我重复次数、素材图片次数、epoch次数,我会喜极而泣!
参考视频1
使用“sd-webui-train-tools”,用 10 个材料图像、15 个迭代和 10 个 epoch 总共 1500 个步骤创建了 LoRA,具有相当高的可重复性。
看上面的视频,LoRA的效果出现在6个epochs(900步)左右。
上次我尝试用10个材料,15次重复,5个epochs,750步,能观察到LoRA的效果,所以可能还是需要1000步。
不知道为什么,在应用LoRA时,线条变得粗糙,所以我放弃了(泪)
概括
以上是“Stable Diffusion”,以及如何使用扩展功能“sd-webui-train-tools”,它可以让你在WebUI上生成任意训练的LoRA。
LoRA的创作还是很深的,内容值得研究,所以我一找到一些推荐的设置和方法就会写一篇文章!
如果有人能够通过此扩展做出 100% 满意的 LoRA,请在评论中告诉我!
感谢您阅读到这里。