【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

当前位置:首页>设计文章>AIGC>【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

从接触SD到现在,相信大家一定使用过各种各样的lora,包括人物的、建筑的、画风的等等,那么你有没有想过炼制一款属于自己的lora模型呢。

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

我们先来了解一下炼丹的基础概念,它的关键原理就是——等价交换法则!

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

不好意思,说错了。

重新来,Lora全称Low-Rank Adaptation Models,中文翻译为低阶自适应模型。它的作用在于影响和微调画面。通过lora的帮助,可以再现人物或物品的特征。

大模型的训练通常是非常复杂且需要很高的电脑配置的,LoRA采用的方式就是在原有的模型中插入新的数据处理层,这样就避免了修改原有模型的参数。LORA模型训练,其实就是用一些特定特征来替换大模型中的对应元素,比如一个固定的人物相貌、特定的服装或者是特定的风格,这样就可以生成不同于底模的图片。

所以,lora训练是比较轻量化的,需要的显存也少了很多,硬件门槛显存达到6G就可以开启训练了。

我们今天要使用的是B站UP主“朱尼酱”的赛博丹炉,他的这款丹炉,界面更加友好、美观,适合新手入门。

废话不多说,我们就正式开始吧。

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
#丹炉基础部署
首先我们在云盘中下载这个压缩包,然后解压到本地磁盘中。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
最好是直接放在某个盘的根目录下,路径中不要带有中文。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
然后找到E:\cybertronfurnace1.4\cfurnace_ui路径下的Cybertron Furnace.exe文件,双击启动。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

等待一段时间,我们的赛博丹炉就正式启动了,画面非常的炫酷,有一种未来科技的感觉。

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
# 参数理解
我们点击“开启炼丹炉”,正式进入到丹炉内部。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
打开素材库可以看到5张tifa的图片图片,这是丹炉中自带的,我们先用这个来炼制第一炉丹吧。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
我们可以选择一个任意的基础模型,然后给我们想要炼制的lora取一个名字,即召唤词。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
正常来说,这个丹炉已经帮我们按照类型设定好了参数,所以你只需要点击“人物”选项卡就可以开始训练了。但是,我们这里最好还是要了解一下相关的参数,所以我们选择“自定义参数”。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
点击确定,我们就进入了一个参数设置的面板。接下来,我们就来了解一下,这些参数的具体含义。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

1

首先是学习步数,指的是AI对我们每一张图片的学习次数。根据我们的训练内容,二次元图片的repeat一般在10-15,写实人物图片的repeat一般在30-50,真实世界的一些景观场景可能要达到100。repeat值越高,ai就能更好的读懂我们的图片,理论上讲图片的精细度越高,学习步数就要越高。

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

循环次数:AI将我们的所有图片按照学习步数学习一轮就是一次循环,那循环次数就是将这个过程重复多少遍。一般数值在10-20之间,次数并不是越多越好,因为学多了就会知识固化,变成一个书呆子,画什么都和我们的样图一样,我们称之为过拟合。每一次循环我们都会得到一个炼丹结果,所以epoch为10的话,我们就训练完之后就会得到10个丹。

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

我们总的训练步数,就是:图片张数*学习步数*循环次数=训练步数。

即:5*50*10=2500步


2
效率设置,主要是控制我们电脑的一个训练速度。可以保持默认值,也可以根据我们电脑的显存进行微调,但是要避免显存过载。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
并行数量:代表了AI在同一时间学习多少张图片。数值越大,训练速度越快,内存占用越大,但收敛得慢。反之,数值越小,训练速度越慢,内存占用越小,但收敛得快。以512*512的图片为例,显存小于等于6g,batch size就老老实实地设置为1就行了;如果显存为12g以上的话,batch size就可以设置为4或者6。
这里提到一个收敛的概念,就是说你最后生成的图片,和原图越像,就说明收敛得越好。训练速度越快的话,就像一个人在快速地翻书,虽然很快翻完了,但是未必能全记得住,所以并不是训练速度越快越好。在一般情况下,我们增加并行数量,同时也会增加一些循环次数,让AI多看几遍书。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

3

质量设置主要是用来影响产出LORA的一个最终质量,当然最终lora的好坏还需要通过XYZ去测试和看实际的loss值。

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

学习率指的是AI学习图片时的效率,学习率太高会出现过拟合,图片和素材太相似;学习率低会出现不拟合,图片和素材没关系。

1e-4是一种程序里的数学表达,实际上就是1除以10的4次方,即:

1e-4=1/10000=0.0001

1e-5=1/100000=0.00001

这三个数值呢,一般情况下我们保持默认就可以,如果想要调整的话,点击数值旁边的加减号就可以了,很直观。

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

网格维度network dim决定了出图的精细度,就像细分网格一样。数值越高,会有助于AI学会更多的细节。同样,也不是数值越大越好,数值越大,学习越慢,训练时间越长,容易过拟合。

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

