如何在Windows上通过图形用户界面本地运行Stable Diffusion

文章目录

  • 首先安装Python
  • 安装 Git 并下载 GitHub Repo
  • 下载所有Checkpoints

HEader

你可以在你的PC上本地安装Stable Diffusion,但是典型的过程是需要用命令行来安装和使用。幸运的是,Stable Diffusion社区已经解决了这个问题。下面是如何安装在本地运行的带有图形用户界面的Stable Diffusion版本的方法

什么是Stable Diffusion?

Stable Diffusion是一个人工智能模型,它可以根据文本提示生成图像,或通过文本提示修改现有的图像,就像MidJourney或DALL-E 2一样。它是由Stability.ai于2022年8月首次发布。它能理解数以千计的不同词汇,可以用来创造你的想象力所能想到的几乎任何风格的图像。

不过,有两个关键的区别使稳定扩散与其他大多数流行的AI艺术生成器不同:

最后一点才是真正重要的问题。传统上,Stable Diffusion是通过命令行界面安装和运行的。它可以工作,但它可能很笨重,不直观,而且对那些本来有兴趣的人来说是一个很大的进入障碍。但是,由于它是一个开源项目,社区很快就为它创建了一个用户界面,并开始添加他们自己的增强功能,包括优化,以尽量减少视频内存(VRAM)的使用,并建立升频和屏蔽。

你需要什么来运行这个版本的Stable Diffusion?

这个版本的Stable Diffusion由Stability.ai创建和维护的主资源库(repo)的一个分支。它有一个图形用户界面(GUI)–使其比常规的Stable Diffusion更容易使用,后者只有一个命令行界面–还有一个安装程序会自动处理大部分的设置。

警告:像往常一样,对你在GitHub上发现的第三方软件的分支要小心。我们使用这个软件已经有一段时间了,没有任何问题,成千上万的人也在使用,所以我们倾向于说它是安全的。幸运的是,与一些开源项目的分叉相比,这里的代码和改动都很小。

这个分叉还包含各种优化,应该可以让它在内存较少的PC上运行,使用GFPGAN、ESRGAN、RealESRGAN和CodeFormer的内置放大和面部功能,以及masking。masking是一项巨大的处理–它允许你有选择地将人工智能图像生成应用于图像的某些部分,而不扭曲其他部分,这一过程通常称为inpainting。

如何使用GUI安装Stable Diffusion

安装过程已经被大大简化了,但是在使用安装程序之前,仍然有几个步骤需要手动完成。

首先安装Python

你应该做的第一件事是安装Python的版本,即3.10.6,这是 repo 的作者推荐的。进入该链接,向页面底部滚动,并点击 “Windows Installer (64-Bit)“。

windows-installer-1

点击你下载的可执行文件,并按提示操作。如果你已经安装了Python(你肯定已经安装了),只需点击 “Upgrade”。否则就按照推荐的提示进行操作。

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

安装 Git 并下载 GitHub Repo

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

接下来,你需要从GitHub repo下载文件。点击绿色的 “Code” 按钮,然后点击菜单底部的 “Download ZIP”。

clcik-code-click-download-zip

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

drag-and-drop

注意:确保你不会不小心把 “stable-diffusion-webui-master” 拖到另一个文件夹而不是空的地方–如果你这样做了,它就会落入那个文件夹,而不是你想要的父文件夹。

下载所有Checkpoints

你需要一些checkpoints才能工作。第一个也是最重要的是Stable Diffusion Checkpoints。你需要创建一个账户来下载checkpoints,但对账户的要求并不高–他们只需要一个名字和电子邮件地址,你就可以开始了。

注意:checkpoints的下载有几千兆字节。不要指望它能立即完成。

click-sd-v1-4-1

复制并粘贴 “sd-v1-4.ckpt” 到 “C:\stable-diffusion-webui-master\models\Stable-diffusion” 文件夹,然后右击 “sd-v1-4.ckpt”,点击重命名。在文本字段中输入 “model.ckpt” 并点击回车。要非常确定它是 “model.ckpt”–否则将无法工作。

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

