stable diffusion 基本概念
stable diffusion 基本概念
stable diffusion 基本概念
这篇是fastai第九讲视频资源的笔记, 笔者认为从一个很好理解的角度解释了stable diffusion
the rest of the class is a shit
首先我们想象有函数f, 对于每一张图片, 他能返回"可能是数字"的概率, 比如下图中的x1为数字的概率为0.98, x2为数字的概率为0.4, x3为数字的概率为0.02
现在我们来尝试将x3变得"更像数字", 我们是这样做的, 从x3的(0,0)像素点开始, 尝试增加"一点点"像素值, 查看p`(x3)的变化, 我们可以求每个像素点相对f(x)的梯度!接着对原图片每个像素点减去一个合适的常数c和梯度的乘积.
如果我们把得到的新的图片给函数f检测, 就会发现新图片"更像数字", 和随机梯度下降的思想类似.
为了贴近我们即将阐述的概念, 我需要这样表述上面的做法, 我通过递归计算梯度得到了"合适的常数c和梯度的乘积", 它的形状和原图片是一样的28x28, 我们把他称为x3的噪声图, x3减去噪声图使x3更接近数字图片.

在上一节中, 我们有一个神奇的函数f去预测噪声图, 但是引入一个函数告诉我们这张图片有"多么"像手写数字, 然后再计算梯度这很奇怪, 我们永远无法知道! 参考GAN里的辩别器.
在这一节我们通过一个神经网络直接预测噪声图, 数据集是大量的手写图片, 通过添加大量均值为0方差不同的噪声分布得到"不那么像手写图片"的样本, 训练这个神经网络使它尽可能准确的预测输入图片的噪声图, 输入图片减去噪声图得到"更接近数字图片"的样本.
在最后我们可以从纯噪声开始, 得到"很像手写数字的图片".

参考下图, 我们的任务是训练一个神经网络, 使输入图片和输出图片完全一致, 上采样和下采样一般通过卷积实现.
当谈论这样做的意义时, 请关注图中红线部分, 我们从64x64x4的特征还原出了原始图像, 那么我们只需要在服务器中保存这个压缩后的特征(latent), 在客户端就可以根据模型共享参数还原出原始图片.
在模型训练完成后, 我们把图中绿色部分称为VAE(Variational autoencoders), 严格意义上来说VAE是一种压缩算法, 帮助我们节省大量的时间和金钱.

接下来我们将理解怎么增加文本嵌入.
对于手写数字任务, 我们在模型中嵌入onehot编码版本的数字.

对于复杂精美的现实世界图片, 我们可以使用CLIP

每张图片都有一个text标签, 我们对image和text分别编码, 得到固定长度的一维向量, 我们希望:
我们定义的损失函数如上图右表所示, 运用点积, 它们每个嵌入组合都能得到一个分数, 损失函数为蓝色部分减去红色部分(contrastive loss).
重复表述一下我们期待的结果, "a graceful swan", "some beautiful swan", "such a lovely swan", [一张天鹅的照片]得到相似的嵌入向量. 可以理解为在一个高维空间中, 它们的位置非常接近.
A different way to look at Stable Diffusion
初印象
High-Resolution Image Synthesis with Latent Diffusion Models
Diffusion Models实现了图片的高保真可控生成, 但是训练和推理消耗大量资源, 本论文通过映射到latent space, 既减小了计算复杂度, 又得到高保真图片. 另外, 通过交叉注意力, 允许可控条件生成.
在生成高保真图片任务中, likelihood-based的模型通过增加参数量, GAN的训练又很受数据的限制. Diffusion Models快速应用到图像修复上色等任务, 不易mode-collapse, 通过参数共享减小参数量.
分析了一下DM生成高保真图片的问题, 尽管有一些尝试, 在高维度空间上重复计算不可避免. 训练难, 评估难.
实验设计基于这样的观察, 压缩分两个阶段, 第一阶段感知压缩可以大幅减少数据量而图像的失真度增加很慢, 因为主要被移除的是人眼难以观察到的细节和高频信息, 这部分通常由自编码+GAN实现; 第二阶段语义压缩, 当压缩率低到一定程度后, 再想进一步压缩, 失真度会急剧上升. 这是因为此时压缩的不再是难以察觉的细节, 而是图像的核心语义信息. 这部分可以由LDM来处理. 传统的方法即使想去除那些无意义的信息, 也需要在所有像素上进行计算, LDM先用一个轻度的压缩(感知压缩)去除人眼不敏感的细节, 然后在得到的更小, 更紧凑的潜在空间中, 用强大的扩散模型进行训练和生成.

编码器只用训练一次就可以反复使用, 甚至是不同的任务. 通过在UNet中引入transformer实现可控生成.

怎么改进的没看懂, 反正比较了几种压缩方法他们更优.
解释了Diffusion逐渐去噪的过程, Latent表示的优点.
包括跨注意力机制和多模态训练.
潜在空间感知图像压缩, 图像生成, 条件化图像生成, 超分辨率,图像修复
感受
单看论文有点看不下去, 核心机制通过网上资源理解了, 因此不再深入阅读.