Skip to content

About

LoRA training GUI with Anima model support, based on kohya-ss/sd-scripts

Resources

Stars

18 stars

Watchers

0 watching

Forks

Repository files navigation

lora-scripts-anima

✨ 多训练核心 LoRA 工具:Anima、SDXL 与 Krea 2 ✨

面向本地运行的 LoRA 训练 GUI。Anima / SDXL 使用 kohya-ss/sd-scripts(位于 vendor/sd-scripts/),Krea 2 LoRA 使用 kohya-ss/musubi-tuner。

GitHub 仓库星标 许可证

English · 日本語

项目通过训练核心注册表隔离不同后端;LyCORIS 是通过 lycoris.kohya 挂载的可选适配器后端。

支持的模型类型

训练类型 底模
LoRA SDXL
LoRA Anima(Qwen3 + T5 双编码器)
LoRA Krea 2 RAW DiT(musubi-tuner)

ℹ️ Krea 2 在训练前必须生成 latent 与 Qwen3-VL 文本编码输出两类缓存。界面会在“开始训练”前验证缓存是否完整、且是否仍与图片、标签和模型匹配。

ℹ️ vendor/sd-scripts/ 训练引擎本身支持 SD3 / FLUX / HunyuanImage / Lumina 等更多模型,但当前 UI 尚未提供这些模型的训练入口。

功能简介

  • 训练 WebUI — 一站式工作台,包含 LoRA 训练表单、TOML 配置预览、配置导入导出和训练历史记录
  • 训练前预览 — 时间步分布、学习率曲线与矩阵结构三个本地预览弹窗,见下一节
  • LyCORIS 适配器面板 — 支持 LoCon / LoHa / LoKr,按算法动态显示参数,可选内核后端(auto / Triton / TileLang / compile / Torch),并支持 LoRA+ 与 Anima 训练范围细化
  • 多种优化器 — AdamW、Lion、Prodigy、CAME、StableAdamW、Adafactor、ScheduleFree、Adan、AdEMAMix、Muon 等常用优化器,外加内置的 LoRA-RITE 与测试中的 LoRA-Muon,各自带默认值与约束提示
  • 实时硬件监控 — 显示 GPU 利用率、显存与温度,以及 CPU/RAM 使用率;集成 Chart.js 动态图表、TensorBoard 和实时日志
  • 原生标签编辑器 — 内置图片标签编辑器,支持批量查找替换、去重、排序、清理等操作
  • Tagger 工作台 — 集成 WD EVA02-Large、WD ViT-Large、CL Tagger、Camie Tagger 与 PixAI Tagger v1.0,支持单图检查、分类阈值控制和批量标签写入;PixAI 使用本地 PyTorch 推理,支持风格分类,首次下载约 1.95 GB;另可对接 OpenAI 兼容(Chat Completions / Responses)或 Anthropic Messages 协议的 AI 打标
  • EmoSens 自适应优化器 — 内置 EmoSens v3.9,对 Anima DiT 训练有更好的收敛效果
  • 国际化(i18n) — 中文、英文和日语界面及内置指南,支持浏览器语言自动检测并保存语言偏好
  • 三种主题 — 浅色、深色与 ComfyUI 主题,支持跟随系统、手动切换
  • 后端连接状态指示器 — 实时显示前后端连接状态及断连时长
  • 慢速远程连接兼容 — 使用同源实时传输、弱网缩略图队列和版本化浏览器缓存,降低预览请求对实时状态传输的影响

训练前预览

时间步分布预览

在 训练时间步采样方式 下点击「查看时间步分布」,检查采样密度、Loss 权重和高 / 中 / 低噪声占比。可切换基础分布与整体训练分布,对比中位时间步的变化,并通过悬浮读数检查曲线。详见时间步指南。

时间步分布预览:概率密度曲线、Loss 权重与噪声区间占比

学习率曲线预览

在 学习率变化方式 下点击「查看学习率曲线」,预览预热、衰减与重启,读取各训练步的学习率。侧栏显示当前组件的生效学习率和预热步数,支持切换 DiT / 文本编码器;自行管理调度的优化器会显示相应说明。详见优化器指南。

学习率曲线预览:预热与余弦衰减曲线

矩阵结构预览

