目前演习紧张分为本地演习和在线演习。
在线演习可以探求大型的开源社区,如C站、liblib等,这些社区都供应虚拟货币/会员购买兑换在线演习的操持。
本地演习的话看利用的工具,目前comfyui和Kohya_ss都支持本地演习。
comfyui可以选用Lora-Training-in-Comfy 节点,但要把稳的是WD1.4反推可能涌现缺点。
而Kohya_ss则须要单独安装GUI界面,安装的方法在这里:Kohya_ss安装失落败总结及办理办法。

安装完毕,演习大概分为三个方面:

网络数据集设置演习查看演习结果网络数据集

跟之前SD1.5、SD2.0比较,SDXL的广泛性可以在少网络图的情形下得到不错的效果,但还是要担保数据集的稳定性。
所谓稳定性即尽可能地网络到相同风格/人物的在不同场景、不同主体下的表现图片。
如果网络的样本比较固定,那么将大大影响到演习的结果,会得到一个适用性比较窄的Lora。

举例:如果想演习人物,但只有人物的大头贴,并且只有短发,而且角度比较固定,那么很可能在变更提示词想让人物换衣服/发型/姿势,涌现崩坏。

实战Lycoris演习演习日式饮料插画风格Lycoris

数据图片集须要比较高清,如果利用SD1.5、SD2.0底模,那么在512x512之上、768x768以下(更高也可以)是比较稳妥的。
SDXL的底模则须要1024x1024起。
如果不知足条件,那最好是利用工具放大或裁剪。

图片网络好后,该当以“XX.1”、“XX.2”进行区分——XX是什么下文会提到。

图片集的示例,.npz格式忽略

现在,网络好图片之后进入了演习环节最操心的一步:打标。

WD14Tagger打标签

WD14Tagger是个文本标记器,根据我粗浅的认知,文生图很大程度是文本解析成打算机措辞能被打算机读懂之后再进行一系列繁芜的打算投射到卷积层后经由编码解码降噪等步骤,输出图形。
因此在演习中,我们就必须要把我们网络到的图片进行文本的标记,才能进行下一步:使打算机能够解析、识别,继而开始深度学习。

WD14Tagger有在线网址,可以在这个网址上利用:https://huggingface.co/spaces/SmilingWolf/wd-tagger ,但不好的一点在于,没法导出文本。
因此推举大家利用comfyui或者SD-webui的插件,可以在设置时把导出目录路径填上,完成反推之后会得到和图片逐一对应的.txt文本(如上文图示)

这个插件的好处在于,AI与非AI天生的图片都可以进行反推,从而得出画面大部分元素。

人工梳理标签

上一步,我们已经通过打标签得到了每一张图片的大体特色了,但仔细不雅观察会创造,有不少的提示词是不太符合特色的。

画红圈的显然在图片中并没有这样的特色

因此,我们须要一张张进行比拟和梳理,只管即便让每一张图片的文本贴合到图片的本身。
可以利用“BooruDatasetTagManager”工具进行批量的处理。

BooruDatasetTagManager界面,可以批量导入

【图片标签】:选中的图片会导入上一步里得到的.txt文本,排序越靠前,机器学习的侧重越大,以是可以根据须要进行适当的排序调度,选中某个单词-拖动-即可排序

【所有标签】:指的是导入的文件夹内,所有的.txt文本里扫出来的标签,同样的,排序越靠前侧重越大。
如果须要批量增加某个标签,可以点击最右侧的“+”符号,可以增加新标签到所有文本里;删减则点击某个标签,点击最右侧的“X”

中间的“+”、“x”用来掌握单张图片的增/删标签,最右侧的“+”、“x”用来掌握全部图片共有的增/删标签

设置演习目录

完成了前置的事情,到了这一步就已经是准备的尾声了。

设置文件夹有个原则:须要将图片(image)、日志(log)、模型(model)、和正则化图片(reg)分别设置成1个单独的文件夹,最好是在桌面设置大文件夹为:trainingData,然后再放置4个子文件夹

这是二级目录

还记得我们网络数据集得到的图片和已经整理好的反推标签吗?这时候须要在image文件夹里再新增一个文件夹。
而这个文件夹的命名须要把稳,是这样的格式:AAA(数字)_BBB(无规律的三位数)_你想要输出的模型名字或大略的命名

名称详解:

数字代表你须要演习每一张图的步数。
这里有个细节:根本的演习以1500步起,少于1500步可能得不出很好的演习结果。
那么,这个数字=1500/你网络的数据集张数。
如:你网络了10张图片,那么这个数字就该当是:1500/10=150。
事实上,文件夹的数字该当大于1500/演习数据集张数,这样会加大每张图片的演习步数,但过大会涌现过拟合的情形,因此适当放大一些即可。

