1 判别式模型和生成式模型
1. 判别式模型
- 学习策略函数 Y = f ( X ) Y=f(X) Y=f(X)或者条件概率 P ( Y ∣ X ) P(Y|X) P(Y∣X)
- 不能反映训练数据本身的特性
- 学习成本低,需要的训练样本少
- 无法转为生成式
2. 生成式模型
- 学习联合概率密度分布 P ( X ∣ Y ) P(X|Y) P(X∣Y),学习所有数据的分布
- 能够反映训练数据本身的特性
- 学习成本高,需要的训练样本多
- 一定条件下可以转换为判别式
学习可观测样本的概率密度,并随机生成新样本
2 生成式模型
2.1 AutoEncoder自编码器
- 图像压缩算法 Encoder->laten code->Decoder
- 如果图像加一些扰动 Decoder变的脆弱不可控
- 更适合视觉特征的编码器,全方位多角度由图1演变为图2
2.2 VAE(Variational AutoEncoder)变分自编码器
对多个高斯分布的特征进行采样
2.3 Diffusion Model扩散模型
- VAE模型在Encoder时对图像压缩比较大,导致Decoder时得到的图像质量比较差
- Diffusion Model : 逐步的加入高斯噪声,并反向逐步去噪。得到的图像质量好,不失真
两个过程 - 正向扩散过程:向输入数据中逐步加入噪声
- 反向扩散过程:通过去噪的方式学习数据生成过程
整体流程
U-Net架构
去噪过程
不同一般的UNet网络结构: - 加入time embedding,影响UNet中每一层的计算
- 输入:加噪图片(特征)
- 输出:预测的噪声
2.4 Stable Diffusion模型结构
ϵ
\epsilon
ϵ:VAE(变分自编码器)将图像特征压缩到原始尺寸的
1
4
\frac{1}{4}
41,降低计算量,当Decoder时几乎不失真。
并加入引条件(Conditioning),可以是目标分类、文本、图片,以更准确、更好的进行Decoder
版本 | 文本编码器 | UNet结构 | 分辨率 | 特点 |
---|---|---|---|---|
SDv1.4 | CLIP | CNN | 512x512 | |
SDv1.5 | CLIP | CNN | 512x512 | 目前最流行的版本 |
SDv2.1 | Open-CLIP | CNN | 768x768 | 无法生成NSFW,SkipClip不生效 |
SDvXL | CLIP+Open-CLIP | CNN | 1024x1024 | 质量高,资源消耗大,生态没有1.5成熟 |
PixeArt | T5语言模型 | Vit | 1024x1024 | 图文对齐度好,生成图像美感强,架构先进 |
社区模型
- 阶段一:图文对齐训练-基础模型
- 阶段二:图文对齐训练-社区微调模型
https://civitai.com/
2.5 文生图模型的应用拓展
-
图像引导生成,1 作为输入 2 引导输入
-
单张图像引导 SD Inpainting 模型
-
单张图像引导 SD Outpainting 模型
-
多张图像引导 人脸、商品数字分身 LoRA/DreamBooth
- LoRA: 图文QKV cross attention; UNet中的CNN卷积层
- Dreambooth: 利用大类先验知识,来辅助特定物体的生成;prompt为“a [identifier] [class noun]”
- LoRA: 图文QKV cross attention; UNet中的CNN卷积层
-
特征注入式引导生成 ControlNet
特征注入到Decoder层
-
特征注入式引导生成 IP-adapter
-
特征注入式引导生成 InstantID
2.6 SD模型的加速方法
- 算子加速-最大化GPU利用率(TensorRT、ONNX)
- 蒸馏加速-减少迭代频数
- 数据无关 LCM(4步生图)
- 数据相关 ADD(SD Turbo)(2 步生图);UFO-GEN(1步生图)
3 3D目标生成方法
3.1 基于NeRF方法
3.2 基于扩散模型方法
4 视频生成方法
4.1 基于文生图预训练模型的方法