Stable Diffusion SimpleTuner 对于资深AI绘图师,总有想制作自己模型的心愿,而这个由大神bghira制作的SimpleTuner开源套件就能满足每个想”炼丹”的绘图师心愿。
Simple Tuner 运行环境主要在 Linux/MacOS(Windows可以用虚拟机安装Linux),也可以部署在云端运行。使用中需要用到命令行和配置脚本,有一定的技术门槛,本文只发套件,稍后我会看情况另外制作小白上手教程,需要就留个言呗,以下开始正文。
SimpleTuner 是一个专用于存储一组专为训练优化而设计的实验脚本的存储库。主要面向 Stable Diffusion 全系列模型,该项目旨在实现简单性,重点是使代码易于阅读和理解。该代码库作为共享的学术练习,欢迎贡献。
- 多 GPU 训练
- Aspect Bucketing“只是工作”;填满一个图像文件夹并让它翻录
- 单个训练会话中可以使用多个数据集,每个数据集具有不同的基本分辨率。
- VRAM 节省技术,例如预计算 VAE 和文本编码器输出
- 全功能微调支持
- 偏置训练 (BitFit)
- LoRA 培训支持
套件下载
更新至 SimpleTuner-0.9.8.3.1 请见本文末
设计理念
- 简单性:旨在为大多数用例提供良好的默认设置,因此需要更少的修补。
- 多功能性:设计用于处理各种图像量 – 从小型数据集到广泛的集合。
- 尖端功能:仅包含已证明有效的功能,避免添加未经测试的选项。
教程
在开始本教程之前,请充分浏览此自述文件,因为它包含您可能需要首先了解的重要信息。
若要在不阅读完整文档的情况下快速入门,可以使用快速入门指南。
对于内存受限的系统,请参阅 DeepSpeed 文档,该文档介绍了如何使用 🤗Accelerate 配置 Microsoft 的 DeepSpeed 以进行优化程序状态卸载。
特征
- 预先计算的 VAE(潜伏)输出保存到存储中,无需在训练期间调用 VAE。
- 预先计算的字幕通过文本编码器运行,并保存到存储中以保存在 VRAM 上。
- 可在 24G GPU 上训练,甚至可以在较低的基本分辨率下低至 16G。
- 针对使用低于 16G VRAM 的 SDXL、SD3 和 SD 2.x 的 LoRA 训练。
- DeepSpeed 集成允许在 12G 的 VRAM 上训练 SDXL 的完整 u-net,尽管速度非常慢。
- 可选的 EMA(指数移动平均线)权重网络,以抵消模型过拟合并提高训练稳定性。注意:这不适用于 LoRA。
- 支持各种图像尺寸和纵横比,支持宽屏和纵向训练。
- 直接从兼容 S3 的存储提供商进行培训,无需昂贵的本地存储。(使用 Cloudflare R2 和 Wasabi S3 进行测试)
- DeepFloyd 第一阶段和第二阶段全 u-net 或使用 22G VRAM 通过 LoRA 进行参数高效微调
- SDXL Refiner LoRA 或完整的 u-net 训练,包括使用 img2img 进行验证
- 完整的 ControlNet 模型训练(不是 ControlLoRA 或 ControlLite)
- 培训轻量级、高质量扩散模型的专家组合
- Webhook 支持更新,例如。Discord 频道包含您的培训进度、验证和错误
- 与 Hugging Face Hub 集成,可实现无缝模型上传和自动生成的精美模型卡。
Stable Diffusion 2.0/2.1
Stable Diffusion 2.1 以微调期间的困难而闻名,但事实并非如此。SimpleTuner 中的相关功能包括:
- 仅训练文本编码器的后续层
- 在终端时间步长上强制执行零信噪比,而不是偏移噪声,以获得更清晰的图像。
- 在训练期间使用 EMA(指数移动平均线)来确保我们不会“炸毁”模型。
- 能够在多个数据集上进行训练,每个数据集具有不同的基本分辨率,例如。同时 512 像素和 768 像素图像
Stable Diffusion 3
这个模型是非常新的,目前在 SimpleTuner 中对它的支持级别是初步的:
- 像往常一样支持 LoRA 和完全微调。
- ControlNet 尚未实现。
- 尚不支持某些功能,例如分段时间步长选择和强制长提示加权。
一些锋利的边缘可能会让你措手不及,但在大多数情况下,SD3 支持下的初始传递被认为足够强大,不会让你搞砸太多参数 – 它通常只会覆盖错误值并将它们设置为更合理的值。
只需将基础模型指向 Stable Diffusion 3 检查点并在环境文件中设置即可。STABLE_DIFFUSION_3=true
AuraFlow
AuraFlow 是一种新颖的开源实现,与 SD3 相比,它使用简化的架构,具有更多的参数,是文本到图像匹配模型的流程匹配。
目前,AuraFlow v0.1 对 SimpleTuner 的支持有限:
- 适用于 Stable Diffusion 3 的所有限制也适用于 AuraFlow
- LoRA 是目前唯一可行的 AuraFlow 训练方法
这个模型非常大,需要比 PixArt 或 SDXL 更多的资源来训练。
AuraFlow 具有一些明显的优势,值得研究 Stable Diffusion 3:
- 它是最大的开放文本到图像模型,具有真正的开放许可证
- 它使用 SDXL 4ch VAE,可以说它比 Stable Diffusion 16 的 3ch VAE 提供了更容易的学习目标
- 尽管小型报纸或书籍印刷文本在 4 通道压缩级别下会受到影响,但整体精细的细节使这种方法可行。
- 它只使用一个文本编码器,而 Stable Diffusion 使用三个文本编码器
- AuraFlow 利用 EleutherAI 的 Pile-T5,它以比 Stable Diffusion 3、DeepFloyd 和 PixArt 的 T5-XXL v1.1 更少的参数训练了两倍的数据
- Pile-T5 比 OpenCLIP 或 T5 v1.1 经历了更少的内容预过滤,并且比 T5 v1.1 “消耗了更多的互联网”
- 凭借庞大的数据语料库,它有可能对语言的怪异之处进行微妙的语义理解,并在不微调文本编码器的情况下理解更现代的概念
Kwai Kolors
基于 SDXL 的模型,以 ChatGLM(通用语言模型)6B 作为其文本编码器,将隐藏维度大小增加了一倍,并大大提高了提示嵌入中包含的局部细节级别。
Kolors 支持几乎与 SDXL 一样深,减去 ControlNet 训练支持。
硬件要求
EMA(指数移动平均线)权重是一件记忆量大的事情,但在训练结束时会提供出色的结果。像这样的选项可以通过将 EMA 权重加载到 CPU 上然后将它们保留在那里来改善这种情况。--ema_cpu_only
如果没有EMA,必须更加小心,不要通过使用正则化数据来彻底改变导致“灾难性遗忘”的模型。
GPU 供应商
- NVIDIA – 几乎任何 3090 及更高版本都是一个安全的选择。 YMMV。
- AMD – SDXL LoRA 和 UNet 已通过验证,可在 7900 XTX 24GB 上运行。缺乏 ,它可能会比 Nvidia 同类产品使用更多的内存
xformers
- Apple – LoRA 和完整的 u-net 调谐经过测试,可在具有 128G 内存的 M3 Max 上运行,SDXL 需要大约 12G 的“有线”内存和 4G 的系统内存。
- 由于缺乏内存效率高的关注,您可能需要一台 24G 或更高的机器来使用 M 系列硬件进行机器学习。
SDXL,1024px
- A100-80G(EMA,大批量,LoRA @疯狂的批量大小)
- A6000-48G(EMA@768px,无EMA@1024px,LoRA @ 大批量)
- A100-40G(无EMA@1024px、无EMA@768px、EMA@512px、LoRA @ 大批量)
- 4090-24G(无EMA@1024px,批量大小 1-4,LoRA @ 中高批量)
- 4080-12G(LoRA @ 中低批量)
Stable Diffusion 2.x,768px
- A100-40、A40、A6000 或更高(EMA、1024px 训练)
- NVIDIA RTX 4090 或更高(24G,无 EMA)
- NVIDIA RTX 4080 或更高(仅限 LoRA)
工具箱
AI绘图常用工具
💡如有问题或建议,🥳请在社区或评论告诉我们。🎨享受精彩的AI绘画乐趣!| 使用Qpipi读图提示功能,获取图片TAG Prompt提示 | Stable Diffusion AI绘图软件常见问题解答 | AI绘画新人必备工具指南
⭕ 注意:请勿使用浏览器的"阅读模式",会导致无法显示下载等内容。
- 最新
- 最热
只看作者