如何使用Dreambooth训练Stable Diffusion模型 (Colab notebook)

Dreambooth 是一种将任何东西(您所爱的人、您的狗、您最喜欢的玩具)放入Stable Diffusion模型的方法。我们将介绍 Dreambooth 是什么、它是如何工作的以及如何进行培训。

 

本教程针对的是已经使用过 Stable Diffusion 但之前没有使用过 Dreambooth 的人。

您将按照逐步指南准备训练图像,并使用我们简单的一键式 Colab notebook进行 dreambooth 训练 – 无需编写代码!

您知道许多自定义模型都是使用 Dreambooth 进行训练的吗?完成本教程后,您将知道如何制作自己的。

您将首先了解 Dreambooth 是什么及其工作原理。但如果您只对训练感兴趣,则可以跳至逐步指南。

什么是Dreambooth

Dreambooth由 Google 研究团队于 2022 年发布,是一种通过向模型注入自定义主题来微调扩散模型(如Stable Diffusion)的技术。

为什么叫Dreambooth?据谷歌研究团队称,

它就像一个照相亭,但一旦拍摄到主题,它就可以合成到您的梦想带您去的任何地方。

It’s like a photo booth, but once the subject is captured, it can be synthesized wherever your dreams take you.

听起来很棒!但它的效果如何?下面是研究文章中的一个例子。仅使用特定狗(我们称之为Devora)的 3 张图像作为输入,dreamboothed 模型就可以在不同的环境中生成 Devora 的图像。


只需 3 个训练图像,Dreambooth 即可将自定义主题无缝注入Stable Diffusion。

Dreambooth如何工作?

您可能会问,为什么不能简单地使用这些图像通过额外的步骤来训练模型?问题是,众所周知,这样做会因过度拟合(因为数据集非常小)和语言漂移而导致灾难性的失败。

Dreambooth 通过以下方式解决了这些问题

  1. 对新主题使用一个罕见的单词(请注意,我为狗使用了一个罕见的名字Devora),这样它一开始在模型中就没有太多意义。
  2. 类的预先保留为了保留类别(上例中的狗)的含义,模型进行了微调,注入主体(Devora),同时保留类别(狗)的图像生成

还有另一种类似的技术称为文本反转(textual inversion)。不同之处在于,Dreambooth 对整个模型进行了微调,而文本反转则注入了一个新词,而不是重复使用生僻词,并且仅对模型的文本嵌入部分进行了微调。

训练Dreambooth 需要什么

你需要三样东西

  1. 一些自定义图像
  2. 唯一标识符
  3. 一个类名

在上面的例子中。唯一标识符是Devora。类名称是

然后你需要构建你的实例提示词

[唯一标识符] [类名称] 的照片

a photo of [unique identifier] [class name]

还有类提示词

[类名称]的照片

a photo of [class name]

在上面的例子中,实例提示词是

a photo of Devora dog

由于 Devora 是一只狗,所以类提示词是

a photo of a dog

现在已经了解训练需要什么,让我们开始训练吧!

逐步指南

获取训练图像

与任何机器学习任务一样,高质量的训练数据是成功的最重要因素。

为您的自定义主题拍摄 3-10 张照片。照片应该从不同的角度拍摄。

拍摄对象还应该处于多种背景中,以便模型可以将拍摄对象与背景区分开来。

我将在教程中使用这个玩具。

 

调整图像大小

为了在训练中使用图像,您首先需要将它们的大小调整为 512×512 像素,以便使用 v1 模型进行训练。

BIRME是一个调整图像大小的便捷网站。

  1. 将您的图像拖放到 BIRME 页面。
  2. 调整每张图像的画布,使其充分显示主题。
  3. 确保宽度和高度均为 512 像素。
  4. “保存文件”将调整大小的图像保存到您的计算机。

 

训练

我建议使用 Google Colab 进行训练,因为它可以省去您设置的麻烦。

整个训练时间约为30分钟。如果您不经常使用 Google Colab,您可能可以在不断开连接的情况下完成训练。购买一些计算积分以避免断开连接的挫败感。截至 2022 年 12 月,10 美元即可获得 50 小时,因此成本并不高。

notebook会将模型保存到您的Google Drive中。如果您选择 fp16(推荐),请确保您至少有 2GB ;如果您不选择,请确保您至少有 4GB。

  1. 获取Dreambooth 指南并打开 Colab 笔记本。
  2. 如果您想从Stable Diffusion v1.5模型(推荐)进行训练,则无需更改 MODEL_NAME 。
  3. 放入实例提示词和类提示词。对于我的图像,我将我的玩具兔子命名为 zwx,因此我的实例提示是“photo of zwx toy”,我的课堂提示是“photo of a toy”。

4. 单击单元格左侧的“播放”按钮 ( ▶️ ) 开始处理。

5. 授予访问 Google 云端硬盘的权限。目前,除了将模型文件保存到 Google 云端硬盘之外,没有简单的方法可以下载该模型文件。

6. 按选择文件上传调整大小的图像。

7. 完成训练大约需要30分钟。完成后,您应该会看到新模型生成的一些示例图像。

8. 您的自定义模型将保存在您的Google Drive文件夹下Dreambooth_model。下载模型检查点文件并将其安装在您喜欢的 GUI 中。

就是这样!

测试模型

您还可以使用笔记本的第二个单元来测试模型的使用情况。

使用提示

梵高风格zwx油画

oil painting of zwx in style of van gogh

对于我新训练的模型,我对得到的结果感到满意:

 

使用模型

您可以在 AUTOMATIC1111 GUI 中使用模型checkpoint文件。它是一个免费且功能齐全的 GUI,您可以在 Windows 和 Mac 上安装,或在Google Colab上运行。

如果您尚未使用 GUI 并且模型文件已保存在 Google Drive 中,最简单的方法是 Google Colab 选项。您需要做的就是将模型的路径放入 Google Drive 中即可使用它。有关更多详细信息,请参阅分步教程。

如何从不同的模型进行训练

您将需要更改MODEL_NAMEBRANCH

目前,notebook仅支持训练半精度v1和v2模型。您可以通过查看模型尺寸来判断。v1 模型应约为 2GB。

您可以在 Huggingface 页面下方找到模型名称和分支名称。如下所示的页面在这里

进一步阅读

如果您想深入了解 Dreambooth,我推荐以下文章。

《如何使用Dreambooth训练Stable Diffusion模型 (Colab notebook)》有3条评论

发表评论