Skip to content

概述

🤗 Diffusers 提供了一系列训练脚本,供你训练自己的扩散模型。你可以在 diffusers/examples 中找到我们所有的训练脚本。

每个训练脚本都:

  • 自包含: 训练脚本不依赖于任何本地文件,运行脚本所需的所有软件包都从 requirements.txt 文件中安装。
  • 易于调整: 训练脚本是训练特定任务扩散模型的示例,并非适用于所有训练场景。你可能需要根据自己的特定用例调整训练脚本。为了帮助你,我们完全公开了数据预处理代码和训练循环,以便你可以根据自己的需要进行修改。
  • 适合初学者: 训练脚本旨在易于理解,而不是包含最新的最先进方法来获得最佳和最具竞争力的结果。我们认为过于复杂的任何训练方法都被有意地省略了。
  • 单一目的: 每个训练脚本专门设计用于一项任务,以保持其可读性和易于理解。

我们目前提供的训练脚本包括:

TrainingSDXL-supportLoRA-supportFlax-support
unconditional image generation Open In Colab
text-to-image👍👍👍
textual inversion Open In Colab👍
DreamBooth Open In Colab👍👍👍
ControlNet👍👍
InstructPix2Pix👍
Custom Diffusion
T2I-Adapters👍
Kandinsky 2.2👍
Wuerstchen👍

这些示例是积极维护的,因此如果它们没有按预期工作,请随时打开一个问题。如果你觉得应该包含另一个训练示例,你非常欢迎启动一个功能请求,与我们讨论你的功能想法,以及它是否符合我们关于自包含、易于调整、初学者友好和单一目的的标准。

安装

确保你可以在新的虚拟环境中从源代码安装库,从而成功运行最新版本的示例脚本:

bash
git clone https://github.com/huggingface/diffusers
cd diffusers
pip install .

然后导航到训练脚本的文件夹(例如,DreamBooth),并安装 requirements.txt 文件。一些训练脚本对 SDXL、LoRA 或 Flax 有特定的需求文件。如果你使用其中一个脚本,请确保安装其对应的需求文件。

bash
cd examples/dreambooth
pip install -r requirements.txt
# to train SDXL with DreamBooth
pip install -r requirements_sdxl.txt

为了加快训练速度并减少内存使用,我们建议:

  • 使用 PyTorch 2.0 或更高版本,以自动在训练期间使用 缩放点积注意力(你无需对训练代码进行任何更改)
  • 安装 xFormers 以启用内存高效的注意力机制