海南百度网站建设,河北网站设计制作,wordpress new图标,大气集团企业网站源码Stable diffusion 是 CompVis、Stability AI、LAION、Runway 等公司研发的一个文生图模型#xff0c;将 AI 图像生成提高到了全新高度#xff0c;其效果和影响不亚于 Open AI 发布 ChatGPT。Stable diffusion 没有单独发布论文#xff0c;而是基于 CVPR 2022 Oral —— 潜扩…Stable diffusion 是 CompVis、Stability AI、LAION、Runway 等公司研发的一个文生图模型将 AI 图像生成提高到了全新高度其效果和影响不亚于 Open AI 发布 ChatGPT。Stable diffusion 没有单独发布论文而是基于 CVPR 2022 Oral —— 潜扩散模型 (Latent Diffusion Model, LDM)。
Stable diffusion 模型并不是直接在像素空间上操作图像而是在隐空间中进行操作通过将原始数据编码到更小的隐空间中让 U-Net 可以在低维表示上添加和删除噪声这样可以显著提高模型的训练和生成效率。此外stable diffusion 还引入了 CLIP将输入文本的特征与模型生成的图像做比对以输出最符合文本的图像。 目录 一. 背景二. Stable diffusion 模型1. Autoencoder2. CLIP text encoder3. U-Net 三. 训练方法四. 图像生成五. 实验六. 总结七. 复现 一. 背景
在 Stable Diffusion 诞生之前AIGC 最主要的模型是生成对抗网络 GAN通过同时训练两个网络进行对抗训练实现高质量的图像生成。GAN 让超越训练数据已有内容成为可能从而打开了一个全新领域 —— 生成建模。1 然而在经历了一段蓬勃发展后GAN 开始暴露出一些瓶颈和弊病图像生成缺乏多样性、模式崩溃、多模态分布学习困难、训练时间长GAN 由此进入瓶颈期。
Diffusion 的出现打破了 AIGC 的僵局通过向数据中添加噪声再去噪恢复数据从而实现图像的自由生成。Diffusion 自 DDPM 的提出就迅速收获大量好评现在大火的最 GLIDE、DALLE2、Imagen以及一系列的 Image Editing 方法都是基于 diffusion。然而diffusion 的训练时间和经济成本都极其昂贵于是出现了 stable diffusion。
Stable diffusion 模型不直接在像素空间上操作图像而是在隐空间中进行操作。通过将原始数据编码到更小的隐空间中让 U-Net 可以在低维表示上添加和删除噪声这样能够加速 U-Net 处理数据的速度实现更高的生成效率。2
为了实现文生图的效果stable diffusion 还在 U-Net 中引入了 CLIP text encoder 提取文本特征从而生成更加符合文本的图像。
二. Stable diffusion 模型
Stable diffusion 是一个基于 latent 的扩散模型采用一个 autoencoder 将图像压缩到 latent 空间然后用扩散模型来生成图像的 latents最后送入 decoder 模块就可以得到生成的图像。Stable diffusion 还在 U-Net 中引入 text condition 实现了基于文本的生成图像。3
Stable diffusion 模型的主体结构如图所示主要包括三个模型
Autoencoder将图像在 pixel 空间和 latent 空间之间压缩和解压缩CLIP text encoder提取输入文本的 text embeddings 传入 U-NetU-Net扩散模型的主体用来实现文本引导下的图像 latents 生成。
1. Autoencoder
为了让 stable diffusion 能够在像素空间和隐空间之间做变换引入了编码器和解码器
编码器 E E E将全尺寸图像编码为低维潜在数据解码器 D D D将潜在数据解码回全尺寸图像
Autoencoder 将 H × W × 3 H \times W \times 3 H×W×3 大小的 RGB 图像 x x x 压缩成 h × w × c h \times w \times c h×w×c 大小的隐空间表示 f H / h W / w f H/h W/w fH/hW/w 称为下采样率 (downsampling factor)。LDM 尝试了 f 2 m f2^m f2m 的不同取值权衡生成质量和收敛速度。
2. CLIP text encoder
为了实现文生图的效果stable diffusion 使用预训练的 CLIP text encoder 提取文本特征 text embeddings 传入 U-Net以指导其图像生成。Stable diffusion 采用的 CLIP text encoder 是 clip-vit-large-patch14 的 text encoder是一个 12 层、768 特征维度的 transformer 模型得到 77x768 特征维度的 text embeddings将其送入 U-Net 的 Cross-Attention 中。
图中的开 switch 用于在不同类型的输入之间进行调节
对于文本输入首先使用语言模型 τ θ \tau_{\theta} τθ 将文本转换为嵌入向量然后通过 Multi-Head Attention 映射到 U-Net对于其他模态的对齐输入例如语义映射、图像、修复使用连接来完成调节
3. U-Net
U-Net 是扩散模型的主体用来实现文本引导下的图像 latents 生成。为了实现文本指导stable diffusion 通过使用 cross-attention 机制增强 U-Net将内部扩散模型转变为条件图像生成器。
Stable Diffusion 的训练目标与 diffusion 的目标较为相似需要改进的地方是 4
图像 x t x_t xt 变为了隐空间中的变量 z t z_t ztU-Net 中添加了条件输入 τ θ ( y ) \tau_{\theta}(y) τθ(y)
因此 Stable Diffusion 的损失函数如下 L L D M E t , z 0 , ϵ , y [ ∥ ϵ − ϵ θ ( z t , t , τ θ ( y ) ) ∥ 2 2 ] L_{\mathrm{LDM}}\mathbb{E}_{t, z_0, \epsilon, y}\left[\left\|\epsilon-\epsilon_\theta\left(z_t, t, \tau_\theta(y)\right)\right\|_2^2\right] LLDMEt,z0,ϵ,y[∥ϵ−ϵθ(zt,t,τθ(y))∥22]
更多介绍见 stable diffusion原理解读通俗易懂史诗级万字爆肝长文喂到你嘴里。
三. 训练方法 四. 图像生成 五. 实验
六. 总结
七. 复现
Stable diffusion 开源了预训练好的权重the CompVis organization at Hugging Face可以直接拿来做下游任务
平台AutoDL显卡RTX 3090 24G镜像PyTorch 1.11.0、Python 3.8(ubuntu20.04)、Cuda 11.3源码https://github.com/CompVis/stable-diffusion
Hugging Face 上提供了预训练好的不同版本的 checkpoints以 stable-diffusion-v-1-1 为例可以直接下载模型参数CompVis/stable-diffusion-v-1-1-original。Hugging Face 上还将 stable diffusion 封装成 diffusers 库可以直接调用完成下游任务demo 如下
import torch
from torch import autocast
from diffusers import StableDiffusionPipelinemodel_id CompVis/stable-diffusion-v1-1
device cudapipe StableDiffusionPipeline.from_pretrained(model_id)
pipe pipe.to(device)prompt a photo of an astronaut riding a horse on mars
with autocast(cuda):image pipe(prompt).images[0] image.save(astronaut_rides_horse.png)实验记录 一开始在 Notebook 里运行即使进行学术资源加速还是会报错 SSLCertVerificationError。后来直接在终端执行 python 文件就可以正常连接了 执行 image pipe(prompt)[sample][0] 时出现 KeyError: sample将其修改为 image pipe(prompt).images[0] 5 就可以正常使用了 第一次执行需要下载模型文件和加载管道组件费时较长耐心等待即可。以后每次调用就可以直接加载
实验结果
a photo of an astronaut riding a horse on mars
a photo of a Lamborghini racing on the track
a photo of the night scenery of Chongqing
a photo of the Great Wall
A poster of Ferrari
A wallpaper of NBA stars Stable Diffusion原理详解 ↩︎ Diffusion 和Stable Diffusion的数学和工作原理详细解释 ↩︎ 文生图模型之Stable Diffusion ↩︎ Stable Diffusion 超详细讲解 ↩︎ KeyError: ‘sample’ #402 ↩︎