Anima 训练下,在 训练网络模块 下点击「结构预览」。按实际网络构造结果展示 LoRA / LoCon、LoHa 和 LoKr 的矩阵组合,可切换注意力、MLP 等模块,查看逐层形状、生效 rank / alpha、缩放、匹配层数和参数统计。

入口同时显示 预计权重文件大小,随算法、rank、训练范围和保存精度自动更新。估算使用虚拟张量,无需加载底模或启动训练;统计实际保存张量与 safetensors 索引开销,不代表显存需求。详见矩阵结构与文件大小指南。

矩阵结构预览:LoKr 的 Kronecker 分解与参数量

项目结构

lora-scripts-anima/
├── vendor/sd-scripts/          ← Anima / SDXL 训练引擎(固定上游快照)
├── vendor/musubi-tuner/        ← Krea 2 训练核心(固定上游快照)
├── vendor/lycoris/             ← LyCORIS 适配器后端(固定上游快照)
├── vendor/emo_optimizer/       ← EmoSens 自适应优化器
├── vendor/lora_muon/           ← LoRA-Muon 测试优化器
├── backend/                    ← FastAPI 后端
│   ├── server/                 ← API 核心(路由、状态、代理)
│   ├── training/               ← 训练引擎封装(参数适配、字段注册表、进程管理)
│   ├── monitor/                ← 训练监控(GPU/系统/日志/预览/历史)
│   ├── tageditor/              ← 原生标签编辑器
│   ├── tagger/                 ← 打标模块(WD / CL / Camie / PixAI / AI 接口)
│   └── gui.py                  ← GUI 内部入口(由启动脚本调用)
├── frontend/                   ← Alpine.js SPA 前端
├── config/                     ← 本地配置与自动保存
├── docs/                       ← 参数指南与预览截图
├── tools/                      ← 启动、安装与运行工具;开发脚本位于 tools/dev/
├── start.bat / start.sh        ← 启动脚本
└── requirements.txt            ← 全项目唯一依赖清单(后端与训练核心共用,torch 由启动器单独安装)

使用方法

必要依赖

  • Python:需要 64 位 Python 3.12(项目基线版本,预编译依赖与安装流程均以此为准)
  • Git:用于下载和更新项目;Windows ZIP 下载版可在首次启动时自动安装
  • PyTorch 2.12.1 + CUDA 13.0:由启动脚本自动安装,兼容 RTX 30/40/50 全系列
  • NVIDIA 驱动 R580 或更高版本:CUDA 13.0 的最低驱动要求

Windows 用户无需提前安装 Python。 首次运行 start.bat 时,启动器会寻找 64 位 Python 3.12,并跳过 Microsoft Store 的 Python 占位符。

如果电脑只有 Python 3.13/3.14,可按提示为当前用户并行安装官方 Python 3.12。启动器不会卸载现有 Python,也不会修改系统默认 Python。下载时会显示进度、文件大小、速度和 ETA;静默安装阶段会显示加载动画。

Linux 用户需要自行安装 64 位 Python 3.12。多数 Python 安装已包含创建 venv 的功能;只有 Ubuntu/Debian 等系统提示缺少该功能时,才需要额外安装对应的软件包(例如 python3.12-venv)。

如果项目中已经存在由其他 Python 版本创建的不兼容 venv,请只删除或重命名项目内的 venv 文件夹,再重新运行当前平台的启动脚本。

GPU 系列 自动安装的 PyTorch CUDA
RTX 30 系 (Ampere) 2.12.1 13.0
RTX 40 系 (Ada) 2.12.1 13.0
RTX 50 系 (Blackwell) 2.12.1 13.0

更新项目代码后,已有旧版 venv(包括 Torch 2.10 + cu130)会在下次启动时自动升级到 PyTorch 2.12.1 + cu130、torchvision 0.27.1。已安装的 xformers 同步到 0.0.35,旧的外部 FlashAttention 保留但不再加载,Triton 同步到 3.7 系列;bitsandbytes 保持 CUDA 13 兼容检查,ONNX Runtime GPU 保持 1.27.0。未安装的可选库不会自动新增。

无 NVIDIA 显卡的机器仍会安装完整的 GPU 依赖环境并可正常运行 GUI,但训练功能需要 NVIDIA 显卡。

