【Diffusion】Denoising Diffusion Probabilistic Models (DDPM)小白入门指南

目录

1、简介

2、生成式AI扩散模型-Diffusion Model

Denoising Diffusion Probabilistic Models

一、Diffusion的基本概念和运作方法

1.Diffusion Model是如何运作的?

2.Denoise模块内部正在做的事情

3. 如何训练Noise predictor?

4.Text-to-Image

5.两个Algorithm

​编辑

二、Diffusion Framework

1.Framework

①Text Encoder:将文字输入encoder为向量

②Generation Model:输入一个噪声,得到图片的压缩版本

③Decoder:压缩的版本还原为原来的图片

2. Stable Diffusion

​编辑3.DALL-E series

​编辑4.Imagen (Google)

三、Diffusion Model数学原理剖析(1)

 Algorithm1 Training

Algorithm2 Sampling

四、Diffusion Model数学原理剖析(2)

1.影像生成模型本质上的共同目标

2.Maximum Likelihood Estimation

An In-Depth Guide to Denoising Diffusion Probabilistic Models DDPM

1.前言

2.什么是扩散生成模型

2.1前向扩散

2.2反向扩散

3.扩散模型的数学细节

3.1 前置知识

3.2 总览

3.3 前向扩散

3.4 反向扩散

3.5 训练目标和损失函数

The Illustrated Stable Diffusion

引语

Stable Diffusion的组成

文本编码器(Text Encoder)

图像信息生成器(Image Information Generator)

图像解码器(Image Decoder)

组成小结 

Schedulers

何为Diffusion

Diffusion 介绍

Diffusion 的工作原理--扩散如何运作

通过逐步移除噪声以生成图像

潜空间 Diffusion 以进行加速计算--速度提升:使用潜在数据而不是像素图像的扩散

Text Encoder:Transformer 语言模型

CLIP 训练

文本信息送入图像生成过程

Unet 噪声预测器的层(无文本)

带文本的 Unet 噪声预测器层

3、参考


1、简介

扩散模型(Diffusion Models)发表以来其实并没有收到太多的关注,因为他不像 GAN 那样简单粗暴好理解。不过最近这几年正在生成模型领域异军突起,当前最先进的两个文本生成图像——OpenAI 的 DALL·E 2和 Google 的 Imagen,都是基于扩散模型来完成的。

 text-to

### Stable DiffusionDDPM 的关系及差异 #### 背景概述 Stable Diffusion (SD)Denoising Diffusion Probabilistic Models (DDPM) 都属于扩散模型家族,其核心思想是从高斯噪声逐步生成清晰图像的过程。然而,两者在架构设计、计算效率和应用领域等方面存在显著区别。 #### 原理对比 DDPM 是一种基础性的扩散模型框架,通过一系列前向过程将输入数据逐渐转化为纯噪声,并利用反向过程学习如何从噪声中重建原始数据[^3]。具体而言,它采用了一个简单的 U-Net 结构来实现这一目标[^2]。而 Stable Diffusion 则是在 LDM(Latent Diffusion Model)的基础上进一步优化的结果,不仅继承了 DDPM 的基本理念,还引入了潜在空间的概念,从而大幅提升了性能和灵活性[^1]。 #### 计算复杂度与效率 由于 SD 将操作限定于低维的潜在空间而非像素级表示,因此相比直接作用于高分辨率图片上的 DDPM,它的训练成本更低且推理速度更快。这种转换使得复杂的艺术风格迁移或者超现实主义作品生成成为可能的同时保持较高的实时性需求满足能力。 #### 应用场景分析 当涉及到大规模文本条件下的高质量视觉内容生产时, 如照片编辑、插画绘制等领域,则更倾向于选择功能强大但资源消耗相对较大的解决方案——即StableDiffusion;而对于那些只需要简单二值化处理或是特定模式识别任务来说,原版未经改造的标准版本DDPM或许已经足够胜任相应工作负载的要求. ```python import torch from diffusers import UNet2DModel model = UNet2DModel( sample_size=32, in_channels=3, out_channels=3, layers_per_block=2, block_out_channels=(128, 128), downsample_padding=1, ) noise = torch.randn((1, model.in_channels, model.sample_size, model.sample_size)) timestep = torch.tensor([10]) output = model(noise, timestep).sample print(output.shape) ``` 上述代码片段展示了如何定义并调用一个标准形式化的二维卷积神经网络实例来进行初步测试验证实验环境搭建情况. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静静喜欢大白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值