当前位置:AIGC资讯 > AIGC > 正文

AIGC新手炼丹师快速生成属于自己的lora--示范样例:北条时行(出自:擅长逃跑的殿下)

目录

一.准备工作:安装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模型,为艺术创作增添无限可能。同时,也强调了版权处理、技术细节和耐心的重要性。

更新时间 2024-08-19