一个懒人 LoRA 制作指南,手把手教你用 OneTrainer 训练自己的 AI 绘画模型,无需深入理论,轻松掌握关键步骤。作者是用XL生成的图片,你可以用MIdjoureny生成效果比较好。

简介

我是一名 LoRA (Low-rank Adaptation,低秩自适应)制作的新手,在寻找一份优质指南的过程中遇到了一些困难。现有的指南要么细节不足,要么又太过冗长。所以,这份指南就是我当时想要却没能找到的那种教程,直奔主题,告诉你该"按哪些按钮",而不会过多探讨理论。

老实说,我原本以为制作一个 Embedding (嵌入)就足够了。但不知为何,结果总是不尽如人意。所以我转而尝试训练 LoRA,但效果依然不够理想。直到我发现了一个小技巧!

(不是在开玩笑,这是真的。我会在文末再提这个技巧的。)

这份指南的内容

你可以在这里查看我制作的 LoRA 模型:
https://civitai.com/models/381785/faeryqueen-sd

这个 LoRA 模型并不出众,我制作它主要是为了学习和实践制作流程。但我认为它已经相当不错了。

所需工具

你喜欢的模型和图像生成工具

我使用的是 StableSwarmUI 和 GhostXL 模型。

OneTrainer

你可以从这里获取 OneTrainer:
https://github.com/Nerogar/OneTrainer

我之所以选择 OneTrainer,是因为看到有人说它比 Kohya 更快、更好、更易用。

具体步骤

概览

  1. 生成输入图像,并保存到指定目录
  2. 删除所有质量不佳的图像
  3. 告诉 OneTrainer:"请帮我制作一个 LoRA 模型!"

1. 生成输入图像

大多数人会选择"收集"用于训练的图像数据。但我比较懒,所以决定直接用一个优秀的 SDXL (Stable Diffusion XL)模型来生成训练图像。

在本指南的初始版本中,我曾提到如何创建自定义的 ComfyUI 处理流程(pipeline)来缩小 SDXL 图像。因为当时出于某些原因,内置的 OneTrainer 缩放器对我不起作用。但后来我又试了一次,发现它可以正常工作了。所以这一步现在变得简单多了。

我在这个阶段所做的:

  • 在 StableSwarmUI 中尝试,直到找到一个满意的提示词(prompt),搭配 GhostXL 模型。
  • 批量生成 100 张图像,保存至指定目录。
  • 创建一个我认为用户会用来调用这个 LoRA 的提示词(与生成图像时的提示词相似,但不完全一样)。
  • 用另外 100 张图像重复上述过程,这次换成不同视角,并将提示词保存在本地文本文件中。

2. 筛选训练图像

完成上述步骤后,你就得到了一批目标图像。理想情况下,你需要逐一检查,手动删除所有质量不佳的图像。

如果你用的是 Linux 系统,可以使用一个叫做 "feh" 的小工具。在图像目录中运行它,使用方向键前进/后退,使用 Delete 键删除图像。

如果你用的是 Windows 系统,有人推荐使用 "IrFanView",操作方式与 feh 类似。

另外,这篇指南提供了一些很有帮助的建议,教你如何明智地挑选训练图像。

3. 制作 LoRA 模型

现在,启动 OneTrainer,选择 "# sd 1.5 lora" 预设配置。

(为了安全起见,我建议你立即将配置"保存"为一个自定义名称。)

基本设置步骤:

  1. 在"模型"区域,设置"基础模型"和"模型输出目录"。
    注意,我在指定本地基础模型文件时遇到了一些问题,不得不使用 Hugging Face 格式,比如"stablediffusionapi/ghostmix"。
  2. 在"Concepts"区域,创建一个概念。设置"名称"、"路径"(输入数据)和"提示词来源"。对于提示词来源,我选择单个文件,创建一个文件,里面基本上只包含最初生成图像时用的提示词。
    你当然可以更高级一些,为每张图像单独指定提示词。但这是一份"懒人"指南,所以我略过了这一步。
  3. 如果你和我一样,需要将 SDXL 转换为 SD 格式,那么你必须在 Concepts -> (你的概念) -> 图像增强(Image Augmentation)中启用分辨率覆盖(Resolution Override)。
  4. 在 "Lora" 区域,设置期望的"秩"(rank)参数。这个参数下面会详细说明。

调整训练参数

我参考了这个调参指南来调整训练参数:https://rentry.org/59xed3

在本次训练中,我主要调整了一个参数:

在 Lora 设置中,将 rank 的值从 16 改为 32。然后模型就正常工作了!

开始训练

点击开始按钮,静待训练完成,你就可以开始使用新的 LoRA 模型了!

(或者,你也可以按照前面提到的 rentry.org 指南,不断调整参数,直到得到满意的结果。)

我所使用的完整训练数据集

你可以在这里找到我为最新版 LoRA 模型所使用的完整图像数据集,以及 OneTrainer 配置文件:

https://huggingface.co/datasets/ppbrown/faeryqueen

总结

我希望这份指南对你有所帮助。如果你有任何意见或建议,欢迎随时告诉我!


一些输出图像示例

使用这个 LoRA 模型时,可以生成类似这样的图像:

提示词:woman, masterpiece, 8k, model=aniverse 1.5 steps: 20, cfgscale: 4

长宽比:2:3

An image to describe post

faery,facing viewer,warm smile (negative: redeyes)
steps: 30, cfgscale: 7
An image to describe post

来源:Lazy LoRA making with OneTrainer and AI generation