Stable Diffusion原理

news/2024/7/10 21:32:41 标签: stable diffusion, AIGC

一、Diffusion扩散理论

1.1、 Diffusion Model(扩散模型)

Diffusion扩散模型分为两个阶段:前向过程 + 反向过程

  • 前向过程:不断往输入图片中添加高斯噪声来破坏图像
  • 反向过程:使用一系列马尔可夫链逐步将噪声还原为原始图片

前向过程 ——>图片中添加噪声
反向过程——>去除图片中的噪声

在这里插入图片描述

1.2、 训练过程:U-Net网络

在每一轮的训练过程中,包含以下内容:

  1. 每一个训练样本对应一个随机时刻向量time step,编码时刻向量t转化为对应的time step Embedding向量;
  2. 将时刻向量t对应的高斯噪声ε应用到图片中,得到噪声图Noisy image
  3. 将成组的time step Embedding向量、Noisy image注入到U-Net训练;
  4. U-Net输出预测噪声Predicted noise,与真实高斯噪声True noise ε,构建损失。

在这里插入图片描述

下图是每个Epoch详细的训练过程:
在这里插入图片描述在这里插入图片描述

1.3、 推理过程:反向扩散

噪声图Noisy image经过训练后的U-Net网络,会得到预测噪声Predicted Noisy,而:去噪图Denoised image = 噪声图Noisy image - 预测噪声图Predicted Noisy。(计算公式省略了具体的参数,只表述逻辑关系)
在这里插入图片描述

1.4、 补充:U-Net结构

U-Net的模型结构就是一个编-解码的过程,下采样Downsample、中间块Middle block、上采样Upsample中都包含了ResNet残差网络

1、主干网络做特征提取;2、加强网络做特征组合;3、预测网络做预测输出;

在这里插入图片描述

1.5、补充:DM扩散模型的缺点

  1. Diffusion Model是在原图上完成前向过程、反向过程,计算量巨大;
  2. Diffusion Model只与时刻向量t产生作用,生成的结果不可控;

二、Stable Diffusion原理

为改善DM扩散模型的缺点,Stable Diffusion引入图像压缩技术,在低维空间完成扩散过程;并添加CLIP模型,使文本-图像产生关联。

2.1、Stable DiffusionDiffusion的改进点

1. 图像压缩DM扩散模型在原图上进行的操作,而Stale Diffusion是在较低维度的潜在空间上应用扩散过程,而不是使用实际像素空间,这样可以大幅减少内存和计算成本;
2. 文本-图像关联:在反向扩散过程中对U-Net的结构做了修改,使其可以添加文本数据Text Embedding,使得在每一轮的去噪过程中,文本与图像都能产生关联;

在这里插入图片描述

2.2、Stable Diffusion的生成过程

Stable Diffusion在实际应用中的过程:原图——经过编码器E变成低维编码图——DM的前向过程逐步变成噪声图——TU-net网络完成DM的反向过程——经过解码器D变成新图。

  1. Stable Diffusion会事先训练好一个编码器E、解码器D,来学习原始图像与低维数据之间的压缩/还原过程;
  2. 首先通过训练好的编码器E ,将原始图像压缩成低维的Latent data(图像压缩);
  3. 然后用低维噪声Latent data、时刻向量t、文本向量Text Embedding、在U-Net网络进行T轮去噪,完成扩散过程;
  4. 最后将得到的低维去噪图通过训练好的解码器D,还原出原始图像,完成整个扩散生成过程。

2.3、补充:文本-图像关联——CLIP模型

2.4、补充:Stable Diffusion训练的四个主流AI模型

  1. Dreambooth:会使用正则化。通常只用少量图片做输入微调,就可以做一些其他扩散模型不能或者不擅长的事情——具备个性化结果的能力,既包括文本到图像模型生成的结果,也包括用户输入的任何图片;
  2. text-inversion:通过控制文本到图像的管道,标记特定的单词,在文本提示中使用,以实现对生成图像的细粒度控制;
  3. LoRA:大型语言模型的低阶自适应,简化过程降低硬件需求;
  4. Hypernetwork:这是连接到Stable Diffusion模型上的一个小型神经网络,是噪声预测器U-Net的交叉互视(cross-attention)模块;

