> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# Ostris AI工具包LoRA训练指南
- URL: https://www.hubwiz.com/blog/ostris-ai-toolkit-lora-training-guide/
- Published: 2026-04-01T08:53:24.000Z
- Updated: 2026-04-01T08:53:24.000Z
- Description: 使用Z-Image、Qwen Image、Flux.2 Klein和Flux.2 Dev利用Ostris AI Toolkit进行训练。
- Author: admin
- Tags: TOOL, OSTRIS AI TOOLKIT, #Import 2026-10-14 14:41

大约一年前，我写了一篇关于LoRA训练的文章（*如何训练LoRA*）。那时Flux.1 Dev被视为开源领导者，我对使用[FluxGym](https://github.com/cocktailpeanut/fluxgym?ref=hubwiz.com)和[FluxTrainer](https://github.com/kijai/ComfyUI-FluxTrainer?ref=hubwiz.com)创建的LoRA质量感到惊讶。

现在到了2026年初，模型格局已经大不相同，我认为是时候重新审视LoRA训练了。编辑模型有了很大改进，但在处理一致的角色和风格时，一个高质量的LoRA仍然是一个强大的工具。

目前我主要使用Flux.2 Dev、Qwen Image、Flux.2 Klein和Z-Image Turbo，所以我想为这些模型生成LoRA，这些模型在FluxGym中不可用于训练。

在写第一篇文章时，我认为[Ostris的AI工具包](https://github.com/ostris/ai-toolkit?ref=hubwiz.com)是存在的，但与FluxGym相比它处于早期阶段。现在Ostris AI工具包可能是最受欢迎的LoRA训练器之一。

我原来文章的大部分内容仍然适用，所以如果你是LoRA训练新手，在阅读本文之前值得一读。本文主要关注使用AI工具包。

我将介绍在本地和RunPod上运行AI工具包。实际上，除非你有至少24GB显存的高端GPU（实际上需要32GB以上），否则你在本地能做的训练将仅限于Z-Image，*可能*还有Flux.2 Klein。我发现运行Qwen Image训练至少需要32GB，到目前为止我只在80GB显存上成功运行了Flux.2 Dev训练。

## 1、LoRA还是LoKr？

虽然每个人都提到LoRA，但在AI工具包中，除了标准LoRA选项外，还有一个叫做LoKr（低秩Kronecker积）的变体。LoKr是一种更参数高效的微调方法，理论上在微调大型模型时可以获得更好的准确性。

缺点是LoKr训练有更高的计算成本和更高的显存需求，然而，它可以在中小型角色数据集上更快达到可用的相似度，并保留更多细节。这些因素可能使它成为角色LoRA的理想选择，但并非在所有情况下都是如此。

一般来说，ComfyUI LoRA加载器也可以加载LoKr，所以如果模型支持LoKr，它们在某种程度上是可互换的——这有点难以判断，Flux通常被列为支持LoKr，Qwen则不太明确。这也可能取决于你是否使用基础模型还是微调模型生成图像。

我用LoKr运行了一些测试，但效果不太理想，目前我把这归因于没有花足够时间试验设置。建议似乎是，先创建一个普通的LoRA，如果它在实现角色一致性方面不够好，再用相同的数据集作为LoKr重新运行。

为了简单和一致性，在我的示例中，所有训练都作为普通LoRA完成。

## 2、网络维度和Alpha的回顾

我在之前的LoRA文章中介绍了网络维度（也叫线性秩）和网络Alpha的概念，但快速回顾一下：

- **网络维度（线性秩）**：控制LoRA的学习容量，它能吸收多少数据。
- **网络Alpha**：控制LoRA的灵活性，它允许多少训练中的方差。

通常对于角色LoRA，网络维度16就足够了，网络维度32是高端的。任何高于32的网络维度通常保留给风格LoRA。

对于网络Alpha，建议将其设置为与网络维度相同或为网络维度值的一半。

使用FluxGym时，我发现这些设置效果很好，然而，到目前为止我在AI工具包中进行的所有训练都需要使用32/32才能获得好结果。不知道这是否与我当前的数据集、这些特定模型或AI工具包的处理方式有关，但任何低于32/32的设置对我来说都产生了糟糕的LoRA。

注意：网络Alpha只能在AI工具包的高级设置中设置。

## 3、在本地运行AI工具包

如果你想直接安装AI工具包并且愿意折腾Python库，可以从[GitHub](https://github.com/ostris/ai-toolkit?ref=hubwiz.com)手动安装，但对于Windows用户有一个更容易使用的[一键安装器](https://github.com/Tavris1/AI-Toolkit-Easy-Install?ref=hubwiz.com)。安装器应该能根据你当前的设置处理正确的依赖。

重要的是要注意，AI工具包使用PyTorch、Triton和30多个其他依赖库，所以要小心不要破坏任何现有环境。

由于我已经有了ComfyUI、Wan2GP和FluxGym的实例，我开始使用[Pinokio](https://pinokio.co/?ref=hubwiz.com)作为环境管理器。对于AI工具包有一个Pinokio模板，安装后可以轻松更新，避免依赖地狱的风险。

我在RTX4060 Ti OC（16GB显存）和64GB系统内存上本地运行AI工具包。它运行良好但有限制，即使对于较小的模型也相当慢，因此我也使用了RunPod。

## 4、在RunPod上运行AI工具包

我有时觉得RunPod很令人沮丧，主要是因为它不够用户友好。很多模板需要你手动上传或拉取模型、编码器和VAE，所以设置相当麻烦，除非你维护永久存储。话虽如此，一旦你理解了它，RunPod确实提供了对高端硬件的经济高效访问，这对那些要求高的任务非常有用。

出于本文的目的，我不打算介绍基本的RunPod设置和使用，有很多现有的指南，所以我直接从硬件和模板选择开始。

如果你想为Qwen或Flux.2 Klein创建LoRA，你将需要选择至少32GB显存的Pod，更实际的是48GB以避免内存不足（OOM）问题。对于Z-Image，24GB就足够了，你可以使用"低显存"和其他优化设置来运行其他模型，但我发现这不可靠，而且你不希望在训练两小时后出现OOM。对于Flux.2 Dev，你需要选择80GB以上显存的Pod。

值得庆幸的是，对于AI工具包有一个预制的官方模板，几乎是全自动的。然而，在启动Pod之前有两件重要的事情要做。

选择AI Toolkit-Ostris-ui-official模板后，点击右边的编辑按钮打开*Pod Template Overrides*。在对话框底部有一个环境变量的下拉菜单，点击下拉箭头展开此部分。

![](https://www.hubwiz.com/blog/content/images/2026/04/image-1.png)

在标有'password'的框中输入新密码，这将是你访问AI-Toolkit界面时使用的密码。

接下来点击'Add Environment Variable'。在新框的第一个中输入'HF\_Token'，在第二个框中输入你的Hugging Face令牌值，然后点击'Set Overides'。

HF令牌被AI-Toolkit用来访问Hugging Face下载模型，如果你没有令牌，可以按如下方式获取：

- 登录Hugging Face，点击右上角的用户图标，然后从菜单中点击'Settings'链接。
- 从左侧菜单选择'Access Tokens'
- 点击右上角标有'Create New Token'的按钮，选择'Read'作为令牌类型并给它一个名称。
- 点击'Create Token'，确保复制显示的令牌并将其存储在安全的地方，因为你将无法再次查看它。

![](https://www.hubwiz.com/blog/content/images/2026/04/image-2.png)

如果你在启动Pod之前没有添加HF令牌，一旦运行后唯一的方法是创建到Pod的SSH隧道，然后在ai-toolkit目录中创建一个带有令牌详细信息的.env文件。这需要在RunPod上设置公钥/私钥对并使用SSH客户端——都是可能的，但比事先编辑麻烦得多！

## 5、创建你的第一个训练运行

AI工具包的界面相对简单，启动时会带你到仪表板。无论你是直接在本地运行、使用Pinokio还是创建RunPod，好消息是界面完全相同，你可以使用相同的设置，只需根据你可用的显存进行调整。

![](https://www.hubwiz.com/blog/content/images/2026/04/image-3.png)

### 5.1 数据集

在运行任何训练之前，你需要至少组装一个数据集。我原始文章中关于数据集的信息仍然适用——少量高质量图像比大量低质量图像好得多。

你可以用少至15-20张图像训练一个高质量的角色LoRA，风格LoRA需要更多。AI工具包自动处理训练集分辨率，所以不需要确保它们都是相同的大小，但尽可能将图像裁剪到主题确实有帮助。你想要的是不同的角度、表情、照明等。

要创建数据集，点击*Datasets/New Dataset*并给数据集命名。然后点击*Add Images*添加你的图像。如果你有大量图像，我发现分批添加更可靠，特别是使用RunPod时。

### 5.2 标注

如何标注（或不标注）训练数据集是网上热烈讨论的话题，没有明确的答案（部分原因是不同模型的最佳方式不同）。我的经验仍然是"标注你不想训练的内容"这种方法最好。

例如，如果你正在创建一个角色LoRA，你不标注眼睛颜色、面部特征或肤色，但你会标注眼镜（如果你想能够创建不戴眼镜的图像）和配饰，如耳环和帽子。如果你想在图像生成期间能够改变发型和颜色，你应该标注发型和颜色，特别是如果数据集角色有不同的发型和颜色。如果你不标注它们，那么当你在生成期间提示不同的风格或颜色时，提示会与LoRA冲突。

如果你使用触发词，它应该在标注的开头附近。

AI工具包会从训练数据目录中读取.txt标注文件，其中标注文件与图像同名，或者你可以直接在AI工具包中创建标注。

另一个选择是使用自定义的ComfyUI节点和工作流，如[ComfyUI-JoyCaption](https://github.com/1038lab/ComfyUI-JoyCaption?ref=hubwiz.com)来生成标注，但生成的标注之后需要一些编辑。

### 5.3 创建新任务

一旦你有了数据集，就可以通过点击*New Job*来创建训练任务。

![](https://www.hubwiz.com/blog/content/images/2026/04/image-4.png)

我将在此部分附上免责声明，这些设置是对我有效的——我不声称这些是最佳或唯一有效的设置。当涉及到LoRA训练设置时，有很多不同的观点和经验！（当然，不同模型之间会有差异）

有很多设置无法在这里详细涵盖，但更多关于设置的细节可以在以下指南中找到：[Ostris AI工具包LoRA训练用于扩散模型微调 | RunComfy](https://www.runcomfy.com/trainer/ai-toolkit/getting-started?ref=hubwiz.com)

许多设置被设置为良好的起始值，所以不需要更改所有设置，但有一些重要的需要检查和更新：

- **训练名称**：不言自明，但如果你有很多保存的训练任务，给它一个有意义的名字是明智的。
- **触发词**：触发词不是强制性的，但很有用，特别是对于角色LoRA，因为它提供更多控制和灵活性。
- **模型架构**：这是主要的模型选择，有很多模型会在使用时自动下载，所以确保你有足够的磁盘空间，因为一些模型可能有40GB以上。
- **低显存**：当只有16GB显存在本地运行时，我一直启用这个，当使用24GB以上显存的RunPod时，对于除Z-Image外的所有模型我仍然需要保持启用。
- **量化**：我保持在float8，但你可以降到更低的设置以节省内存，但可能会有质量影响。
- **目标**：如前所述，有LoRA或LoKr选项。在这些测试中全部使用LoRA，但在某些情况下LoKr实验可能值得。
- **线性秩**：这是网络维度，如前所述，经过一些测试后我坚持使用32，因为我发现16不能产生好结果。如果你想更改网络Alpha，你必须点击*Show Advanced*并在设置中手动更改*linear\_alpha*行。
- **数据类型**：BF16是默认值，但如果你真的需要，可以更改为FP16或FP32。
- **保存间隔**：这控制在训练期间创建多少个中间LoRA。这很有用，因为有时训练期间较早的版本实际上是最好的，特别是在训练过度的情况下。我倾向于每500步保存一次。
- **批量大小**：默认值1效果很好，如果你有足够的显存，可以推到2。更高的值应该会减少训练时间，但如果你远高于2，可能会影响质量。
- **优化器**：我通常使用*AdamW8bit*，我尝试过*Adafactor*但似乎没有得到好结果。
- **时间步类型**：我从*Weighted*开始，但在几个……（行截断到2000字符）

其他设置在链接的文章中有介绍，涉及更技术性的领域，在这些测试中它们被保留为默认值。

#### 步骤/轮次

AI工具包不使用轮次（Epochs），它只有总步数作为设置。指导方针仍然相同，角色LoRA通常需要约1,500-2,500步，每张图像约100次传递。

太多步骤可能导致过度训练，所以如果你有较少的图像，你可能需要减少步数。你还应该在训练期间关注样本，以查看模型何时达到最佳点。

#### 数据集

确保你打算使用的训练数据集在*Target Dataset*选项中被选中。你还可以添加*Default Caption*，以防你遗漏了任何标注，这应该是简单的并使用\[trigger\]引用触发词。

我使用了默认分辨率选项，但如果需要，你可以包含或排除分辨率。

#### 样本

在屏幕下方，你可以调整*Sample Every*，这改变训练期间它会停止创建样本图像的频率。由于这在训练期间需要时间，我将其增加到每500个样本一次，以匹配LoRA保存的频率。我还将样本图像数量减少到3。

样本图像的提示可以根据需要编辑。我添加了我的触发词。

完成所有这些后，你可以点击*Create Job*将其添加到任务队列，此时不会启动任务。

### 5.4 训练队列

点击左侧的*Training Queue*选项将显示当前排队的任务和任务状态。要启动任务，你需要点击任务旁边的播放（三角形）选项，还要点击屏幕右上角的*Start*，那里有队列状态。

一旦启动，眼睛符号将带你进入任务的当前详情，显示日志信息、样本和损失信息。

如果你查看日志，你应该会看到AI工具包下载它需要的模型，创建一些参考图像，然后开始训练。现在是去做点别的事情的时候，只是偶尔检查一下以确保一切继续进行。

可能是一个小时、六个小时以上，或介于两者之间的任何时间，取决于步数、选择的模型和其他设置。

失败的运行最可能发生在模型下载或训练的前几步，此时OOM的风险最高。

务必在生成样本时查看它们，因为它们可以表明你是否正在达到过度训练点。你可以在任务仍在训练时下载中间LoRA。

你可以向队列添加多个任务，使它们在彼此之后自动运行。

## 6、示例结果

我用许多不同的训练集和模型完成了多次LoRA训练运行。为了比较一些示例，我保持简单——一个角色的15张图像的单个集合。原始图像是AI生成的，带有角色表以创建一系列图像。这不是最理想的，但我挑选了最好的图像以确保它们尽可能接近，唯一的小问题是皮肤质量不如真实图像好，然而，我做的其他训练运行是真实的人，所以我也会根据那些评论细节。

鉴于LoRA训练需要多长时间，我还将这些示例中的步数限制为1,500，注意到在某些情况下更长的运行可能更好。LoRA训练是一项反复尝试的活动，有很多变量，因此每个人都会有不同的体验。这里的目的是给出一些一般性的示例和评论，以帮助人们在自己的旅程中引导。每个人的结果都会不同，数据集可能产生巨大差异。

下面展示了几个训练集图像作为参考。对于标注，我包含了发型和颜色，以及服装，以便我可以改变这些方面，所以比较是基于脸型、眼睛、鼻子、嘴唇等。我也没有将其标注为照片，理论上这意味着生成的LoRA应该能够继承其他风格——标题图像就是这样创建的。

![](https://www.hubwiz.com/blog/content/images/2026/04/image-5.png)

### 6.1 Z-Image Turbo

我预计Z-Image Turbo会产生好结果，在某些情况下确实不错，但它出人意料地不可预测，需要多次运行才能得到我认为质量合理的结果。我尝试了所有三个不同的模型——Z-Image Turbo、Z-Image De-Distilled和Z-Image Base——令人惊讶地发现Z-Image De-Distilled似乎给出了最好的结果，而不是我预期的Z-Image Base。

在某些输出上，我需要将LoRA强度推到2以上才能获得好结果，而且通常我发现强度需要高于1。质量还可以，但不突出。

下面的集合使用了用Z-Image Base训练的LoRA，第一张图像是没有LoRA的参考。

![](https://www.hubwiz.com/blog/content/images/2026/04/image-6.png)

LoRA在Z-Image De-Distill上更强，如果将强度增加到1.5以上会迅速崩溃。

![](https://www.hubwiz.com/blog/content/images/2026/04/image-7.png)

这些图像可能对Z-Image LoRA不太公平，因为我的一些其他运行更好，可能是Z-Image与这个数据集不太配合。总的来说，我的体验是混合的，皮肤质量尤其像蜡，整体图像质量受到LoRA的影响。

作为一个简单的测试，我尝试了一个面部比较应用（虽然我不认为它们特别好），输出得分在50-60%之间，应用认为很可能是同一个人。"无LoRA"版本得分低于50%。

另外值得注意的是，这些使用LoRA的生成是针对微调模型的，因为这比原始Z-Image Turbo给出了更好的结果，这令人惊讶，因为LoRA有时与微调变体配合不好。

### 6.2 Flux.2 Klein 9B

Flux.2 Klein 9B在LoRA生成方面比Z-Image有了很大进步，需要更多显存和更长的处理时间。我的初始结果很糟糕，但在这个样本上它表现得更好。

![](https://www.hubwiz.com/blog/content/images/2026/04/image-8.png)

Flux.2 Klein LoRA相对较强，通常在强度为1左右效果最好。相似度很好，在比较应用上获得约60%以上（应用认为很可能是同一个人）。

![](https://www.hubwiz.com/blog/content/images/2026/04/image-9.png)

我认为质量比Z-Image好，皮肤仍然有点像蜡，但这可能也是从数据集传来的。Flux.2 Klein LoRA在相同的32/32网络秩和Alpha设置下比Z-Image LoRA略小。

这些输出是用Flux.2 Klein 9B精炼模型生成的，而不是蒸馏模型。

### 6.3 Qwen Image 2512

Qwen Image训练推向40GB显存，需要时间但结果值得。质量的提高很可能与LoRA大小是Z-Image和Flux.2 Klein的3倍直接相关，即使设置相同。令人惊讶的是，它也比Flux.2 Dev LoRA更大。

![](https://www.hubwiz.com/blog/content/images/2026/04/image-10.png)

我发现最好的结果是将强度保持在1以下，通常为0.8-0.9。皮肤细节更好（即使数据集有问题），整体图像有更自然和逼真的感觉。

![](https://www.hubwiz.com/blog/content/images/2026/04/image-11.png)

在比较应用中，相似度与Flux.2 Klein相似，约为60%。与Z-Image一样，使用LoRA的生成在精炼的Qwen Image模型上比在原始Qwen Image 2512上更好。

### 6.4 Flux.2 Dev

Flux.2的最终结果也令人印象深刻，但需要很长时间才能成功训练，最终需要80GB显存的RunPod。Flux.2 Dev也是所有模型中训练最慢的。

![](https://www.hubwiz.com/blog/content/images/2026/04/image-12.png)

与Qwen Image一样，最佳强度通常在1左右，图像质量很好，但感觉与Qwen Image非常不同，但这可能反映了Qwen Image和Flux.2 Dev之间固有的风格差异。

![](https://www.hubwiz.com/blog/content/images/2026/04/image-13.png)

应用比较测试得分略低于Qwen Image，然而，在比较使用同一LoRA创建的多个图像时，比较得分超过70%，远高于任何其他模型在比较同一LoRA创建的两张图像时的得分。

## 7、结束语

我开始为我当前正在使用的模型构建LoRA，并成功实现了这一目标，然而，除了Z-Image外，我不得不为所有这些使用RunPod实例。这并不是一件坏事，假设你对成本满意，因为鉴于训练LoRA所需的时间，它可能最好在RunPod上运行，让你的机器自由地进行生成。

LoRA生成是一个耗时的过程，当一个生成在数小时后失败或表现不佳时充满挫折，所以令人欣慰的是，特别是Qwen Image在生成高质量LoRA方面似乎很可靠，不需要多次迭代。

我对Z-Image感到失望，但我希望一些进一步的调整会改善输出质量。Flux.2 Klein确实在一些运行中产生了好结果，但它出人意料地重，所以我会质疑什么时候我会在Qwen Image上使用它，后者只用小幅硬件需求提升就给出了好得多的结果。

Flux.2 Dev的质量与Qwen Image相当，但有时我很难在RunPod上找到能够运行Flux.2 Dev训练的可用硬件，因为显存需求太高，所以这目前限制了它的使用。

这让我想到我最可能专注于Qwen Image的LoRA，可能再试验一些Z-Image以提供快速生成选项。

但关键是Ostris AI工具包是一个坚实、可靠的应用程序，在LoRA训练方面效果很好。有很多强大的设置我还没有机会试验，但即使使用标准默认值，你也可以在一系列模型上生成出色的LoRA。

---

原文链接: [How to Train a LoRA (Ostris AI Toolkit)](https://diffusiondoodles.substack.com/p/how-to-train-a-lora-ostris-ai-toolkit)

汇智网翻译整理，转载请标明出处