SD中的VAE,你不能不懂

本文涉及的产品
云原生网关 MSE Higress,422元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 要想生成一幅美丽的图片,没有VAE可不行

什么是VAE?

VAE,即变分自编码器(Variational Autoencoder),是一种生成模型,它通过学习输入数据的潜在表示来重构输入数据。

在Stable Diffusion 1.4 或 1.5 模型中,通过VAE对模型进行部分更新,以提升模型渲染眼睛的能力。通过这种更新,模型在生成图像时能够更准确地捕捉和再现眼睛的细节,从而提高整体图像的真实感和质量。

VAE 由两部分组成:编码器和解码器。编码器将输入数据映射到一个潜在空间,解码器则从这个潜在空间重构数据。

我需要VAE吗?

实际上,你无需安装 VAE 文件即可运行 Stable Diffusion,你使用的任何模型(无论是 v1、v2 还是自定义)都已具有默认 VAE。

当人们说下载和使用 VAE 时,他们指的是使用它的改进版本

当模型训练器使用其他数据进一步微调模型的 VAE 部分时,就会发生这种情况。在这种情况下,并不需要发布整个的大模型,只需要发布其中的VAE部分即可。

使用VAE有什么效果?

VAE(变分自编码器)的改进通常意味着它能够更精确地从潜在空间解码图像,尤其是在处理精细细节方面,比如眼睛和文本的渲染。

在 Stable Diffusion 模型的上下文中,改进的 VAE 解码器可以更有效地捕捉和再现图像中的微妙特征,这对于生成高质量的图像至关重要。

Stability AI 发布了两种微调的 VAE 解码器变体,分别是:

  1. EMA(指数移动平均线):这是一种统计方法,通常用于平滑时间序列数据。在机器学习中,EMA 有时用于模型参数的更新,以实现更稳定的训练过程。
    1. MSE(均方误差):这是一种常用的误差度量方式,用于衡量模型预测值与实际值之间的差异。在自动编码器的上下文中,MSE 可以作为优化目标,帮助模型学习更准确地重构输入数据。
      这两种变体可能对应于不同的训练策略或目标函数,旨在优化 VAE 解码器的性能,特别是在渲染细节方面。选择哪一种变体可能取决于特定的应用场景和所需的输出质量。

使用这些微调的 VAE 解码器变体,可以期望在生成的图像中看到以下改进:

  • 更清晰的文本:文本的边缘和字母形状可以更加锐利和准确。
    • 更真实的眼睛渲染:眼睛的细节,如虹膜、瞳孔和反射,可以更加精细和逼真。
      下面是一些对比的例子:

image-20240423112006132

那么应该使用哪个呢?

Stability AI 对于 256×256 分辨率图像的评估指出,使用 EMA(指数移动平均线)的 VAE 解码器生成的图像在细节上更加清晰,而使用 MSE(均方误差)的解码器生成的图像则在视觉上更为平滑。

在Stable Diffusion v1.4 和 v1.5 在 512×512 分辨率图像的测试中,可以观察到在某些情况下,尤其是在人脸在图像中占比较小的时候,眼睛的渲染质量有所提升。但是到文本渲染方面并没有太多改善。

所以总结一下,新的 VAE 更新至少不会降低模型的性能,它要么提升了渲染质量,要么保持原有水平。

EMA(指数移动平均线)和 MSE(均方误差)这两种微调的 VAE 解码器变体与 Stable Diffusion v2.0 模型是兼容的。尽管在 v2.0 版本中,它们可能带来的改进效果相对较小,因为 v2.0 本身在渲染眼睛方面已经表现得相当出色。

我应该使用 VAE 吗?

使用 VAE(变分自编码器)的决定确实取决于你对当前结果的满意度以及你对细节改进的追求程度。

  1. 如果对结果已经满意:如果你使用的应用或技术,如 CodeFormer 面部修复,已经能够达到你期望的图像质量,特别是在眼睛等细节部位,那么你可能不需要额外引入 VAE 来进一步提升效果。
    1. 追求所有可能的改进:如果你追求每一个可能的性能提升,哪怕是微小的改进,那么使用 VAE 可能是一个值得考虑的选项。

      如何使用VAE?

下载

目前,Stability 发布了两个改进的 VAE 版本。以下是直接下载链接。

安装

如果你用的是webUI。那么将下载的 VAE 文件放在目录中:'stablediffusion-webui/models/VAE'即可。

Linux 和 Mac OS用户

为方便起见,请在 Linux 或 Mac OS 的 stable-diffusion-webui 目录下运行以下命令,会自动下载并安装 VAE 文件。

wget https://huggingface.co/stabilityai/sd-vae-ft-ema-original/resolve/main/vae-ft-ema-560000-ema-pruned.ckpt -O models/VAE/vae-ft-ema-560000-ema-pruned.ckpt
wget https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.ckpt -O models/VAE/vae-ft-mse-840000-ema-pruned.ckpt

