Skip to content

[P2] UI:正式支持 cosine_with_min_lr 与 min_lr_ratio / num_cycles #250

Description

@wochenlong

背景

用户目前只能通过「其他设置 → ui_custom_params」写入危险覆盖参数,才能使用带最小学习率的余弦调度,例如:

lr_scheduler = "cosine_with_min_lr"
lr_scheduler_min_lr_ratio = 0.1
lr_scheduler_num_cycles = 1
lr_warmup_steps = 0

其中 lr_warmup_steps 已在正式表单中;前三项应一并作为正式 UI 能力暴露,避免依赖自定义覆盖。

现状

参数 sd-scripts / Kohya 当前 UI
lr_scheduler=cosine_with_min_lr train_util.get_scheduler_fix 已支持 ❌ 下拉未包含
lr_scheduler_min_lr_ratio ✅ 官方 CLI ❌ schema 未暴露
lr_scheduler_num_cycles ✅(cosine_with_min_lr 内部按 num_cycles/2 ⚠️cosine_with_restarts 时显示
lr_warmup_steps ✅ 已有

结论:引擎已通,缺产品层暴露(共享 LR_OPTIMIZER / 各页 schema)。

目标(合并为一个 Issue)

  1. 学习率调度器选项增加 cosine_with_min_lr
  2. 选中后显示 lr_scheduler_min_lr_ratio(建议默认 0.1,可配置)
  3. 在适用调度器下显示 lr_scheduler_num_cycles(含 cosine_with_restartscosine_with_min_lr),并在描述中注明 cosine_with_min_lr 与 restarts 的语义差异(训练脚本内 /2
  4. lr_warmup_steps 保持现有字段;文档/描述可点出与 cosine_with_min_lr 的常用组合

覆盖使用共享 LR schema 的主路径(SDXL / Flux / Anima 等 Kohya 系);Krea2(Musubi 白名单已含相关字段)、Anima Fast 需在实现时做一次可用性确认,不支持则隐藏或标注。

非目标

  • 引入全新调度算法实现(上游已有)
  • 通过 ui_custom_params 以外的「任意 scheduler 字符串」万能入口
  • 改变默认调度器(仍可保持现有默认,如 cosine_with_restarts / constant

验收

  • 训练页可不写 ui_custom_params,直接选 cosine_with_min_lr 并设置 min_lr_ratio / num_cycles / warmup
  • 导出 TOML 含上述字段;短训冒烟 Loss/LR 曲线合理(末段 LR 不低于设定比例)
  • 不回归:原有 scheduler 选项与仅 cosine_with_restarts 显示 cycles 的行为(扩展后仍正确)
  • 简短说明(字段 description 或 docs)写明 min_lr_ratio 含义

优先级

P2(体验补齐;已有 custom_params workaround)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium priority; planned but not immediate UX blockerenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions