Instruct pix2pix 能做什么?
这是一种创新的照片编辑方式,只需告诉它您想要更改的内容即可。例如,假设我们要将马变成下图中的龙。

我们可以简单地把图像给模型,然后说“把马变成龙”。该模型将通过手术将马变成龙,同时保持图像的其余部分完好无损。

Instruct pix2pix 是如何工作的?
有两个部分可以了解模型的工作原理:(1) 模型架构和 (2) 训练数据。
模型架构
Instruct pix2pix 模型是一个稳定的扩散模型。很像图像到图像,它首先将输入图像编码到潜在空间中。
扩散过程是有条件的。回想一下,Image-to-image 有一个条件,即文本提示,用于引导图像生成。Instruct pix2pix 有两个条件,文本提示和输入图像。(如果您需要复习稳定扩散的模型架构,请阅读文章“稳定扩散如何工作?”。)
扩散由通常的分类器自由指导 (CFG) 机制指导。但由于 Instruct pix2pix 模型有两个条件(提示和图像),它有两个 CFG 参数,一个用于提示,另一个用于图像。因此,您将在 AUTOMATIC1111 GUI 中看到文本 CFG 和图像 CFG,我将向您展示如何使用它们。

这两个结的含义与香草稳定扩散中的相同:当CFG值较低时,提示或图像在很大程度上被忽略。当 CFG 值高时,紧跟提示或图像。
请注意,当您增加文本 CFG 和图像 CFG 时,效果是相反的:增加文本 CFG 会更多地改变图像;增加图像 CFG 对图像的改变较小。通常需要调整这两个值以调入效果。
训练
现在我们已经看到模型本身是具有两个条件(文本提示和图像)的稳定扩散模型的简单扩展,他们是如何教模型理解编辑指令的?我想说这项工作的真正创新在于他们合成训练数据的方式。
研究论文中的下图很好地总结了它。

他们首先教授专门的 GPT-3 语言模型,以根据输入字幕生成编辑指令和编辑后的字幕。作为 ChatGPT 等技术背后的大型语言模型,这项任务轻而易举。在图中,当你告诉 GPT-3 标题“骑马的女孩的照片”时,你会得到两条消息(1)指令:“让她骑龙”和(2)编辑后的标题:“照片骑龙的少女”。
现在标题和编辑后的标题对仍然只是纯文本。(它们毕竟是语言模型的输入和输出)我们需要把它们变成图像。你可能认为你可以将它们用作 Stable Diffusion 的提示来得到两张图像,但问题是它们不会像编辑前后的照片那样非常相似。下面左侧的一对图像(也来自研究论文)说明了这一点。

相反,他们所做的是使用 Prompt-to-prompt 模型(一种用于合成相似图像的扩散模型)来生成“编辑”前后的图像。现在他们有了前图(输入)、编辑指令(输入)和后图(输出)。他们可以将它们作为训练示例输入到模型中。
由于这种生成训练数据的方法是完全合成的,他们可以一次又一次地运行它来生成数十万个训练示例。这正是他们所做的。这就是该模型训练有素的原因。
与其他方法的区别
Prompt-to-prompt 可以生成具有特定编辑的高度相似的图像,但所有图像都是从文本提示生成的。与 instruct pix2pix 不同,它不能编辑非生成的图像。
图像到图像(又名 SDEdit)可以使用非生成的图像作为输入,您可以使用不同的提示编辑图像。但是在不改变图像其他部分的情况下很难进行精确的编辑。
现在你知道它是如何工作的了。让我们学习如何运行它。
在网络上运行 Instruct pix2pix
Instruct pix2pix 运行得非常快(毕竟它是一个稳定的扩散模型)。如果您不使用 AUTOMATIC1111,则有多个 Web 选项可用。
抱脸
HuggingFace 为 Instruct pix2pix 提供了一个不错的演示页面。您可以免费试用 Instruct pix2pix。它基本上是 AUTOMATIC1111 接口的简单版本。我们将要讨论的许多参数都可以在这个网页上找到。

复制
Replicate 有一个 Instruct pix2pix 的演示页面。提供了相当多的参数列表。速度也很不错。一次最多可生成 4 张图像。

在 AUTOMATIC1111 中安装 Instruct pix2pix
我们将介绍如何在 AUTOMATIC1111 中安装 Instruct pix2pix。这些说明适用于在 Google Colab、Windows 和 Mac 上运行。
如果您使用快速入门指南中的 1-click Google Colab Notebook 来启动 AUTOMATIC1111,只需选择instruct_pix2pix_model
at startup。

如果您在自己的计算机上运行 AUTOMATIC1111,可以从 Instruct pix2pix 的 Hugging Face 页面下载该模型。使用以下链接直接下载 Instruct pix2pix 模型。
直接下载链接
将检查点文件(7GB!!)放在以下文件夹中
stable-diffusion-webui/models/Stable-diffusion
刷新检查点下拉框后,您应该会看到新的检查点文件。
在 AUTOMATIC1111 中使用 Instruct-pix2pix
要使用 Instruct Pix2Pix:
- 选择 Instruct Pix2Pix 模型:
instruct-pix2pix-.....ckpt
。
2. 切换到 img2img 选项卡。
3. 将图像拖放到 img2img 子选项卡的输入画布中。请注意,并非所有图像格式都受支持,尽管它们看起来都已上传。请务必使用 PNG 或 JPG 格式。您可以使用下面的按钮下载测试图像。
4. 在提示框中输入指令。例如,“给她戴上太阳镜。”
5. 按生成。

