实时训练仪表盘
WebSocket 流式推送 step、epoch、loss、lr、speed 与预览图;Canvas 实时绘制 Loss / LR 曲线,GPU 显存、利用率、温度条形图一览无余,sample 图点击即可放大。
anima_lora 的深度改进分支——把 PySide6 桌面 GUI 全面重写为 FastAPI + Vue 3 WebUI:本地 daemon 串行队列、 WebSocket 实时监控、Modulation Guidance 蒸馏、模型合并、MCP 桥与中英双语,训练更稳、更快、更可控。
MonadForge 完整保留上游核心训练与推理能力,并在此基础上补强工程体验: 可视化配置、实时监控、任务队列、预处理流水线、双语界面与系统管理。
WebSocket 流式推送 step、epoch、loss、lr、speed 与预览图;Canvas 实时绘制 Loss / LR 曲线,GPU 显存、利用率、温度条形图一览无余,sample 图点击即可放大。
daemon 充当串行作业队列 + GPU 守卫,任务状态落盘到 output/daemon/;
浏览器与托盘关闭后训练继续,chain_train 让"预处理 → 训练"链路不中断。
Material Design 3 琥珀色品牌、JetBrains Mono 数值字体、深色模式优先;English / 简体中文即时切换。
Windows 托盘图标实时映射 daemon 状态;MCP 桥让 Claude Code 等 AI Agent 直接提交与监控训练。
多目录浏览器、缩略图网格与标签编辑,内置 WD Tagger 一键打标;Preprocess 一键执行 resize / VAE cache / TE cache / PE cache / mask,支持同源图单 epoch 遍历多个分辨率档位。
Distill 提供 Modulation Guidance 蒸馏完整配置与状态监控;Merge 支持文件树浏览与策略选择, 将多个 LoRA / HydraLoRA 检查点融合为独立 DiT,全程 WebUI 端到端完成。
从配置、数据、预处理到监控、蒸馏、合并与系统管理,所有操作都整合在统一的浏览器界面中; 训练任务由本地 daemon 调度,提交者关闭浏览器后仍继续运行。
方法 / 变体 / 预设选择,TOML 字段级编辑与实时帮助,支持创建自定义变体与硬件预设。
多目录管理、缩略图网格 / 列表视图、搜索筛选、排序、图片详情与标签编辑。
状态仪表盘一键执行 resize / VAE / TE / PE cache 与 mask,单 epoch 多分辨率档位。
浏览已训练 LoRA / HydraLoRA 检查点、版本信息与元数据。
Modulation Guidance 蒸馏参数编辑、训练启动与状态监控一站式完成。
文件树浏览、合并策略选择,将多检查点融合为独立 DiT。
实时进度环、损失曲线、学习率曲线、GPU / CPU / 内存监控与训练预览图流。
所有后台任务状态、彩色分级实时日志流(INFO / WARN / ERROR)、取消与重试。
环境变量查看、硬件信息、模型路径配置与一键更新。
一键脚本自动完成 uv 包管理器、Python 3.13、PyTorch 2.12 + CUDA 13.2 环境与前端构建; 启动脚本一并拉起 daemon、WebUI 与系统托盘,并自动打开浏览器。
PS> git clone https://github.com/LingyeSoul/MonadForge.git
PS> cd MonadForge
PS> .\setup-win.bat # uv + Python 3.13 + PyTorch 2.12 + CUDA 13.2
[setup] frontend built to webui/frontend/dist/
PS> .\start-webui-win.bat # daemon + WebUI + 托盘,自动打开浏览器
[ready] http://127.0.0.1:8000
$ git clone https://github.com/LingyeSoul/MonadForge.git
$ cd MonadForge
$ chmod +x setup-linux.sh && ./setup-linux.sh
$ chmod +x start-webui-linux.sh && ./start-webui-linux.sh
[ready] http://127.0.0.1:8000
$ uv sync # Python 3.13 + 所有依赖
$ cd webui/frontend && npm install && npm run build
$ python tasks.py download-models # DiT + Qwen3 TE + VAE
$ python tasks.py daemon # 启动并自动拉起 WebUI sidecar
[daemon] queue @ 127.0.0.1:8765 · webui @ 127.0.0.1:8000
$ python tasks.py lora --queue --network_dim 32 # 提交到队列
在 Config 页面选择方法、变体与预设,编辑 TOML 字段,创建自定义训练配置与按 VRAM 档位的硬件预设。
Dataset 管理多组 source / resized / cache 路径,Preprocess 一键执行 resize / VAE / TE / PE cache 与 mask。
训练进入串行队列,chain_train 让链路在终端关闭后继续;AI Agent 可通过 MCP 桥提交与监控。
Dashboard 实时查看 loss / lr 曲线、GPU 显存与预览图;Distill 执行蒸馏,Merge 将检查点融合为独立 DiT。
WebUI 不再直接启动训练子进程——训练、预处理、合并统统交给本地 training daemon
(127.0.0.1:8765),它既是串行作业队列,也是 WebUI 服务器的宿主。
$ python tasks.py daemon
[daemon] initializing local training queue @ 127.0.0.1:8765
[daemon] GPU guard enabled: single-job mode
[daemon] WebUI sidecar started at http://127.0.0.1:8000
[daemon] MCP bridge listening for AI agent connections
[task] job queued: lora_training_042 (chain_train)
[preprocess] resize / VAE cache / TE cache / PE cache
[monitor] WebSocket metrics stream connected
[train] step 128/8000 · loss 0.0321 · lr 1.2e-5 · 1.08s/step
[preview] sample image refreshed
[tray] status amber · job "lora_training_042" · step 128
[mcp] claude-code subscribed · progress feed ready
[queue] next job waiting · GPU memory stable
同时只运行一个训练任务,避免多任务抢占显存导致 OOM;作业逐个出队,GPU 始终处于受控状态。
任务状态落盘到 output/daemon/,WebUI 与托盘关闭重启后任务继续跑;"预处理 → 训练"可串联,提交者关闭终端链路仍继续。
daemon 启动时拉起 uvicorn WebUI 子进程,崩溃自动重启、daemon 关闭时一并退出;sidecar 不计入串行队列,不影响训练调度。
托盘图标颜色映射 daemon 状态(空闲 / 运行中 / 出错 / 未运行),右键即可暂停队列、重启 daemon、切换语言;MCP 桥让 AI Agent 直接提交、监控与停止任务。
以下训练优化移植自 WhitecrowAurora/lora-rescripts (kohya-ss/sd-scripts 的维护分支,AGPL-3.0),默认训练行为不变,通过 CLI 参数或配置文件启用。
8-bit 量化 AdamW 叠加 Kahan 补偿求和,将舍入误差回注下一步,有效精度从 8-bit 提升至约 11–12 bit,显著改善长训练 run 的收敛稳定性。
library/training/adamw_8bit_kahan.py单进程课程学习:按全局步切换预处理完成的数据行,模型、优化器和调度器状态连续;每个阶段使用独立的图片与缓存目录。
library/training/stage_schedule.py基于 latent 通道统计量的自适应噪声偏移,替代固定噪声偏移,改善生成图像的动态范围。
library/runtime/noise.py在 Rectified Flow 目标上叠加对比损失项,通过正 / 负流方向对比提升 latent 表征质量。
library/training/losses.py跨层共享冻结随机投影矩阵,仅学习对角缩放向量;参数量比标准 LoRA 低 10–100 倍。
networks/lora_modules/vera.py每次前向随机选择 rank,同时训练多个 rank 级别;训练后可提取任意 rank 不超过 max_rank 的适配器。
networks/lora_modules/dylora.py多尺度噪声叠加(6 层,discount = 0.4),让模型同时接触多频段噪声模式。
library/runtime/noise.pyAdam 系优化器的 momentum / variance 卸载到 CPU RAM,节省约 50% 优化器显存;窗口化分析器按 forward / backward / optimizer / save 分段计时。
optimizer_offload · profiler从默认 AdamW 到 8-bit Kahan、Prodigy、Adafactor、CAME 与 Schedule-Free 全家桶, 覆盖低显存、自动学习率与无调度器等所有训练场景。
与 sorryhyun/anima_lora 同步所有训练与推理能力——从 Fast LoRA 训练到 Spectrum 推理加速、采样器修正与多种实验方法,一行不改即可用。
默认环境面向 Ampere 及以上架构;老显卡走 SM 7.x 兼容脚本,一键切换。
V100 / T4 / RTX 20 系列兼容方案:
使用 setup-v100-win.bat / setup-v100-linux.sh 创建 SM 7.x 兼容环境——
bf16 自动切换 fp16,训练器自动启用 lora_fp32_compute,注意力后端使用 SDPA。
克隆仓库,运行 setup-win.bat 或 setup-linux.sh,环境与前端自动就绪;
再执行 start-webui-win.bat,daemon + 训练任务 + Windows 托盘一键拉起,
浏览器打开 http://127.0.0.1:8000 即可开炉。