(本文属于作者yxnd150150原创,如需转载请联系作者)
LoRA介绍
Stable Diffusion中的LoRA(Low-Rank Adaptation)是一种用于微调大型AI模型的技术,它通过在模型中引入可训练的低秩矩阵来实现对模型的快速且高效的微调。LoRA是微软研究人员开发的一项技术,主要用于降低大语言模型和生成模型微调的成本。它通过在预训练模型的基础上注入可训练的低秩矩阵,实现了对模型的快速且高效的微调,同时保持了与全模型微调相当的微调质量。需要注意的是LoRA模型无法单独使用,需要选择一个用于定制的Stable Diffusion模型作为基础,再使用LoRA调整基础模型,从而生成微调后的图片。其他微调技术还有Dreambooth, Text Inversion, hypertuning, 但是与本内容关联度不大,因此不做介绍。
使用AutoDL部署LoRA训练工具
最开始我是根据B站秋叶大佬的视频介绍,成功部署了秋叶提供的LoRA训练器,后来接触C站,发现大部分关于LoRA的训练介绍使用的是bmaltais大佬提供的Kohya's GUI,而国内暂时没有相关的中文部署教程,因此踩了一些小坑,记录下来。简单的说他们的关系是:K佬提供了一系列SD训练的script,B佬做了GUI可视化,秋叶大佬同样做了GUI可视化。这里我已经给出每个工具的链接,大家自行选择,我是以B佬的工具做的部署。具体步骤如下:
(1)部署服务器准备
训练LoRA推荐12G以上的显卡,作者这里租用的是AutoDL平台的显卡,他们家的服务器比较稳定且便宜,如果自己有工作站也可以。这里我租用的是4090系或者4080系的显卡,配置如下所示:
(2)使用vscode连接到租用的服务器
在本地打开vscode, 并连接到远程服务器,从B佬提供的代码仓库下载代码,并解压到/root/autodl-tmp/ 目录下,这个目录属于数据盘,容量足够,不要存到其他地方,会占用系统盘。
(3)部署训练环境(重要)
我平时习惯用anaconda,在终端首先创建虚拟环境
conda create -n sd-lora python=3.10.11
然后启动虚拟环境:
activate sd-lora
然后启动环境自动安装脚本
./setup.sh
最后启动脚本:
python kohya_gui.py
正常情况下,vscode会在右下角跳出来提示然你打开浏览器,就可以看到训练界面了。如下图所示:
下图是训练界面,关于训练的相关设置大家可以前往B站看一些视频介绍。
训练出错Debug
训练SDXL-LORA时,使用专家模式训练报错:RuntimeError: NaN detected in latents: /root/autodl-tmp/train/190.jpg
这里我参考了https://github.com/bmaltais/kohya_ss/discussions/1947 ,需要将训练精度和保存精度由FP16改为BF16。