deepfacelab中文网

 找回密码
 立即注册(仅限QQ邮箱)
查看: 59645|回复: 225

AI绘画之训练自己的Lora模型

  [复制链接]

5

主题

189

帖子

2335

积分

版主

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
2335

见习版主勋章优质版主勋章

 楼主| 发表于 2023-2-17 23:57:46 | 显示全部楼层 |阅读模式
本帖最后由 抹茶味牛子 于 2023-3-27 11:25 编辑

一、Lora简介
二、Lora一键包安装教程
三、Lora使用教程
四、常见错误除


一、Lora简介


LoRA: Low-Rank Adaptation of Large Language Models 是微软研究员引入的一项新技术,主要用于处理大模型微调的问题。目前超过数十亿以上参数的具有强能力的大模型 (例如 GPT-3) 通常在为了适应其下游任务的微调中会呈现出巨大开销。 LoRA 建议冻结预训练模型的权重并在每个 Transformer 块中注入可训练层 (秩-分解矩阵)。因为不需要为大多数模型权重计算梯度,所以大大减少了需要训练参数的数量并且降低了 GPU 的内存要求。

Stable Diffusion 的全模型微调过去既缓慢又困难,这也是 Dreambooth 或 Textual Inversion 等轻量级方法变得如此流行的部分原因。使用 LoRA,在自定义数据集上微调模型要容易得多。


详细的原理分析见右侧链接:https://www.cnblogs.com/huggingface/p/17108402.html

简单来说,lora模型为我们提供了更便捷更自由的微调模型,能够使我们在底膜的基础上,进一步指定整体风格、指定人脸等等,而且lora模型非常的小,大部分都只有几十MB,非常的方便!

二、Lora一键包安装教程

秋叶大佬已经发布了一个本地Lora一键包,比较的方便,可以参考下方视频安装使用,本文是文字版教程。

注意本文默认是使用的N卡,A卡的道友暂时好像不能使用,会非常的慢

秋叶lora视频教程链接:

一键包下载链接:https://pan.quark.cn/s/d81b8754a484

