码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SD中的VAE,你不能不懂


    要想生成一幅美丽的图片,没有VAE可不行
    合集 - AIGC(27)
    1.轻松复现一张AI图片04-222.Stable Diffusion中的常用术语解析04-233.Stable diffusion中这些重要的参数你一定要会用04-244.Stable Diffusion中的embedding04-255.怎么使用Stable diffusion中的models05-286.Stable Diffusion WebUI详细使用指南05-297.Stable diffusion采样器详解06-048.原来Stable Diffusion是这样工作的06-069.MoneyPrinterPlus:AI自动短视频生成工具,赚钱从来没有这么容易过06-1210.MoneyPrinterPlus:AI自动短视频生成工具,详细使用教程06-1711.MoneyPrinterPlus:AI自动短视频生成工具-阿里云配置详解06-2012.MoneyPrinterPlus:AI自动短视频生成工具-腾讯云配置详解06-2513.MoneyPrinterPlus:AI自动短视频生成工具-微软云配置详解06-2614.重磅!免费一键批量混剪工具它来了,一天上万短视频不是梦06-2815.hypernetwork在SD中是怎么工作的07-01
    16.SD中的VAE,你不能不懂07-03
    17.福利来了!MoneyPrinterPlus可以自动配置环境和自动运行了07-0418.手把手教你生成一幅好看的AI图片07-0519.什么?这动物图片可以上国家地理?07-0920.重磅来袭!MoneyPrinterPlus一键发布短视频到视频号,抖音,快手,小红书上线了07-1021.MoneyPrinterPlus全面支持本地Ollama大模型07-1522.在MoneyPrinterPlus中使用本地chatTTS语音模型07-1623.fasterWhisper和MoneyPrinterPlus无缝集成07-2424.再升级!MoneyPrinterPlus集成GPT_SoVITS08-1425.AI图像放大工具,图片放大无所不能09-0326.LoRA大模型微调的利器09-0427.在stable diffussion中控制生成图片的光线09-05
    收起

    什么是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 有时用于模型参数的更新,以实现更稳定的训练过程。
    2. 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 来进一步提升效果。
    2. 追求所有可能的改进:如果你追求每一个可能的性能提升,哪怕是微小的改进,那么使用 VAE 可能是一个值得考虑的选项。

    如何使用VAE?

    下载

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

    https://huggingface.co/stabilityai/sd-vae-ft-ema-original/resolve/main/vae-ft-ema-560000-ema-pruned.ckpt

    https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.ckpt

    安装

    如果你用的是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

    点我查看更多精彩内容:www.flydean.com

  • 相关阅读:
    LiveData
    系统服务管理
    关于视觉重定位(VPS)的工作经验分享
    数据解析——BeautifulSoup
    层叠上下文-《CSS 世界》阅读笔记
    Unity射线实现碰撞检测(不需要rigbody组件)
    第二十三章《斗地主游戏》第2节:系统功能实现
    GO学习注意
    std::forward的神秘面纱
    如何选择高效率的在线分板机主轴?
  • 原文地址:https://www.cnblogs.com/flydean/p/18281548
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号