AIGC系列之:DDPM原理解读(简单易懂版)

这篇具有很好参考价值的文章主要介绍了AIGC系列之:DDPM原理解读(简单易懂版)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

DDPM基本原理

DDPM中的Unet模块

Unet模块介绍

Unet流程示意图

DownBlock和UpBlock

MiddleBlock

文生图模型的一般公式

总结

        本文部分内容参考文章:https://juejin.cn/post/7251391372394053691,https://zhuanlan.zhihu.com/p/563661713,感谢博主的辛苦工作,本文尽量去繁就简去理解DDPM的原理

论文地址: http://arxiv.org/abs/2006.11239

代码地址1: https://github.com/hojonathanho/diffusion (论文对应代码 tensorflow)

DDPM基本原理

        DDPM(Denoising Diffusion Probalistic Models)的目标是学习训练数据的分布,产出尽可能符合训练数据分布的真实图片。训练过程分为两步:

  • Diffusion Process (又被称为正向扩散)

        如下图,正向扩散的过程进行了1000步的加噪,每一步time_step都往图片上加入一个高斯分布的噪声,直到图片变为一个纯高斯分布的噪声。完成Dif fusion Process过程。

  • Denoise Process(又被称为逆向去噪)

        如下图,逆向去噪的过程从第T个timestep开始,模型的输入为加噪后的图像xt与当前timestep输入timestep的目的是由于模型每一步去噪用的都是同一个模型,所以需要告诉模型进行的是哪一步去噪。因此,timestep类似于transformer中的位置编码,将一个常数转换为一个向量再和输入的图片进行相加模型中蕴含一个噪声预测器(UNet),它会根据当前的输入预测出噪声,然后,将当前图片减去预测出来的噪声,就可以得到去噪后的图片。重复这个过程,直到还原出原始图片x0为止

ddpm中的unet,AIGC,深度学习,AIGC,DDPM,StableDiffusion,计算机视觉,人工智能

DDPM中的Unet模块

Unet模块介绍

        在Encoder部分中,UNet模型会逐步压缩图片的大小;在Decoder部分中,则会逐步还原图片的大小。同时在Encoder和Deocder间,还会使用“残差连接”,确保Decoder部分在推理和还原图片信息时,不会丢失掉之前步骤的信息。Unet模块的输入为加噪的图像和当前的TimeStep, 示意图如下:

ddpm中的unet,AIGC,深度学习,AIGC,DDPM,StableDiffusion,计算机视觉,人工智能

Unet流程示意图

        如下图,左半边为UNet的Encoder部分,右半边为UNet的Deocder部分,最下面为MiddleBlock。输入为一张32*32*3大小的图片,在Encoder部分的第二行,输入是一个16*16*64的图片,它是由上一行最右侧32*32*64的图片压缩而来(DownSample)。对于这张16*16*64大小的图片,在引入time_embedding后,让它们一起过一层DownBlock,得到大小为16*16*128的图片。再引入time_embedding,再过一次DownBlock,得到大小同样为16*16*128的图片。对该图片做DowSample,就可以得到第三层的输入,也就是大小为8*8*128的图片。由此不难知道,同层间只做channel上的变化,不同层间做图片的压缩处理。

ddpm中的unet,AIGC,深度学习,AIGC,DDPM,StableDiffusion,计算机视觉,人工智能

DownBlock和UpBlock

        这个模块非常重要,已知Unet模块的输入为图像和timestep,那么就需要将timestep转换为一个向量并和图像相加,才外还需要用Attention机制。那么这两个trick是怎么发挥作用的呢?如下图所示,TimeEmbedding层采用和Transformer一致的三角函数位置编码,将常数转变为向量。Attention层则是沿着channel维度将图片拆分为token,做完attention后再重新组装成图片(注意Attention层不是必须的,是可选的)。虚线部分即为“残差连接”(Residual Connection) ,而残差连接之上引入的虚线框Conv的意思是,如果in_c = out_c,则对in_c做一次卷积,使得其通道数等于out_c后,再相加;否则将直接相加。

