Stable Diffusion 笔记一:网络结构拆解

Stable Diffusion 笔记一:网络结构拆解

    正在检查是否收录...

SD由三大组件组成:VAE,CLIP,Unet。

一VAE:

VAE是Variational Autoencoder的缩写,中文名变分自编码器,是一种基于深度学习的生成模型。

1潜空间图片与像素图片:

像素图片是正常使用的图片,通常包含主体的物体人物角色,和多余的部分空白背景等与主体无关的噪声。

潜空间图片可以理解为是像素图片在高维空间的另一种表达,是像素图片的一种压缩表示。

SD生成的图片是潜空间图片(Latent image)而不是直接使用的图片(Pixel image)。

2VAE编码和解码的过程 

VAE编码器的部分作用是将像素图片编码转为潜空间图片,SD在此潜空间图片上进行迭代生成,迭代后的图片再由VAE解码器部分转换成像素级图片。

编码过程进行了8倍下采样操作,图片尺寸由512变为64,缩小8倍。

解码过程进行了8倍上采样操作,图片尺寸变为512,与目标的原始尺寸一致。

即编码前的图片尺寸与解码后的图片尺寸是match的。

3其他:

潜空间图片通道数目为4是先人实验结论得出的。

4 VAE编码过程:

原始像素图片经过3个 ResidualBlock+DownSample 进行了8倍下采样操作。

再经注意力部分(Attention Block)转换为潜空间图片。

VAE主要的结构是这个注意力模块,存疑?

这个地方也是耗费大量显存的部分。

解码的过程是这个流程反过来。

二CLIP

CLIP的将promt转换成可以用于SD用于生成图片的词向量格式。

1 流程:

文字输入到SD的提示词如:a girl in white dress,

使用tokenizer跟进词库将单词转换为数字即tokens,如:a girl in white dress, -->[0,21,5,128,64]

再通过embedding将tokens转换成768维的特征向量。每一个数字转换成768维的向量。

最后通过Transformer Block 将向量变换转换成可以输入到后续unet的feature map。

2 Transformer 分为 Transformer Encoder 和  Transformer Decoder

Clip中只使用了Transformer Encoder的结构。

三U-net

1网络结构图:

U-net共套了4成这样的网络结构,第4层没有中间的middle Block:Down-->Up的部分。 

2注意力模块的两种形式:

 自注意力模块的输入和输出都是自己。

交叉注意力模块的输入一部分是自己,另一部分是其他的一些信息。

3Transformer Block 的encoder和decoder

 Encoder结构只使用了自注意力模块,Decoder结构使用了两种注意力模块。

Unet里使用的是TransformerDecoder 

codetransformer注意力cliclip图片尺寸token深度学习生成模型提示词人物角色解码器数字转换url
  • 本文作者:李琛
  • 本文链接: https://wapzz.net/post-8048.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
本站部分内容来源于网络转载,仅供学习交流使用。如涉及版权问题,请及时联系我们,我们将第一时间处理。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
2.3W+
5
0
1
WAP站长官方

AIGC内容分享(二):全球大模型技术与应用分析

上一篇

AI绘画,AI绘画小程序软件,AI换脸,AI人工智能绘画

下一篇
  • 复制图片
按住ctrl可打开默认菜单