SimpleTuner
bghira/SimpleTuner加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
ℹ️ 除
report_to、push_to_hub、webhook 等手动开启的选项外,本项目不会向任何第三方发送数据。

设想一个再普通不过的场景:你想让自己的 SDXL 模型学会画公司产品的工业风格。你打开 kohya_ss,把数据集丢进去,然后开始面对一屏参数:network_dim、network_alpha、unet_lr、text_encoder_lr、optimizer、lr_scheduler、cache_dir、gradient_checkpointing、noise_offset……每一次训练跑完,结果不理想,你只能一个一个改参数、重跑、再改。常常几天过去,你说不清到底哪一步改动带来了提升。
SimpleTuner 立项时的判断就是:这套流程里真正需要判断的东西很少,绝大部分是重复劳动。所以它把"简单"写进了设计哲学第一条——为大多数场景提供可直接用的默认参数,只把那些被反复验证有效的高级特性暴露成开关。
SimpleTuner 不是一个模型,而是一个通用扩散模型微调工具包,作者 bghira 从 2023 年 5 月开始维护,至今(v4.11.0,2026-10-28)已经迭代了四年多、多达 61 个发布版本。
它的核心资产是一套"统一管线":不管你要训的是图像、视频还是音频,是 Flux、SDXL、Qwen-Image、Wan Video、ACE-Step 还是 MiniMax Music,数据加载、缓存、训练循环、验证采样、LoRA 导出这几步的语义都是一致的。这带来一个很实际的好处:换模型不用重学工具,换工具不用重读文档。