Instruct pix2pix 的参数
以下是您可能需要更改的重要参数
输出批次:4 – 每次的编辑都可能非常不同。确保一次至少生成几个并选择一个有效的。
采样步骤:我可以将它设置在 20 – 30 之间。
种子:编辑会随着种子值的变化而变化。当您想要生成不同的编辑时,请使用随机种子。在拨入参数(提示、文本 CFG 和图像 CFG)时使用修复种子。
文本 CFG:与文本到图像中的 CFG 比例相同。如果您希望编辑符合提示,请增加。如果您希望它跟随更少,请减少。
图像 CFG:文本 CFG 的图像副本。如果减少编辑量,则增加。如果您希望它编辑更多,请减少。
下面是一个图像矩阵(来自研究论文),显示了改变文本 CFG 和图像 CFG 的效果。查看最后一列:高文本 CFG 值使模型遵循指令。现在看最后一行:高图像 CFG 值恢复原始图像或减少编辑。

GUI 还允许您处理一批图像。但根据我的经验,你真的想一次调整一个图像的参数。
使用 instruct pix2pix 的一些想法
图片修改
Instruct pix2pix 接受过编辑照片的培训,并且表现非常好。我将使用我在潜在空间遇到的朋友的照片。

这里有一些照片编辑的例子。

把她的衣服换成白色

把她换成男人

把她的手臂换成机器人

把她换成乐高

把她的衣服换成蛇

给她戴上墨镜
意外更改
一些编辑,尤其是与颜色相关的编辑可能会产生出血效果。例如,将女人的衣服换成白色也会使背景变白。
我还看到了一些意外的编辑。当女人的衣服换成蛇时,她的头发颜色也随之改变。
总的来说,这些意想不到的变化在美学上仍然令人愉悦。(毕竟这是经过训练的稳定扩散)在这些变化是不可接受的应用程序中,我们总是可以使用掩码来限制变化的区域。
风格化照片
Instruct pix2pix 比图像到图像和使用模型更好地风格化照片。这是因为它在编辑后很好地保留了原始内容。应用样式后,您会看到女人看起来仍然像原来的人。
要对照片进行风格化,您可以使用以下提示并填写您喜欢的风格。
更改为 _______ 样式
您可以引用样式名称。这里有些例子。
更改为 [style_name] 风格

木炭

水彩

铅笔素描

3D

卡通片

点彩派
你也可以引用艺术家的名字。
更改为 [artist_name] 风格。

梵高

约翰萨金特

达芬奇

阿尔丰斯穆夏
Instruct pix2pix 现在是我对图像进行风格化的首选方法。
模型页面中有一个很好的示例目录。
指令模板
以下是您可以用来帮助您入门的说明模板列表。
- 将风格更改为(艺术家或风格名称)
- 让她/他(做某事)
- 让她/他看起来像(一个物体或人)
- 将(照片中的某物)变成(新物体)
- 添加一个(对象)
- 在(照片中的某物)上添加(对象)
- 用(另一个对象)替换(对象)
- 将它们放入(场景或背景)
- 做它(一个地方,背景或天气)
- 应用(对一个人的情绪或某事)
附录:在 AUTOMATIC1111 中使用带扩展名的 Instruct-pix2pix
Instruct-pix2pix 在最新版本的 AUTOMATIC1111 中集成了 img2img 选项卡。不再需要安装扩展,但仍然可以工作。
安装 Instruct-pix2pix 扩展
在自动 1111 中,
- 转到扩展选项卡。
- 选择可用选项卡。
- 单击加载自:按钮。这将检索可供安装的扩展列表。
- 应显示扩展名列表。单击 Install-pix2pix 扩展的安装按钮。

5. 选择已安装选项卡。您应该会在已安装列表中看到 instruct-pix2pix 插件。单击应用并重新启动 UI 按钮以重新启动 GUI。

6. 如果您在 Google Colab 上运行,Gradio 链接可能会在这一步后发生变化。返回 Google Colab 页面并单击新的 Gradio 链接以重新启动 AUTOMATIC1111。
7. 选择模型 instruct-pix2pix-…ckpt 和新选项卡 Instruct–pix2pix 开始使用 Instruct pix2pix。

如果您在 Colab Notebook 中选择 SAVE_IN_GOOGLE_DRIVE 选项,该扩展程序也会保存在您的 Google 云端硬盘中。下次启动时无需再次安装。
与扩展一起使用
- 选择模型 instruct-pix2pix-…ckpt 和选项卡 Instruct–pix2pix 以开始使用 Instruct pix2pix。
- 将图像拖放到输入画布中。请注意,并非所有图像格式都受支持,尽管它们看起来都已上传。请务必使用 PNG 或 JPG 格式。您可以使用下面的按钮下载测试图像。
3. 在提示中输入指令。例如,“添加太阳眼镜。”