ddpm中的unet,AIGC,深度学习,AIGC,DDPM,StableDiffusion,计算机视觉,人工智能

MiddleBlock

        和DownBlock与UpBlock过程类似,接在下采样和上采样的中间。

ddpm中的unet,AIGC,深度学习,AIGC,DDPM,StableDiffusion,计算机视觉,人工智能

文生图模型的一般公式

训练完成的DDPM模型可以产生逼真的图片,然后就可以进一步用文字信息去引导它产生符合我们意图的模型了。通常来说,文生图模型遵循以下公式

ddpm中的unet,AIGC,深度学习,AIGC,DDPM,StableDiffusion,计算机视觉,人工智能

  • Text Encoder: 一个能对输入文字做语义解析的Encoder,一般是一个预训练好的模型。在实际应用中,CLIP模型由于在训练过程中采用了图像和文字的对比学习,使得学得的文字特征对图像更加具有鲁棒性,因此它的text encoder常被直接用来做文生图模型的text encoder(比如DALLE2)

  • Generation Model: 输入为文字token和图片噪声,输出为一个关于图片的压缩产物(latent space)。这里通常指的就是扩散模型,采用文字作为引导(guidance)的扩散模型原理,如DDPM、DDIM等扩散模型。

  • Decoder: 用图片的中间产物作为输入,产出最终的图片。Decoder的选择也有很多,同样也能用一个扩散模型作为Decoder。

总结

Stable Diffusion主要包含三个模块:

  • VAE模块:Variational Auto Encoder, ELBO loss, KL loss, GAN,Variational Auto Encoder

  • Unet模块:Unet, DDPM, DDIM, Cross Attention, Residual connectDDPM

  • CLIP模块:CLIP, OpenCLIP, Transformer, Vision TransformerCLIP和OpenCLIP Transformer Vision Transformer

每一个模块都包含着一些模型和所需要的一些先验知识,模块之间共同协作完成文生图任务,目前像DALL2, DALL3, Midjourney以及Stable Diffusion都是由这样的基本思路和模块组成,也统一颠覆了之前的图像生成方式。

此外,为了保证生图的稳定性和可控性,Stable Diffusion也可以和一些插件结合使用,如GroundingDINO, Segment Anything, Roop, ADetailer, ControlNet等ControlNet原理及应用 Grounding DINO调研 Segment anything调研 AI换脸技术调研

至此,我们系统总结了关于Stable Diffusion的每一个模块的构成和原理,此外还对一些需要掌握的先验知识以及一些控制生图稳定性和可控性的插件也进行了详细介绍。文章来源地址https://www.toymoban.com/news/detail-854858.html

