浅谈文生图Stable Diffusion(SD)相关模型基础
1.U-Net模型基础
1.基础概念
UNet模型是一种基于卷积神经网络的图像分割算法,它采用了U型的网络结构,由编码器(下采样路径)和解码器(上采样路径)两部分组成。
- 编码器负责提取输入图像的特征,
- 解码器则通过上采样操作将特征图恢复到原始输入图像的尺寸,并逐步生成分割结果。
UNet的关键创新在于解码器中引入了跳跃连接(Skip Connections),将编码器中的特征图与解码器中对应的特征图进行连接。这种跳跃连接有助于解码器更好地利用不同层次的特征信息,从而提高图像分割的准确性和细节保留能力。
2.Unet模型的基础结构

图一
Unet可以分为三个部分,如上图所示:
- 第一部分是主干特征提取部分,我们可以利用主干部分获得一个又一个的特征层,Unet的主干特征提取部分与VGG相似,为卷积和最大池化的堆叠。利用主干特征提取部分我们可以获得五个初步有效特征层,在第二步中,我们会利用这五个有效特征层可以进行特征融合。
- 第二部分是加强特征提取部分,我们可以利用主干部分获取到的五个初步有效特征层进行上采样,并且进行特征融合,获得一个最终的,融合了所有特征的有效特征层。
- 第三部分是预测部分,我们会利用最终获得的最后一个有效特征层对每一个特征点进行分类,相当于对每一个像素点进行分类。
3.作用及意义
在Stable Diffusion中,U-Net模型是一个关键核心部分,能够预测噪声残差,并结合Sampling method(调度算法:DDPM、DDIM、DPM++等)对输入的特征矩阵进行重构,逐步将其从随机高斯噪声转化成图片的Latent Feature。
具体来说,在前向推理过程中,SD模型通过反复调用 U-Net,将预测出的噪声残差从原噪声矩阵中去除,得到逐步去噪后的图像Latent Feature,再通过VAE的Decoder结构将Latent Feature重建成像素级图像。
2.VAE模型基础
1.VAE概念
VAE(变分自编码器,Variational Auto Encoder)是一种深度学习模型,用于生成新的数据样本。 它通过引入隐变量来描述复杂分布,从而生成新的数据点。VAE结合了编码器和解码器,编码器负责将输入数据压缩为低维的隐状态,而解码器则将隐状态恢复为原始数据的高品质复制。这种模型在图像生成、自然语言处理等领域有广泛应用。
VAE的核心思想在于利用变分推断来近似复杂的概率分布。它通过引入隐变量来描述数据生成的过程,这些隐变量对模型中可观察变量的输出有影响。通过训练编码器和解码器,VAE能够学习数据的概率分布,并生成新的数据点。具体来说,编码器将输入数据映射到低维隐空间,而解码器则将这个低维隐状态恢复为原始数据的高品质复制。
在AI绘画领域,VAE技术被广泛应用于生成新的绘画作品。例如,触站AI是一个集成了VAE技术的在线绘画模型,用户可以通过简单的勾画几笔来生成真实的、艺术感十足的图像。这种技术不仅提高了绘画作品的生成效率,还释放了用户的创造力和艺术潜能。
2.核心作用
在Stable Diffusion中,VAE(变分自编码器,Variational Auto-Encoder)是基于Encoder-Decoder架构的生成模型。VAE的Encoder(编码器)结构能将输入图像转换为低维Latent特征,并作为U-Net的输入。VAE的Decoder(解码器)结构能将低维Latent特征重建还原成像素级图像。
1.核心作用一:
VAE通过encoder编码器将输入数据压缩至Latent隐空间中,作为Unet模型的输入,最后通过decoder解码器进行图像重建的作用;

图二
如图二,有编码器和解码器组成,当我们输入一个尺寸为 H×W×C 的数据,VAE的Encoder模块会将其编码为一个大小为h×w×c的低维Latent特征,其中f=H/h=W/w为VAE的下采样率(Downsampling Factor)。反之,VAE的Decoder模块有一个相同的上采样率(Upsampling Factor)将低维Latent特征重建成像素级别的图像。
- Q1:什么是隐空间(Latent space)/隐变量(hidden variables)?

