首页 > 其他分享 >1. 扩散模型(Diffusion Model)的思想

1. 扩散模型(Diffusion Model)的思想

时间:2024-10-16 21:00:01浏览次数:5  
标签:Diffusion Noise mathbf Denoise 噪音 Model 时刻 扩散 图片

生成图片的过程,很像艺术家雕刻雕像的过程。

艺术家从一块石头开始,逐渐的雕刻出优美的雕像。

同样的,扩散模型从全是噪音的图片开始,逐步降噪,最终生成想要的图片。

目录

基本思想

扩散模型生成图片分为以下几个步骤:

  1. 生成一张只有噪音的图片\(\mathbf{x}_T\)
  2. 用一个降噪模型Denoise,对\(\mathbf{x}_T\)进行去噪,得到一张没有那么多噪音的图片\(\mathbf{x}_{T-1}\)
  3. 再次使用降噪模型Denoise,对\(\mathbf{x}_{T-1}\)进行去噪,得到一张噪音更少的图片\(\mathbf{x}_{T-2}\)
  4. 重复上面的过程\(T\)次,每一次都减少一点图片中的噪音,最终得到我们想要的图片\(\mathbf{x}_0\)

整个过程如下图,这里,我们假设\(T=1000\)

image-20241016161235095

生成图片的过程,很像艺术家雕刻雕像的过程。艺术家从一块石头开始,逐渐的雕刻出优美的雕像。同样的,扩散模型从全是噪音的图片开始,逐渐还原出想要的图片。

Q&A

Q1:在\(T\)步去噪中,每一步的Denoise模型是一样的吗?

A:是一样的。

Q2:Denoise模型以降噪前的图片\(\mathbf{x}_t\)为输入;以降噪后的图片\(\mathbf{x}_{t-1}\)为输出。但是在不同时刻,图片之间的差异是很大的:在开始时刻,图片中的噪音很多;在快要结束的时刻,图片中的噪音很少。在这种情况下,同一个Denoise模型能够很好的完成任务吗?

A:可以给Denoise模型多增加一个输入:除了想要降噪的图片之外,还有当前的时刻\(t\),以便于Denoise模型对不同的时刻做出不同的反应。如下图,在\(t=1000\)的时刻,Denoise模型接受图片\(\mathbf{x}_{1000}\)和\(1000\)作为输入;在\(t=1\)的时刻,Denoise模型接受图片\(\mathbf{x}_1\)和1作为输入。

image-20241016162906375

Denoise的内部结构

看到这里,可能有的读者会认为,Denoise的输入是:想要降噪的图片\(\mathbf{x}_{t}\)和当前时刻\(t\);Denoise的输出是:降噪后的图片\(\mathbf{x}_{t-1}\)。

但实际上,Denoise不直接对图片进行预测,而是对当前时刻的噪音\(\boldsymbol{\epsilon_t}\)进行预测。将输入\(\mathbf{x}_{t}\)减去噪音\(\boldsymbol{\epsilon_t}\),就能得到降噪后的图片\(\mathbf{x}_{t-1}\)。

如下图所示,在Denoise内部,有一个预测噪音的模型Noise PredicterNoise Predicter接受图片\(\mathbf{x}_t\)和当前时刻\(t\)两个输入,输出当前时刻的噪音\(\boldsymbol{\epsilon_t}\)。最后,将\(\mathbf{x}_t\)减去\(\boldsymbol{\epsilon_t}\),得到降噪后的图片\(\mathbf{x}_{t-1}\)。

image-20241016163437720

考虑一下,为什么要预测噪音,而不是直接预测图片呢?

因为直接预测图片是很复杂的事情,需要很大的模型才能完成,而预测噪音则简单的多。

如何训练 Noise Predicter

我们可以自己使用一张图片,并人为的向这张图片中逐渐添加噪声,最后形成一张全是噪音的图片,如下图所示

image-20241016164004152

训练 Noise Predicter时,我们的输入(input)是\(t\)时刻的图片\(\mathbf{x}_t\),以及当前时刻\(t\);输出是预测的在\(t-1\)时刻向图片中添加的噪音\(\boldsymbol\epsilon_t\)。真实值(ground truth)是实际的在\(t-1\)时刻向图片中添加的噪音。在下图中,输入用蓝色框了起来,真实值用红色框了起来。

image-20241016164320200

于是,我们就有了Noise Predicter的训练集,其中有两个特征:时刻\(t\)以及当前时刻的图片\(\mathbf{x}_t\);标签是\(t-1\)时刻向图片中添加的噪音。

根据训练集,就可以训练出一个模型Noise Predicter,通过使用Noise Predicter,我们就可以从满是噪音的图片中逐渐生成想要的图片。

文生图怎么做

如果想要文生图,那么只需要给Denoise增加一个文字输入即可。

比如说,我给定一段文字:A cat in the snow,想要生成一个图片,那么基本的思想和上面一样。只需要向Denoise添加一个文字输入:A cat in the snow,就可以成功生成一张图片。

image-20241016165010810

