电脑装配网

AI生成图像DIY - 在自己的机器上运行Stable Diffusion

 人阅读 | 作者xiaolin | 时间:2023-07-17 22:47

人工智能 (AI) 艺术目前风靡一时,但大多数 AI 图像生成器都在云端运行。 Stable Diffusion 不同——你可以在自己的 PC 上运行它并生成任意数量的图像。 以下是在 Windows 上安装和使用 Stable Diffusion 的方法。

推荐:用 NSDT场景设计器 快速搭建3D场景。

1、什么是Stable Diffusion?

Stable Diffusion 是一种开源机器学习模型,可以从文本生成图像,根据文本修改图像,或者在低分辨率或低细节图像上填充细节。 它已经过数十亿张图像的训练,可以产生与你从 DALL-E 2 和 MidJourney 获得的结果相当的结果。 它由 Stability AI 开发,并于 2022 年 8 月 22 日首次公开发布。

Stable Diffusion 还没有像一些 AI 图像生成器那样整洁的用户界面,但它有一个非常宽松的许可证,而且——最重要的是——它可以在你自己的 PC(或 Mac)上完全免费使用。

不要被 Stable Diffusion 当前在命令行界面 (CLI) 中运行这一事实吓倒。 启动和运行它非常简单。 如果你可以双击一个可执行文件并在一个框中键入,就可以在几分钟内运行它。

2、PC配置要求

Stable Diffusion 不会在你的手机或大多数笔记本电脑上运行,但它可以在普通游戏 PC 上运行。以下是具体的配置要求:

具有至少 6 GB VRAM 的 GPU,这包括大多数现代 NVIDIA GPU硬盘驱动器或固态驱动器上 10GB (ish) 的存储空间Miniconda3 安装程序GitHub上 的Stable Diffusion软件最新检查点(1.4 版,截至撰写本文时,但 1.5 应该很快发布)Git 安装程序Windows 8、10 或 11,Stable Diffusion 也可以在 Linux 和 macOS 上运行

如果你没有满足上述要求的硬件,请考虑使用基于 Web 的 AI 图像生成器。 你甚至可以在 Web 上运行 Stable Diffusion 的演示。

3、Windows安装 Stable Diffusion

你需要两个软件:Git 和 Miniconda3。

注意:Git 和 Miniconda3 都是由知名组织制作的安全程序。 如果你从本文链接的官方来源下载它们,则无需担心它们带有恶意软件。

3.1 安装git

Git 是一种工具,允许开发人员管理他们正在开发的软件的不同版本。 他们可以同时在一个中央存储库中维护他们正在开发的软件的多个版本,并允许其他开发人员为该项目做出贡献。

如果你不是开发人员,Git 提供了一种访问和下载这些项目的便捷方式,这就是我们在这种情况下使用它的方式。 从 Git 网站下载 Windows x64 安装程序,然后运行它来安装 Git。

安装程序运行时,系统会提示你选择几个选项——保留它们的默认设置。 一个选项页面“调整你的 PATH 环境”尤为重要。 它必须设置为“来自命令行和第三方软件的 Git”。

3.2 安装 Miniconda3

Stable Diffusion 利用了几个不同的 Python 库。 如果你对 Python 了解不多,也不必太担心这一点 — 可以这么说,这些库只是你的计算机可以用来执行特定功能的软件包,例如转换图像或进行复杂的数学运算。

Miniconda3 基本上是一个方便的工具。 它允许你下载、安装和管理 Stable Diffusion 运行所需的所有库,而无需太多手动干预。 这也将是我们实际使用 Stable Diffusion 的方式。

前往 Miniconda3 下载页面并单击“Miniconda3 Windows 64 位”以获取最新的安装程序。

下载后双击可执行文件以开始安装。 Miniconda3 的安装涉及的页面点击次数比 Git 少,但你需要注意这个选项:

在单击下一步并完成安装之前,请确保选择“所有用户”。

安装 Git 和 Miniconda3 后,系统会提示你重新启动计算机。 我们认为这不是必需的,但如果这样做也无妨。

3.3 下载Stable Diffusion 仓库和最新的检查点文件

现在我们已经安装了必备软件,准备下载并安装 Stable Diffusion。

首先下载最新的检查点文件——1.4 版本将近 5GB,因此可能需要一段时间。 你需要创建一个帐户才能下载检查点文件,但只需要一个姓名和电子邮件地址。 其他一切都是可选的。

注意:在撰写本文时(2023 年 3 月 14 日),最新的检查点是 1.4 版本。 如果有更新的版本,请下载它。

点击“sd-v1-4.ckpt”开始下载。

注意:另一个文件“sd-v1-4-full-ema.ckpt”可能会提供更好的结果,但它的大小大约是原来的两倍。 你可以使用任何一个。

接下来需要从 GitHub 下载 Stable Diffusion。 单击绿色的“代码”按钮,然后单击“下载 ZIP”。 或者,你可以从这个链接直接下载。

现在我们需要准备几个文件夹,我们将在其中解压所有 Stable Diffusion 的文件。 单击“开始”按钮并在“开始”菜单搜索栏中键入“miniconda3”,然后单击“打开”或按 Enter。

我们将使用命令行创建一个名为“stable-diffusion”的文件夹。 将下面的代码块复制并粘贴到 Miniconda3 窗口中,然后按 Enter。

注意:几乎每次将代码块粘贴到终端(如 Miniconda3)时,都需要在末尾按 Enter 键以运行最后一个命令。

如果一切顺利,你会看到这样的东西:

保持 Miniconda3 窗口打开,我们很快就会再次需要它。

