如何在 Windows 上使用 GUI 在本地运行稳定的扩散

已发表: 2022-09-18

标题图片。奇怪的秃鹫、可爱的灰猫和控制论的美杜莎。

您可以在 PC 上本地安装 Stable Diffusion,但典型过程涉及大量使用命令行来安装和使用的工作。 对我们来说幸运的是,Stable Diffusion 社区已经解决了这个问题。 以下是如何安装一个使用图形用户界面在本地运行的 Stable Diffusion 版本!

目录

什么是稳定扩散?
运行此版本的稳定扩散需要什么?
如何使用 GUI 安装稳定的扩散
首先安装 Python
安装 Git 并下载 GitHub 存储库
下载所有检查点
如何通过 GUI 使用稳定扩散生成图像
如何掩盖您创建的图像以进行修复
如何修复“CUDA 内存不足”错误

什么是稳定扩散?

Stable Diffusion 是一种 AI 模型,可以根据文本提示生成图像,或者使用文本提示修改现有图像,很像 MidJourney 或 DALL-E 2。它于 2022 年 8 月由 Stability.ai 首次发布。 它可以理解数以千计的不同单词,并且可以用来创建几乎任何您可以想象到的几乎任何风格的图像。

不过,Stable Diffusion 与大多数其他流行的 AI 艺术生成器有两个关键区别:

  • 它可以在您的 PC 上本地运行
  • 这是一个开源项目
稳定扩散为您的 PC 带来本地 AI 艺术生成
相关稳定扩散将本地 AI 艺术生成带到您的 PC

最后一点确实是这里的重要问题。 传统上,Stable Diffusion 是通过命令行界面安装和运行的。 它有效,但它可能很笨重、不直​​观,并且对于那些本来会感兴趣的人来说,这是一个重大的进入障碍。 但是,由于它是一个开源项目,社区很快为它创建了一个用户界面,并开始添加他们自己的增强功能,包括优化以最大限度地减少视频内存 (VRAM) 的使用以及内置放大和屏蔽。

运行此版本的稳定扩散需要什么?

这个版本的 Stable Diffusion 是 Stability.ai 创建和维护的主存储库(repo)的一个分支——一个分支。 它有一个图形用户界面 (GUI)——比只有命令行界面的常规 Stable Diffusion 更易于使用——以及一个可以自动处理大部分设置的安装程序。

相关:如何在您的 PC 上运行稳定的扩散以生成 AI 图像

警告:与往常一样,请小心您在 GitHub 上找到的第三方软件分支。 我们已经使用它一段时间了,没有任何问题,成千上万的其他人也是如此,所以我们倾向于说它是安全的。 幸运的是,与一些开源项目的分支相比,这里的代码和更改很小。

这个分支还包含各种优化,应该允许它在具有更少 RAM 的 PC 上运行,使用 GFPGAN、ESRGAN、RealESRGAN 和 CodeFormer 的内置升级和面部功能以及掩码。 遮罩是一件大事——它允许您有选择地将 AI 图像生成应用到图像的某些部分,而不会扭曲其他部分,这个过程通常称为修复。

  • 您的硬盘驱动器上至少有 10 GB 可用空间
  • 具有 6 GB RAM 的 NVIDIA GPU(尽管您可能能够使 4 GB 工作)
  • 运行 Windows 11、Windows 10、Windows 8.1 或 Windows 8 的 PC
  • WebUI GitHub 存储库,由 AUTOMATIC1111 提供
  • Python 3.10.6(新版本和大多数旧版本也应该没问题)
  • 稳定扩散官方检查站(注意 9 月下旬的 v1.5 检查站!)
  • GFPGAN v1.3检查点(v1.4 也可以工作)
  • 您可能需要的任何其他 ESRGAN 模型。 您可以根据需要使用任意多或少。

如何使用 GUI 安装稳定的扩散

安装过程已显着简化,但在使用安装程序之前,您仍需要手动执行几个步骤。

首先安装 Python

您应该做的第一件事是安装 repo 的作者推荐的 Python 版本 3.10.6。 前往该链接,向页面底部滚动,然后单击“Windows Installer(64 位)”。

单击您下载的可执行文件并按照提示进行操作。 如果您已经安装了 Python(而且您肯定会安装),只需单击“升级”。 否则按照推荐的提示进行操作。

注意:如果您有一个选项,请确保将 Python 3.10.6 添加到 PATH 中。

安装 Git 并下载 GitHub 存储库

您需要先在 Windows 上下载并安装 Git,然后才能运行 Stable Diffusion 安装程序。 只需下载 64 位 Git 可执行文件,运行它,然后使用推荐的设置,除非您有特别的想法。

相关:如何在 Windows 上安装 Git

接下来,您需要从 GitHub 存储库下载文件。 单击绿色的“代码”按钮,然后单击菜单底部的“下载 ZIP”。

