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

stable diffusion网络结构详解

1.介绍

本文主要以github上的stable diffusion开源项目中的layout2img-openimages256为例,以图片形式详细介绍stable diffusion模型中使用的神经网络结构,关于潜在扩散模型思想以及扩散模型训练和采样算法,目前中文互联网上也已有很多的学习资料,因此在此不做赘述。

2.VAE网络结构

VAE的主要作用是将输入图片压缩为一个固定大小的特征空间,以减小后面Unet参数。
其整体模块框图如下:
vae
前面的down sample模块、mid模块、end模块为编码器,中间的DiagGaussianDistribution为高斯加噪、后面的mid模块、Up Sample模块、end模块为解码器,可以看到编解码器主要由Resblock、attention和Downsample/Upsample组成,其中Downsample/Upsample结构比较简单,Downsample就是用一个卷积层实现H,W减半,Upsample是先插值使H,W乘2,然后通过一个卷积层,所以本文就没有画它们的结构。

2.1 ResBlock的计算结构图

Resblock_vae

2.2 attention的计算结构图

attentionc

2.3 DiagGaussianDistribution的计算结构图

diaggaussiandistribution

2.4 VAE损失函数

stable diffusion中训练VAE的损失函数设计来自于论文:[https://arxiv.org/pdf/2012.09841](Taming Transformers for High-Resolution Image Synthesis)。使用类似GAN的对抗思想,在VAE的输出后面加一个判别器(\(D(\cdot)\)),其中生成器损失函数为:
\(L_{\text {total }}=\underbrace{L_1 \text { loss }+L_2 \text { loss }+w_{\text {perceptual }} L_{\text {perceptual }}(\text { LPIPS loss })}_{n \text { ll loss }}+w_{k l} L_{k l}+\lambda L_G\)
其中\(\lambda\)为:
\(\lambda=\frac{L_2\left(\frac{\text { dnll_loss }}{\text { dlast_layer.weight }}\right)}{L_2\left(\frac{\partial L_G}{\text { dlast_layer.weight }}+10^{-4}\right)}\)
\(w_{k l}\)通常取\(10^{-6}\), \(w_{perceptual}\) 通常取1。
\(L_D\)与GAN中判别器损失函数一致,训练方法也与GAN中训练方法一致。

3.Unet网络结构

扩散模型中Unet主要用来预测第t步噪声(\(pred-\epsilon\))或预测原始无噪声样本(\(pred-x_0\))。使用的Unet是项目中的ldm.modules.diffusionmodules.openaimodel.UNetModel模型
其整体模块框图如下:
unet
(由于网络规模过大,图片中的字可能在网站上看不清,可以将图片保存下来放大查看网络中每个模块参数超参数设置。)
从上图中可见Unet网络编码器有4层,相应的解码器也有4层。编码器和解码器都主要由Resblock模块,SpatialTransformer模块和上/下采样模块组成,其中上下采样模块结构很简单,下采样模块就是用一个卷积层实现H,W减半,上采样模块是先插值使H,W乘2,然后通过一个卷积层,所以本文就没有画它们的结构。

3.1 Resblock计算结构图

resblock

3.2 SpatialTransformer计算结构图

spatialTrans
其中的BasicTransformerBlock的结构如下:
basicTrans
BasicTransformerBlock中的注意力层在有context时是交叉注意力,在没有context时是自注意力,context是条件经过条件网络编码后embedding。
crossattention结构如下:
att

http://www.hskmm.com/?act=detail&tid=21524

相关文章:

  • 9.30
  • 网络与系统攻防技术实验一——逆向破解与Bof
  • 【python】解决grpcio.protoc生成的pb文件里面没有类和方法定义
  • 阙韩
  • “计算机配置\Windows 设置\安全设置\本地策略\审核策略” 配置后不生效
  • Spring Boot 事件发布与监听 观察者模式的实际应用 - 实践
  • P13969 [VKOSHP 2024] Exchange and Deletion
  • Matlab 通用库的fft和dsp toolbox的dsp.fft对比
  • [CTS2024] 众生之门
  • [CEOI 2025] Equal Mex
  • [ROI 2018] Quick sort
  • CF2127F Hamed and AghaBalaSar
  • 2025 年PPH 管厂家推荐榜单:江苏镇江扬中优质 PPH 管道/管材/管件厂家权威精选
  • Label-Free Liver Tumor Segmentation
  • CF1951G Clacking Balls
  • [ABC311Ex] Many Illumination Plans
  • 2025 预分散颜料厂家最新推荐榜:超高含量技术 + 合规企业全景指南,纺丝 / 吹膜专用产品选型手册
  • 倍增思想与其优化
  • 2025 年 AI 健康管理领域推荐深护智康,社区、基层公卫、母婴 AI 健康管理、AI + 大健康管理、AI 健康管理师公司推荐
  • 2025 最新权威推荐:全国开锁公司口碑排行榜,含智能锁专项服务与紧急上门品牌详解汽车保险柜开锁/汽车锁开锁/保险柜开锁/智能开锁/快速上门开锁公司推荐
  • 从“看得见”到“能决策”:Operation Intelligence 重构企业智能运维新范式
  • 实用指南:Ubuntu 中 Bash / Zsh / Ash / Dash 的使用与区别(含对比图)
  • 2025 年杭州软件开发公司最新推荐榜单:聚焦服务经验与售后体系的五大优质公司权威指南
  • Nginx 与 LNMP 架构部署 - 详解
  • QMT委托对象orderInfo的属性以及对应的值
  • 2025 年电动门厂家最新推荐排行榜:实力厂家深度解析,含技术认证、案例及选购指南
  • 2025 年透骨液膏药代理加盟 / 足浴包膏药代理加盟 / 青岛膏药代理加盟推荐:青岛步泽药业布泽草本透骨液代理合作解析
  • 单链表实现队列
  • 死锁易错知识点整理
  • 2025广州1688代运营服务商推荐排行榜,阿里巴巴全店,实力商家,店铺装修,产品推广,流量优化,国际站,新店起量,数据分析,爆款打造代运营公司推荐