TrainLoraNode 使用提供的潜空间数据和条件数据，在扩散模型上创建并训练一个 LoRA（低秩适配）模型。它允许您使用自定义训练参数、优化器和损失函数对模型进行微调。该节点输出训练好的 LoRA 权重、损失历史记录图以及完成的总训练步数。

## 输入

| 参数 | 描述 | 数据类型 | 是否必填 | 范围 |
| --- | --- | --- | --- | --- |
| `模型` | 要训练 LoRA 的模型。 | MODEL | 是 | - |
| `潜变量` | 用于训练的潜空间数据，作为模型的数据集/输入。 | LATENT | 是 | - |
| `正向条件` | 用于训练的正面条件数据。 | CONDITIONING | 是 | - |
| `批次大小` | 训练使用的批次大小（默认值：1）。 | INT | 是 | 1-10000 |
| `梯度累积步数` | 训练使用的梯度累积步数（默认值：1）。 | INT | 是 | 1-1024 |
| `步数` | 训练 LoRA 的步数（默认值：16）。 | INT | 是 | 1-100000 |
| `学习率` | 训练使用的学习率（默认值：0.0005）。 | FLOAT | 是 | 0.0000001-1.0 |
| `秩` | LoRA 层的秩（默认值：8）。 | INT | 是 | 1-128 |
| `优化器` | 训练使用的优化器（默认值："AdamW"）。 | COMBO | 是 | "AdamW"<br>"Adam"<br>"SGD"<br>"RMSprop" |
| `损失函数` | 训练使用的损失函数（默认值："MSE"）。 | COMBO | 是 | "MSE"<br>"L1"<br>"Huber"<br>"SmoothL1" |
| `种子` | 训练使用的随机种子（用于 LoRA 权重初始化和噪声采样的生成器）（默认值：0）。 | INT | 是 | 0-18446744073709551615 |
| `训练数据类型` | 训练使用的数据类型。'none' 保留模型原生的计算数据类型，而非覆盖它。对于 fp16 模型，会自动启用 GradScaler（默认值："bf16"）。 | COMBO | 是 | "bf16"<br>"fp32"<br>"none" |
| `LoRA 数据类型` | LoRA 使用的数据类型（默认值："bf16"）。 | COMBO | 是 | "bf16"<br>"fp32" |
| `quantized_backward` | 当使用 `训练数据类型` 为 'none' 且在量化模型上训练时，启用后可在反向传播中使用量化矩阵乘法（默认值：False）。 | BOOLEAN | 是 | - |
| `算法` | 训练使用的算法。 | COMBO | 是 | 提供多个选项 |
| `梯度检查点` | 训练时使用梯度检查点（默认值：True）。 | BOOLEAN | 是 | - |
| `checkpoint_depth` | 梯度检查点的深度级别（默认值：1）。 | INT | 是 | 1-5 |
| `offloading` | 训练期间将模型权重卸载到 CPU 以节省 GPU 内存（默认值：False）。 | BOOLEAN | 是 | - |
| `现有LoRA` | 要附加到的现有 LoRA。设置为 None 以创建新的 LoRA（默认值："[None]"）。 | COMBO | 是 | 提供多个选项 |
| `bucket模式` | 启用分辨率桶模式。启用后，期望从 ResolutionBucket 节点接收预分桶的潜空间数据（默认值：False）。 | BOOLEAN | 是 | - |
| `bypass_mode` | 启用训练旁路模式。启用后，适配器通过前向钩子应用，而非修改权重。对于无法直接修改权重的量化模型特别有用（默认值：False）。 | BOOLEAN | 是 | - |

**注意：** 正面条件输入的数量必须与潜空间图像的数量匹配。如果仅提供一个正面条件但有多个图像，它将自动对所有图像重复使用。

**关于 `training_dtype` 的说明：** 当设置为 "none" 时，会保留模型原生的计算数据类型。对于 fp16 模型，会自动启用 GradScaler 以防止梯度计算过程中的下溢。如果同时启用了 `fp16_accumulation`（通过 `--fast` 标志），这种组合可能在数值上不稳定，并可能导致 NaN 值。

**关于 `quantized_backward` 的说明：** 此参数仅在 `training_dtype` 设置为 "none" 且模型为量化模型时相关。它会在反向传播过程中启用量化矩阵乘法。

**关于 `bypass_mode` 的说明：** 启用后，适配器通过前向钩子应用，而非直接修改模型权重。这对于无法直接修改权重的量化模型特别有用。

## 输出

| 输出名称 | 描述 | 数据类型 |
| --- | --- | --- |
| `LoRA` | 训练好的 LoRA 权重，可以保存或应用于其他模型。 | LORA_MODEL |
| `损失` | 一个包含随时间变化的训练损失值的字典。 | LOSS_MAP |
| `步数` | 完成的总训练步数（包括来自现有 LoRA 的任何先前步数）。 | INT |

> 本文档由 AI 生成。如果您发现任何错误或有改进建议，欢迎贡献！ [在 GitHub 上编辑](https://github.com/Comfy-Org/embedded-docs/blob/main/comfyui_embedded_docs/docs/TrainLoraNode/zh.md)

---
**Source fingerprint (SHA-256):** `df315ef416ff3ce81e6a526af2c4e5115980e6c35830825967e7189d4f8541d8`