四个主流模型的区别:

  • Dreambooth最直接但非常复杂占内存大,用的人很多评价好;
  • text-inversion很聪明,不用重新创作一个新模型,所有人都可以下载并运用到自己的模型,模型小,存储空间占用小;
  • LoRA可以在不做完整模型拷贝的情况下,让模型理解这个概念,速度快;
  • Hypernetwork:没有官方论文;

三、补充:四大生成模型对比

GAN生成对抗模型、VAE变微分自动编码器、流模型、DM扩散模型

3.1、GAN生成对抗模型

  1. GAN模型要同时训练两个网络,难度较大,多模态分布学习困难;
  2. 不容易收敛,不好观察损失;
  3. 图像特征多样性较差,容易出现模型坍缩,只关注如何骗过判别器;

3.2、VAE变微分自动编码器

Deepfaker、DeepFaceLab的处理方式,生成中间状态

3.3、流模型

待完善

3.4、DM扩散模型


http://www.niftyadmin.cn/n/5098398.html

相关文章

民安智库(第三方社会评估调研公司)客户满意度调查分析方法

客户满意度调查的分析过程可以采取多种方法,这些方法包括但不限于方差分析法、休哈特控制图、双样本T检验、过程能力直方图、Pareto图和四分图模型等。以下是各分析方法的简要介绍,至于具体使用哪种方法,需要根据企业的实际情况和调查数据的特…

18.项目开发之前端项目搭建测试

项目开发之前端项目搭建测试 解压文件,将前端项目目录,拖拽到HBuilder中 前端项目QuantTrade_vue地址:传送门 后端项目QuantTrade地址: https://pan.baidu.com/s/1GF45B0QepApH8JbRIOLY7w?pwd1016 开启idea的项目,先…

多线程处理文件集合,先拆分,在执行

try {File file new File(path);File[] files file.listFiles();log.info("当前共有文件 "files.length"个");List<File> filesList new ArrayList<>(Arrays.asList(files));List<List<File>> dividedLists SplitListUtils.sp…

AIGC - 入门向量空间模型

文章目录 向量和向量空间向量的运算什么是向量空间&#xff1f;向量空间的几个重要概念向量之间的距离曼哈顿距离&#xff08;Manhattan Distance&#xff09;欧氏距离&#xff08;Euclidean Distance&#xff09;切比雪夫距离&#xff08;Chebyshev Distance&#xff09; 向量…

【Tent-SSA-BP】基于Tent混沌映射改进的麻雀算法优化BP神经网络回归预测研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【开发日常】insmod: error inserting ‘*.ko‘: -1 Unknown symbol in module原理分析

问题的起源是一次面试&#xff0c;面试官询问加载内核的时候&#xff0c;如果insmod失败&#xff0c;且提示Unknown symbol in module。请问我里面的原理是什么呢&#xff1f;为什么内核知道当前缺少的是这个symbol&#xff1f; 想了解下具体的原因。 首先是模拟一个环境。 写…

笔试算法题ACM模式输入输出处理

1. Python input之后得到的全是string类型&#xff0c;数字需要用int(n)进行转换 读取单个数 n int(input()) 读取一串数组&#xff1a; nums [int(n) for n in input().split()] &#xff08;nums是个数组&#xff09; 读取字符串&#xff1a; stringinput().split(…

基于ChatGPT的智能客服助手

导读1.应用场景与系统框图2.搭建基于ChatGPT的智能客服助手 2.1 ChatGPT原理2.2 Prompt设计3.智能客服系统二期优化之用户问题分类 3.1 Bert简介3.2 用户问题分类网络训练数据3.3训练分类模型4.智能客服系统三期优化之商详和质检项相关知识筛选5.总结6.参考文献 导读 传统客服…