DIM为32时,输出的文件一般为40MB+;

DIM为64时,输出的文件一般为70MB+;

DIM为128时,输出的文件一般为140MB+;

场景 DIM 备注
二次元 32 画风越复杂,dim越高
人物 32-128 常见主流lora大部分使用128
实物、风景 ≥128 根据训练对象复杂度提升dim

4

样图设置主要是用来控制在训练过程中的样图显示,这样我们能实时观测到训练过程中的效果。

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

sample every n steps为50,就代表着每50步生成一张样图。

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
prompts提示词可以预设一些效果,让样图进行显示,也可以自定义。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
#素材处理
设置好参数之后,我们来训练集当中,正常情况下,我们要炼制lora的话,大概需要20-30张质量比较高的图片。这边虽然只有5张,不过我们可以先用起来。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
先设置分辨率,常见的就是512*512,或者512*768。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
这里有一些裁剪模式,可以帮我们自动处理图片。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
设置好之后,我们点击预处理。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
等待预处理完成,就可以看到图片被处理成了脸部和上半身的聚焦图片。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

进入TAG编辑当中,可以看到每张图片都被自动加上了标签,可以说是非常方便了。

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
纯英文的tag看起来还是有点费劲的,我们可以打开这个翻译设置来开启双语tag。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
我们进入百度翻译开放平台,注册一个账号,点击“通用文本翻译”、
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

点击“免费体验通用文本翻译API”。

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
接下来会有注册为开发者的选项,大家可以注册个人开发者,按照流程填写即可。
注册好之后,进入开发者信息,就可以看到AppID和密钥了。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
将信息填入,开启双语TAG,可以看到下面的tag就变成双语的了。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
接下来就是检查每幅图的tag,看看描述词是否和人物匹配,删除不正确的,新增一些你需要的。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
检查完没有问题之后,就可以点击“开始训练”,炼制我们的第一枚丹了。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

# 炼丹

接下来就可以看到训练过程了,每训练50步,右下角就会生成一张图,方便查看目前的效果。
这个图会随着训练的进行越来越像,静下心慢慢等待吧。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
训练完毕之后,这里会有一个loss值,这代表着一个深度学习的效果,数值在0.07-0.09之间是最优的,如果数值太大说明学习效果不好。
我们这个丹是0.0734,所以目前来看还是不错的。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
然后我们点击这个模型文件夹,就可以看到我们的炼丹成果了。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
一共有10枚丹,我们改一下名字,将第一枚丹的后缀改为“……000010”。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
至此,我们的训练过程就全部结束。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
# 跑图测试

炼丹完成并不意味着结束,这些丹到底成不成功呢?我们还需要将这些丹放入SD当中,进行跑图测试。

不然的话,万一……

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

不可能,绝对不可能!

我们进入SD的lora文件夹中——E:\sd-webui-aki-v4.2\models\Lora,新建一个文件夹,命一个名字“tifa”。

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
将这十枚丹全部放入其中,然后启动SD。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
打开lora选项卡,刷新一下,就可以看到这十个lora了。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

我们将一张tifa的图片放入WD 1.4 标签器中,反推关键词,然后发送到文生图。

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
在正向提示词的结尾加上第一个lora。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
更改一下代表单词,将编号“00001”改为“NUM”,将权重“1”改为“STRENGTH”。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
使用XYZ脚本,提示词替换,x轴设置为“NUM,000001,000002,000003,000004,000005,000006,000007,000008,000009,000010”;y轴设置为“STRENGTH,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1”。
这样就可以测试出不同的lora,在不同的权重之下的效果。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
点击生成,经过一段时间的渲染,我们就得到了一张lora的测试图。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)

接下来,我们就要在茫茫多的tifa当中,用肉眼来寻找里面觉得最像的一张,这个过程是艰辛的,大家要坚持住,我们就快成功了。经过对比,我觉得编号00003在权重为1时是最像的,那就决定是你了!

【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
接下来,我们就换一换提示词,使用选定的这个3号lora在不同提示词下生成一些图片,看看效果如何。
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
效果看起来还是不错的,这样我们的第一枚丹就算是炼好了,虽然不能说是一模一样,但还是有几分神似的,毕竟我们的训练图只有5张。
分享到这里告一段落,对丹炉感兴趣的朋友,可以添加我的公众号【白马与少年】,回复【炼丹】即可。
-END-
【Lora炼丹术】从零开始,炼制你的第一个LoRA(1)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
AIGC

【Stable Diffusion】最强手部识别,controlnet新预处理器dw openpose

2023-8-14 8:28:28

AIGC

【Stable Diffusion】Roop换脸插件,全网最简单傻瓜式安装教程

2023-8-17 20:03:02

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索