Krea 2 共享环境:Krea 2 与 sd-scripts 共用项目主 venv 和同一套 CUDA 版 PyTorch。根目录的 requirements.txt 是全项目唯一依赖清单,将共享依赖统一钉在 transformers 5.17.0 / tokenizers 0.23.1;安装时不再读取 vendor/ 内的依赖文件。

日常启动只进行快速元数据检查。版本匹配时,不会重复运行 pip、卸载或重装软件包,也不会导入完整的 Krea 2 运行栈。依赖同步完成后,以及执行 Krea 2 预检时,启动器会运行完整的导入验证。此过程不会修改 vendor/ 中的上游依赖文件。

旧版本遗留的 venv/cores/musubi 不再被读取、写入或自动删除。确认项目主 venv 可以正常训练后,可手动删除该目录以回收磁盘空间。

国内用户设置清华镜像:set PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple 后运行 start.bat。

Windows:直接下载 ZIP(小白推荐)

  1. 在 GitHub 点击 Code → Download ZIP,完整解压后双击 start.bat。
  2. 如果目录中没有 .git,启动器会询问是否安装 Git for Windows 并修复为可更新仓库;选择推荐项即可。
  3. 修复时只获取 main 分支,不获取其他分支和标签。若 ZIP 源码与最新版不同,待替换的源码会先备份到 bootstrap-backups/<时间>.zip。venv、模型、输出、缓存、日志和整个 config 用户配置目录不会参与源码同步,也不会被覆盖或清理。
  4. 源码同步完成后,启动器会自动重启一次,再创建 venv 并安装训练依赖。

Git 安装或源码同步前的仓库修复失败不会阻止原 ZIP 启动,下次运行仍可重试。若源码同步开始后失败,会停止启动并保留备份记录;解决报错后重新运行 start.bat 重试,避免启动不完整的源码。Python 或核心依赖安装失败时也会停止并显示双语错误。

使用 Git 克隆

git clone --depth 1 --single-branch --branch main --no-tags https://github.com/amenorira/lora-scripts-anima.git
cd lora-scripts-anima
git config pull.ff only

仅下载最新 main,后续可正常 git pull。需要完整历史或标签时,分别运行 git fetch --unshallow、git fetch --tags;开发者也可省略克隆选项。

首次切换 dev 时执行以下命令,之后用 git switch main / git switch dev 来回切换:

git config --add remote.origin.fetch "+refs/heads/dev:refs/remotes/origin/dev"
git fetch --no-tags origin
git switch --track origin/dev

快速开始

平台 安装 + 启动
Windows .\start.bat
Linux bash start.sh

首次启动会自动创建虚拟环境并安装所有依赖。启动后 GUI 自动打开 http://127.0.0.1:12333。

实时连接与慢速远程连接

TensorBoard 与 GUI 共用对外入口:默认访问 http://127.0.0.1:12333/tensorboard/,可直接在独立窗口打开该地址。内嵌页面沿用当前页面的域名、协议和端口;SSH 只需映射 GUI 端口,本地端口可以与服务器不同。远端终端显示服务器地址,无法自动得知 SSH 本地映射端口。

TensorBoard 子进程仅监听服务器回环地址,内部端口默认自动分配,--listen 不会将其单独暴露。旧的 --tensorboard-host 参数已弃用并忽略;--tensorboard-port 仅用于指定内部端口。启动期间显示等待提示,TensorBoard 就绪后统一打印访问地址;失败时提示异常并继续启动 GUI。详细日志位于 logs/tensorboard.log。

网页的 HTTP 请求和实时连接始终与当前页面同源(same-origin)。训练器不会自动配置 SSH、端口映射、代理、云平台专用逻辑或额外的实时端口。

  • /ws/realtime 仅传递小型 JSON 状态、进度、日志增量和硬件数据;命令、图片、文件和元数据仍使用 HTTP。
  • 侧栏只有在收到 WebSocket ready 消息和实时快照后,才会显示“后端已连接”。连续 2 秒没有有效实时数据时,只显示“实时数据延迟”;连接关闭且健康探测也失败后,才显示“后端离线”。
  • 后端重启会更换实例 ID。网页会清除旧实例的任务、进度、日志、曲线与硬件快照,并明确提示先前的内存任务状态未知;当前版本不会扫描或接管遗留训练进程。
  • UI 设置 → 慢速远程连接兼容默认开启:完整显示当前运行或历史记录的样本列表,缩略图以单请求、低优先级队列加载,并会在实时数据延迟时暂停。版本化缩略图可被浏览器缓存 24 小时;查看原图仍需用户主动点击。

