#
概述

🤗 Diffusers 提供了一系列训练脚本供您训练自己的diffusion模型。您可以在 diffusers/examples 找到所有训练脚本。

每个训练脚本具有以下特点：

- 独立完整：训练脚本不依赖任何本地文件，所有运行所需的包都通过 `requirements.txt` 文件安装
- 易于调整：这些脚本是针对特定任务的训练示例，并不能开箱即用地适用于所有训练场景。您可能需要根据具体用例调整脚本。为此，我们完全公开了数据预处理代码和训练循环，方便您进行修改
- 新手友好：脚本设计注重易懂性和入门友好性，而非包含最新最优方法以获得最具竞争力的结果。我们有意省略了过于复杂的训练方法
- 单一用途：每个脚本仅针对一个任务设计，确保代码可读性和可理解性

当前提供的训练脚本包括：

训练类型 | 支持SDXL | 支持LoRA | 支持Flax
--- | --- | --- | ---
unconditional image generation |  |  |
text-to-image | 👍 | 👍 | 👍
textual inversion |  |  | 👍
DreamBooth | 👍 | 👍 | 👍
ControlNet | 👍 |  | 👍
InstructPix2Pix | 👍 |  |
Custom Diffusion |  |  |
T2I-Adapters | 👍 |  |
Kandinsky 2.2 |  | 👍 |
Wuerstchen |  | 👍 |

这些示例处于积极维护状态，如果遇到问题请随时提交issue。如果您认为应该添加其他训练示例，欢迎创建功能请求与我们讨论，我们将评估其是否符合独立完整、易于调整、新手友好和单一用途的标准。

##
安装

请按照以下步骤在新虚拟环境中从源码安装库，确保能成功运行最新版本的示例脚本：

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

然后进入具体训练脚本目录（例如DreamBooth），安装对应的`requirements.txt`文件。部分脚本针对SDXL、LoRA或Flax有特定要求文件，使用时请确保安装对应文件。

    cd examples/dreambooth
    pip install -r requirements.txt
    # 如需用DreamBooth训练SDXL
    pip install -r requirements_sdxl.txt

为加速训练并降低内存消耗，我们建议：

- 使用PyTorch 2.0或更高版本，自动启用缩放点积注意力（无需修改训练代码）
- 安装xFormers以启用内存高效注意力机制

Update on GitHub