当前位置: 首页 > news >正文

详解Stable Diffusion 原理图

参考英文文献:The Illustrated Stable Diffusion – Jay Alammar – Visualizing machine learning one concept at a time.

 

 

在这个Stable Diffusion模型的架构图中,VAE(变分自编码器)模型对应的是图中的 E 和 D 部分。

具体来说:

  1. E(Encoder): 这是VAE的编码器部分。它接收输入图像 x0,并将其编码为潜在空间表示 z0。
  2. D(Decoder): 这是VAE的解码器部分。它接收潜在空间表示 z0,并将其解码回图像空间,重构出输入图像。

在Stable Diffusion的工作流程中:

  • 训练阶段,VAE用于将高维图像数据压缩到低维潜在空间。
  • 生成阶段,扩散模型在这个低维潜在空间中工作,生成新的潜在表示。
  • 最后,VAE的解码器 D 用于将生成的潜在表示转换回可视化的图像。

τ_θ(tau theta)通常是指文本编码器,它用于将输入的文本提示编码成模型可以理解的向量表示。

  • CLIP(Contrastive Language-Image Pre-training)是由 OpenAI 开发的模型,用于连接文本和图像。
  • 在 Stable Diffusion 中,CLIP 的文本编码器部分被用作 τ_θ(tau theta),即用来将文本提示转换为模型可理解的向量表示。

  • UNet的作用:
    • UNet是一个神经网络模型,专门用于预测和去除图像中的噪声。
    • 在每个步骤中,UNet接收当前的噪声图像,并预测应该去除多少噪声。
  • Scheduler的作用:
    • Scheduler控制整个去噪过程的节奏和强度。
    • 它决定在每个步骤中应该去除多少噪声,以及如何调整这个过程。
  • 配合过程: a. 初始化:从完全随机的噪声开始。 b. 迭代过程(重复50次):
    • UNet分析当前的噪声图像,预测应该去除的噪声。
    • Scheduler根据当前步骤和UNet的预测,计算实际应该去除的噪声量。
    • 将计算出的噪声从当前图像中减去,得到稍微清晰一点的图像。
    c. 逐步优化:
    • 在早期步骤,Scheduler可能会让UNet去除较多噪声,以快速形成图像的大致轮廓。
    • 在后期步骤,Scheduler可能会减缓去噪速度,让UNet更专注于细节的优化。
  • 文本引导:
    • 文本编码的信息会输入到UNet中,影响它对噪声的预测。
    • 这使得去噪过程能够朝着符合文本描述的方向进行。
  • 适应性调整:
    • Scheduler可以根据去噪的进展动态调整过程,确保生成的图像既符合文本描述,又保持高质量。

这个过程是逐步进行的。每一步都添加了更多相关信息。为了直观地了解这个过程,我们可以检查随机潜变量数组,看看它是如何转化为视觉噪音的。在这种情况下,视觉检查是通过图像解码器进行的。

扩散发生在多个步骤中,每个步骤在一个输入潜变量数组上操作,并生成另一个潜变量数组,更好地反映输入文本以及模型从训练中捕获的所有图像信息。


 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • excel批量新建多个同类型的表格
  • 【深入理解SpringCloud微服务】深入理解Eureka核心原理
  • 43 华三AC登录Web页面
  • STM32测测速---编码电机读取速度的计算
  • 【微服务】feign使用
  • 独立开发的在线客服系统出海记
  • Codeforces Round 959 (Div. 1 + Div. 2 ABCDEFG 题) 文字讲解+视频讲解
  • 【BUG】已解决:zipfile.BadZipFile: File is not a zip file
  • SeleniumBasic操作运行中的Chrome浏览器
  • 力扣 19删除链表倒数第N个结点
  • 电脑屏幕闪烁?3招教你轻松搞定
  • 恐怖数字暗影:猜中才能逃离
  • FLINK-checkpoint失败原因及处理方式
  • 软件测试09 自动化测试技术(Selenium)
  • 3098. 求出所有子序列的能量和 Hard
  • [NodeJS] 关于Buffer
  • 10个最佳ES6特性 ES7与ES8的特性
  • 2017 年终总结 —— 在路上
  • Android开源项目规范总结
  • IDEA常用插件整理
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • PHP那些事儿
  • spring security oauth2 password授权模式
  • XML已死 ?
  • 测试如何在敏捷团队中工作?
  • 跳前端坑前,先看看这个!!
  • 我建了一个叫Hello World的项目
  • 优秀架构师必须掌握的架构思维
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 正则表达式
  • 组复制官方翻译九、Group Replication Technical Details
  • ​Java并发新构件之Exchanger
  • (03)光刻——半导体电路的绘制
  • (39)STM32——FLASH闪存
  • (C++17) optional的使用
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (九)One-Wire总线-DS18B20
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (四)软件性能测试
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (转载)Linux 多线程条件变量同步
  • (自适应手机端)行业协会机构网站模板
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Core 发展历程和版本迭代
  • .net core 连接数据库,通过数据库生成Modell
  • .NET delegate 委托 、 Event 事件
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • @Controller和@RestController的区别?
  • [ SNOI 2013 ] Quare