Georgeqi's Blog

Tags · Diffusion

Home

About

Archives

loading..
Diffusion

Diffusion学习7-DiT

Scalable Diffusion Models with Transformers 【主页】【论文】【代码】 DiT Block架构 当前主流的Diffusion模型大都采用U-Net模型作为主干网络,U-Net网络的输入和输出具有同样的尺寸,自然也很在适合Diffusion中用于预测与输入noisy latent相同尺寸的noise。但是自ViT后,Transformer结构也已经在多个视觉任务上被验证了其有效性,且相比较于CNN结构的U-Net可能还具有更好的效果。今天这篇论文则成功将transformer结构应用在Diffusion模型上,并且探究了其scalability能力,最终的实验也表明其最大的模型DiT-XL/2在ImageNet 256x256的类别条件生成上达到了SOTA(FI..

Read more
loading..
Diffusion

Diffusion学习6-生成可控性

Diffusion相比较起前辈GAN,在生成质量上已经得到了大幅度的提升,之前的文章介绍过虽然通过prompt配合上classifier-free guidance技术能够从一定程度达到控制生成内容的目的,但是如何更加精确控制diffuison结果,例如定制化生成指定的目标对象,控制生成目标的姿态、形状、颜色等,也成为后续研究的重点,当然这些控制性生成目前也已经能够达到下图所示的非常好的效果了,本篇文章也将重点介绍些这些控制diffusion生成的大杀器。 Diffusion可控性生成效果示意效果,原图来自huggingface/lllyasviel DreamBooth 【主页】【论文】【官方仓库-无code】【Dreambooth-Stable-Diffusion】 DreamBooth ..

Read more
loading..
Diffusion

Diffusion学习5-高质量文生图模型

高质量Diffusion模型生成结果(原图来自DALLE-2) DALLE 【论文】【代码-非官方】 DALL·E的名字是为了向艺术家萨尔瓦多·达利和皮克斯的机器人WALL-E致敬 DALLE-2 GLIDE 【论文】【代码】 GLIDE利用文本进行图像编辑 算法流程:本篇论文并没有做过多的算法创新,更多的是验证性和实验工程相关的内容,其提出可以用文本当做条件去合成、控制和编辑图像。 算法细节: 比较了两种文本引导图像生成的方式: Classifier-Free-Guidance: 虽然该技术介绍过很多次,但是为了保证相对独立性,这里还是把本篇文章下的CFG公式写一下: 其中这里的专门代表文本条件。 CLIP Guidance: 其中分别表示从CLIP提取的图像特征和文本特征,两者相乘..

Read more
loading..
Diffusion

Diffusion学习4-效果和性能提升

下述效果的具体代码见: qzq2514/Diffusion 效果提升 这里简单实验和讨论了在训练DDPM过程中使用的损失函数(L1或L2损失),并且实验了Improved DDPM 中提到的Cosine Beta Schedule带来的效果提升。 Cosine Beta Schedule 首先回顾下DDPM在前向过程中的一个重要公式-利用重采样技巧从直接得到,即Diffusion学习2-理论推导中的公式(3): 而且在原DDPM论文中使用的线性Beta采样,即: torch.linspace(start=0.0001, end=0.02, steps=100) Improved DDPM则进一步分析了这种Beta设计的缺点,取出论文中的图3和图5: Linear和Cosine的Beta方式对..

Read more
loading..
Diffusion

Diffusion学习3-代码实践

先放一张在人脸数据集上训练好后去噪的可视化过程 DDPM可视化去噪 各数据集参数配置及效果 训练: CUDA_VISIBLE_DEVICES=0 python train_solver.py --data_name "Flower102" 在config.yaml中各个数据集使用默认的Training Setting,每个数据集特有的配置见config.yaml下的Train_Data. 生成效果 生成效果如下: 数据集 去噪过程可视化 最终去噪效果 插值 Mnist Fashion_Mnist Cifar10 Flower102 StyleGAN2人脸 上述训练数据集和已经训练好的模型放在这里. 去噪过程可视化中,如果在..

Read more
loading..
Diffusion

Diffusion学习2-理论推导

概述 生成模型总览(原图来自lilianweng.blog) Diffusion属于生成模型的一种,相比较于GAN等其他生成模型,Diffusion模型最大的不同之处就在于其latent code是和原输入图相同尺寸的。Diffusion模型其实也可以看成是一个隐变量模型,并且与VAE,GAN的单隐变量不同,其可以看成存在多个隐变量(即加噪过程中的每个加噪结果都可以看成一个隐变量)。Diffusion模型总体包括前向加噪和逆向去噪两个过程: 前向过程-加噪扩散:对给定的真实图像不断添加高斯噪声,经过中间状态最终变成纯高斯噪声 逆向过程-去噪生成:从完全的纯噪声不断去噪,经过中间状态最终变成其对应的真实图像 上面两个过程示意图可以表示如下: Diffusion的前向和逆向过程(原图来自Ho et..

Read more
loading..
Diffusion

Diffusion学习1-预备知识

Diffusion模型打响了AIGC的第一枪,我之前一直是做GAN这一块的图像生成,但是奈何Diffuison模型效果好的离谱,也趁着空闲时间抱着学习的态度看看到底是他是靠着什么"吊打"GAN的,但是在推Diffusion公式的时候,牵扯到很多比较细碎的小知识点,有一些因为不常用也都忘记了,这里正好补充在这里,方便后续快速查询。 关于Diffusion相关的论文推导后面会单独开一个新的文章进行介绍,如果有时间和精力应该还会补充代码的实践~ 马尔科夫链 总体思想: 过去的所有信息都被保存在了现在的状态中,只使用现在状态就能预测到之后的状态,换句话说就是某个时刻的状态转移概率只依赖于它的前一个状态。 公式化表达: 举例: 股市涨跌:当前股市的涨、跌、平的状态概率分别为[0.3,0.4,0.3],且转移概率矩..

Read more