[AIGC] 如何使用 Dreambooth 将任何东西放入Stable Diffusion(Colab notebook)

本文详细介绍了Dreambooth,一种用于微调扩散模型如StableDiffusion的技术,通过3张图片训练自定义主题。教程适合初学者,涵盖了准备训练图像、调整大小、使用GoogleColab训练和测试的完整过程。
摘要由CSDN通过智能技术生成

英文原文:https://stable-diffusion-art.com/dreambooth/

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

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

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

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

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

软件

要遵循本教程并进行培训,您需要

任一选项都允许您访问training notebook 和示例图像。

注意:

  1. 此笔记本只能训练 Stable Diffusion v1.5 检查点模型。如果您对 SDXL 模型感兴趣,请训练 SDXL LoRA 模型
  2. 该笔记本可以使用免费的 Colab 帐户运行。付费帐户允许您使用更快的 V100 GPU,从而加快训练速度。

什么是Dreambooth ?

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

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

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

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

在这里插入图片描述
只需 3 张训练图像,Dreambooth 即可将自定义主题无缝注入扩散模型。

Dreambooth 如何运作?

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

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

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

还有另一种类似的技术,称为文本倒转。不同之处在于,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

现在您了解了自己的需求,让我们深入训练吧!

分步指南

第 1 步:准备训练图像

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

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

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

我将在教程中使用这个玩具。
在这里插入图片描述

步骤 2:将图像大小调整为 512×512

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

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

  1. 将您的图像拖放到 BIRME 页面。
  2. 调整每张图像的画布,使其充分显示主题。
  3. 确保宽度和高度均为 512 像素。
  4. 按“保存文件”将调整大小的图像保存到您的计算机。
    在这里插入图片描述
    或者,如果您想完成本教程,您可以下载我调整大小的图像。

下载训练图像:

第三步:训练

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

整个训练时间约为30分钟。如果您不经常使用 Google Colab,您可能可以在不断开连接的情况下完成训练。购买一些计算积分以避免断开连接的挫败感。

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

  1. 打开 Colab 笔记本。

  2. 输入型号名称。您可以使用 Stable Diffusion v1.5 模型(HuggingFace 页面)。您可以在 HuggingFace 上找到更多模特。模型名称的格式应为用户/模型。

runwayml/stable-diffusion-v1-5

  1. 输入BRANCH 名称。有关模型和分支名称,请参阅下面的屏幕截图。

fp16

在这里插入图片描述
4. 输入实例提示符和类提示符。对于我的图像,我将我的玩具兔子命名为 zwx,因此我的实例提示是:

photo of zwx toy
我的类别提示词是:
photo of a toy
在这里插入图片描述

  1. 单击单元格左侧的“播放”按钮 ( ▶️ ) 开始处理。
  2. 授予访问 Google 云端硬盘的权限。目前,除了将模型文件保存到 Google 云端硬盘之外,没有简单的方法可以下载该模型文件。
    在这里插入图片描述
  3. 按选择文件上传调整大小的图像。
    在这里插入图片描述
  4. 完成训练需要 10-30 分钟,具体取决于您使用的运行时机器。完成后,您应该会看到新模型生成的一些示例图像。

在这里插入图片描述
9. 您的自定义模型将保存在 Google Drive 的 Dreambooth_model 文件夹下。下载模型检查点文件并将其安装在您喜欢的 GUI 中。

第 4 步:测试模型(可选)

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

提示词:

oil painting of zwx in style of van gogh

在这里插入图片描述
使用提示

oil painting of zwx in style of van gogh

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

在这里插入图片描述
请注意,您必须在训练完成后立即运行此单元。否则您的笔记本电脑可能会断开连接。

使用模型

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

将模型与 Stable Diffusion Colab 笔记本一起使用非常简单。您的新模型保存在 Google 云端硬盘的 AI_PICS/models 文件夹中。无需移动即可加载。

如果您在本地使用 AUTOMATIC1111,请将 dreambooth 模型下载到本地存储并将其放入文件夹 stable-diffusion-webui > models > Stable-diffusion 中。

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

如果您已经拥有想要生成的图像类型,Stable Diffusion v1.5 可能不是最佳的开始模型。例如,如果您只想使用模型生成逼真的图像,则应该使用Realistic Vision model(见下文)。

您需要更改 MODEL_NAME 和 BRANCH。

在这里插入图片描述
目前,笔记本仅支持训练半精度v1和v2模型。您可以通过查看型号尺寸来判断。 v1 型号应约为 2GB。

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

在这里插入图片描述

例子:一个现实的人

Realistic Vision v2 是一个很好的模型,可以用现实的人来训练新模型。对于女性使用以下设置。

MODEL_NAME:

SG161222/Realistic_Vision_V2.0

BRANCH:

main

实例提示:

photo of zwx woman

类提示词:

photo of woman

下载训练图像:

以下是训练图像的一些示例。

在这里插入图片描述
以下是新模型的一些图像。您可以在 Dreambooth 指南中找到训练图像。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值