
Huge difference in Lora training quality VS version 24.x
快速结论:该问题通常发生在从 kohya_ss v24.x 升级到 v25+ 版本后,使用相同数据集训练 LoRA(面向 SDXL / NoobAIXL)时,新版本生成的模型在提示词遵循度和角色特征学习上显著变差。优先排查:在训练配置中将 Text Encoder learning rate 设置为非零值(例如 0.0001),确保文本编码器 LoRA 被正常训练。
问题场景
用户在 kohya_ss 最新版本(相较于 v24.x)训练 LoRA 模型,用于 NoobAIXL(SDXL)模型。使用完全相同的训练数据集和基本相同超参数文件,但新版本训练出的模型在提示词遵循度(prompt adherence)和特定角色学习(specific character learning)效果上明显下降,v24.x 版本效果远好于新版本。
报错原文
Huge difference in prompt adherence and specific character learning - v24 is way better.
无标准错误日志/报错代码,属于训练质量差异问题。
原因分析
根据 Issue 讨论,新旧配置文件对比发现一个关键差异:在 v25+ 版本的 kohya_ss GUI 中,Text Encoder learning rate 的默认值被设为 0,而在 v24.x 的工作配置中该值为 0.0001(与 Unet learning rate 相同)。当 text_encoder_lr = 0 且 unet_lr 非零时,系统会强制启用 network_train_unet_only(仅训练 Unet LoRA),导致文本编码器(Text Encoder)部分的 LoRA 完全不被训练。这直接影响了角色特征学习和提示词遵循能力,因为文本编码器负责理解提示词的含义。用户很可能在重新创建训练配置时未手动修改该默认值,从而无意中切换到 UNet-only 训练模式。
环境排查
- kohya_ss 版本:确认使用的是 v24.x 版本还是 v25+ / v26.x 版本。
- 训练配置文件:对比新旧版本生成的训练配置文件(.json / .toml),重点关注
text_encoder_lr参数值。 - 训练模式:检查是否无意中启用了
network_train_unet_only(通常在配置中有对应布尔值或由 lr 设置自动触发)。 - 模型/数据集:确认训练使用的基座模型(如 NoobAIXL)、数据集、触发词、caption 等在所有测试中完全一致。
解决步骤
- 重新调整 Text Encoder learning rate:在 kohya_ss GUI 训练界面中找到 “Text Encoder learning rate” 参数,将其设置为与 Unet learning rate 相同的非零值(建议从
0.0001开始,与 v24.x 工作配置一致)。 - 保留其他所有超参数不变(包括优化器 AdamW、调度器 cosine、LoRA 类型 LyCORIS/LoCon、维数 dim/alpha = 192、epochs 等)。
- 使用相同的训练数据集和基座模型,重新执行一次完整的 LoRA 训练。
- 如果问题仍未解决,请向开发者提供:
– 精确的 kohya_ss 新版本号(例如 v25.x、v26.0.0);
– 导出的完整训练 TOML 配置文件或启动命令;
– 使用的 caption/触发词示例。这些信息有助于进一步定位可能存在的其他配置差异或 bug。
验证方法
使用新版本训练出的 LoRA 模型进行推理测试,观察提示词遵循度和角色特征学习效果是否恢复到与 v24.x 版本相同或接近的水平。可通过同一组测试 prompt 进行直观对比。



