最近一段时间,使用 Stable Diffusion 等工具生成图片的资讯充斥着整个互联网,作为一名程序员,我觉得有必要了解,搭建自己的AI图片生成器_AI

我们用的工具是 Stable Diffusion。我的机器是 MacOS BigSur 版本11.7.4,教程就在此配置上去搭建,其他平台类似。(MacOS M1芯片的更好,我的机器上虽然能安装,界面也有了,但生成图片时会报错,修改代码后完美解决。)

网络条件,建议能科学上网(没有的话,请看相关文章),不然下载一些库会很慢。

1. 确认 Python 环境

首先确保自己机器上的 Python3 版本是 3.10 以上,使用命令 python3 --version 可以查看。如果不是,请用brew安装或升级。

2. 下载 Stable Diffusion 的 Web 工程

使用命令 git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui 来克隆 Stable Diffusion 的 web 工程,这个工程可以让我们在浏览器中使用 Stable Diffusion。 注意,这个过程可能会异常的慢,如果失败了,那就重新执行命令,或者采取一些科学的网络方式对其进行下速,想办法下载下来就行。

3. 下载模型文件,模型文件,

可以理解为官方或其他人已经训练好的一些参数集合,有了这个,生成工具才知道怎么去生成一张图片。

我在https://civitai.com/里找了一个模型,使用的是 1.5 版本的,下载了。

下载完成后,将这个文件放入 stable-diffusion-webui/models/Stable-diffusion 目录下

4. 运行 Stable Diffusion

工程下载来下后,使用命令 cd stable-diffusion-webui 进入工程的主目录。然后再执行运行命令 ./webui.sh。注意,这个命令也是可能会非常的慢,或者失败,因为第一次运行,会下载一些其他的库,这个过程可能会失败很多次,取决于网络情况,我安装的时候,就装了好久。失败了就重新运行 ./webui.sh 即可,已经下载完的不会重复下载,放心好了。

搭建自己的AI图片生成器_AI_02

搭建自己的AI图片生成器_AI_03

命令运行可能需要一段时间,不要着急,当看到终端输出下面的内容时,就说明行了。请注意,红框中的http://127.0.0.1:7861

搭建自己的AI图片生成器_Web_04

在浏览器中打开 http://localhost:7861/ 即可看到运行后的 Stable Diffusion Web 界面了。

点Generate,生成图片时报错。这是因为电脑本身不支持。

搭建自己的AI图片生成器_Web_05

RuntimeError: "LayerNormKernelImpl" not implemented for 'Half'

修改:1.Modified webui-user.sh,add those flags to the file

在第13行下面加上。

export COMMANDLINE_ARGS="--skip-torch-cuda-test --precision full --no-half"


搭建自己的AI图片生成器_AI_06

重新执行:

./webui.sh --skip-torch-cuda-test --precision full --no-half

搭建自己的AI图片生成器_Web_07

在浏览器中打开 http://localhost:7860/ 即可看到运行后的 Stable Diffusion Web 界面了。

5.尝试生成一张图

在 web 界面中的第一个输入框中输入下面的 Prompt,也就是告诉 Stable Diffusion 要生成什么的关键词描述

然后,输入:smile,生成一个图片,这是进度50%时,

搭建自己的AI图片生成器_Web_08

完成后:

点击看大图:

搭建自己的AI图片生成器_Web_09

再生成一张,这次我输入prompt:

lotus rowing out out the water ,lotus leaf, high quality, photorealistic, sharp focus, depth of field

中文意思:

莲花,长出水面,荷叶,高质量,照片现实,聚焦,

搭建自己的AI图片生成器_AI_10

就不太理想了。为什么呢?

因为我选择的模型是人物的,却想去生成风景的。可能无法直接满足需求了。

使用什么 prompt 这个网站都以去复制参数:

https://prompthero.com/

查看此网页

搭建自己的AI图片生成器_AI_11

6. 说一下模型

接下来说一下模型,上面我们用到的只是官方的最基本的模型,还有很多大神做的模型,比如用来生成好看小姐姐的,那么模型从哪里来呢?我一般从 https://civitai.com/ 这个网站来下载。

我理解的模型分为两种,一种可以理解成主模型,一种是依附于主模型才能使用的模型,例如比较流行的Lora模型,就是需要依附于主模型才能使用。我们先说主模型,主模型一般的大小都是好几个G,而像Lora这种需要依赖于主模型的模型,一般都是几百M。

主模型下载后,需要放在 stable-diffusion-webui/models/Stable-diffusion 目录下。 而像Lora模型,则需要放在 stable-diffusion-webui/models/Lora 目录下。


7.下载一个其他的模型试一下

我们在 civitai 这个网站上下载一个模型,例如这个 国风3 GuoFeng3。打开后,点击右边的 **Download Latest (5.19GB),即可下载。如果有一些模型需要登录才能下载,那就按网站的要求来。下载完后,把这个模型的文件放入 stable-diffusion-webui/models/Stable-diffusion 目录下。然后重新运行 ./webui.sh 命令(先把之前运行的中止掉),这才 Stable Diffusion 才能加载我们新下载的模型。

重新运行后,打开 Web 界面,然后左上角 Stable Diffusion checkpoint 那里,选择刚下载的那个 GuoFeng3。然后在 Prompt 和负面 Prompt 中分别输入下面的关键词。

Prompt

best quality, masterpiece, highres, 1girl,china dress,Beautiful face,upon_body, photorealistic, (high detailed skin:1.2), 8k uhd, dslr, soft lighting, high quality, volumetric lighting, candid, Photograph, high resolution, 4k, 8k, Bokeh

Negative prompt

(((simple background))),monochrome ,lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, lowres, bad anatomy, bad hands, text, error, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, ugly,pregnant,vore,duplicate,morbid,mut ilated,tran nsexual, hermaphrodite,long neck,mutated hands,poorly drawn hands,poorly drawn face,mutation,deformed,blurry,bad anatomy,bad proportions,malformed limbs,extra limbs,cloned face,disfigured,gross proportions, (((missing arms))),(((missing legs))), (((extra arms))),(((extra legs))),pubic hair, plump,bad legs,error legs,username,blurry,bad feet

CFG scale 设置为 7 Steps 设置为 30 Sampler 设置为 Euler a Seed 设置为 1032908249

然后点击 Generate 结果如下。

搭建自己的AI图片生成器_Web_12

以上就是在本地搭建 Stable Diffusion 生成器的全过程,有什么问题欢迎大家留言。

对于文中提到的一些网站,不排除有的可能需要科学上网,此问题不在本文讨论范围内,可以查看相关文章的介绍