Stable Diffusion 是去年就出来的东西了,我没有去早点玩这个东西是因为当时我的电脑算力真的不够,我直接用 Mid Journey 的 Discord 群组凑合体验了一下,换了新电脑自然要玩玩这个东西。
# 部署
我直接部署stable-diffusion-web-ui,毕竟这已经是一个成熟的方案了。
Clone 仓库
|
|
修改webui-user.bat
:
|
|
我用的 RTX 3060 Laptop 有6G显存,所以选用--medvram
参数。
执行用户,注意这套脚本要使用普通用户(非管理员)执行。
|
|
这套东西只在 Python 3.10.6 上测试过,当时用 Python 3.11 时安装过程出现了报错,如果现在用的是 Python 3.11 记得换成 Python 3.10.6,修改环境变量,然后重启电脑。
# DiffusionWrapper has 859.52M params
正常情况下,这套脚本会自动下载所需要的依赖。记得我当时在部署的时候是半夜,挂着终端代理,这个脚本跑了半天。第二天起来,依然卡在昨天晚上的地方,也就是DiffusionWrapper has 859.52M params
。
上课回来,在网上一搜索,才发现遇到这个问题的人还真不少,Github 上也有人在stable-diffusion-webui
的官方库里提了 issue,看起来是hugging-face
的file-download.py
出现了bug,而非stable-diffusion-webui
本身的问题。这是解决方案:Github上的解决方案。
定位到<INSTALL_FOLDER>\stable-diffusion-webui\venv\Lib\site-packages\huggingface_hub\file_download.py
的 1262 行,将其修改为:
|
|
重新运行webui-user.bat
,这次 webui 顺利启动了。
stable-diffusion-webui
跑在本地默认的端口号是7860,访问http://localhost:7860
就可以看到这套 Web UI 了。
# 找模型
部署工作至此已告一段落,但stable-diffusion-webui
部署下来自带的模型生成的图片并不符合我的需求和口味,我相信大部分人也不会只用这个默认的模型,那么随后的一件事就是找模型。
# 去哪找?
起初我也不知道去哪找,于是就傻乎乎的 Google 了一下:stable diffusion anime model。别说,还真奏效了。搜出来的结果里立刻就出现了Hugging face和Civit-AI。Civit-AI还能直观的看到每个模型的预览图。
除此之外,Reddit 等论坛上,像我一样的个人博客上,都可以看到网友们的模型推荐,用这种方式找模型也很不错。
Problem solved.
# 找到的模型
就这么去了 Civit-AI 的首页,第一眼就被counterfeit
模型吸引了。
除此之外,Anything
也是非常流行的模型,也被我收入囊中。
# 可以自己训练模型吗?
先说结论:理论上来说,可以。但我这个 3060 Laptop……还是算了吧。
Stable diffusion 有几种主要的训练方法,Textual Inversion, Hyper Network, Dream booth, Lora。即使是配置要求最低的 Lora,也要求至少 8G 的显存,而 3060 Laptop 只有 6G 显存。既然如此,就不折磨自己了,还是直接用训练好的现成模型吧,感谢社区。
# 开始用
一开始我在 CivitAI 上下载下来Counterfeit-V2.5
模型,CivitAI 上只有一个 4.1G 的CounterfeitV25_25.safetensors
文件。我将其下载下来丢进了<INSTALL DIR>\stable-diffusion-webui\models\Stable-diffusion
文件夹,刷新一下Web UI的模型列表就看到了这个模型,于是我就很顺利的加载了这个模型开始用了。
# 这……不对啊
先来看看这个时候的生成效果:
这……不对啊。怎么感觉我被这个模型的样图给骗了?
来看看作者生成的样图:
我们用的真的是同一个模型吗?可以看到我和作者生成了一张大体十分相似的图片,那是我用和作者相同的 Prompt 和种子生成的,作者生成的图片,不论是画面细节,还是色彩,都和我一开始用这个模型的时候生成的几乎完全不是一个东西,难道我是下错模型了?
# 找问题
我在论坛里翻找遇到相同问题的帖子,发现其实遇到同样问题的人还真不少,大多数人都抱怨生成的图片细节不够,色彩不够鲜艳。根据我的经验,肯定是少装了些什么东西。
# EasyNegative
EasyNegative 可以被看做一个 Super Prompt,用于改善模型生成图片的质量。
谷歌 EasyNegative 第一个出来的就是为counterfeit-v2.5
模型设计,于是我便下载下来使用了。链接附上:gsdf EasyNegative
This is a Negative Embedding trained with Counterfeit. Please use it in the “\stable-diffusion-webui\embeddings” folder. It can be used with other models, but the effectiveness is not certain.
这套 EasyNegative 同样适用于 AbyssOrangeMix2
,anything
等模型,我愿称之为必备。
到了这一步,我总算是知道为什么所有人的 Prompt 里总要有个EasyNegative
了,原来是个 Super Prompt。
装好 Easy Negative,生成的图片就正常多了。
但总感觉色彩还是不好看啊……是不是还缺了什么?
# VAE
我在 Hugging Face 上看了一下,这里模型作者提供了远远不止一个的文件。
VAE 的全程是 Variational Autoencoder。旨在帮助用户更好的渲染图像,其中也包括了色彩的部分。而不知出于什么原因,作者只在 Hugging Face 上提供了他的 VAE。
装好 VAE,再次生成图像,这下的图像终于完全正常了。
# 这几天生成的图片
这是我挑选的一些图片
# 阴间的图片
其实上面最后一张图的手指已经是有生成问题的,而生成的图片里还有更阴间的图片。
# 玩玩插件
这套 WebUI 还有插件可玩,这几天又心血来潮玩玩比较出名的插件。
至于怎么安装插件,都是在这套 Web UI 的 Extensions 里。一是从官方仓库里拉取插件列表,二是自己找到插件的仓库链接拉库下载即可。
我们来玩玩插件。
# controlnet
controlnet 可以通过草图控制画中人物的姿势,理论上可以解决上面生成的人物阴间的问题。