目录
一.准备工作:安装stable-diffusion和sd-trainer
二.准备数据集
2.1确定你想要的数据集
2.2准备数据集
2.2.1对于人物类的数据集
2.2.2数据集的处理
2.2.3数据集所在文件夹参考位置(出于方便考虑,仅供参考):
2.2.4由数据集生成标签
2.2.5对生成的标签进行修改
三.开始训练
3.1打开sd-trainer的新手模式
3.1.1准备工作:将准备好的数据集的文件复制粘贴到指定文件夹
3.1.2调整一些参数(因为是新手,所以我们只调节基本的参数!!!)
3.2开始训练
四.测试我们的lora模型
4.1将训练出来的模型放进stable-diffusion相应的目录下
4.2开始测试
4.2.1我们要先下载一个插件:additional network
4.2.2填入提示词
4.2.3启用additional networks
4.2.4使用x/y/z图表
1.在脚本里选择x/y/z图表
2.选择训练好的lora模型进行测试
4.2.5通过结果分析来找出最佳的权重和lora模型(同样是考虑到没有理论知识的前提,只进行直观的分析)
五.结语
一.准备工作:安装stable-diffusion和sd-trainer
在训练lora模型之前,我们需要在本地安装SD-WebUI (Stable Diffusion WebUI)和SD-Trainer,这里推荐B站大佬秋叶aaaki大佬的整合包(点击进入),可以快速上手并训练出自己的第一份lora模型。
注:1.尽量避免把这两个程序放在c盘,因为它们还是有点大的,D盘,E盘都是可以的
2.显存最好8G+,当然,6G也是可以的,速度和效率会有所不同
SD-WebUI (Stable Diffusion WebUI)下载完成后,解压,进入文件,找到下图文件,即可进入Stable Diffusion,
界面如下,请确保大致界面相同(如果你也用的秋叶大佬的整合包)
SD-Trainer下载完成后,选择版本(推荐最新的),解压,进入文件,找到下图文件:即可进入SD-Trainer,(在点击进入脚本之前注意要先完成【A强制更新!!!】)
界面如下,请确保界面大致相同,(如果你也用的秋叶大佬的整合包)
二.准备数据集
2.1确定你想要的数据集
对于lora的种类,在此不做过多的赘述(你可以选择训练画风,人物角色等等),接下来我会以人物类的Lora进行示范,选取的角色为《擅长逃跑的殿下》中的主人公北条时行
2.2准备数据集
2.2.1对于人物类的数据集
1.该人物的动漫中截图,注意:如果你想训练的仅仅是该人物本身,请将图片中多余的任何人物截去!
2.寻找二创等,注意:请注意版权问题,若你的数据集有这类图片,请把握好可能的侵权问题!
2.2.2数据集的处理
1.建议准备至少20-30张图片 注意:并非图片越多越好,且重复图片最好删去,它们对你所需要的训练的lora没有什么帮助,反而会拖累你的电脑!
2.图片的分辨率最好调成512*512,这并非必须的,但是作为新手,这样方便且容易;如果你不想这么做,请至少将图片分辨率设置为512*(64的倍数)或者(64的倍数)*512 注意:512并非必须的,你也可以设置为(64的倍数)*(64的倍数)
【你可以使用windows电脑自带的‘画图’工具进行调节,也可以使用该网站可以批量调节图片大小,每一次最多调节30张,目前来说够用了(free),将依旧不符合条件的图片用ps,画图等工具微调即可】
2.2.3数据集所在文件夹参考位置(出于方便考虑,仅供参考)
如图:‘lora_practice’是我存放sd-trainer的文件夹,
‘训练用图片-擅长逃跑的殿下’是我存放未经任何处理的数据集的文件
‘Input_北条时行‘是我存放经过处理的数据集的位置(我进行的是512*512)
分辨率调整后的部分结果如图:
2.2.4由数据集生成标签
打开stable-diffusion,按照下面的步骤操作:
(1)点击后期处理
(2)点击批量处理文件夹
(3)输入目录为已经调整过分辨率的数据集(示例中为:D:\aidraw\lora_practice\input_北条时行);输出目录为你要将标签输出的位置(目录),可以选择新建一个文件夹,方便查找,参考位置如图:
(4)取消‘图像放大‘的选项
(5)选中下方的生成标签,选择Deepbooru(点这个最好)
(6)点击生成
可以看到结果,进入 ‘output_北条时行‘ 文件:
每个图片会对应一个txt文档,里面就是该图片的提示词(prompt)
2.2.5对生成的标签进行修改
生成的标签会因为所给数据集的原因出现冗余的现象(多出一些莫名奇妙的标签),为了训练的lora的效果,我们可以修改每张图片所对应的提示词。
这里推荐BooruDatasetTagManager,可以更加有效的进行提示词的修改
(你可以在:BooruDatasetTagManager的下载(github)进行下载)
初始界面如图:
点击设置,进入翻译,在Translation language 一栏选择Chinese(Simplified),保存
点击文件,选择读取数据集目录,也就是我们打好标签的文件,
加载完成后如图,可以开始调整标签(北条时行明明是男孩子,给出的标签却是1girl,真可恶啊)
注:这里是可以将标签翻译成中文的,如下图:点击界面,选择翻译标签
但是这个翻译的速度很慢,而且有的标签无法翻译,体验不是很好,建议直接看原文或者百度翻译/谷歌翻译/chagpt,启动!
修改完成后,点击保存更改,如下图:
那么到此为止,一个数据集就准备完毕了,我们可以打开秋叶大佬准备的sd-trainer进行训练了
三.开始训练
【注意:建议使用Google Chrome打开sd-trianer,否则可能会出现无法训练的现象(比如edge)】
3.1打开sd-trainer的新手模式
作为新手,我们就用这个新手模式,效果也很好:
3.1.1准备工作:将准备好的数据集的文件复制粘贴到指定文件夹
我们要将准备好的数据集的文件复制粘贴到指定文件夹(这期间我们要新建两个文件夹),按照下面的图片流程进行:
这个beitiao是需要用户自己创建的,(fox是我自己之前建立的,没舍得删),你可以根据自己创建的角色的名字特征等建立一个文件夹。
注:一定要是英文,以确保全英路径!!!
这个地方的文件夹20_beitiao也是用户自己创建的文件夹,它被包含在我们上一步创建的文件beitiao里,20即这个数字有着自己的意义,一定要有!感兴趣的话可以自己去了解哦~
注:这个文件夹必须是英文名字!!!
在创建的20_beitiao中粘贴我们第二步创建的数据集
3.1.2调整一些参数(因为是新手,所以我们只调节基本的参数!!!)
对于下图的训练用模型,在civitai上随便找一个checkpoint其实基本上来说都可以(理论上,但是不建议这么做),找一些比较古老(好评如潮)的模型更稳定,更不容易翻车,例如:sd-1.5
对于上面这张图片的详解:
(1)将我们数字_名字(这里是20_beitiao)的文件夹的上一层文件(这里是beitiao)的路径复制过去即可
复制到这里:
(2)output_name模型保存名称:可以填写任意你喜欢的名字,只要你能通过名字从文件里辨别出那是你训练的模型就可以了
(3)最大训练epoch轮数设置为20,其余都可以不用改
3.2开始训练
训练时可以看看训练进度,例如:
这是一个很漫长的过程,通常需要数个小时才能完成
四.测试我们的lora模型
4.1将训练出来的模型放进stable-diffusion相应的目录下
在如图的目录里有着我们刚刚训练的模型:
我们看到有若干个模型,
我们需要把他们保存到stable-diffusion的D:\aidraw\sd-webui-aki-v4.8\extensions\sd-webui-additional-networks\models\lora目录下,一定要是这个目录,否则测试时会出现问题【建议同时放到sd-webui-aki-v4.8\models\lora里,否则可能会出现你训练的模型在stable-diffusion中的lora一栏中并不显示的问题】:
4.2开始测试
4.2.1我们要先下载一个插件:additional network
将链接https://github.com/kohya-ss/sd-webui-additional-networks放入如图的红框里:
重启stable-diffusion,就可以正常使用该插件了
4.2.2填入提示词
可以从我们处理过的数据集的标签里提取提示词,比如:
我们选择这个图片的提示词,填入;
4.2.3启用additional networks
在additional networks里任意放入一个我们训练的模型,按照下图操作:(否则会出现脚本里x/y/z图标操作时不显示lora的问题)
4.2.4使用x/y/z图表
1.在脚本里选择x/y/z图表
2.选择训练好的lora模型进行测试
对X轴:左边选择附加模型1;右侧点击如图图标,会显示你所训练的所有模型,删去你不需要测试的模型(一般是你之前训练的lora模型,这里会一次性选上)
这是显示的右侧图标点击后的结果:
对Y轴:左侧选择附加模型1权重,右侧输入:0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,代表着lora的权重
4.2.5通过结果分析来找出最佳的权重和lora模型(同样是考虑到没有理论知识的前提,只进行直观的分析)
注:这里将:当做
checkpoint
开始生成,得到:
大致可以得出:权重:0.6-1.0生成的图像和beitiao000008,beitiao000010,beitiao000014,beitiao000014,得出的图像质量比较高。
注:1.一次生成的图片并不能代表最终的结果,我们需要在排除0.0-0.5的权重和其他几个明显有问题的模型后重新生成图片,这时可以改变提示词,来提高判断的准确度,在选择出最后的模型和权重区间后就可以尽情使用你的lora模型啦。
2.同样的,你可以去测试同一个lora模型在不同模型下的效果,找出适合该lora的模型,如:
这是我测试的几个模型,一次生成的结果为:
可以明显的看出来,1,3,6生成的图片是可以的,其他的就肉眼可见的糟糕了。
五.结语
你是否已经制作出你所喜欢的角色的lora并为其赋予上自己独有的色彩了呢?
探索AIGC是一个漫长的旅程,我们需要掌握很多相关的知识和技能,其中的艰辛常常会让我们感到难过,但是当一张张优美的图片展现在我们眼前,绚丽的色彩能够在计算机上呈现属于自己的光芒时,我们也会显得如此开怀。
(关于人工智能,还有什么想了解的吗?告诉我吧!)
总结
本文详细介绍了如何从头开始制作并测试自己的LoRA模型(通过Stable Diffusion和SD-Trainer),主要步骤如下:### 一、准备工作
1. **安装Stable Diffusion WebUI (SD-WebUI) 和 SD-Trainer**:选择B站上的整合包进行安装,尽量避免将软件放在C盘,建议显存8G+以提升速度和效率。
### 二、准备数据集
1. **确定数据集**:选择想要训练的类别(如人物、画风等),并以《擅长逃跑的殿下》中主人公北条时行为例。
2. **收集和处理图片**:
- 截取动漫图,去除多余元素。
- 注意版权,可使用二创但要谨慎处理可能的侵权问题。
- 调整图片分辨率至512*512或512*(64的倍数)以方便训练。
3. **生成标签**:
- 使用Stable Diffusion的批量处理功能生成图片提示词(tags/prompts)。
- 使用BooruDatasetTagManager修改标签,去除冗余,确保标签准确反映图像内容。
### 三、开始训练
1. **设置SD-Trainer新手模式**:
- 将处理好的数据集复制到指定文件夹。
- 调整基础参数,如模型路径、保存名称和最大训练epoch(推荐20轮)。
- 特别注意确保文件路径为全英文。
2. **开始训练**:训练过程可能需要数小时。
### 四、测试LoRA模型
1. **放置模型到Stable Diffusion中**:将训练好的模型文件放入Stable Diffusion的相应目录。
2. **下载插件与准备**:下载Additional Network插件以启用LoRA模型测试功能。
3. **进行测试**:
- 提取标签作为提示词进行测试。
- 在Additional Networks中启用LoRA模型,并通过X/Y/Z图表调节LoRA模型的权重(0-1)以寻找最优权重和组合。
### 五、结语
本文详细指导了从准备数据集到训练并测试LoRA模型的全过程。探索AIGC(人工智能生成内容)是一个充满挑战但同样成就感满满的旅程。通过不断实验,每个人都能制作出自己喜爱的角色、画风等LoRA模型,为艺术创作增添无限可能。同时,也强调了版权处理、技术细节和耐心的重要性。