首页 > 其他分享 >Stable Diffusion组成

Stable Diffusion组成

时间:2023-12-20 09:33:33浏览次数:30  
标签:Diffusion ResNet 64 组成 Stable 向量 图片

image.png

一、Text Understander(蓝色部分)

将文字转换成某种计算机能理解的数学表示

  • text understander是个特别的Transformer语言模型(例如clip,可参考Clip介绍
  • text understander的输入是人类语言(token),输出是一系列的向量(token embeddings,每个向量有768维),这些向量的语义对应着我们输入的文字
  • text understander将输出传递给图像生成器(Image Generator

image.png

代表语义的向量(就比如上面的蓝色3*5方格)

二、Image Generator

分为两个子模块

1、图片信息生成器(粉色部分)

粉色的模块是Stable Diffusion的核心,也是Stable Diffusion和其他diffusion模型最大的区别,很多性能上的提升就来源于此。

  • 图片信息生成器不直接生成图片,而是生成的较低维度的图片信息,也就是所谓的隐空间信息(information of latent space)
  • 再将下图中这个隐空间信息输入到(下图中黄色的)解码器(Decoder)里,就可以成功生成图片了

image.png

这个隐空间信息在下面的流程图中表现为那个粉色的4*3的方格

  • Stable Diffusion主要引用的论文“latent diffusion”中的latent也是来源于隐变量中的“隐”(latent)
  • 一般的diffusion模型都是直接生成图片,并不会有先生成隐变量的过程,所以普通的diffusion在这一步上需要生成的信息更多,负荷也更大。因而之前的diffusion模型在速度上和资源利用上都比不过Stable Diffusion

1.1、隐空间(Latent Space)

"隐空间"(Latent Space)是指在机器学习和深度学习中,数据经过降维、编码或其他转换过程后所处的低维空间。在这个空间中,原始数据的一些隐藏特征得以体现,可以用于数据生成、特征抽取或其他任务。在 stable diffusion 的上下文中,隐空间通常用于表示输入数据的潜在表示,以便于模型学习数据的内在结构和特征。

个人理解:进行向量运算的地方

架构

image.png
潜在扩散模型结构

U-Net

卷积神经网络(Convolutional Neural Network,CNN),这种网络结构主要用于图像分割(Image Segmentation)任务,可以有效地提取图像的特征并进行精确的分割。

Stable Diffusion 中主要用于噪声预测
image.png
整个UNet是由一系列ResNet构成的,每一层都是上一层的输出

ResNet

在深度学习中,ResNet是一种常用的神经网络结构,它通过引入残差模块来解决深度神经网络训练过程中的梯度消失和梯度爆炸问题。每个残差模块内,输入不仅会传递给下一层,还会与下一层的输出进行相加,形成一个“短路连接”,这就是所谓的“残差连接”。
在Stable Diffusion模型中,ResNet作为编码器,可以将输入的高维数据(如图像)编码为低维的隐向量;作为解码器,可以将低维的隐向量解码为高维的输出数据。ResNet的这种特性使其在处理图像、音频等高维数据时具有很好的性能。

Stable Diffusion模型中,主要用作编码器和解码器。对图片进行降噪处理

Attention

attention 中将语义融入Latent,以便下一个ResNet处理过程中融入生图信息
image.png

1.2、图片生成器小结

  1. Text Understander输入转换后的语义向量特征
  2. 初始化随机噪音(随机初始化的多维数组组成的噪音)
  3. 发送到UNet神经网络
  4. 在潜空间内,运行多个step,逐步处理信息。
    1. 在一次降噪过程中,UNet多次进行crossattention操作
    2. 其中crossattention包括:
      1. ResNet:对图片进行降噪的解码器
      2. Attention:将语义融入latent,以便下一个ResNet处理过程中融入这些信息
  5. 输出经过处理的信息数组(去噪的隐变量(4,64,64))

2、图像解码器(黄色部分)

从图片信息生成器(Image Information Creator)中接过图片信息的隐变量,将其升维放大(upscale),还原成一张完整的图片

根据图像信息创建图像,只在过程结束时运行一次

三、总结

image.png

模块 功能 输入 输出
Text Encoder 将人类语言转换成机器能理解的数学向量 人类语言 语义向量(77,768)
Image Information Creator 结合语义向量,从纯噪声开始逐步去除噪声,生成图片信息隐变量 噪声隐变量(4,64,64)+语义向量(77,768) 去噪的隐变量(4,64,64)
Image Decoder 将图片信息隐变量转换为一张真正的图片 去噪的隐变量(4,64,64) 一张真正的图片(3,512,512)

标签:Diffusion,ResNet,64,组成,Stable,向量,图片
From: https://www.cnblogs.com/meidanlong/p/17915457.html

相关文章

  • Stable Diffusion 数学支撑
    一、生成模型在概率统计理论中,生成模型是指能够随机生成观测数据的模型GAN模型因其对抗性训练的本质可能导致训练不稳定以及生成多样性不足VAE依赖于替代损失Flow模型必须使用专门的架构来构建可逆变换扩散模型受非平衡热力学的启发。它们定义了一个扩散步骤的马尔可夫......
  • Stable LM Zephyr 3B:手机上的强大LLM助手
    概览最近,Stability.ai宣布开源了StableLMZephyr3B,这是一个30亿参数的大语言模型(LLM),专为手机、笔记本等移动设备设计。其突出的特点是参数较小、性能强大且算力消耗低,能够自动生成文本、总结摘要等,与70亿、130亿参数的模型相媲美。Huggingface模型下载:https://huggingface.co/s......
  • 计算机组成原理必背名词解释&&简答题汇总
    计算机组成原理必背名词解释&&简答题汇总计算机组成原理-名词合集第一章:计算机系统绪论1.主机:由CPU、存储器与I/0接口合在一起构成的处理系统称为主机。2.CPU:中央处理器,是计算机的核心部件,由运算器和控制器构成。3.运算器:计算机中完成运算功能的部件,由ALU和寄存器构成。4.......
  • Stable Zero123震撼发布:单图生成高质量3D模型
    模型简介12月13日,Stability.ai在开源领域引起了巨大震动,其最新作品StableZero123成为了焦点。这款基于Zero123模型的升级版本,主要通过改进的渲染数据集和分数蒸馏方法,大幅提升了3D模型的生成效果和训练效率。值得一提的是,StableZero123可以与Stability.ai的高精准图片模型SDXL相......
  • 2020CVPR_High-Resolution Image Synthesis with Latent Diffusion Models
    1.AutoEncoderAutoEncoder(自编码器)是一种无监督学习的神经网络模型,用于学习有效的数据表示。它的目标是将输入数据编码成一种潜在的、紧凑的表示形式,然后从这个表示中重构原始输入。自编码器由两部分组成:编码器(Encoder)和解码器(Decoder)。编码器(Encoder):将输入数据映射到潜在表示空......
  • 测试用例的组成和质量标准
    一、测试用例的组成一个专业的测试用例通常包括以下关键部分:1.用例编号(TestCaseID):一个唯一标识符,用于跟踪和管理测试用例。2.用例描述(TestCaseDescription):对测试用例的简短描述,说明测试用例的目的或测试的主要功能点。3.相关需求(RelatedRequirement):指明该测试用例所对应......
  • 看不惯AI版权作品被白嫖!Stability AI副总裁选择了辞职,曾领导开发Stable Audio
    近日,OpenAI的各种大瓜真是让人吃麻了。而就在SamAltmam被开除前两天,可能没太多人注意到StabilityAI副总裁Newton—Rex因看不惯StabilityAI在版权保护上的行为选择辞职一事。Newton—Rex对音乐生成式AI的贡献Newton—Rex是生成式AI在音乐领域的发展进化过程中的关键人物之一。这位......
  • 本地搭建Stable Diffusion并利用免费组网工具实现远程访问AI绘图服务
    很多小伙伴在家里或者公司搭建了本地的StableDiffusionWebUI需要异地访问或者共享给其他小伙伴使用服务,如果机器本身搭建在公网服务器上面有域名就可以共享出去,但是涉及到安全问题所以大多数人都是部署在本地服务器或者家里的电脑上面。笔者通过B站秋葉aaaki的教程进行一键安装S......
  • SpringAOP的组成包含哪些
    SpringAOP的组成包含哪些SpringAOP(面向切面编程)的主要组成部分包括以下几个关键概念:切面(Aspect):切面是横切关注点的模块化单元。它封装了横切关注点的具体实现,包括通知和切点。通常,切面是一个类,其中包含了定义在何处以及如何执行横切关注点的代码。通知(Advice):通知是切面......
  • 51单片机的内核架构组成 & 介绍
    对于51单片机相信很多电子信息或者相关专业的朋友应该都不会感觉陌生,很多专业在大学课程中开设的单片机课程就是使用的51单片机进行授课和学习的。51单片机的内容相较于其他高性能复杂的单片机来说,架构相对简单一些,寄存器也少很多,作为新手入门学习是很有好处的,不用一上来就啃很复......