跳转到主要内容
本文档由 AI 生成。如果您发现任何错误或有改进建议,欢迎贡献! 在 GitHub 上编辑
TrainLoraNode 使用提供的潜空间数据和条件数据,在扩散模型上创建并训练 LoRA(低秩适应)模型。该节点允许您使用自定义训练参数、优化器和损失函数来微调模型。节点输出训练好的 LoRA 权重、训练损失指标以及完成的总训练步数。

输入参数

参数名数据类型必填取值范围描述
modelMODEL-要训练 LoRA 的基础模型。
latentsLATENT-用于训练的潜空间数据,作为模型的数据集/输入。支持列表输入。
positiveCONDITIONING-用于训练的正向条件数据。支持列表输入。
batch_sizeINT1–10000每步训练使用的样本数(默认值:1)。
grad_accumulation_stepsINT1–1024梯度累积步数。累积多步梯度后再更新权重,效果等同于增大 batch size,但不增加显存占用(默认值:1)。
stepsINT1–100000训练 LoRA 的总步数(默认值:16)。
learning_rateFLOAT0.0000001–1.0训练时使用的学习率(默认值:0.0005)。
rankINT1–128LoRA 层的秩。值越高可捕获更多细节,但显存占用越大(默认值:8)。
optimizerCOMBO”AdamW"
"Adam"
"SGD"
"RMSprop”
训练时使用的优化器(默认值:“AdamW”)。
loss_functionCOMBO”MSE"
"L1"
"Huber"
"SmoothL1”
训练时使用的损失函数(默认值:“MSE”)。
seedINT0–18446744073709551615随机种子,用于 LoRA 权重初始化和噪声采样(默认值:0)。
training_dtypeCOMBO”bf16"
"fp32"
"none”
训练使用的数据类型。none 表示保留模型原生精度;对 fp16 模型会自动启用 GradScaler(默认值:“bf16”)。
lora_dtypeCOMBO”bf16"
"fp32”
LoRA 权重存储使用的数据类型(默认值:“bf16”)。
quantized_backwardBOOLEAN-training_dtypenone 且使用量化模型时,启用量化矩阵乘法进行反向传播(默认值:False)。
algorithmCOMBO”LoRA"
"LoHa"
"LoKr"
"OFT”
训练时使用的权重适配器算法(默认值:“LoRA”)。
gradient_checkpointingBOOLEAN-启用梯度检查点,通过重计算激活值来减少显存使用(默认值:True)。
checkpoint_depthINT1–5梯度检查点的模块嵌套深度,深度越大节省的显存越多(默认值:1)。
offloadingBOOLEAN-训练期间将模型权重卸载到 CPU 以节省显存,需同时启用 gradient_checkpointing(默认值:False)。
existing_loraCOMBO多种可选选项选择现有 LoRA 文件以继续训练,总步数会自动累积。设置为 [None] 表示创建新的 LoRA(默认值:“[None]”)。
bucket_modeBOOLEAN-启用分辨率分桶模式,需要来自 ResolutionBucket 节点的输入(默认值:False)。
bypass_modeBOOLEAN-通过前向钩子而非直接修改权重来应用适配器,适用于量化模型(默认值:False)。
注意: 正向条件数据的数量必须与潜空间图像的数量匹配。如果只提供了一个正向条件但有多张图像,该条件将自动为所有图像重复使用。

输出结果

输出名称数据类型描述
loraLORA_MODEL训练好的 LoRA 权重,可保存或通过 LoraModelLoader 节点应用于其他模型。
loss_mapLOSS_MAP训练过程中的损失历史,可连接到 LossGraphNode 进行可视化。
stepsINT完成的总训练步数(包括从现有 LoRA 继承的先前步数)。