如何使用 Dreambooth 将任何东西放入 Stable Diffusion

什么是梦想亭?

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

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

它就像一个照相亭,但一旦捕捉到主题,就可以将其合成到您梦寐以求的任何地方。

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

如何使用 Dreambooth 将任何东西放入 Stable Diffusion

只需 3 张训练图像,Dreambooth 就可以将自定义主题无缝地注入到扩散模型中。

Dreambooth 如何运作?

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

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

  1. 为新主题使用一个罕见的词(注意我为狗使用了一个罕见的名字 Devora),这样一开始它在模型中就没有太多意义。
  2. Prior preservation on class:为了保留类的含义(上面例子中的狗),模型被微调为在类(狗)的图像生成时注入主题(Devora)保存。

还有另一种类似的技术称为文本倒置。不同之处在于,Dreambooth 对整个模型进行了微调,而文本反转注入了一个新词,而不是重复使用一个罕见的词,并且只对模型的文本嵌入部分进行了微调。

培训 Dreambooth 需要什么

你需要三样东西

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

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

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

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

还有一个课堂提示:

[班级名称]的照片

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

德沃拉狗的照片

由于 Devora 是一只狗,因此类提示是

一张狗的照片

现在您了解了自己的需求,让我们开始培训吧!

分步指南

获取训练图像

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

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

主题还应该处于各种背景中,以便模型可以区分主题和背景。

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

如何使用 Dreambooth 将任何东西放入 Stable Diffusion
如何使用 Dreambooth 将任何东西放入 Stable Diffusion

主题的图像。

调整图像大小

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

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

  1. 将您的图像拖放到 BIRME 页面。
  2. 调整每个图像的画布,使其充分显示主题。
  3. 确保宽度和高度均为 512 像素。
  4. 按保存文件将调整大小的图像保存到您的计算机。
如何使用 Dreambooth 将任何东西放入 Stable Diffusion

或者,如果您只想完成教程,可以下载我调整大小的图像。

dreambooth_training_images下载

训练

我推荐使用 Google Colab 进行训练,因为这样可以省去设置的麻烦。以下笔记本修改自 Shivam Shrirao 的存储库,但更加用户友好。如果您更喜欢其他设置,请按照存储库的说明进行操作。

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

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

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

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

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

如何使用 Dreambooth 将任何东西放入 Stable Diffusion

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

如何使用 Dreambooth 将任何东西放入 Stable Diffusion

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

如何使用 Dreambooth 将任何东西放入 Stable Diffusion

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

就是这样!

测试模型

您还可以使用笔记本的第二个单元格来使用该模型进行测试。

如何使用 Dreambooth 将任何东西放入 Stable Diffusion

使用提示

zwx梵高风格油画

使用我新训练的模型,我对我得到的结果很满意:

如何使用 Dreambooth 将任何东西放入 Stable Diffusion

来自 Dreambooth 模型的图像。

使用模型

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

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

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

您将需要更改MODEL_NAMEBRANCH

如何使用 Dreambooth 将任何东西放入 Stable Diffusion

目前该笔记本仅支持训练半精度 v1 模型。您可以通过查看模型尺寸来判断。它应该是大约 2GB。

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

如何使用 Dreambooth 将任何东西放入 Stable Diffusion

延伸阅读

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

请继续关注AI未来百科的教程!

谢谢你!– AI未来百科 ; 探索AI的边界与未来! 懂您的AI未来站

声明:本站部分文章来源于网络,如有侵犯您的合法权益,请您即时与我们联系,我们将在第一时间处理。如需转载本站文章,请在转载时标明出处并保留原文链接,否则我们将保留追究法律责任的权利。

给TA打赏
共{{data.count}}人
人已打赏
AI教程

如何使用 Stable Diffusion 将照片卡通化

2023-5-4 18:24:20

AI教程

如何使用VAE改善眼部和面部

2023-5-4 18:24:25

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