Denoise添加一个文字输入,实际上就是向Noise Predicter添加一个文字输入。

image-20241016165200452

训练 Noise Predicter的过程也是一样的,只需要加入一个文字输入即可。

在下图中,训练集中有三个特征:时刻\(t\),当前时刻的图片\(\mathbf{x}_t\),以及文字A cat in the snow;训练集的标签是是\(t-1\)时刻向图片中添加的噪音。

image-20241016205219549

标签:Diffusion,Noise,mathbf,Denoise,噪音,Model,时刻,扩散,图片
From: https://www.cnblogs.com/rh-li/p/18470916

相关文章

  • Ouroboros3D-一种通过3D感知递归扩散生成3D模型的框架在win10系统上的复现流程
    本文将全程记录自己的Ouroboros3D(以下简称o3d)的环境配置以及训练过程,遇到的问题及解决办法。(Windows)目录一、o3d的安装及环境配置1.下载o3d项目2.anaconda、vscode安装及环境创建3.CUDA安装及环境变量的配置4.相应版本的pytorch的安装(1)在anaconda终端(2)在其他终端如vsco......
  • 【Stable Diffusion案例教程】如何制作3D立体字场景效果
    StableDiffusion是2022年发布的深度学习文本到图像生成模型,它主要用于根据文本的描述产生详细图像,以及在提示词指导下进行图生图的绘图模式。基于开源的优势,SD有着庞大的用户社群,其中又包含着大量的优秀创作者和优质模型。这份完整版的AI绘画全套学习资料已经上传CSDN,......
  • Stable Diffusion【应用篇】【插画转绘】:建筑风景图片的插画转绘制作教程
    学好AI绘画不论是就业还是做副业赚钱都不错,但要学会AI绘画还是要有一个学习规划。最后大家分享一份全套的AI绘画学习资料,给那些想学习AI绘画的小伙伴们一点帮助!图片的插画转绘有很多种不同的风格,今天我们分享另一种制作方法。我们先看一下效果图。这份完整版的A......
  • 24最新AI绘画StableDiffusion模型推荐系列(风格型)
    前言今天,分享几个SDXL的特殊风格模型,这些模型在特定风格下非常出彩,弥补了一些“我已经看腻了AI画图”的情况。这几位作者分享的SDXL模型艺术风格上表现得尤为出色,而且他们都是秉持着开源精神免费分享自己的模型。训练过模型的小伙伴肯定都知道,要收录上万张图片做数据集,已经......
  • Contextualization Distillation from Large Language Model for Knowledge Graph Com
    文章目录题目摘要简介相关工作语境化提取实验结论限制附录题目用于知识图完成的大型语言模型的语境化提取论文地址:https://aclanthology.org/2024.findings-eacl.32/项目地址:https://github.com/davidli0406/contextulization-Distillation摘要    ......
  • 【SD基础】Stable Diffusion 提示词万能公式&插件&词库
    提示词公式对于StableDiffusion来说,提示词(又或者说“关键词”)是输入项,并且输入英文,StableDiffusion只能输入英文并且被AI理解,转换为向量然后进行生成。合适的提示词可以生成你所想要的画面,如果画面不尽人意,那么大概率是提示词的问题,不合适的提示词会被AI曲解,那么这个时候......
  • CogVideoX:Text-to-Video Diffusion Models with An Expert Transformer
    研究背景背景介绍:这篇文章的研究背景是文本到视频模型的快速发展,特别是Transformer架构和扩散模型的应用。早期尝试预训练和扩展Transformer生成视频已经显示出巨大潜力,如CogVideo和Phenaki。扩散模型在多模态生成方面也取得了显著进展,包括视频生成。研究内容:该问题的......
  • Stable diffusion语法
    进阶语法:1、下划线“—”用下划线连接两个单词,表达是一体,是融合的意思,比如:aplateofcoffeecake,这里的咖啡和蛋糕,在生成就是两个独立体,用下滑线连在一起就是咖啡色的蛋糕 aplateofcoffee_cake → 2、控制提示词的生效时间2.1[提示词:0-7数值]FOREST,LOTSOFTR......
  • AI绘画StableDiffusion零基础入门,轻松制作你的赛博Coser,SD图生图全网最强指南
    AI绘画因“赛博Coser”事件大规模破圈,以前只在二次元中存在的角色变成栩栩如生的真人跃出画面,你是否好奇这些老婆们是怎么画出来的?缘起:赛博Coser事件AI绘画第一次大规模破圈源于早前科技博主“勘云工造”使用AI技术创作的一系列作品。他训练的“赛博Coser”......
  • AI绘画StableDiffusion神级插件InstantID炸裂!只需要一张图就可以换脸,AI换脸详细教程
    这是一套0基础入门的AI绘画系列课程,不需要任何基础!涉及全面:环境搭建、基础篇、进阶篇、应用篇、模型篇以及行业解决方案篇课程制作不易,爱学习的你一定不要忘了订阅关注哦~~最近AI换脸又火起来了,小红书InstantX团队发布了一款最新的换脸技术InstantID和之前的主流......