在webUI中使用VAE

要在 AUTOMATIC1111 GUI 中使用 VAE,请单击左侧的“设置”选项卡,然后单击“VAE”部分。

SD VAE 下拉菜单中,选择要使用的 VAE 文件。

image-20240423112845339

如果你的页面没有这个选项,那么可以到设置->user interface->quick settings list中把sd_vae加上即可:

image-20240423113023470

相关文章
|
编解码 物联网 API
"揭秘SD文生图的神秘面纱:从选择模型到生成图像,一键解锁你的创意图像世界,你敢来挑战吗?"
【10月更文挑战第14天】Stable Diffusion(SD)文生图功能让用户通过文字描述生成复杂图像。过程包括:选择合适的SD模型(如二次元、2.5D、写实等),编写精准的提示词(正向和反向提示词),设置参数(迭代步数、采样方法、分辨率等),并调用API生成图像。示例代码展示了如何使用Python实现这一过程。
577 4
|
9月前
|
人工智能 数据挖掘 物联网
智能穿戴设备市场竞争的内卷与突围
智能穿戴设备市场竞争的内卷与突围
239 19
|
存储 Linux Android开发
Android底层:通熟易懂分析binder:1.binder准备工作
本文详细介绍了Android Binder机制的准备工作,包括打开Binder驱动、内存映射(mmap)、启动Binder主线程等内容。通过分析系统调用和进程与驱动层的通信,解释了Binder如何实现进程间通信。文章还探讨了Binder主线程的启动流程及其在进程通信中的作用,最后总结了Binder准备工作的调用时机和重要性。
Android底层:通熟易懂分析binder:1.binder准备工作
|
机器学习/深度学习 自然语言处理 测试技术
Stable Diffusion——外挂VAE模型
Stable Diffusion——外挂VAE模型
1249 0
|
机器学习/深度学习 人工智能 小程序
【一步步开发AI运动小程序】三、运动识别处理流程
随着人工智能技术的发展,阿里体育等公司推出的“乐动力”、“天天跳绳”等AI运动APP备受关注。本文将引导您从零开始开发一个AI运动小程序,使用“云智AI运动识别小程序插件”。文章介绍了视频帧、帧率FPS、抽帧和人体识别等基本概念,并详细说明了处理流程,包括抽帧、人体识别检测、骨骼图绘制和运动分析等步骤。下篇将介绍如何在小程序中实现抽帧。
|
消息中间件 负载均衡 Kafka
MQ消息路由大揭秘!从菜鸟到高手,一文带你玩转消息传递的‘高速公路’,轻松实现订单秒级响应!
【8月更文挑战第24天】在现代分布式系统中,消息队列(MQ)作为系统间解耦的核心工具,支持异步处理、负载均衡及高可用性。消息路由是MQ中的关键环节,决定消息从生产者到消费者的路径。主流MQ产品如RabbitMQ、Kafka等采用相似的路由机制,涉及交换器、队列、路由键等概念。常见的路由模式包括直接交换、主题交换及发布/订阅模式。以RabbitMQ为例,通过直接交换模式,可以根据订单类型(如“普通订单”、“紧急订单”)将消息路由至相应的处理队列。这一过程展示了MQ系统如何基于路由键和队列绑定关系实现消息的有效传递。
417 2
|
并行计算 监控 前端开发
函数计算操作报错合集之如何解决报错:RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cpu and cuda:0!
在使用函数计算服务(如阿里云函数计算)时,用户可能会遇到多种错误场景。以下是一些常见的操作报错及其可能的原因和解决方法,包括但不限于:1. 函数部署失败、2. 函数执行超时、3. 资源不足错误、4. 权限与访问错误、5. 依赖问题、6. 网络配置错误、7. 触发器配置错误、8. 日志与监控问题。
1154 2
|
人工智能 计算机视觉
论文介绍:MDTv2——提升图像合成能力的掩码扩散变换器
【5月更文挑战第18天】MDTv2是掩码扩散变换器的升级版,旨在增强图像合成模型DPMs处理语义关系的能力。通过掩码操作和不对称扩散变换,MDTv2能学习图像的完整语义信息,提升学习效率和图像质量。MDTv2采用优化的网络结构和训练策略,如长快捷方式、密集输入和时间步适应损失权重,实现SOTA性能,FID分数达到1.58,训练速度比DiT快10倍。尽管计算成本高和泛化能力待验证,MDTv2为图像合成领域开辟了新方向。[链接: https://arxiv.org/abs/2303.14389]
936 1
|
机器学习/深度学习 人工智能 定位技术
Stable Diffusion 是如何运行的(一)
Stable Diffusion 是如何运行的
481 1
使用xxmix9realistic_v40.safetensors模型
使用xxmix9realistic_v40.safetensors模型
622 0