Huge difference in Lora training quality VS version 24.x

在 Kohya SS 中用同一数据集训练 NoobAIXL(SDXL)LoRA 时,如果新版(v25+)出图提示词遵循度和角色还原度明显不如 24.x,通常不是训练质量整体退化,而是新版把 Text Encoder 学习率默认设为 0,导致实际只训练 UNet、不训练文本编码器 LoRA。优先检查配

快速结论:在 Kohya SS 中用同一数据集训练 NoobAIXL(SDXL)LoRA 时,如果新版(v25+)出图提示词遵循度和角色还原度明显不如 24.x,通常不是训练质量整体退化,而是新版把 Text Encoder 学习率默认设为 0,导致实际只训练 UNet、不训练文本编码器 LoRA。优先检查配置里的 Text Encoder learning rate 是否被静默改成了 0。

适用环境:Issue 涉及 Kohya SS(GUI 训练路径)、模型 NoobAIXL(SDXL)、LoRA 训练,配置为 LyCORIS/LoCon、dim/alpha 192、AdamW、cosine、250 epochs,新旧版本对比为 kohya_ss 24.x 与新版(v25+)。Issue 正文与排错记录未确认操作系统、Python、CUDA、显卡型号,这些项目请以本地实际环境为准。

最快修复方案:在新版 kohya_ss 中把 Text Encoder learning rate 从 0 改回 0.0001(与旧配置中 Unet / learning rate 一致),其余设置保持与旧的可用配置相同,用同一数据集重新训练。这是 Issue 排错中给出的明确首选处理方向,但最终是否恢复到 v24 质量需由提问者重训后确认。

注意事项:该修复基于对 old-working.json 与 new-notworking.json 的配置比对,认为唯一关键差异是 text_encoder_lr;在提问者按此重训并回报之前,结论尚未被完全验证。若改回 0.0001 后质量仍不匹配,需要补充确切新版版本号(如 v25.x / v26.0.0)、保存的训练 TOML 或完整启动命令,以及使用的 captions/triggers 样本再排查。

问题场景

用户在 Kohya SS 中训练一个面向 NoobAIXL(SDXL)的 LoRA,使用同一份数据集分别用 24.x 与新版 kohya_ss 各跑一次训练。结果新版在 prompt adherence(提示词遵循度)和具体角色学习上明显变差,v24 效果更好。用户提供了 old-working.json 和 new-notworking.json 两份配置,希望知道如何在新版调参以复现旧版结果。

报错原文

Huge difference in Lora training quality VS version 24.x

原因分析

排错记录比对两份配置后确认:几乎所有训练超参数都一致(LyCORIS/LoCon、dim/alpha 192、AdamW、cosine、250 epochs、相同底模与路径等),唯一实质性差异是 text_encoder_lr——旧可用配置为 0.0001,新不可用配置为 0。

在当前 GUI 训练路径中,当 Text Encoder LR 为 0 而 Unet LR 非 0 时,会触发 UNet-only 训练(network_train_unet_only),即不训练 Text Encoder LoRA。这会直接削弱模型对提示词和角色身份的遵循能力,因此表现为训练质量“变差”。同时,新版 LoRA UI 中 “Text Encoder learning rate” 的默认值就是 0,所以从旧配置重建配置时可能被静默改成仅训练 UNet,而用户不易察觉。相关 Issue #3388(“TE keys missing”)被判定为同一根因。

环境排查

  • 确认当前 kohya_ss 版本号(例如 v25.x / v26.0.0)。
  • 检查训练配置中的 Text Encoder learning rate 是否被设为 0。
  • 检查 Unet learning rate 是否非 0(非 0 时会触发 UNet-only)。
  • 对比新旧配置的 text_encoder_lr、unet_lr 及是否出现 network_train_unet_only 效果。
  • 确认是否使用相同的底模、数据集路径和 captions/triggers。
  • 操作系统、Python、CUDA、PyTorch、显卡型号:Issue 未确认,请以本地实际环境为准。

解决步骤

  1. 打开新版 kohya_ss 的 LoRA 训练界面或对应配置。
  2. 将 Text Encoder learning rate 设为 0.0001(与旧配置中 Unet / learning rate 保持一致)。
  3. 其余参数保持与旧可用配置相同(LyCORIS/LoCon、dim/alpha 192、AdamW、cosine、250 epochs、相同底模与路径等)。
  4. 使用同一数据集重新训练。
  5. 对比新训练结果与 v24 结果的 prompt adherence 和角色还原度。
  6. 若仍不匹配,整理并回报:确切新版版本号、保存的训练 TOML 或完整启动命令、captions/triggers 样本,以便进一步排查。

验证方法

用调整后 text_encoder_lr = 0.0001 的配置重训同一数据集,观察 Text Encoder LoRA 是否正常生成(不再缺失 TE keys),并对比出图的 prompt adherence 与角色身份还原度是否恢复到接近 v24 的水平。如仍未恢复,则说明还存在其他差异,需要按上文补充版本、TOML 和 captions 信息继续排查。

参考来源

bmaltais/kohya_ss #3430

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 25869

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注