英文原文:https://stable-diffusion-art.com/dreambooth/
Dreambooth 是一种将任何东西(您所爱的人、您的狗、您最喜欢的玩具)放入Stable Diffusion 模型的方法。我们将介绍 Dreambooth 是什么、它是如何工作的以及如何进行训练。
本教程针对的是已经使用过 Stable Diffusion 但之前没有使用过 Dreambooth 的人。
您将按照分步指南准备训练图像,并使用我们简单的一键式 Colab notebook进行 dreambooth 训练。无需编码!
您知道许多自定义模型都是使用 Dreambooth 进行训练的吗?完成本教程后,您将知道如何制作自己的。
您将首先了解 Dreambooth 是什么及其工作原理。但如果您只对训练感兴趣,则可以跳至分步指南。
软件
要遵循本教程并进行培训,您需要
- 成为该网站的会员,或者
- 购买 training notebook
任一选项都允许您访问training notebook 和示例图像。
注意:
- 此笔记本只能训练 Stable Diffusion v1.5 检查点模型。如果您对 SDXL 模型感兴趣,请训练 SDXL LoRA 模型。
- 该笔记本可以使用免费的 Colab 帐户运行。付费帐户允许您使用更快的 V100 GPU,从而加快训练速度。
什么是Dreambooth ?
Dreambooth 由 Google 研究团队于 2022 年发布,是一种通过将自定义主题注入模型来微调扩散模型(如稳定扩散)的技术。
为什么叫Dreambooth?据谷歌研究团队称,
它就像一个照相亭,但一旦拍摄到主题,它就可以合成到你的梦想带你去的任何地方。
听起来很棒!但它的效果如何?以下是研究文章中的一个示例。仅使用特定狗(我们称她为 Devora)的 3 张图像作为输入,dreamboothed 模型就可以在不同的环境中生成 Devora 的图像。
只需 3 张训练图像,Dreambooth 即可将自定义主题无缝注入扩散模型。
Dreambooth 如何运作?
您可能会问为什么不能使用这些图像通过额外的步骤来训练模型。问题是,众所周知,这样做会因过度拟合(因为数据集非常小)和语言漂移而导致灾难性失败。
Dreambooth 通过以下方式解决了这些问题
- 对新主题使用一个罕见的单词(请注意,我为狗使用了一个罕见的名字 Devora),这样它一开始在模型中就没有太多意义。
- 预先保留到类别:为了保留类别(上例中的狗)的含义,模型以注入主体(Devora)的方式进行微调,同时生成类别(狗)的图像。保存下来。
还有另一种类似的技术,称为文本倒转。不同之处在于,Dreambooth 对整个模型进行了微调,而文本反转则注入了一个新词,而不是重复使用生僻词,并且仅对模型的文本嵌入部分进行了微调。
训练 Dreambooth 需要什么
你需要三样东西
- 一些自定义图像
- 唯一标识符
- 一个类名
在上面的例子中。唯一标识符是 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 是一个调整图像大小的便捷网站。
- 将您的图像拖放到 BIRME 页面。
- 调整每张图像的画布,使其充分显示主题。
- 确保宽度和高度均为 512 像素。
- 按“保存文件”将调整大小的图像保存到您的计算机。
或者,如果您想完成本教程,您可以下载我调整大小的图像。
下载训练图像:
第三步:训练
我建议使用 Google Colab 进行训练,因为它可以省去您设置的麻烦。以下笔记本是从 Shivam Shrirao 的存储库修改而来的,但更加用户友好。如果您喜欢其他设置,请按照存储库的说明进行操作。
整个训练时间约为30分钟。如果您不经常使用 Google Colab,您可能可以在不断开连接的情况下完成训练。购买一些计算积分以避免断开连接的挫败感。
笔记本会将模型保存到您的 Google 云端硬盘。如果您选择 fp16(推荐),请确保您至少有 2GB;如果不选择,请确保您有 4GB。
-
打开 Colab 笔记本。
-
输入型号名称。您可以使用 Stable Diffusion v1.5 模型(HuggingFace 页面)。您可以在 HuggingFace 上找到更多模特。模型名称的格式应为用户/模型。
runwayml/stable-diffusion-v1-5
- 输入BRANCH 名称。有关模型和分支名称,请参阅下面的屏幕截图。
fp16
4. 输入实例提示符和类提示符。对于我的图像,我将我的玩具兔子命名为 zwx,因此我的实例提示是:
photo of zwx toy
我的类别提示词是:
photo of a toy
- 单击单元格左侧的“播放”按钮 ( ▶️ ) 开始处理。
- 授予访问 Google 云端硬盘的权限。目前,除了将模型文件保存到 Google 云端硬盘之外,没有简单的方法可以下载该模型文件。
- 按选择文件上传调整大小的图像。
- 完成训练需要 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 指南中找到训练图像。