字母实在是授予了数据集一个独特的标识符。
如,想要演习某个小狗名叫Bobby,但是这个物体标签除了是Bobby以外,还须要给数据集一个标识符,让机器学习中能够明确:Bobby+独特标识符=数据集里涌现的小狗。

字母的赋值建议利用非标准字符,在Kohya_ss里有提及一些参考是“shs sts scs cpc coc cic msm usu ici lvl cic dii muk ori hru rik koo yos wny”等。

末了的命名可以随意,也可以起正式的输出名称。

【log】是放置演习日志的目录,设置好了不须要再动。
【model】则是在演习过程中产生的自设的特定步数/轮数的模型、演习结束的模型的目录,也不须要动。
【reg】正则化图像大略理解便是增加图像的样本,如,想要演习某个小狗名叫Bobby,但Bobby的数据集【image】里只有Bobby趴着的图片,如果不该用正则化,则可能涌现机器学习之后,演习出来的Lora无论提示是在奔跑、静坐、拟人化,Bobby都只会趴着。
因此在演习人/物时,最好增加不同的正则化样本:如大头照为【image】主图,正则化则增加全身照、不同的姿势、不同衣服等,增加Lora的泛用性。

演习设置

启动Kohya_ss,打开网址后根据以下图片示例填写/选择

第一步设置

图片细节须要关注

【pretrained model】:演习底模,选择了什么底模便是以这个为根本进行。
值得把稳的是,如果选择runaway的,会在线拉未下载的模型,不建议。
可以利用本地的模型,但必须【将底模全部迁移到Kohya_ss/model】的文件夹里,否则启动后会失落败!

如果选择了SDXL底模,那么会多出一个选择框,必须将SDXL的勾选框选上。

【Save precision】:选择fp16即可,精度并没有显著地降落,选择fp16可以有效节省内存…而且演习韶光会缩短一些。

【image folder】:选择已经创建好的数据集的路径,要把稳,不要到三级路径:如Data/image/150XXXXXX,启动同样会失落败,只须要选择到:Data/image即可。

如图,将所有文件夹添加进去

【Dataset preparation】:新手可以跳过,高手可以添加已经预演习过的dreambooth或者想要领悟的模型

paramenters设置示意图

【Lora type】:选择要天生的模型的类型,iA3用来演习风格类的Lora效果较好,色彩非常通亮

【Train batch size】:指的是一次处理多少张图片,如果演习集图片并没有太多,那么保持默认为1就行

【epoch】:演习轮数。
学习步数结束=1轮,自由设置,与图片数据集里的设置干系,即,数据集的数字张数=1轮演习(n步),那么epoch则会重复几遍(nepoch 步数)

【Max train steps】:默认为0,如果设置了则会根据设置的数值,到达步数之后停滞连续学习。
如:设置了Max train steps=1600,实际上你的数据集是200x30(张图片),那么每一轮则在1600步后停滞学习,实际上每一轮该当是200x30=6000步

【Save every N epochs】:设置后则在设置的轮数结束后保存1个模型到【model】文件夹内

【caption file extension】:如果有进行了标签的分类,那么选caption或者.txt,如果没有则选.txt,机器将会根据数据集里的txt文件进行学习,如果没有则选择空

【LR Scheduler】:学习率调度器,自由选择,选择落后修率会进行相对应的调节

【optimizer】:优化器,同样自由选择,如果有兴趣理解优化器,可以自行理解。
不同优化器对付机器学习有截然不同的结果

【LR scheduler extra arguments】:调节机器学习率的补充,如不填则利用默认的

【LR warmup (% of total steps)】:可以指定预热学习器的步数,从而逐渐改变学习率,设置10%即可

示例设置

【Sample every n steps】:每N步天生1个示例图,保持默认0则是不天生示例图,这一步的设置可以有效的不雅观测到演习的过程有没有涌现意外情形,可以随时调节

【Sample every n epochs】:每N轮天生1个示例图,同上,唯一不同的是,这里的设置是每轮结束后才天生

【Sample prompts】:示例提示词,根据格式进行填写,如果有设置上述的示例图的话,将会根据相同的示例提示词进行输出图像,图像将会被放置在:Data/model/Sample里——即你已经设置好的4个文件夹中的【model】文件夹,会自动天生Sample文件夹放置示例图片

演习效果验收

常规的会利用X/Y/Z图表进行,但由于本次我的SD-addition-net涌现了些问题,暂时无法展示X/Y/Z图表比拟。
但单独利用,相同的提示词能够看出利用了演习好的Lora之后的效果。

SDXL,无Lora效果,介于拍照和漫画风格

SDXL,无Lora效果,介于拍照和漫画风格

我演习出来的夏日饮料风格,偏水彩漫画风格

切换提示词的效果,同样利用了我演习出来的Lora

至此,一个夏日风格的Lora就演习出来了,效果相对稳定,在comfyui上的表现力更强一些,以上是在Stable diffusion webui Forge上的生图。

我的演习集:15张图,无正则化图片,2轮测试。