在文件资源管理器或您喜欢的文件归档程序中打开 ZIP 文件,然后将内容解压缩到您想要的任何位置。 请记住,该文件夹是您运行 Stable Diffusion 所需的位置。 此示例将它们提取到 C:\ 目录,但这不是必需的。

将“stable-diffusion-webui-master”文件夹拖到任何你想要的地方。

注意:确保您不会不小心将“stable-diffusion-webui-master”拖到另一个文件夹而不是空白空间 - 如果这样做,它将放入该文件夹,而不是您想要的父文件夹。

下载所有检查点

您需要几个检查点才能使其正常工作。 第一个也是最重要的是稳定扩散检查点。 您需要创建一个帐户来下载检查点,但该帐户的要求并不高 - 他们只需要一个姓名和电子邮件地址,您就可以开始了。

注意:检查点下载为数 GB。 不要指望它会立即完成。

将“sd-v1-4.ckpt”复制并粘贴到上一节的“stable-diffusion-webui-master”文件夹中,然后右键单击“sd-v1-4.ckpt”并点击重命名。 在文本字段中输入“model.ckpt”,然后按 Enter。 确保它是“model.ckpt”——否则这将不起作用。

注意:重命名功能是 Windows 11 上的一个图标。

您还需要下载 GFPGAN 检查点。 我们正在使用的 repo 的作者要求使用 GFPGAN v1.3 检查点,但如果您想尝试一下,也许可以使用 v1.4。 向下滚动页面,然后单击“V1.3 模型”。

将该文件“GFPGANv1.3.pth”放入“stable-diffusion-webui-master”文件夹中,就像使用“sd-v1-4.ckpt”文件一样,但不要重命名它。 “stable-diffusion-webui-master”文件夹现在应该包含这些文件:

这是您重命名 Stable Diffusion 模型并添加 GFPGAN 模型后文件夹的样子。

您还可以根据需要下载任意数量的 ESRGAN 检查点。 它们通常打包为 ZIP 文件。 下载后,打开 ZIP 文件,然后将“.pth”文件解压到“ESRGAN”文件夹中。 这是一个例子:

ESRGAN 模型的位置。

ESRGAN 模型倾向于提供更具体的功能,因此请挑选一些对您有吸引力的模型。

现在,您只需双击位于主“stable-diffusion-webui-master”文件夹中的“webui-user.bat”文件。 将出现一个控制台窗口并开始获取所有其他重要文件、构建 Python 环境并设置 Web 用户界面。 它看起来像这样:

注意:预计第一次运行此程序至少需要几分钟。 它需要从互联网上下载一堆东西。 如果它似乎在某个步骤中挂起的时间过长,只需尝试选择控制台窗口并按 Enter 键即可。

WebUI 客户端下载并安装所有资产。

完成后,控制台将显示:

 在本地 URL 上运行:http://127.0.0.1:7860
要创建公共链接,请在 `launch()` 中设置 `share=True`

相关:什么是 127.0.0.1 IP 地址,以及如何使用它?

如何通过 GUI 使用稳定扩散生成图像

好的,你已经安装了 Stable Diffusion 的 WebUI 变体,你的控制台让你知道它“在本地 URL 上运行:http://127.0.0.1:7860”。

注意:这到底是什么意思,发生了什么? 127.0.0.1 是本地主机地址——您的计算机为自己提供的 IP 地址。 此版本的 Stable Diffusion 在您的本地 PC 上创建一个服务器,该服务器可通过其自己的 IP 地址访问,但前提是您通过正确的端口连接:7860。

打开浏览器,在地址栏中输入“127.0.0.1:7860”或“localhost:7860”,然后回车。 您将在 txt2img 选项卡上看到:

Google Chrome 中 WebUI 客户端的首页。

如果您以前使用过 Stable Diffusion,这些设置对您来说会很熟悉,但这里简要概述了最重要的选项的含义:

  • 提示:您想要创建的内容的描述。
  • 滚动按钮:将随机的艺术风格应用于您的提示。
  • 采样步骤:在您收到输出之前对图像进行细化的次数。 通常越多越好,但收益会递减。
  • 抽样方法:控制抽样处理方式的基础数学。 您可以使用其中任何一种,但 euler_a 和 PLMS 似乎是最受欢迎的选项。 您可以在本文中阅读有关 PLMS 的更多信息。
  • 恢复面孔:使用 GFPGAN 尝试修复离奇或扭曲的面孔。
  • Batch Count:要生成的图像数量。
  • 批次大小: “批次”的数量。 除非您有大量的 VRAM,否则将其保持为 1。
  • CFG 量表: Stable Diffusion 将如何仔细遵循您给出的提示。 较大的数字意味着它非常仔细地遵循它,而较小的数字则赋予它更多的创作自由。
  • 宽度:要生成的图像的宽度。
  • 高度:要生成的图像的宽度。
  • 种子:为随机数生成器提供初始输入的数字。 将其保留为 -1 以随机生成新种子。