后续更新

Windows 用户先关闭训练器,双击 update.bat,成功后运行 start.bat;也可在项目目录打开终端运行 git pull。更新当前分支(main 或 dev),仅允许快进;源码修改、暂存改动或分叉会停止更新。启动训练器不会自动更新源码。

旧版采样提示词、Accelerate 配置和缓存版本文件停止 Git 跟踪时,更新脚本会先备份,再迁移并保留原内容。默认示例在 tools/defaults/,启动只补建缺失配置。旧目录没有更新入口时,可在 PowerShell 运行 & "新ZIP目录\update.bat" "--bootstrap-root=旧项目目录绝对路径" 完成迁移,无需覆盖旧启动器或重装环境。

训练参数指南

详细的训练参数说明见 docs/parameters/:

程序参数

参数名称 类型 默认值 描述
--host str "127.0.0.1" 服务器主机名
--port int 12333 服务器端口
--listen bool false 启用监听模式(允许外部访问)
--skip-prepare-environment bool false 启动时不再自动检查和修复依赖环境
--skip-prepare-onnxruntime bool false 只跳过 onnxruntime-gpu 的安装检查
--disable-tensorboard bool false 不随 GUI 启动内置的 TensorBoard
--tensorboard-port int 0 内部 TensorBoard 端口,0 表示自动分配;通常无需设置
--localization str 界面语言与本地化设置
--dev bool false 开发者模式
--quiet / -q bool false 自动安装 Python/venv 依赖;默认不执行可选的 Git 仓库修复
--setup-git bool false Windows:非交互执行推荐的 Git 安装/ZIP 仓库修复
--skip-git-setup bool false Windows:本次启动不提示 Git 安装或仓库修复

注意力加速

Anima 默认使用 torch,Krea2 默认使用 sdpa。PyTorch 原生 SDPA 自动选择适用的加速内核,包括内置 FlashAttention,无需外部 flash-attn。

旧配置中的 flash / flash_attn 会自动转为原生 SDPA。项目运行进程不再加载外部 FlashAttention;以前安装的包保留在 venv 中,不会自动升级或卸载,也不会因旧包无法加载而反复提示。此行为不影响 PyTorch 内置加速。

EmoSens 自适应优化器

内置的 EmoSens v3.9 位于 vendor/emo_optimizer/。

推荐设置

训练类型 学习率 调度器 max_grad_norm
SDXL LoRA 1.0 constant 0
Anima LoRA (DiT) 0.1 constant 0

在训练表单的优化器下拉菜单中选择 EmoSens 即可使用。

TOML 配置导入导出

  • 导出:在训练页右侧参数预览中下载当前 TOML 配置
  • 导入:选择 TOML 文件,将有效字段填入对应训练类型的表单

环境管理

GUI 的 环境 标签页提供:

  • Python / PyTorch / CUDA 版本信息
  • sd-scripts、LyCORIS 适配器后端与 musubi-tuner 的核心状态
  • musubi-tuner Krea 2 共享运行时状态(与 sd-scripts 共用 CUDA 版 PyTorch,并显示依赖版本是否已统一)
  • Flash Attention 安装状态检测与一键安装
  • 候选 wheel 列表预览

开发测试

运行完整测试套件(测试基于标准库 unittest,无需安装额外依赖;需 PATH 中的 Node.js 与 Git,仅开发需要,不影响训练运行时):

.\venv\Scripts\python.exe -m unittest discover -s tests -t .
# Linux: ./venv/bin/python -m unittest discover -s tests -t .

测试位于 tests/,按训练、监控、环境、打标、应用和前端分类;统一入口包含独立 JavaScript 测试。开发脚本位于 tools/dev/,tools/ 还包含启动器和后端依赖的运行工具。

致谢

许可证

本项目以 MIT 许可证 发布。vendor/ 目录下的第三方组件各自保留其原始许可证(Apache-2.0 / MIT)。

About

LoRA training GUI with Anima model support, based on kohya-ss/sd-scripts

Resources

Stars

18 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages