视觉生成技术整理
输入“/”快速插入
视觉生成技术整理
飞书用户3087
3月22日创建
本文档旨在整理视觉生成相关技术,从
图像生成
开始,最后聚焦于
视频生成的微调技术
一、文生图部分(主要讨论Stable Diffusion系列模型)
stable diffusion是
基于Diffusion Transformers的一种特定实现
,专注于图像生成和编辑。准确来说stable diffusion model是一个latent diffusion model,学习数据的latent presentation
1.
发展历史(摘自datawhale的
AIGC教程
):
据文生图的发展路线,我们把文生图的发展历程发展成如下 4 个阶段:
•
基于生成对抗网络的(GAN)模型
•
基于自回归(Autoregressive)模型
•
基于扩散(diffusion)模型
•
基于 Transformers 的扩散(diffusion)模型
2.
视频
教程,带具体代码:
Coding Stable Diffusion from scratch in PyTorch (Youtube)
https://www.youtube.com/watch?v=ZBKpAp_6TGI
(约五小时)
ppt如下,非常好教程,使我脑袋旋转
Stable_Diffusion_Diagrams_V2.pdf
1.23MB
模型代码在:
https://github.com/hkproj/pytorch-stable-diffusion
视频内容大致流程
1.
生成模型定义
(生成模型学到了数据的分布,使得我们可以从中采样来获得新的数据实例,而且数据的分布是一个联合分布,在图像生成过程中,一个像素就是一个分布,所有像素点一起构成复杂的联合分布)
2.
Diffusion models两过程
,
diffusion process
(一步步在图像上增加噪声,直到变成纯噪声,符合
分布,T是步骤)和
reverse process
(去噪的过程),去噪过程比加噪难,所以用到神经网络。具体数学描述在2020年的DDPM论文background部分有:
3.
Reverse process的过程
如何控制
,这里涉及到一个加权输出叫
classifier free guidance
(就是一个特征是没有prompt引导的,一个是有的,两者加权平均),以及我们熟悉的
CLIP
,用它的text encoder来获得到文本的embedding
4.
为了
加速计算
,使用向量压缩技术,涉及到VAE(variational auto encoder)
5.
整体流程
以及text to img、image mask的做法思路
6.
coding部分:
讲解基于text-to-image的这个场景
a.
VAE的encoder部分
,主要就是全连接、卷积和逆卷积、self-attention、残差链接、正则、激活,重点是接近输出的位置,首先是生成一个多维度的均值和方差,然后经过重参数化(Reparameterization)技巧,从标准正态分布中采样一个随机噪声ε,然后计算潜在向量z = μ + ε * σ,输出z,这个过程是可以实现梯度传递的。
b.
VAE的decoder部分
,和encoder类似,区别是在图像的尺寸变大上用了upsample,就是单纯的复制pixel
c.
CLIP的text encoder部分
,和transformer的encoder结构类似,embedding后先position_embedding, 然后是12个(self-attention,layerNorm, 残差连接、线性层、激活)组成的clip_layer
d.
diffusion部分
(Unet部分),这部分是要经过t轮(会有skip steps)这样来一步步去噪的,diffusion除了主要的Unet部分(包括encoder,bottleneck和decoder),就是对时间t的编码,Unet部分和VAE类似,由残差块和注意力块构成,区别是残差块额外接受time编码作为输入(经过转化后直接做向量相加),注意力块接收context(通过cross-attention,在视频的
这个时间点
有讲解,交叉注意力本身是为了将context信息注入,q是正在处理的信息,k和v都是context信息,cross-attention之后会有残差连接再将原本的正在处理的信息和新注入进来的context信息融合)
e.
pipeline部分
,即如何将整个过程串联起来做
推理(没有训练部分)
3.
数学详细原理:
Lil's log:
What are Diffusion Models?
比较难理解,Lilian也写了VAE和GAN的相关数学原理
4.
论文(时间顺序)
1.
DDPM
Denoising Diffusion Probabilistic Models(UC Berkeley 2020)
提出用扩散概率模型来做图像生成