前言

这小节我们开始学习 Stable Diffusion 里面的 VAE,它的全称是变分自动编码器 (Variational Auto-Encoder),是机器学习中的一种人工神经网络结构。当然我们都不必了解的它的原理,只需要理解它是在 SD 模型的基础做微调的,类似于我们熟悉的滤镜,让生成的图片调整饱和度。

在页面上显示 VAE 设置

stable-diffusion-webui 默认页面并没有显示 VAE 设置部分,所以需要先设置一下。首先点击「Settings」,然后点左侧菜单的「User interface」这个 Tab,拉到下面有个选项叫做Quicksettings list,在输入框里面添加,sd_vae,CLIP_stop_at_last_layers:

最后点击上面的「Apply settings」,在点「Reload UI」就会重新刷新页面,即可看到头部的 VAE 区域:

另外我也顺手打开了Clip skip,在 C 站的图片参数中都有Clip skip选项,默认是 1,需要改成常用的 2,可以简单的理解这个值越高,AI 就会省略越多的分类细项。

下载 VAE 模型

目前我们还没有任何的 VAE 模型,需要下载再使用。VAE 主要是从 Huggingface 下载,而 C 站 VAE 比较少,并没有一个专门的过滤分类,只能通过搜索框输入 vae 过滤:

另外一个方式是看主模型下的提示,很多知名主模型里面会有 VAE 相关的内容,例如有打包 VAE 的模型 (自带的就不需要额外加了),或者在描述中建议你使用什么 VAE。

举个例子: RealDosMix 的描述中提到:

https://huggingface.co/stabilityai/sd-vae-ft-mse-original/blob/main/vae-ft-mse-840000-ema-pruned.ckpt https://huggingface.co/AIARTCHAN/aichan_blend/tree/main/vae Apply VAE. You will get better color results.

所以我们把这些 VAE 模型下载并把它放入到models/VAE目录下:

wget https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.ckpt -O ~/workspace/stable-diffusion-webui/models/VAE/vae-ft-mse-840000-ema-pruned.ckpt
wget https://huggingface.co/AIARTCHAN/aichan_blend/resolve/main/vae/Anything-V3.0.vae.safetensors -O ~/workspace/stable-diffusion-webui/models/VAE/Anything-V3.0.vae.safetensors
wget "https://huggingface.co/AIARTCHAN/aichan_blend/resolve/main/vae/Berry's%20Mix.vae.safetensors" -O ~/workspace/stable-diffusion-webui/models/VAE/BerrysMix.vae.safetensors

下载好,然后点击 VAE 设置项右边的刷新按钮就可以看到这些模型了:

接着使用前面说的X/Y/Z plot脚本对比一下不加 VAE 和加了这三个 VAE 其中之一的效果:

所谓没有对比就没有伤害,对比明显可以感受到不加 VAE 图片优点灰蒙蒙的,不够鲜艳,另外是细节不够,而加了不同的 VAE 都有了更好的颜色效果,细节更全了 (微调)。

最后,注意不同的 VAE 适配的模型不同,也不是某个 VAE 可以用在任何模型下,否则可能会生成非常奇怪的图。

为什么 VAE 模型比较少?

我觉得主要的原因是很多软件已经实现了滤镜相关的功能,例如 PS、一些美颜 App、剪映等等。它们的效果更全更好,而且门槛很低。