本文档由 AI 生成。如果您发现任何错误或有改进建议,欢迎贡献! 在 GitHub 上编辑TrainLoraNode 使用提供的潜空间数据和条件数据,在扩散模型上创建并训练 LoRA(低秩适应)模型。该节点允许您使用自定义训练参数、优化器和损失函数来微调模型。节点输出训练好的 LoRA 权重、训练损失指标以及完成的总训练步数。
输入参数
| 参数名 | 数据类型 | 必填 | 取值范围 | 描述 |
|---|---|---|---|---|
model | MODEL | 是 | - | 要训练 LoRA 的基础模型。 |
latents | LATENT | 是 | - | 用于训练的潜空间数据,作为模型的数据集/输入。支持列表输入。 |
positive | CONDITIONING | 是 | - | 用于训练的正向条件数据。支持列表输入。 |
batch_size | INT | 是 | 1–10000 | 每步训练使用的样本数(默认值:1)。 |
grad_accumulation_steps | INT | 是 | 1–1024 | 梯度累积步数。累积多步梯度后再更新权重,效果等同于增大 batch size,但不增加显存占用(默认值:1)。 |
steps | INT | 是 | 1–100000 | 训练 LoRA 的总步数(默认值:16)。 |
learning_rate | FLOAT | 是 | 0.0000001–1.0 | 训练时使用的学习率(默认值:0.0005)。 |
rank | INT | 是 | 1–128 | LoRA 层的秩。值越高可捕获更多细节,但显存占用越大(默认值:8)。 |
optimizer | COMBO | 是 | ”AdamW" "Adam" "SGD" "RMSprop” | 训练时使用的优化器(默认值:“AdamW”)。 |
loss_function | COMBO | 是 | ”MSE" "L1" "Huber" "SmoothL1” | 训练时使用的损失函数(默认值:“MSE”)。 |
seed | INT | 是 | 0–18446744073709551615 | 随机种子,用于 LoRA 权重初始化和噪声采样(默认值:0)。 |
training_dtype | COMBO | 是 | ”bf16" "fp32" "none” | 训练使用的数据类型。none 表示保留模型原生精度;对 fp16 模型会自动启用 GradScaler(默认值:“bf16”)。 |
lora_dtype | COMBO | 是 | ”bf16" "fp32” | LoRA 权重存储使用的数据类型(默认值:“bf16”)。 |
quantized_backward | BOOLEAN | 是 | - | 当 training_dtype 为 none 且使用量化模型时,启用量化矩阵乘法进行反向传播(默认值:False)。 |
algorithm | COMBO | 是 | ”LoRA" "LoHa" "LoKr" "OFT” | 训练时使用的权重适配器算法(默认值:“LoRA”)。 |
gradient_checkpointing | BOOLEAN | 是 | - | 启用梯度检查点,通过重计算激活值来减少显存使用(默认值:True)。 |
checkpoint_depth | INT | 是 | 1–5 | 梯度检查点的模块嵌套深度,深度越大节省的显存越多(默认值:1)。 |
offloading | BOOLEAN | 是 | - | 训练期间将模型权重卸载到 CPU 以节省显存,需同时启用 gradient_checkpointing(默认值:False)。 |
existing_lora | COMBO | 是 | 多种可选选项 | 选择现有 LoRA 文件以继续训练,总步数会自动累积。设置为 [None] 表示创建新的 LoRA(默认值:“[None]”)。 |
bucket_mode | BOOLEAN | 是 | - | 启用分辨率分桶模式,需要来自 ResolutionBucket 节点的输入(默认值:False)。 |
bypass_mode | BOOLEAN | 是 | - | 通过前向钩子而非直接修改权重来应用适配器,适用于量化模型(默认值:False)。 |
输出结果
| 输出名称 | 数据类型 | 描述 |
|---|---|---|
lora | LORA_MODEL | 训练好的 LoRA 权重,可保存或通过 LoraModelLoader 节点应用于其他模型。 |
loss_map | LOSS_MAP | 训练过程中的损失历史,可连接到 LossGraphNode 进行可视化。 |
steps | INT | 完成的总训练步数(包括从现有 LoRA 继承的先前步数)。 |