✨ 多训练核心 LoRA 工具:Anima、SDXL 与 Krea 2 ✨
面向本地运行的 LoRA 训练 GUI。Anima / SDXL 使用 kohya-ss/sd-scripts(位于 vendor/sd-scripts/),Krea 2 LoRA 使用 kohya-ss/musubi-tuner。
项目通过训练核心注册表隔离不同后端;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 权重和高 / 中 / 低噪声占比。可切换基础分布与整体训练分布,对比中位时间步的变化,并通过悬浮读数检查曲线。详见时间步指南。
在 学习率变化方式 下点击「查看学习率曲线」,预览预热、衰减与重启,读取各训练步的学习率。侧栏显示当前组件的生效学习率和预热步数,支持切换 DiT / 文本编码器;自行管理调度的优化器会显示相应说明。详见优化器指南。
Anima 训练下,在 训练网络模块 下点击「结构预览」。按实际网络构造结果展示 LoRA / LoCon、LoHa 和 LoKr 的矩阵组合,可切换注意力、MLP 等模块,查看逐层形状、生效 rank / alpha、缩放、匹配层数和参数统计。
入口同时显示 预计权重文件大小,随算法、rank、训练范围和保存精度自动更新。估算使用虚拟张量,无需加载底模或启动训练;统计实际保存张量与 safetensors 索引开销,不代表显存需求。详见矩阵结构与文件大小指南。
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。
- 在 GitHub 点击 Code → Download ZIP,完整解压后双击
start.bat。 - 如果目录中没有
.git,启动器会询问是否安装 Git for Windows 并修复为可更新仓库;选择推荐项即可。 - 修复时只获取
main分支,不获取其他分支和标签。若 ZIP 源码与最新版不同,待替换的源码会先备份到bootstrap-backups/<时间>.zip。venv、模型、输出、缓存、日志和整个config用户配置目录不会参与源码同步,也不会被覆盖或清理。 - 源码同步完成后,启动器会自动重启一次,再创建
venv并安装训练依赖。
Git 安装或源码同步前的仓库修复失败不会阻止原 ZIP 启动,下次运行仍可重试。若源码同步开始后失败,会停止启动并保留备份记录;解决报错后重新运行 start.bat 重试,避免启动不完整的源码。Python 或核心依赖安装失败时也会停止并显示双语错误。
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/:
- LoRA+ 指南:LoRA+ 的原理、倍率选择、优化器兼容性与判断方法
- 优化器选择与参数指南:优化器对比、学习率/weight decay 等参数起点、按数据集选择
- 时间步指南:flow matching 时间步采样、Loss 权重与分布预览说明
- AdaLN 调制层指南:调制层的作用、上游默认行为,以及哪些训练适合开启
- 矩阵结构与文件大小指南:实际模块结构、参数量、训练范围与保存体积估算
| 参数名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
--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 v3.9 位于 vendor/emo_optimizer/。
| 训练类型 | 学习率 | 调度器 | max_grad_norm |
|---|---|---|---|
| SDXL LoRA | 1.0 | constant | 0 |
| Anima LoRA (DiT) | 0.1 | constant | 0 |
在训练表单的优化器下拉菜单中选择 EmoSens 即可使用。
- 导出:在训练页右侧参数预览中下载当前 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/ 还包含启动器和后端依赖的运行工具。
- kohya-ss/sd-scripts — Anima / SDXL 训练引擎
- kohya-ss/musubi-tuner — Krea 2 训练核心
- Akegarasu/lora-scripts — 早期设计参考
本项目以 MIT 许可证 发布。vendor/ 目录下的第三方组件各自保留其原始许可证(Apache-2.0 / MIT)。