如果把训练框架比作厨房:原始扩散训练脚本像一排需要自己组装的工业灶台,每个部件都要自己接线;SimpleTuner 则像一台已经调好参数的料理机——你把食材(数据集)放进去,选个档位(模型 + VRAM 档位),按下按钮,它自己会先切菜(缓存 VAE 编码与文本嵌入到磁盘)、控制火候(学习率调度、min-SNR 权重)、中途试吃(验证采样并出对比图),最后装盘(导出 LoRA / LyCORIS)。当然,你依然可以拆开机器自己改线路——那 208KB 的 OPTIONS.md 就是给"拆机党"准备的。
覆盖广度是它最硬的优势。 README 里那张模型表格列出了 40 余个模型家族:Flux.1/Flux.2、SD1.x/2.x/3、SDXL、Qwen Image 2.1、Hunyuan Video、Wan 2.x、LTX Video 2、LongCat Image/Video、Kandinsky 5.0(图像+视频)、Cosmos2/3、HiDream(MoE)、Chroma、Mage-Flow、Z-Image、OmniGen、Sana、ACE-Step、HeartMuLa、MiniMax H3/Music 3 等,横跨文本生图、图生图、文本生视频、音频生成四大方向。仓库 simpletuner/helpers/models/ 下有 60+ 个模型专属适配目录,每个模型的调度器、VAE、条件编码差异都被吸收在插件层,训练主循环不需要为新模型改写。
训练技术栈相当硬核。 TREAD(token 级 dropout 加速)、masked loss 训练(配合分割/深度引导)、prior regularization(角色一致性)、AnyFlow 蒸馏(flow-matching 模型的在线教师目标)、CREPA(视频 DiT 的跨帧表示对齐)、QKV fusion、EMA、SNR gamma 加权、梯度检查点间隔可调——这些在论文和商业产品里常见的"高级技巧",在这里都是配置项而非需要自己实现的代码。
工程化程度超出个人项目的常见水平。 DeepSpeed 与 FSDP2 双路支持(优化器状态/梯度/参数分片、上下文并行注意力)、多机分布式训练、S3/R2 直读云端数据集训练、GPU 熔断器、磁盘空间检查、torch.compile + dynamo 缓存、LoRA 双格式导出(Diffusers 标准布局与 ComfyUI 的 diffusion_model.* 键,后者自动识别)——这些都是"跑过很多次大任务"才会沉淀出来的东西。
多用户/企业特性是意外之喜。 项目内置了完整的训练平台:Worker 编排(SSE 分发、临时或常驻 GPU worker)、LDAP/Active Directory/OIDC 单点登录、四级角色 + 17 项细粒度权限、组织与团队的层级配额、日/月成本上限与并发限制、五级优先级公平调度作业队列、审批工作流、邮件通知、带过期与作用域的 API Key、带链式校验的审计日志。作者在 README 里写道这是"free and open source, forever"。
Web UI 不是附赠品。 simpletuner/templates/ 下有 148 个 Jinja2 模板(HTMX 驱动),配合 simpletuner/static/ 的 JS/CSS,构成一个覆盖数据浏览、配置生成、作业监控、模型卡管理、队列调度的仪表盘;另有 st_cli.py 提供 CLI 路径,以及 simpletuner_sdk、Cog 部署(cog.yaml)、Replicate/Kubernetes 等云端打包路径。
config.json。新手不必面对几十个超参。simpletuner-configure 交互式生成配置,simpletuner-train 启动训练,simpletuner-inference 推理。适合 CI/CD、可复现实验、以及需要纳入自己调度系统的场景。docker-compose.yml,docker compose up 即可拉起容器(8001 WebUI + 2222 SSH),通过 deploy.resources.reservations.devices 预留全部 GPU,shm_size: 16gb 是 PyTorch DataLoader 的必要配置。硬件门槛是真实的。 官方推荐 RTX 3080 及以上(已验证至 H200),多数模型 24G 显存可训、优化后 16G 可训;12B 以上模型全秩微调需要 A100-80G;Apple M3 Max+ 24GB 统一内存可做 LoRA;AMD 7900 XTX 24GB 与 MI300X 已验证。安装侧按平台拆了 extras:pip install 'simpletuner[cuda]'、[cuda13](Blackwell)、[cuda13-transformerengine](FP8)、[rocm]、[apple],Python 版本被限制在 >=3.12,<3.14。
AGPL-3.0 是最实际的商业约束。 项目代码本身是 AGPL-3.0-or-later,且明确标注"仅作为共享学术练习"。对于要闭源交付训练平台的公司,AGPL 的网络分发条款是需要法务认真评估的。同时被支持的模型也各有各的协议:FLUX.1 dev、SD3、Ideogram 4、MiniMax H3 等是非商用或带地域限制的协议,训练产物的商用性取决于底模而非工具——这一点在选型时极易被忽略。
"简单"的代价是配置层极其复杂。 唯一配置入口 simpletuner.configure 单文件就 107KB,全量选项文档 OPTIONS.md 超过 20 万字符、六种语言。默认值确实好用,但一旦需要偏离默认,你就进入了另一个量级的学习成本。目录里 1519 个 Python 文件、单文件 425KB 的 trainer.py 和 264KB 的 validation.py,也说明"代码易于理解"这一目标在长期演进后已经被部分稀释。
依赖栈极重。 torch ≥2.13、DeepSpeed、torchao、transformer_engine、nvidia-cutlass-dsl、bitsandbytes、mpi4py、deepspeed、lm-eval、wandb、huggingface_hub,还要针对 CUDA 12.8/13 分别适配并手工处理 NVIDIA 库 wheel 与基础镜像的冲突。Dockerfile 明确注释"完整 cuda extra 会安装与基础镜像冲突的 NVIDIA 库",可见踩坑不少。对 Windows 用户尤其不友好。
上游接口变更带来的持续维护成本。 Diffusers、Transformers 的 API 变动会直接冲击该项目,仓库里有一整个 helpers/training/diffusers_overrides.py(40KB)和 attention_backend.py(85KB)在与上游"掰手腕";v4.11.0 甚至因为 cuDNN attention 的正确性问题被迫强制禁用它。
从 2023 年 5 月的 Stable Diffusion 2.x 调参脚本,到 2026 年 10 月横跨图像、视频、音频三大模态、四十余个模型架构、六万行级测试覆盖的通用训练平台,SimpleTuner 的轨迹本身就是开源 AI 基础设施演进的一个切片。
它最有价值的贡献或许不是某个具体功能,而是用一条统一管线抹平了扩散模型"每半年换一次架构"带来的重复劳动。当底座模型从 SDXL 换到 Flux、Flux 换到 Qwen-Image、Qwen-Image 换到 Wan 和 MiniMax H3,真正稀缺的是"理解你的数据、知道你要什么效果"的能力,而不是每次重新调参的工具。SimpleTuner 把工具的复杂度集中在仓库里,把用户的注意力留给创意本身。
从社区数据看:2,952 stars、295 forks、61 个 contributor 提交记录(作者 bghira 独占 2,832 次提交)、仓库体积约 49.8MB、Python 占 26.5MB 代码——这是一个高度集中在单一作者身上的项目,风险与机遇并存:路线清晰、执行坚决,但巴士因子同样明显。
而它把企业级多租户训练平台以 AGPL 开源、宣称"forever free"的做法,在当前"训练算力即生产力"的开源生态里,本身就是一次值得记录的选择。