Diffusion Models专栏文章汇总:入门与实战
最新最全Diffusion Models论文、代码汇总
1、Diffusion Models扩散模型与深度学习(数学原理和代码解读)
这篇文章适合小白入门看,能快速了解diffusion models背后的物理背景、数学推导、核心思想、代码实现。
2、击败GANs的新生成式模型:score-based model(diffusion model)原理、网络结构、应用、代码、实验、展望
这篇文章适合小白入门,在上一篇文章的基础上,更加深入讨论:
- 会不会是下一个GANs?能否解决目前GANs遇到的问题?
- 和现有的生成式模型相比有哪些优点?哪些缺点?
- 目前的网络结构是怎样?
- 如何用代码实现?
- 常用的数据集有哪些?
- 常用的评价指标有哪些?
- 能应用到哪些领域?
- 遇到了哪些问题?
- 发展的瓶颈有哪些?
- 未来的发展会怎样?
3、为什么Diffusion Models扩散模型可以称为Score-based Models?
近两年diffusion models野蛮生长,出现了很多不同的命名方式:denoising diffusion probabilistic models、score-based generative models、generative diffusion processes、energy-based models (EBMs)等,其实他们核心思想都是一样的,这篇文章通过讨论diffusion models为什么可以称为分数匹配模型,能更深入理解扩散模型。
4、条件DDPM:Diffusion model的第三个巅峰之作
DDPM2020年诞生,短短一年的时间,模型上有两个巨大的改进,其中一个就是condition的引入,最近大部分DDPM相关的论文都会讨论这一点,有些文章称之为latent variable。和当年GAN的发展类似,CGAN和DCGAN的出现极大程度上促进了GAN的发扬光大,意义重大。
5、从VAE到Diffusion Models
前面几篇文章更多的在思考GAN和diffusion model之间的关系,VAE作为最经典的生成模型之一,本文从VAE出发,聊一聊VAE和diffusion model之间的爱恨情仇。
6、DiffuseVAE:完美结合VAE和Diffusion Models
生成式模型的根本任务是捕捉底层的数据分布,并学习以无监督的方式从数据的显式/隐式分布中生成新的样本。本文介绍DDPM最新的研究成果DiffuseVAE,解决低维潜在空间上生成样本质量差、采样速度慢等问题。
7、为什么Diffusion Models钟爱U-net结构?
通过前面的文章介绍,大家应该已经基本了解扩散模型的特点,细心的读者会有疑问,为什么现在绝大部分的diffusion models都是U-net结构呢?这个发源于医疗分割的网络结构,为何广受备受diffusion models生成式的喜爱呢?
8、使用DDPM实现三维点云重建
本文重点讨论点云三维重建的相关原理、应用、特殊的处理方法、与传统的DDPM的区别和联系。
9、2021年度最火Diffusion Models:用于图像编辑和text引导图像生成的GLIDE
2021年底OpenAI又推出重磅作品,基于Diffusion Models的图像编辑和text引导图像生成,短短两个月在github上收获了2k个star,要知道DDPM的开山之作开源两年也才区区300个star。GLIDE也为后来的更火的text-to-image任务DELLA·2奠定了基础,这篇博客就和读者们探讨一下这个2021年度最火Diffusion Models。
10、扩散模型Diffusion Models可以看成一种autoencoder自动编码器吗?
2019年开创性论文《Generative Modeling by Estimating Gradients of the Data Distribution》发表后,扩散模型相关论文如雨后春笋一般涌现,其实扩散模型可以看成一种自动编码器。
11、 Score-based Generative Model:一统DDPM和SMLD两大生成式模型
2019年宋博士提出了SMLD模型,2020年Jonathan Ho提出了DDPM,这两大生成式随即成为顶会宠儿。2021年,宋博士提出了score-based generative model,一统这两大极为相似的生成式模型。本文在系列文章《为什么diffusion model扩散模型可以称为score-based models?》的基础上,探讨这三种生成式模型之间的区别、联系、优缺点、应用领域等。
12、Diffusion Models和GANs结合
作为Diffusion Models最成功的前辈们:flow based models、VAEs、GANs,最近几个月已经有不少将diffusion models和这些经典模型结合的文章,本系列的前文已有介绍。今天介绍的是首次将GANs和diffusion models工作,是一种比较成功的GANs的思路,相同的结合方式迅速流行,给正在做这一方向的小伙伴重要参考与启示。
13、用Diffusion Models实现image-to-image转换
diffusion models诞生到现在,很多论文热衷于把diffusion models带到自己的领域用于生成,也有不少人醉心于用各种奇技淫巧优化采样过程,以改善diffusion models致命的缺点:生成速度太慢。而Palette的诞生意义不亚于pix2pix GANs、cycleGANs,能够实现图像着色、图像修复、图像剪裁恢复、图像解压缩(超分)等等任务。我们第一次发现,原来diffusion models不仅仅能用于生成,还能有这么多有趣的应用!
14、基于diffusion models的无监督Image-to-Image转化
上一篇文章介绍了Palette,对标的是pix2pix GANs,能够实现配对的image域转化。这篇博客介绍一种DDPM,对标cycleGANs,能够实现无配对image之间的域转化,可以轻松完成白天-夜晚转化、苹果-橘子转化、野马-斑马转化、照片去雾、老照片上色、图像修复、超分辨率重建等任务,并且在理论上第一次(2021年4月)提出类似于cycle diffusion models的结构。
15、Diffusion Models在超分辨率领域的应用
GANs在Super-Resolution超分辨率大显身手,取得了很多令人兴奋的成果。作为最先进的生成式模型DDPM,不仅成功挑战了这一任务,而且在各方面的性能达到了SOTA。这篇博客就介绍一下diffusion models如何完成超分任务、背后的原理和实现方法。
16、Video Diffusion Models:基于扩散模型的视频生成
扩散模型已经被广泛运用到图像生成、image-to-image转换、时间序列生成、3D点云生成、文本生成、音频生成等领域,谷歌研究院最新的研究成果成功将diffusion models运用到视频生成领域。
17、 深入理解Conditional Diffusion Models:解读《On Conditioning the Input Noise for Controlled Image Generation》
我之前写了一篇博客《条件DDPM:Diffusion model的第三个巅峰之作》梳理了conditional diffusion models的发展脉络,总结了现在常用的条件使用方法。最近逛arxiv看到一篇最新的论文主打conditional diffusion models,和读者一起读一下这篇论文《On Conditioning the Input Noise for Controlled Image Generation with Diffusion Models》
18、DiffusionCLIP: Text-Guided Diffusion Models for Robust Image Manipulation
之前带大家读过《2021年度最火Diffusion Models:用于图像编辑和高质量图像生成的GLIDE》,最新的CVPR 2022上发表了对标的新工作,我们一起来品读一下这篇论文。
19、Diffusion Models扩散模型的通用框架
扩散模型经过近三年的高速发展,逐步走向成熟。其中典型的代表有DDPM、DDIM、Score-based等,如何将这些扩散模型用一个统一通用框架表示?英伟达研究院六月份发布了一份最新的研究成果成功解决这一问题,大有一统江湖的势头,本文和读者一起深入理解这一工作。
20、如何用Diffusion models做interpolation插值任务?——原理解析和代码实战
很多Diffusion models的论文里都演示了插值任务,今天我们讲解一下如何用DDIM/DDPM做interpolation任务,剖析原理,并给出代码讲解与实战。
21、如何画出diffusion models的扩散过程示意图?
很多diffusion models相关的论文都会画出扩散示意图,如果自己写扩散模型相关论文的时候也会遇到这个问题。这篇博客就手把手教大家如何画出每个时间步骤的扩散过程示意图。
22、解读最新ECCV 2022工作:组合式扩散模型
最近ECCV 2022放榜了,虽然还没有出paper list,但是可以预见会有大量的diffusion models相关工作。今天和大家一起阅读一篇新的diffusion models工作《Compositional Visual Generation with Composable Diffusion Models》
23、Text-to-Image with Diffusion models的巅峰之作:深入解读 DALL·E 2
DALL·E 2、imagen、GLIDE是最著名的三个text-to-image的扩散模型,是diffusion models第一个火出圈的任务。这篇博客将会详细解读DALL·E 2《Hierarchical Text-Conditional Image Generation with CLIP Latents》的原理。
24、无分类器指导的Classifier-free Diffusion Models技术
分类器的引入大大提升了扩散模型的生成质量(FID和IS指标),但是分类器指导可以看上是一种梯度对抗引导,这就会引入生成对抗网络中存在的一些缺点。作者提出了一种混合了条件扩散模型的分数估计和联合训练的无条件扩散模型,样本的无条件可能性,同时增加了条件可能性,在生成质量上得到进一步的提升。
25、最新Diffusion Models条件生成研究成果:梯度引导法
去年我发布了一篇条件DDPM的博客《条件DDPM:Diffusion model的第三个巅峰之作》,梳理了“分类器引导”、“inference image”、“latent”三种常见的条件添加方式。今年最火的条件diffusion models当属梯度引导法,这篇博客梳理一下最新的条件扩散模型的研究成果。
26、详细解读Latent Diffusion Models:原理和代码
CVPR 2022中的一项新工作latent diffusion models引起了广泛关注,提出了两段式diffusion models能有效节省计算资源,latent attention技术为通用image-to-image任务打下基础,让人耳目一新,具有极强的借鉴意义和启发性,值得深度阅读。
27、详细解读PITI:开启diffusion models image-to-image新时代
最近微软亚洲研究院新出了一项工作,围绕着GLIDE,采用两段式微调的方法,在通用image-to-image模型上取得了非常好的效果。相比于之前的《用Diffusion Models实现image-to-image转换》更进一步。这篇文章就和读者一起深度解读图像翻译领域的最新力作!
28、深入解读:从DDIM到Improved Denoising Diffusion Probabilistic Models
之前的博客解读了《从DDPM到DDIM:深入解读《Denoising Diffusion Implicit Models》,我们理解了从DDPM到DDIM的演化和改进过程。而《Improved Denoising Diffusion Probabilistic Models》是diffusion models发展过程中重要的里程碑,深刻影响了后来的研究过程,值得我们详细理解阅读。
29、【ICLR 2023】Diffusion Models扩散模型和Prompt Learning提示学习:prompt-to-prompt
今年prompt learning提示学习和diffusion models扩散模型实在是太火了,最新的ICLR 2023的一项工作把两者结合了起来,取得了十分惊艳的效果!正好昨天代码刚刚开源,这篇博客就和大家一起解读一下原理与代码!
30、AI作画:十分钟快速搭建自己的text-to-image diffusion models
最近AI作画彻底火出圈,diffusion models的研究者也越来越多,就连搞推荐算法、搞目标检测的同学都来问我扩散模型的事情。这篇博客作为一个科普博客,手把手教大家如何用十分钟搭建一个属于自己的text-to-image stable diffusion models。希望能有更多的人一起来玩diffusion models!
31、如何获取最新diffusion models多模态方向的科研进展?
我从2021年上半年开始做diffusion models,当时也只是圈内的研究者听说过有一个新的生成式模型好像还可以。没想到2022年的下半年,diffusion models火得一塌糊涂,特别是多模态方向,被stable diffusion的开源吸引了非常多的新玩家加入这一领域。可以说这一领域每天都有值得关注的新工作,如何获取最新的科研进展?千万别落伍!这篇文章详细介绍渠道,快收藏起来!
32、【ICLR 2023】详细解读DreamFusion:用二维diffusion models完成三维生成任务
ICLR 2023的第一轮rebuttal已经放榜,这次的ICLR出现了非常多的diffusion models论文,很多工作都非常有创意,值得详细解读。这篇要介绍的是google研究院出品的DreamFusion,这个工作取得了所有审稿人的accept肯定,无论是论文还是实验效果都非常优秀,能够出色地使用现在的预训练2D text-to-image完成3D text-to-3D任务。
33、由浅入深理解latent diffusion/stable diffusion(1):写给初学者的图像生成入门课
关于如何使用stable diffusion的文章已经够多了,但是由浅入深探索stable diffusion models背后原理,如何在自己的科研中运用stable diffusion预训练模型的博客少之又少。本系列计划写5篇文章,和读者一起遨游diffusion models的世界!本文主要介绍图像生成的历史,研读经典,细数发展历程。
34、由浅入深理解latent diffusion/stable diffusion(2):扩散生成模型的工作原理
关于如何使用stable diffusion的文章已经够多了,但是由浅入深探索stable diffusion models背后原理,如何在自己的科研中运用stable diffusion预训练模型的博客少之又少。本系列计划写5篇文章,和读者一起遨游diffusion models的世界!本文主要介绍扩散生成式模型的基本原理,stable diffusion models的前身latent diffusion models的基本原理。
35、由浅入深理解latent diffusion/stable diffusion(3):一步一步搭建自己的stable diffusion models
关于如何使用stable diffusion的文章已经够多了,但是由浅入深探索stable diffusion models背后原理,如何在自己的科研中运用stable diffusion预训练模型的博客少之又少。本系列计划写5篇文章,和读者一起遨游diffusion models的世界!本文主要介绍带大家一步步搭建自己的stable diffusion models。
36、由浅入深理解latent diffusion/stable diffusion(4):扩散模型的法律风险
扩散模型在学术界如火如荼地发展, 但是生成模型本身就有很多法律风险,如果未经权利人许可下载原始数据生成模型,是否构成对原始数据版权的侵犯?谁拥有生成模型自动创建的萌字符图像的权利?如果模型自动生成的图像“不小心”与用于生成模型的原始数据之一相似,是否构成对原始数据版权的侵犯?
37、【ICLR 2023】详细解读DiffEdit:基于扩散模型的图像编辑革命性成果
ICLR 2023的第一轮rebuttal已经放榜,这次的ICLR出现了非常多的diffusion models论文,很多工作都非常有创意,值得详细解读。这篇要介绍的是DiffEdit,这个工作取得了所有审稿人的accept肯定,无论是论文还是实验效果都非常优秀,能够出色利用文本条件扩散模型进行语义图像编辑任务。
38、从DDPM到DDIM:深入解读《Denoising Diffusion Implicit Models》
DDIM发表在ICRL2021上,是DDPM重要的改进之一,能显著提高DDPM的样本质量、减少采样时间,并且已经被广泛应用到现在的Diffusion Models上。这篇博客和大家一起详细解读一下DDIM,认识这一伟大的模型。
39、SketchKnitter: 基于扩散模型的矢量化草图生成
这篇文章发表在ICLR2023上,是首个用扩散模型解决矢量化草图重建的工作,我是这篇论文的第一作者。虽然sketch赛道的关注度远没有image、video等多,感兴趣的小伙欢迎与我交流!
40、如何定制属于自己的stable diffusion?Dreambooth原理详解和代码实战
AIGC大模型(如stable diffusion models)的训练成本已经超过绝大多数人的承受范围,彻底沦为中大厂/科研大组的“御用品”,这也是大模型时代的必然趋势。如何利用已有的开源大模型,微调出属于自己的专有模型?如何定制化自己专属扩散模型?这些问题无疑让我们这些没有资源直接训练达模型的人感到兴奋!dreambooth这篇论文出现的非常早,去年就已经大火过。经过时间的沉淀,现在定制化自己的diffusion大模型基本只剩下Dreambooth、textual inversion、LORA和Hypernetworks四种方法。笔者会依次带大家一一探索这些方法,一起玩转属于自己的diffusion!
41、如何在手机端部署大型扩散模型?
部署扩散模型面临着两个棘手的挑战:参数过大和推理时间过长,因此目前想在手机端用上扩散模型看似“奢不可求”。最近谷歌研究院的最新一项研究研究了如何把端侧部署大型扩散模型的梦想变成现实,这篇博客就和大家一起学习一下。
42、详细解读Diffuser DreamBooth代码
之前的博客《如何定制属于自己的stable diffusion?Dreambooth原理详解和代码实战》详细解读了dreambooth,不过那篇博客的代码讲解部分主要基于mmagic,不过瘾。这篇博客讲解一下diffuser的drembooth的部分。
入门基础系列文章汇总
有不少订阅我专栏的读者问diffusion models很深奥读不懂,需要先看一些什么知识打下基础?虽然diffusion models是一个非常前沿的工作,但肯定不是凭空产生的,背后涉及到非常多深度学习的知识,我将从配分函数、基于能量模型、马尔科夫链蒙特卡洛采样、得分匹配、比率匹配、降噪得分匹配、桥式采样、深度玻尔兹曼机等方面,摘取一些经典的知识点,供读者参考。
1、Diffusion Models/Score-based Generative Models背后的深度学习原理(1):配分函数
2、Diffusion Models/Score-based Generative Models背后的深度学习原理(2):基于能量模型和受限玻尔兹曼机
3、Diffusion Models/Score-based Generative Models背后的深度学习原理(3):蒙特卡洛采样法和重要采样法
代码解读系列
1、DDPM代码详细解读(1):数据集准备、超参数设置、loss设计、关键参数计算
大部分DDPM相关的论文代码都是基于《Denoising Diffusion Probabilistic Models》和《Diffusion Models Beat GANs on Image Synthesis》贡献代码基础上小改动的。官方的DDPM是tensorflow TPU版本,暂时没有GPU的版本。本篇文章开始,详细解读一下pytorch和tensorflow版本的代码。
2、DDPM代码详细解读(2):Unet结构、正向和逆向过程、IS和FID测试、EMA优化
大部分DDPM相关的论文代码都是基于《Denoising Diffusion Probabilistic Models》和《Diffusion Models Beat GANs on Image Synthesis》贡献代码基础上小改动的。官方的DDPM是tensorflow TPU版本,暂时没有GPU的版本。上一篇文章介绍了数据集加载,超参数的含义、关键参数的计算方法等,这一篇重点解读一下网络结构。
3、DDPM代码详细解读(3):图解模型各部分结构、用ConvNextBlock代替Resnet
前两篇文章讲了pytorch版本的代码,并一一介绍重要方法的原理。官方给的代码是tensorflow TPU版本,没有跑通。但是有很多人用pytorch复现了tensorflow TPU版本的代码,暂时没看见tensorflow GPU版本的代码。这篇文章解读一下对应的pytorch版本的代码,重点分析一下用最新的ConvNextBlock代替ResBlock效果。
4、代码实战——从零开始搭建自己的Diffusion models/Score-based generative models
这个系列曾经写过三篇文章专门讲代码,分别从数据集、超参数、loss设计、参数计算、Unet结构、正向过程、逆向过程等部分详细介绍了如何搭建DDPM。Diffusion models领域发展神速,最近半年代表作品有OpenAI的GLIDE、DALL-E 2,Google Brain的ImageGen,海森堡大学的Latent Diffusion。这篇博客针对入门新手讲解一下如何利用已有的资源快速搭建自己的Diffusion models。
5、手把手写Generative score-based models代码
作为和DDPM同宗同源的score-based models,虽然没能做到如此火爆,但是其中很多思想都被后来的研究者们借鉴,这篇博客就详细讲解score-based models代码,手把手带读者生成自己的MNIST。
6、 代码讲解——用diffusion models级联式超分辨重建
去年写过一篇文章《Diffusion Models在超分辨率领域的应用》,介绍diffusion models超分辨率重建方面工作。如今级联法已经成为diffusion models大模型的标配,主要原因有两点:1)直接训练256*256设置512*512分辨率的模型,硬件能力无法胜任。2)diffusion models超分模型已经能取得非常棒的效果,而且用相同的信息注入方式,完美贴合各种多模态任务。
7、详细解读Latent Diffusion Models:原理和代码
CVPR 2022中的一项新工作latent diffusion models引起了广泛关注,提出了两段式diffusion models能有效节省计算资源,latent attention技术为通用image-to-image任务打下基础,让人耳目一新,具有极强的借鉴意义和启发性,值得深度阅读。
8、代码讲解——用diffusion models级联式超分辨重建
去年写过一篇文章《Diffusion Models在超分辨率领域的应用》,介绍diffusion models超分辨率重建方面工作。如今级联法已经成为diffusion models大模型的标配,主要原因有两点:1)直接训练256*256设置512*512分辨率的模型,硬件能力无法胜任。2)diffusion models超分模型已经能取得非常棒的效果,而且用相同的信息注入方式,完美贴合各种多模态任务。
9、DDIM代码详细解读(1):数据集加载、类别条件信息读取、关键超参数解析
之前写过三篇详细解读DDPM代码的博客,随着时间已经来到2022年7月,单纯使用DDPM已经逐渐被淘汰,最新的论文更多使用DDPM的改进版本。DDIM作为DDPM最重要的改进版本之一,从本篇博客开始详细解读一下DDIM代码。本文主要讲解如何加载数据集,如何读取类别条件信息,以及关键的超参数如何计算。
10、DDIM代码详细解读(2):关键参数计算、损失函数设计、添加时间步长信息、归一化设计
之前写过三篇详细解读DDPM代码的博客,随着时间已经来到2022年7月,单纯使用DDPM已经逐渐被淘汰,最新的论文更多使用DDPM的改进版本。DDIM作为DDPM最重要的改进版本之一,从本篇博客开始详细解读一下DDIM代码。这篇博客详细讲解一下如何计算关键参数,如何设计损失函数,如何添加时间步长信息,如何设计损失函数。
11、DDIM代码详细解读(3):核心采样代码、超分辨率重建
之前写过三篇详细解读DDPM代码的博客,随着时间已经来到2022年10月,单纯使用DDPM已经逐渐被淘汰,最新的论文更多使用DDPM的改进版本。DDIM作为DDPM最重要的改进版本之一,从本篇博客开始详细解读一下DDIM代码。这篇博客详细讲解一下如何设计核心采样代码、 如何用diffusion models做超分辨重建。
12、DDIM代码详细解读(4):分类器classifier的网络设计、训练、推理
之前写过三篇详细解读DDPM代码的博客,随着时间已经来到2022年11月,单纯使用DDPM已经逐渐被淘汰,最新的论文更多使用DDPM的改进版本。DDIM作为DDPM最重要的改进版本之一,从本篇博客开始详细解读一下DDIM代码。这篇博客详细讲解一下如何设计分类器,如何训练分类器,如何在推理过程中使用分类器。
13、深入解读GLIDE/PITI代码
GLIDE是diffusion models text-to-image的一项非常经典的模型,PITI是一项基于GLIDE的工作,读懂PITI相当于读懂GLIDE,这篇文章就和读者一起解读代码,难以描述的地方会画出程序流程图解释。点赞打卡,立马启程!
14、详细解读Diffuser DreamBooth代码
#扩散模型#之前的博客《如何定制属于自己的stable diffusion?Dreambooth原理详解和代码实战》详细解读了dreambooth,不过那篇博客的代码讲解部分主要基于mmagic,不过瘾。这篇博客讲解一下diffuser的drembooth的部分。
专注探索Diffusion Models、Score-based Generative Models等深层生成式模型,持续更新分享最前沿技术。