解压从 GitHub 下载的 ZIP 文件“stable-diffusion-main.zip”。保持 ZIP 文件在一个窗口中打开,然后打开另一个文件资源管理器窗口并导航到我们刚刚创建的“C:\stable-diffusion”文件夹。

将 ZIP 文件中的文件夹“stable-diffusion-main”拖放到“stable-diffusion”文件夹中。

返回 Miniconda3,然后将以下命令复制并粘贴到窗口中:

cd C:\stable-diffusion\stable-diffusion-mainconda env create -f environment.yamlconda activate ldmmkdir models\ldm\stable-diffusion-v1

不要打断这个过程。 有些文件大于 1 GB,因此下载可能需要一些时间。 如果不小心中断了该过程,则需要删除环境文件夹并再次运行 conda env create -f environment.yaml。 如果发生这种情况,请导航至“C:\Users(Your User Account).conda\envs”并删除“ldm”文件夹,然后运行上一个命令。

注意:我们刚刚做了什么? Python 允许你将代码项目分类到“环境”中。 每个环境都与其他环境分开,因此可以将不同的 Python 库加载到不同的环境中,而不必担心版本冲突。 如果你在一台 PC 上处理多个项目,这将是无价的。我们运行的代码创建了一个名为“ldm”的新环境,下载并安装了 Stable Diffusion 工作所需的所有 Python 库,激活了 ldm 环境,然后将目录更改为一个新文件夹。

现在到了安装的最后一步。 在文件资源管理器中导航到“C:\stable-diffusion\stable-diffusion-main\models\ldm\stable-diffusion-v1”,然后将检查点文件 (sd-v1-4.ckpt) 复制并粘贴到该文件夹中。

等待文件传输完成,右键单击“sd-v1-4.ckpt”,然后单击“重命名”。 在突出显示的框中键入“model.ckpt”,然后按 Enter 键确认更改名称。

注意:如果你运行的是 Windows 11,将不会在右键单击上下文菜单中看到“重命名”。 有一个图标看起来像一个微型文本字段。

OK,安装完毕。 我们现在准备实际使用 Stable Diffusion。

3、如何使用Stable Diffusion

我们创建的 ldm 环境是必不可少的,你需要在任何时候想要使用 Stable Diffusion 时激活它。 在 Miniconda3 窗口中输入 conda activate ldm 并点击“Enter”。 左侧的 (ldm) 表示 ldm 环境处于活动状态。

注意:你只需要在打开 Miniconda3 时输入该命令。 只要不关闭窗口,ldm 环境就会保持活动状态。

然后我们需要将目录(因此 commandcd)更改为“C:\stable-diffusion\stable-diffusion-main”,然后才能生成任何图像。 将 cd C:\stable-diffusion\stable-diffusion-main 粘贴到命令行中。

3.1 如何用Stable Diffusion生成图像

我们将调用一个脚本 txt2img.py,它允许我们将文本提示转换为 512×512 图像。 这是一个例子。 尝试一下以确保一切正常:

python scripts/txt2img.py --prompt "a close-up portrait of a cat by pablo picasso, vivid, abstract art, colorful, vibrant" --plms --n_iter 5 --n_samples 1

控制台会在生成图片时提供进度指示:

这个命令将生成五张猫图像,全部位于“C:\stable-diffusion\stable-diffusion-main\outputs\txt2img-samples\samples”。

它并不完美,但明显类似于 Pablo Picasso 的风格,就像我们在提示中指定的那样。 你的图像应该看起来相似但不一定完全相同。

任何时候你想改变生成的图像,你只需要改变双引号中包含的文本 --prompt。

提示:不要每次都重写整行。 使用箭头键移动文本光标并替换提示。

python scripts/txt2img.py --prompt "YOUR, DESCRIPTIONS, GO, HERE" --plms --n_iter 5 --n_samples 1

假设我们想在魔法森林中生成一只戴着巫师帽的逼真的地鼠。 可以试试命令:

python scripts/txt2img.py --prompt "a photograph of a gopher wearing a wizard hat in a forest, vivid, photorealistic, magical, fantasy, 8K UHD, photography" --plms --n_iter 5 --n_samples 1

这真的很简单——只要尽可能具体地描述你想要什么。 如果想要逼真的内容,请确保包含与逼真的图像相关的术语。 如果您想要受特定艺术家风格启发的东西,请指定艺术家。

Stable Diffusion不仅限于肖像和动物,它还可以产生引人注目的风景。

4、命令中的参数是什么意思?

Stable Diffusion 有大量的设置和参数,你可以提供这些设置和参数来定制您的结果。 此处包含的几个基本上是确保 Stable Diffusion 在普通游戏计算机上运行所必需的。

–plms — 指定图像的采样方式。 如果想了解数学原理,有一篇关于它的论文。–n_iter — 指定要为每个提示生成的迭代次数。 5 是一个不错的数字,可以看出你得到了什么样的结果。–n_samples — 指定将生成的样本数。 默认值为 3,但大多数计算机没有足够的 VRAM 来支持它。 坚持使用 1,除非有特定的理由更改它。

当然,Stable Diffusion 有大量不同的参数,你可以实施这些参数来调整结果。 运行 python scripts/txt2img.py --help 以获得可以使用的参数的详尽列表。

获得好的结果需要大量的试验和错误,但这至少是乐趣的一半。 确保写下或保存返回你喜欢的结果的参数和描述。 如果不想自己做所有的实验,Reddit(和其他地方)上有越来越多的社区致力于交换图片和生成图片的提示。

原文链接:http://www.bimant.com/blog/stable-diffusion-diy/


文章标签:

本文链接:『转载请注明出处』