- 图三
隐变量:如上图三左半部分
假设:从a很难推导出b
但是从a能够推导出某个中间变量“c”,从“c”能够推导出b;
因此我们要从a推导出b,可以通过从a推导出中间变量“c”,然后再推导出b。这里的中间变量“c”就称为“隐变量”
有时遇到的原始数据建模很困难,此时可以将原始数据装换成另一种格式的数据----“隐变量”
隐空间(latent space):如上图右半部分
隐变量所在空间,这极大地降低了扩散模型的计算复杂度。
- 而VAE模型在编码器之后得到一组维度小于原图维度的隐变量(一组对图片的压缩表示)
2.核心作用二:
不同版本的VAE模型,能够在生成的图片的细节与整体颜色上发生改变,通俗理解:滤镜+微调

图四
通过图四可以清晰看到VAE模型的第二个核心作用;
3.Diffusion Mode基础
1.Diffusion Mode的基础
扩散模型Diffusion Models是一种新型的、先进的生成模型,用于生成与训练数据相似的数据,可以生成各种高分辨率图像。
它通过两个核心过程——前向扩散过程和反向去噪过程——来实现从噪声数据生成复杂样本。

图五
如图五:
-
前向扩散:向原始数据逐步添加噪声的过程,直到数据变为纯噪声。
虽然这个过程本身并不能直接生成图片,但它对于理解扩散模型的工作原理以及构建训练样本的目标(ground truth,简称GT)至关重要。
逆扩散:前向扩散的逆操作,从纯噪声开始,逐步去除噪声以还原出原始数据。
这个过程依赖于模型学习到的如何从噪声中恢复出原始数据的模式。模型通过神经网络学习逆扩散过程,从而能够生成与原始数据相似的样本。
这种模型之所以有效,是因为它能够通过学习去噪步骤,在重建过程中捕捉到数据的复杂结构和分布,尽管直观上加噪看似与生成清晰图像相悖。
扩散模型在图像生成、分类、以及如Stable Diffusion、DALL-E等以文生图应用中展现出了卓越性能,其成功在于其强大的特征学习能力、生成高质量样本的能力,以及在数据有限时的良好泛化性能。
2.为什么要加噪和去噪
提高模型鲁棒性:加入噪声可以使模型更具有鲁棒性,能够更好地处理现实世界中的变化和噪声。在训练过程中,模型需要学会从不完美的数据中提取有用的信息,并且对噪声更具有容忍性。
促进样本多样性:通过引入不同类型和强度的噪声,可以增加训练数据的多样性,从而帮助模型更好地泛化到未见过的数据。这有助于防止过拟合,并提高模型的性能。
解决模型偏差:在一些情况下,模型可能存在偏差,即对数据的错误偏好或错误假设。加入噪声可以帮助模型更好地克服这种偏差,从而提高模型的泛化能力和性能。
模拟真实场景:现实世界中的数据往往会受到各种噪声的影响,例如传感器误差、环境变化等。通过在训练数据中引入类似的噪声,可以使模型更好地模拟真实场景,并提高其在实际应用中的效果。
3.扩散模型的网络结构

图六
利用马尔可夫链来定义扩散步骤,通过每一步的状态转移来逐渐将数据“破坏”成纯噪声。然后,通过训练神经网络来逼近真实的反转扩散过程,扩散模型能够从纯噪声中逐步还原出原始数据。
目前有两种结构:
1.基于UNet的网络结构

图七
2.基于DiT的网络结构

图八
4.图像生成模型Stable Diffusion(SD)基础
1.图像生成模型的发展

图九
2.SD模型的结构
1.基于UNet的SD网络结构

图十
如上图:End-to-End模型,由VAE(左侧红色部分),基于Unet的diffusion mode(中间绿色部分)以及CLIP Text Encoder(右侧白色部分)三个核心组件构成
2.基于DiT的SD网络结构

图十一
DiT(Diffusion Transformer)模型由Meta在2022年首次提出,其主要是在ViT(Vision Transformer)的架构上进行了优化设计得到的。DiT是基于Transformer架构的扩散模型,将扩散模型中经典的U-Net架构完全替换成了Transformer架构。
3.SD文生图工作流程

