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 可以通过草图控制画中人物的姿势,理论上可以解决上面生成的人物阴间的问题。