到了这里,关于AIGC系列之:DDPM原理解读(简单易懂版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 扩散模型原理+DDPM案例代码解析

    扩散模型和一般的机器学习的神经网络不太一样!一般的神经网络旨在构造一个网络模型来拟合输入数据与希望得到的输出结果,可以把一般的神经网络当作一个黑盒,这个黑盒通过训练使其输入数据后就可以得到我们想要的结果。而扩散模型包含了大量的统计学和数学相关

    2024年02月16日
    浏览(34)
  • 【生成模型】DDPM概率扩散模型(原理+代码)

    AI 作画从 18 年的 DeepDream噩梦中惊醒过来,在 2022 年 OpenAI 的 DALL·E 2达到惊人效果,见图: AI + 艺术涉及到 Transformer、VAE、ELBO、Diffusion Model 等一系列跟数学相关的知识。 Diffusion Models 跟 VAE 一样原理很复杂 。 扩散模型 (论文: DDPM 即 Denoising Diffusion Probabilistic Model)2020年发

    2023年04月18日
    浏览(33)
  • 通俗理解DDPM到Stable Diffusion原理

    🤗关注公众号 funNLPer 畅度阅读🤗 代码1:stabel diffusion 代码库 代码2:diffusers 代码库 论文:High-Resolution Image Synthesis with Latent Diffusion Models 模型权重:runwayml/stable-diffusion-v1-5

    2024年02月11日
    浏览(28)
  • 生成式 AI - Diffusion 模型 (DDPM)原理解析(1)

    来自 论文《 Denoising Diffusion Probabilistic Model》(DDPM) 论文链接:https://arxiv.org/abs/2006.11239 Hung-yi Lee 课件整理 简单地介绍diffusion model 的基本概念,diffusion model有很多不同的变形,现在比较成功的使用diffusion model实现的图像生成的系统,比如阿里、Google的系统基本上都是用差不

    2024年03月13日
    浏览(51)
  • AI绘画Stable Diffusion原理之扩散模型DDPM

    传送门: stable diffusion:Git|论文 stable-diffusion-webui:Git Google Colab Notebook部署stable-diffusion-webui:Git kaggle Notebook部署stable-diffusion-webui:Git AI绘画,输入一段文本就能生成相关的图像,stable diffusion便是其中一个重要分支。自己对其中的原理比较感兴趣,因此开启这个系列的文章

    2024年02月03日
    浏览(33)
  • Stable Diffusion 原理介绍与源码分析(二、DDPM、DDIM、PLMS算法分析)

    Stable Diffusion 原理介绍与源码分析(一、总览) 发现标题越起越奇怪了… 本文继续介绍 Stable Diffusion 框架的实现。在之前的文章 Stable Diffusion 原理介绍与源码分析(一、总览) 中,我介绍了 Stable Diffusion 文生图框架的整体结构,如下图,并简要描述了其各个重要组成模块:

    2023年04月09日
    浏览(21)
  • AIGC系列之:ControlNet原理及论文解读

    《Adding Conditional Control to Text-to-Image Diffusion Models》 目录 1.背景介绍 2.原理详解 2.1 Controlnet 2.2 用于Stable Diffusion的ControlNet 2.3 训练 2.4 推理 3.实验结果 3.1 定性结果 3.2 消融实验 3.3 和之前结果比较  3.4 数据集大小的影响 4.结论         Stable Diffusion大模型的开源,使得AI绘画

    2024年01月22日
    浏览(42)
  • 李沐论文精读系列五:DALL·E2(生成模型串讲,从GANs、VE/VAE/VQ-VAE/DALL·E到扩散模型DDPM/ADM)

    传送门: 李沐论文精读系列一: ResNet、Transformer、GAN、BERT 李沐论文精读系列二:Vision Transformer、MAE、Swin-Transformer 李沐论文精读系列三:MoCo、对比学习综述(MoCov1/v2/v3、SimCLR v1/v2、DINO等) 李沐论文精读系列四:CLIP和改进工作串讲(LSeg、GroupViT、VLiD、 GLIPv1、 GLIPv2、CLIPas

    2024年02月10日
    浏览(29)
  • 扩散模型之DDPM

    最原文链接(英文):What are Diffusion Models? 原文链接:Diffusion扩散模型大白话讲解,看完还不懂?不可能 原文链接:DDPM解读(一)| 数学基础,扩散与逆扩散过程和训练推理方法 hugging face diffusers(扩散模型包):huggingface diffusers code 本文并非全部是个人理解,是觉得其他作者

    2024年02月10日
    浏览(26)
  • DDPM详解 AI绘画

    DDPM模型,全称Denoising Diffusion Probabilistic Model,可以说是现阶段diffusion模型的开山鼻祖。不同于前辈GAN、VAE和flow等模型,diffusion模型的整体思路是通过一种偏向于优化的方式, 逐步 从一个纯噪音的图片中生成图像。 现在已有生成图像模型的对比 没有相关机器学习背景的小伙

    2024年02月08日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包