本文教你手把手训练自己的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个小时以内为宜, 太长就容易过拟合了。 当然训练时长取决于硬件性能等因素, 不能一概而论。
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