OneTrainer
OneTrainer 是一个一站式解决方案,满足您稳定扩散训练的所有需求。
开发硬件由 https://shakker.ai 赞助
功能
- 支持的模型: 稳定扩散 1.5,2.0,2.1,3.0,SDXL,Würstchen-v2,Stable Cascade,PixArt-Alpha,PixArt-Sigma 和修复模型
- 模型格式: diffusers 和 ckpt 模型
- 训练方法: 全面微调,LoRA,嵌入
- 掩码训练: 让训练只关注样本的某些部分。
- 自动备份: 在训练过程中定期备份您的训练进度。这包括所有信息,使训练可以无缝继续。
- 图像增强: 对每个图像样本应用随机变换,如旋转、亮度、对比度或饱和度,以快速创建更多样化的数据集。
- Tensorboard: 一个简单的 tensorboard 集成,用于跟踪训练进度。
- 每张图像的多提示: 对每个图像样本进行多提示训练。
- 噪声调度器重新缩放: 参考论文 Common Diffusion Noise Schedules and Sample Steps are Flawed
- EMA: 训练您自己的 EMA 模型。可选择将 EMA 权重保存在 CPU 内存中以减少 VRAM 使用。
- 长宽比分桶: 同时自动训练多种长宽比。只需选择目标分辨率,系统会自动创建分桶。
- 多分辨率训练: 同时训练多种分辨率。
- 数据集工具: 使用 BLIP,BLIP2 和 WD-1.4 自动生成数据集标题,或者使用 ClipSeg 或 Rembg 创建用于掩码训练的掩码。
- 模型工具: 从简单的 UI 中转换不同的模型格式。
- 采样 UI: 在训练过程中采样模型而无需切换到其他应用程序。
- AlignProp: 一种用于扩散网络的强化学习方法,参考论文 Aligning Text-to-Image Diffusion Models With Reward Backpropagation
安装
安装 OneTrainer 需要 Python 3.10。你可以在这里下载 Python https://www.python.org/downloads/windows/。然后按照以下步骤操作:
自动安装
- 克隆仓库
git clone https://github.com/Nerogar/OneTrainer.git
- 运行:
- Windows:
install.bat
- Unix 基于系统:
install.sh
- Windows:
手动安装
- 克隆仓库
git clone https://github.com/Nerogar/OneTrainer.git
- 进入克隆的目录
cd OneTrainer
- 设置虚拟环境
python -m venv venv
- 激活新建的 venv:
- Windows:
venv\scripts\activate
- Unix 基于系统:
source venv/bin/activate
- Windows:
- 安装所需依赖
pip install -r requirements.txt
在某些 Linux 发行版上,可能需要安装 libGL,例如在 Ubuntu 上需要运行:
sudo apt-get update
sudo apt-get install libgl1
更新
自动更新
- 运行
update.bat
或update.sh
手动更新
- 拉取更改
git pull
- 激活 venv
venv\scripts\activate
- 重新安装所有依赖
pip install -r requirements.txt --force-reinstall
使用
要启动 UI,请运行 start-ui.bat
。 你可以在这里找到快速入门指南。,以及不同主题的更详细概述 这里。
如果需要更多控制,OneTrainer 支持两种操作模式。仅命令行和 UI。 所有命令需要在安装过程中创建的活动 venv 内运行。
所有功能都拆分为位于 scripts
目录中的不同脚本。目前包括:
train.py
中央训练脚本train_ui.py
用于训练的 UIcaption_ui.py
用于手动或自动生成标题和创建掩码的 UIconvert_model_ui.py
用于模型转换的 UIconvert_model.py
不同模型格式之间的转换工具sample.py
任何模型的采样工具create_train_files.py
当仅从 CLI 训练时需要创建文件的工具generate_captions.py
自动为数据集生成标题的工具generate_masks.py
自动为数据集生成掩码的工具calculate_loss.py
计算数据集中每个图像训练损失的工具
要了解更多的参数,请执行 <scipt-name> -h
。例如 python scripts\train.py -h
贡献
欢迎以任何形式的贡献。你可以打开问题,参与讨论,甚至为新功能或改进的功能打开拉取请求。更多信息请查看 这里
在你开始查看代码之前,我建议阅读有关项目结构的信息 这里。对于深入讨论,建议加入 Discord 服务器。
相关项目
- MGDS: 一个针对 Pytorch 的自定义数据集实现,围绕节点图的理念构建。
- StableTuner: 另一个稳定扩散的训练应用程序。OneTrainer 从 StableTuner 中获得了很多灵感,如果没有它,OneTrainer 也不会存在。
- Visions of Chaos: 一个包含多个机器学习工具的集合,也包括 OneTrainer。