百度网盘链接:[url=链接:https://pan.baidu.com/s/1RmXoUar52KFJ4DdQU_UoWQ?pwd=r50l]链接:https://pan.baidu.com/s/1RmXoUar52KFJ4DdQU_UoWQ?pwd=r50l[/url]


下载完一键包之后,先安装包里的两个软件

image.png
其中python版本必须是python3.1,即使本地有python,还是建议再安装一个3.1版本。

安装python的时候记得勾选将python加入环境变量,如下图红框

image.png

安装完两个软件后,将鼠标移动到电脑左下角开始图标,选择“windows powershell”

输入命令:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

遇到询问输入  y
image.png

同时可以在这里验证python是否安装成功,输入python将显示出python版本为3.1.

现在进入lora-scripts文件夹,先双击运行“强制更新.bat”文件

如果报错提示没有git或者不识别git命令,说明你的电脑没有git,需要下载安装一个,

git下载链接:https://git-scm.com/download/win

安装完git再重新运行“强制更新.bat”文件

更新完毕后,右键:“install-cn.ps1”文件,选择“使用powershell运行”。

注意,这里有一个非常常见的错误就是提示“其他依赖安装失败!”如下图

2KJ4Q23C7`L}5P8K9X4.png

遇到这个错误,重新运行“强制更新.bat”文件

然后再运行“install-cn.ps1”文件。

install-cn.ps1”文件正常运行最后会提示“安装完毕”,如下图
SC~1J}_BVc~GO}MNR`IFB.png

然后现在就进入了素材准备的阶段,首先自己准备10-100张图片,40张左右效果就差不多。

将所以的素材图片放到同一个文件夹,然后进入SDwebUI界面,选择“训练”标签,点击图像预处理

在源文件输入素材文件夹位置,并填上输出文件夹位置,勾选下方第三个自动焦点裁切和最后一个deepbooru打tag的选项

image.png
点击预处理,会在设置的输出文件夹中生成裁剪后的图片以及图片相应tag的txt文件

这里如果显卡大小小于8G的话,建议裁剪成512*512大小的图片,512*640最少需要8G显存

得到素材文件后,,在lora-scripts文件夹下新建一个train文件夹,然后再下方再创建一个文件夹,命名随意,但是需要记住。比如我创建了就是sucai文件夹。

在这个文件夹下再创建一个文件夹,这个文件夹有严格的命名格式。

要求为:数字_名称,如6_sucai。

数字代表的是这个文件夹下的素材使用几次,显存大的道友可以设置多个,一个的话也可以。

如果素材文件比较少的情况下,可以设置6,如果100张图以上可以设置为2或者3,甚至1也行,不然可能会炸

全选复制裁剪后的图片以及所以的txt文件到上面刚创建的文件夹下。比如我这就是..\train\sucai\6_sucai\

image.png

现在素材准备好了,我们修改一下“train.ps1”文件,右键使用文本编辑器打开

我们需要修改的参数如下图所示:

image.png

其中$pretrained_model ,不是指的SDwebUI左上角的模型路径,而是这次训练lora模型主要参考的模型。

存放位置一般为..\lora-scripts\sd-models\

这里我们需要去准备一个模型放在这个路径中,推荐直接复制SD中的主模型过来改个名字。

注意,经过群友大量测试,推荐使用SD1.5模型作为lora丹底。

下载链接:https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt


将新下载的SD1.5,如果之前下过就到从..\stable-diffusion-webui\models\Stable-diffusion中找

复制到..\lora-scripts\sd-models\路径中

最好重命名一下,比如我就是重命名为model.ckpt

然后就填入配置文件

$pretrained_model = "./sd-models/model.ckpt"

注意:有的道友选的丹底是SafeTensor格式的,那就改成

$pretrained_model = "./sd-models/model.safetensor"

$train_data_dir
指的就是我们刚才创建的存放素材的位置,我这里就填入

$train_data_dir = "./train/sucai/"

不需要填入带数字的文件夹。

下方的训练相关参数,$resolution指的是图片分辨率。

显存小于8个G的道友就老老实实训练512,512,不然显存直接爆炸

$max_train_epoches指的是训练的epoch数,建议数值10-20,但一般15就差不多了。数字越大训练时间越久。

其他几个参数小白的话可以不用动,默认就可以了。学习率这里也不用动

等能够熟练操作之后,可以自己调整参数以便得到更好的效果。

再往下,输出设置这里

可以通过修改$output_name后方的值修改输出的lora模型文件名,建议输入英文名,不要用中文,比如我设置为gaoye

lora文件类型建议设置$save_model_assafetensors

改完参数后,一定记得保存文件。然后关掉文件,“train.ps1”文件,选择“使用powershell运行”。

如果显存没爆炸,且上述参数都设置的情况下,正常就开始进入训练界面了。

image.png

出现epoch轮数的时候,就证明你已经正常进入训练过程了!

根据设置的参数已经你显卡的性能,训练的时间不等。

等待训练完毕,打开..\lora-scripts\output\文件夹,复制生成的gaoye.safetensors复制到sd中的..\stable-diffusion-webui\models\Lora\路径中

其他几个带数字的文件为中间文件,可以丢弃。

至此,我们自己的lora模型已经训练完成,可以进行使用了!!

三、Lora使用教程
这部分不再赘述,可以参考入门教程的第七部分

入门教程:https://dfldata.xyz/forum.php?mod=viewthread&tid=12756&page=1#pid390482

四、常见错误排除

1.运行“install-cn.ps1”文件,提示“其他依赖安装失败!”如下图

答:遇到这个错误,重新运行“强制更新.bat”文件,然后再运行“install-cn.ps1”文件。

2.运行“强制更新.bat”文件,报错提示没有git或者不识别git命令。

答:说明你的电脑没有git,需要下载安装一个,

git下载链接:https://git-scm.com/download/win

安装完git再重新运行“强制更新.bat”文件

3.运行“train.ps1”文件提示“CUDA out of memery”错误。

答:显存不够了,调小参数设置的分辨率,支持非正方形,但必须是 64 倍数。

同时可以加大虚拟内存,具体方法百度。

实在机器性能有限,可以使用在线的网站训练lora模型。

参考链接:https://www.bilibili.com/read/cv21450198

4.运行“install-cn.ps1”文件创建虚拟环境失败

答:检查python版本,以及电脑装过anaconda,需要先关掉conda自动激活base环境,方法自行百度。不然运行脚本时环境会冲突。

5.运行的“train.ps1”文件的时候,提示Error no kernel image is available for execution on the device。

HDF1WWWFICQ`P05JA2G_~N.png

答:删掉train.ps1文件中,下方红框中的命令,保存后重新运行
OJP4NYX87M8@A0QZR_4G%S.png

还不行的话找到
# 优化器设置
$use_8bit_adam = 0 # use 8bit adam optimizer | 使用 8bit adam 优化器节省显存,默认启用。部分 10 系老显卡无法使用,修改为 0 禁用。
设置该参数为0,保存,重新运行

6.报错提示 如下图所示,找不到requirement.txt文件
image.png

答:python版本的问题,必须是python3.1,如果本身安装了其他版本的python建议卸载重装。然后还有问题删除venv文件重新运行install文件。

7.开始训练之后出现个ModuleNotFoundError: No module named 'skimage.transform._warps_cy'的报错?
答:
1.安装cython
pip install cython
2.卸载skimage
pip uninstall scikit-image
3.安装skimage
pip install scikit-image



未完待续~~~~~


by 抹茶味牛子




















评分

参与人数 8贡献 +8 收起 理由
ktis321 + 1 很给力!
yifeng + 1 赞一个!
花满凤楼 + 1 很给力!
tmpuser_01 + 1 赞一个!
jackfun + 1 很给力!
RyanChang + 1 很给力!
无敌小金鱼 + 1 很给力!
cfab + 1 赞一个!

查看全部评分

AI绘画讨论交流QQ群748167404
回复

使用道具 举报

7

主题

144

帖子

901

积分

高级丹师

Rank: 5Rank: 5

积分
901
发表于 2023-2-26 14:01:35 | 显示全部楼层
超赞的教程!!一步步跟着做了,训练进行中,要一个多小时
回复 支持 1 反对 0

使用道具 举报

5

主题

189

帖子

2335

积分

版主

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
2335

见习版主勋章优质版主勋章

 楼主| 发表于 2023-2-18 13:39:08 | 显示全部楼层
xxjack7 发表于 2023-2-18 11:21
能训练自己需要的脸吗

可以的呀
AI绘画讨论交流QQ群748167404
回复 支持 0 反对 1

使用道具 举报

11

主题

96

帖子

3500

积分

高级丹圣

Rank: 13Rank: 13Rank: 13Rank: 13

积分
3500
发表于 2023-2-18 09:30:38 | 显示全部楼层
install-cn.ps1 安装到最后总是失败,强制更新都没有用,怎么搞
回复 支持 0 反对 1

使用道具 举报

5

主题

189

帖子

2335

积分

版主

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
2335

见习版主勋章优质版主勋章

 楼主| 发表于 2023-2-18 00:17:23 | 显示全部楼层
plotchen 发表于 2023-2-18 00:13
希望出个关于参数的探讨

这个会的,群里一直在讨论参数对训练出的lora模型的影响,有确定影响的我后面会更新写上
AI绘画讨论交流QQ群748167404
回复 支持 0 反对 1

使用道具 举报

7

主题

107

帖子

694

积分

高级丹师

Rank: 5Rank: 5

积分
694
发表于 2023-2-18 00:07:43 | 显示全部楼层
这教程超赞!感谢版主,辛苦了。
回复 支持 反对

使用道具 举报

4

主题

349

帖子

2535

积分

初级丹圣

Rank: 8Rank: 8

积分
2535
发表于 2023-2-18 00:13:20 | 显示全部楼层
希望出个关于参数的探讨
回复 支持 反对

使用道具 举报

1

主题

514

帖子

4398

积分

高级丹圣

Rank: 13Rank: 13Rank: 13Rank: 13

积分
4398
发表于 2023-2-18 09:37:53 | 显示全部楼层
谢谢大佬
回复

使用道具 举报

2

主题

110

帖子

2057

积分

初级丹圣

Rank: 8Rank: 8

积分
2057

万事如意节日勋章

发表于 2023-2-18 09:38:33 | 显示全部楼层
之前就会了 在复习一遍加深印象
回复 支持 反对

使用道具 举报

5

主题

189

帖子

2335

积分

版主

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
2335

见习版主勋章优质版主勋章

 楼主| 发表于 2023-2-18 10:40:26 | 显示全部楼层
ps2wwttq 发表于 2023-2-18 09:30
install-cn.ps1 安装到最后总是失败,强制更新都没有用,怎么搞

加群贴一下报错图
AI绘画讨论交流QQ群748167404
回复 支持 反对

使用道具 举报

2

主题

125

帖子

896

积分

高级丹师

Rank: 5Rank: 5

积分
896
发表于 2023-2-18 11:21:03 | 显示全部楼层
能训练自己需要的脸吗
回复 支持 反对

使用道具 举报

QQ|Archiver|手机版|deepfacelab中文网 |网站地图

GMT+8, 2024-7-24 01:49 , Processed in 0.104038 second(s), 12 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表