一个懒人 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 更快、更好、更易用。
具体步骤
概览
- 生成输入图像,并保存到指定目录
- 删除所有质量不佳的图像
- 告诉 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" 预设配置。
(为了安全起见,我建议你立即将配置"保存"为一个自定义名称。)
基本设置步骤:
- 在"模型"区域,设置"基础模型"和"模型输出目录"。
注意,我在指定本地基础模型文件时遇到了一些问题,不得不使用 Hugging Face 格式,比如"stablediffusionapi/ghostmix"。 - 在"Concepts"区域,创建一个概念。设置"名称"、"路径"(输入数据)和"提示词来源"。对于提示词来源,我选择单个文件,创建一个文件,里面基本上只包含最初生成图像时用的提示词。
你当然可以更高级一些,为每张图像单独指定提示词。但这是一份"懒人"指南,所以我略过了这一步。 - 如果你和我一样,需要将 SDXL 转换为 SD 格式,那么你必须在 Concepts -> (你的概念) -> 图像增强(Image Augmentation)中启用分辨率覆盖(Resolution Override)。
- 在 "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
faery,facing viewer,warm smile (negative: redeyes)
steps: 30, cfgscale: 7