让我们根据提示生成五张图像:“魔法森林中的高地牛,35mm 胶片摄影,锐利”,看看我们使用 PLMS 采样器、50 个采样步骤和 5 的 CFG 比例得到了什么。

提示:如果您的工作耗时过长,您可以随时点击“中断”按钮停止生成。

输出窗口将如下所示:

输出有关高地奶牛的提示。五头高地牛,两头黑色和白色。

注意:您的图像会有所不同。

中间顶部的图像是我们稍后将用于尝试遮罩的图像。 除了个人喜好之外,这种特定选择并没有真正的原因。 抓住任何你喜欢的图像。

一头可爱的高地牛在森林里。

选择它,然后单击“发送到 Inpaint”。

如何掩盖您创建的图像以进行修复

修复是一个很棒的功能。 通常稳定扩散用于从提示创建整个图像,但修复允许您有选择地生成(或重新生成)图像的一部分。 这里有两个关键选项:inpaint masked,inpaint not masked。

Inpaint masked 将使用提示在您突出显示的区域内生成图像,而 inpaint not masked 将执行完全相反的操作 - 只有您遮罩的区域将被保留。

我们将首先介绍一些有关 Inpaint masked 的内容。 按住左键在图像上拖动鼠标,您会注意到图像顶部出现一个白色层。 画出要替换的区域的形状,并确保将其完全填充。 您不是在环绕一个区域,而是在整个区域中进行掩蔽。

提示:如果您只是在现有图片中添加一些内容,尝试使蒙版区域与您尝试创建的近似形状对齐会很有帮助。 例如,当你想要一个圆形时,掩盖一个三角形会适得其反。

让我们以我们的高原牛为例,给他一顶厨师帽。 以近似厨师帽的形状遮住一个区域,并确保将“Batch Size”设置为大于 1。您可能需要多个才能获得理想的(ish)结果。

此外,您应该选择“Latent Noise”而不是“Fill”、“Original”或“Latent Nothing”。 当您想在场景中生成一个全新的对象时,它往往会产生最佳结果。

注意:你会注意到帽子的左边缘已经删除了他的部分角。 发生这种情况是因为“蒙版模糊”设置有点太高了。 如果您在图像中看到类似的东西,请尝试降低“蒙版模糊”值。
一头戴着厨师帽的高地牛。
提示:厨师帽设置:Inpaint Masked、Latent Diffusion、CFG 9.5、去噪强度 0.75、采样步数 = 50、采样方法 = Euler_A

好吧——也许一顶厨师帽不适合你的高原奶牛。 你的高地奶牛更喜欢 20 世纪初的氛围,所以让我们给他一顶圆顶礼帽吧。

一头戴着圆顶礼帽的高地牛。
提示:Bwel hat 设置:Inpaint Masked、Latent Diffusion、CFG 9.5、降噪强度 0.75、采样步数 = 50、采样方法 = Euler_A

多么积极简洁。

当然,您也可以使用 Inpaint Not Masked 进行完全相反的操作。 它在概念上是相似的,除了您定义的区域是相反的。 不是标出要更改的区域,而是标出要保留的区域。 当您想将一个小对象移动到不同的背景上时,它通常很有用。

如何修复“CUDA 内存不足”错误

您制作的图像越大,需要的视频内存就越多。 您应该尝试的第一件事是生成较小的图像。 Stable Diffusion 在 256×256 下产生良好的(尽管非常不同)图像。

如果您渴望在没有 512×512 图像问题的计算机上制作更大的图像,或者遇到各种“内存不足”错误,那么对配置进行一些更改应该会有所帮助。

在记事本或您想要的任何其他纯文本编辑器中打开“webui-user.bat”。 只需右键单击“webui-user.bat”,单击“编辑”,然后选择记事本。 识别读取set COMMANDLINE_ARGS=的行。 这就是您要放置命令以优化稳定扩散运行方式的位置。

相关:如何在 Windows 上编写批处理脚本

如果您只想制作大图,或者 GTX 10XX 系列 GPU 上的 RAM 不足,请先尝试--opt-split-attention 。 它看起来像这样:

然后单击文件 > 保存。 或者,您可以按键盘上的 Ctrl+S。

如果您仍然遇到内存错误,请尝试将--medvram添加到命令行参数列表 (COMMANDLINE_ARGS)。

如果之前的命令没有帮助,您可以添加--always-batch-cond-uncond来尝试修复其他内存问题。 还有一种替代--medvram的方法可能会进一步减少 VRAM 的使用, --lowvram ,但我们无法证明它是否真的有效。

添加用户界面是让所有人都可以使用这些人工智能驱动工具的关键一步。 可能性几乎是无穷无尽的,即使是快速浏览专注于人工智能艺术的在线社区,也会向您展示这项技术有多么强大,即使在它还处于起步阶段。 当然,如果您没有游戏电脑,或者您不想担心设置,您可以随时使用在线 AI 艺术生成器之一。 请记住,您不能假设您的条目是私人的。