本文教你手把手训练自己的Lora模型, 炼制的是Stable Diffusion的Lora模型。
1 准备工作
1.1 训练工具
当然, 我们可以使用Stable Diffusion的源码进行修改, 然后训练Lora模型。
但对于非专业用户来说, 这个门槛太高了。 推荐使用秋叶大佬的LoRA模型训练一键包。
b站视频介绍
训练包下载
一键训练包的使用:
-
首先, 下载一键训练包, 文件目录如下,注意要放在纯英文路径下, 不然可能报编码之类的错误。
-
运行A强制更新这个脚本安装所需要的依赖
-
运行A启动脚本, 运行后的界面如下:
1.2 准备图片
你最终想要生成什么风格的图片, 就需要准备相应的图片。 一般我们准备20~50张图片就差不多了。 当然图片中的元素越复杂, 就需要更多的图片。 图片最好比较干净, 比如常见的人像来说, 最好画面中的主体是人物, 其他背景干扰尽可能少。
1.3 准备基模型
Lora模型必须配合基模型使用, 那训练时也是一样的。 需要基于某一个基模型进行训练, 训练好的模型也要搭配这个基模型使用。
比如常见的, 训练写实的人物, 经常选用ChilloutMix作为基模型。
更过模型可以在civitai或其国内镜像网站https://aigccafe.com/上找到。
1.4 计算资源
计算资源主要就是Nvidia的显卡。 我用512*512的图像进行训练, 峰值显存占用大约6.6G。 我用的显卡是3060 Ti, 显存8G, 勉强够用。
2 开始训练
2.1 对图像进行打标签
打标签就是对每个图像用文字进行描述。 这样训练完后, 我们只要输入类似的文字描述, 模型就能生成类似风格的图片。
打标签可以手动进行, 也可以用工具自动处理,比如Deepbooru
等。 这个在秋叶的SD一键整合包中也有集成。
或者也可以直接使用Lora模型一键训练包中的自动打标工具:
这2个标注工具用到的模型不一样, 打出的标签也有较大差别。 用Deepbooru
打的标签更简短。用一键训练包中的Tagger工具打的标签更详细, 包含更多元素。实际也不见得哪个更好, 可以尝试一下进行对比。
打完标签后如下, 每个图片对应一个txt文件。
txt中的内容大概像下面这样:
打标后的文件夹要命名成num_xxx的形式, 如6_images, 其中6是训练时图片将会重复的次数, 建议20次以下。
2 开始训练
- 1 设置基模型的路径,包含文件名。
- 2 设置训练数据集路径, 这个地方需要注意一下, 路径不是设置成上面提到的num_xxx这一层, 而是要设置到num_xxx的上一层。
例如, 我的文件结构如下, 路径就要设置成train_data
- 3 设置图像分辨率, 最好与实际图片分辨率保持一致
- 4 开始训练。
训练相关参数主要设置max_train_epochs, 一般设置20以内, 太多容易过拟合。
训练失败或成功界面会有相应提示。
一般训练1个小时以内为宜, 太长就容易过拟合了。 当然训练时长取决于硬件性能等因素, 不能一概而论。