图十二
- 输入:(文本emdedding)将输入的文本(prompt)通过Text Encoder提取出Text Embeddings特征(77x768);(初始化latent噪音矩阵)同时初始化一个Latent空间的随机高斯噪声矩阵(维度为64x64x4,对应512x512分辨率图像)。
- 生成过程:(图文融合)将Text Embeddings特征和随机高斯噪声矩阵通过CrossAttention机制送入U-Net中,(去噪)结合Scheduler algorithm(调度算法)迭代去噪,(输出)经过N次迭代后生成去噪后的Latent特征。
- 输出:(VAE构建)将去噪后的Latent特征送入VAE的Decoder模块,重建出像素级图像(512x512分辨率)。
以上就是本次分享的关于文生图SD模型相关的模型知识,个人观点,希望有所帮助
相关文章:
浅谈文生图Stable Diffusion(SD)相关模型基础
1.U-Net模型基础 1.基础概念 UNet模型是一种基于卷积神经网络的图像分割算法,它采用了U型的网络结构,由编码器(下采样路径)和解码器(上采样路径)两部分组成。 编码器负责提取输入图像的特征,…...
Vivado使用VScode编译器
旧版Vivado使用Vscode编译器偶尔会出现VScode界面卡死的情况,在新版的Vivado中(我的是Vivado 2023.2),可以使用如下方式: 在设置中选择Text Editor,选择Custom Editor 在对话框中输入以下语句:…...
CEF127 编译指南 MacOS 篇 - 拉取 CEF 源码(五)
1. 引言 在完成了所有必要工具的安装和配置后,我们进入到获取 CEF 源码的阶段。对于 macOS 平台,CEF 的源码获取过程需要特别注意不同芯片架构(Intel 和 Apple Silicon)的区别以及版本管理。本文将详细介绍如何在 macOS 系统上获…...
Jenkins 中 写 shell 命令执行失败,检测失败问题
由于项目的 依赖复杂,随着版本的增多,人工操作,手误几率太大,我们选取kenins 来自动化发布、更新。 这里主要解决,发布 的 每个阶段,确保每个阶段执行成功。 比如: js 运行,…...
Java程序打包成exe,无Java环境也能运行
Java程序开发完成后,通常情况下以jar包的形式发布。但有时我们需要给非软件开发人员使用程序,如制作好窗体应用,把它发给没有java开发环境的人使用,此时就需要制作exe安装包。本文介绍如何将java程序制作成exe安装包,并…...
【java 正则表达式 笔记】
文章目录 快速入门匹配中文或数字或大小写字母(一个或多个) 正则表达式底层实现(重要)mather.find() 完成的任务mather.group(0) 分析 正则表达式基本语法元字符转义字符区分大小写限定字符选择匹配符特殊字符字符匹配符定位符 分组、捕获和反向引用捕获特别分组反向引用经典结…...
基于PWLCM混沌映射的麋鹿群优化算法(Elk herd optimizer,EHO)的多无人机协同路径规划,MATLAB代码
一、麋鹿群优化算法EHO 基本概念 麋鹿群优化算法(EHO,Elephant Herding Optimization)是2024年提出的一种启发式优化算法,它的灵感来自麋鹿群的繁殖过程。麋鹿有两个主要的繁殖季节:发情和产犊。在发情季节࿰…...
Vue2五、自定义指令,全局局部注册、指令的值 ,插槽--默认插槽,具名插槽 ( 作用域插槽)
一、自定义指令 使用步骤 1. 注册 (全局注册 或 局部注册) ,在 inserted 钩子函数中,配置指令dom逻辑 2. 标签上 v-指令名 使用 1、自定义指令(全局) Vue.directive("指令名",{ 指令的配置项 insert…...
Pika Labs技术浅析(五):商业智能技术
Pika Labs 的商业智能旨在通过联机分析处理(OLAP)和数据仓库(Data Warehouse)等技术,帮助企业用户高效地进行数据分析和决策支持。 一、商业智能技术模块概述 Pika Labs 的商业智能技术模块旨在通过集成数据仓库和联机…...
YOLO-World:Real-Time Open-Vocabulary Object Detection
目录 摘要 Abstract YOLO-World 1 模型架构 1.1 Text Encoder 1.2 YOLO Backbone 2 RepVL-PAN 2.1 T-CSPLayer 2.2 I-Pooling Attention 2.3 预测 3 消融实验 3.1 预训练数据 3.2 RepVL-PAN的消融实验 3.3 文本编码器 4 效果展示 4.1 零样本 4.2 根据词汇表检…...
Fastjson <= 1.2.47 反序列化漏洞复现
0x01 前言 Fastjson 是一个 Java 语言编写的高性能功能完善的 JSON 库,可以将 Java 对象转换为 JSON 格式,也可以将 JSON 字符串转换为 Java 对象,在中国和美国使用较为广泛。 0x02 漏洞成因 Fastjson < 1.2.68 版本在处理反序列化对象时…...
鸿蒙项目云捐助第二十一讲云捐助项目物联网IoT模拟器的使用
鸿蒙项目云捐助第二十一讲云捐助项目物联网IoT模拟器的使用 在前面的内容中,已经实现了云捐助物联网IoT的产品及设备设置,并且使用华为云Iot设备的在线调试工具进行命令下发的调试,这里也可以通过华为Iot物联网提供的MQTT模拟器进行连接。 …...
大数据技术原理与应用期末复习-知识点(二)
HBASE Hbase与传统关系数据库的对比分析 1.数据类型: 关系型数据库采用关系模型 Hbase采用更简单的数据模型(把数据存储为未经解释的字符串) 2.数据操作: 关系数据库:增删改查等 Hbase:插入 查询 删…...
高效准确的PDF解析工具,赋能企业非结构化数据治理
目录 准确性高:还原复杂版面元素 使用便捷:灵活适配场景 贴心服务:快速响应机制 在数据为王的时代浪潮中,企业数据治理已成为组织优化运营、提高竞争力的关键。随着数字化进程的加速,企业所积累的数据量呈爆炸式增长…...
C/C++ 数据结构与算法【栈和队列】 栈+队列详细解析【日常学习,考研必备】带图+详细代码
一、介绍 栈和队列是限定插入和删除只能在表的“端点”进行的线性表,是线性表的子集,是插入和删除位置受限的线性表。 (操作受限的线性表) 二、栈 1)概念: 栈(stack)是一个特殊的线性表,是限…...
读书笔记~管理修炼-缄默效应
缄默效应:学会正确批评下属 员工明明犯了错误,却不及时告知你,总是拖到最后一刻无法弥补时才不得不承认出了问题——你遇到过这样的问题吗? 这其实是缄默效应在发挥作用。 在职场中,即使再扁平化的环境&…...
视频会议系统会前预约模块必须包含哪些功能?
视频会议系统会前预约模块必须包含哪些功能? 视频会议系统的会前预约模块是企业高效管理会议资源、提升会议效率的重要工具。一个完善的会前预约模块必须包含一系列功能,以确保会议的顺利进行和资源的合理分配。以下是对视频会议系统会前预约模块必须包…...
RabbitMQ中的Topic模式
在现代分布式系统中,消息队列(Message Queue)是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个广泛使用的开源消息代理,支持多种消息传递模式,其中 Topic 模式 是一种灵活且强大的模式,允许生产者…...
tslib(触摸屏输入设备的轻量级库)的学习、编译及测试记录
目录 tslib的简介tslib的源码和make及make install后得到的文件下载tslib的主要功能tslib的工作原理tslib的核心组成部分tslib的框架和核心函数分析tslib的框架tslib的核心函数ts_setup()的分析(对如何获取设备名和数据处理流程的分析)函数ts_setup()自身的主要代码ts_setup()对…...
Ubuntu vi(vim)编辑器配置一键补全main函数
1.打开对应的配置文件 vi ~/.vim/snippets/c.snippets 2.按G将光标定位到文件末尾 3.按i进入插入模式 以tab键开头插入下的内容,空行也要加 tab键 4.:wq保存退出 5.再打开任意一个新的 .c文件后,插入模式输入 main 然后按tal键就能补全了...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