rename-model

你还需要下载GFPGAN checkpoints。我们所使用的 repo 的作者要求提供 GFPGAN v1.4 checkpoints。向下滚动页面,然后点击 “V1.4 model”。

VERSION-1.4-UPDATED-SCREENIE

将该文件 “GFPGANv1.4.pth” 放入 “stable-diffusion-webui-master” 文件夹中,但不要重命名它。“stable-diffusion-webui-master” 文件夹现在应该包含这些文件:

FOLDER-CORRECt

你也可以下载你想要的许多ESRGAN checkpoints。它们通常被打包成ZIP文件。在下载一个之后,打开ZIP文件,然后将 “.pth” 文件解压到 “models/ESRGAN” 文件夹中。下面是一个例子:

esgar-update

ESRGAN模型往往提供更具体的功能,所以挑出几个吸引你的。

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

注意:预计你第一次运行这个程序至少需要几分钟。它需要从互联网上下载一堆东西。如果它在某一步出现了不合理的长时间挂起,只要试着选择控制台窗口并按下Enter键。

looks-like-this

当它完成后,控制台将显示:

Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`

如何使用Stable Diffusion可视化界面GUI来生成图像

好吧,你已经安装了Stable Diffusion的 WebUI,并且你的控制台让你知道它正在 “运行于本地 URL:http://127.0.0.1:7860″。

注意:这到底是什么意思,正在发生什么?127.0.0.1是本地主机地址–你的电脑给自己的IP地址。这个版本的Stable Diffusion在你的本地电脑上创建了一个服务器,可以通过它自己的IP地址访问,但只有当你通过正确的端口连接时才可以: 7860.

打开你的浏览器,在地址栏中输入 “127.0.0.1:7860 “或 “localhost:7860″,然后点击回车。你会在txt2img标签上看到这个:

SD_MAIN_SCREEN_UPDATE

如果你以前使用过Stable Diffusion,这些设置对你来说会很熟悉,但这里简要介绍一下最重要的选项的含义:

  • Prompt: 你想创建的内容的描述。
  • Painter’s Pallete Button:将随机的艺术风格应用于你的提示。
  • Sampling Steps:在你收到输出之前,图像将被改进的次数。一般来说,越多越好,但也有递减的情况。
  • Sampling Method: 规定如何处理采样的基础数学。你可以使用其中任何一种,但euler_a和PLMS似乎是最流行的选择。你可以在这篇论文中阅读更多关于PLMS的内容
  • Restore Faces: 使用GFPGAN来尝试修复不正常的或扭曲的脸。
  • Batch Count:要生成的图像的数量。
  • Batch Size:批量的数量。保持在1,除非你有大量的VRAM。
  • CFG Scale:Stable Diffusion遵循你给它的提示的谨慎程度。较大的数字意味着它非常仔细地遵循提示,而较小的数字则给它更多的创作自由。
  • Width:你想要生成的图像的宽度。
  • Height:你想生成的图像的宽度。
  • Seed:为随机数发生器提供初始输入的数字。让它保持在-1以随机生成一个新的种子。

让我们根据提示生成五个图像: “a highland cow in a magical forest, 35mm film photography, sharp”,看看我们使用PLMS采样器、50个采样步骤和5的CFG比例得到了什么。

提示:如果你的工作时间太长,你可以随时点击 “Interrupt” 按钮来停止生成。

输出窗口将看起来像这样:

highland-output

注意:你的图像将是不同的。

中上层的图像是我们稍后要用来尝试遮盖的图像。除了个人喜好外,这个具体的选择其实没有什么原因。抓取任何你喜欢的图片。

yes2

选择它,然后点击 “Send to Inpaint”。

如何遮罩创建的图像进行修复

Inpainting是一个神奇的功能。通常情况下,Stable Diffusion用于从提示中创建整个图像,但inpainting允许你有选择地生成(或重新生成)图像的一部分。这里有两个关键选项:inpaint masked,inpaint not masked。

Inpaint masked将使用提示来生成你高亮区域内的图像,而inpaint not masked则完全相反–只有你屏蔽的区域才会被保留下来。

我们先来介绍一下Inpaint masked。在图像上拖动你的鼠标,按住左键,你会发现在你的图像上面出现了一个白色的图层。画出你想要替换的区域的形状,并确保完全填满它。你不是在圈定一个区域,你是在掩盖整个区域。

提示:如果你只是在现有的图片上添加一些东西,试着让遮盖的区域与你要创建的大致形状一致,会有帮助。例如,当你想要一个圆形时,遮蔽一个三角形,会产生反作用。

让我们以我们的高原牛为例,给它戴上一顶厨师的帽子。遮蔽出一个大约是厨师帽形状的区域,并确保将 “Batch Size” 设置为1以上,你可能需要多个批处理才能得到一个理想的结果。

此外,你应该选择 “Latent Noise” 而不是 “Fill”、”Original” 或 “Latent Nothing”。当你想在场景中生成一个全新的物体时,它往往能产生最好的效果。

注意:你会注意到帽子的左边边缘已经删除了他的一部分角。这是因为 “Mask Blur” 的设置有点过高。如果你在你的图像中看到这样的东西,试着降低 “Mask Blur” 的值。

highland-cow-with-a-chefs-hat

提示语: Chef’s hat Settings: Inpaint Masked, Latent Diffusion, CFG 9.5, denoise strength 0.75, Sampling Steps = 50, Sampling Method = Euler_A

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

highland-cow-bowler-hat

提示语: Bowel hat Settings: Inpaint Masked, Latent Diffusion, CFG 9.5, denoise strength 0.75, Sampling Steps = 50, Sampling Method = Euler_A

多么积极的潇洒。

当然,你也可以用Inpaint Not Masked做完全相反的事情。它在概念上是相似的,只是你定义的区域是相反的。你不是标出你想改变的区域,而是标出你想保留的区域。当你想把一个小物体移到一个不同的背景上时,这通常很有用。

如何修复 “CUDA Out Of Memory” 错误

你制作的图像越大,需要的视频内存就越多。你应该尝试的第一件事是生成更小的图像。Stable Diffusion在256×256时能产生很好的–尽管是非常不同的–图像。

如果你渴望在一台不存在512×512图像问题的电脑上制作更大的图像,或者你遇到各种 “Out of Memory “的错误,对配置做一些改变应该会有帮助。

在记事本或任何其他你想要的纯文本编辑器中打开 “webui-user.bat”。只要右击 “webui-user.bat”,点击 “编辑”,然后选择记事本。找出写着 set COMMANDLINE_ARGS= 的那一行,这就是你要放置命令的地方,以优化Stable Diffusion的运行方式。

如果你只是想制作巨大的图片,或者你在GTX 10XX系列GPU上的内存不够用,可以先试试 --opt-split-attention 。它看起来会像这样:

notepad

然后点击文件>保存。或者,你也可以在键盘上按下Ctrl+S。

如果你仍然遇到内存错误,试着在命令行参数列表(COMMANDLINE_ARGS)中加入 --medvram

2022-09-14_17h30_34

如果前面的命令没有帮助,你可以添加 --always-batch-cond-uncond 来尝试和解决额外的内存问题。还有一个 --medvram 的替代方案,即--lowvram,可能会进一步减少VRAM的使用,但我们不能证明它是否真的有用。

增加一个用户界面是使这些人工智能驱动的工具能够为每个人所用的关键一步。这种可能性几乎是无穷无尽的,即使是快速浏览一下致力于人工智能艺术的在线社区,也会向你展示这种技术是多么强大,即使是在其起步阶段。当然,如果你没有游戏电脑,或者你不想担心设置问题,你总是可以使用在线AI艺术生成器之一。只要记住,你不能认为你的作品是私人的。

微海报