首页 > 其他分享 >Stable diffusion

Stable diffusion

时间:2023-12-01 14:46:36浏览次数:33  
标签:diffusion Diffusion Decoder Encoder Stable 生成 影像 图片

目前来说效果比较好的影像生成模型, 就算不是Stable Diffusion, 套路也和其相似. 而Stable Diffusion就是目前最好的影像生成模型.

How it works

目前最好的影像生成模型, 其内部基本上由三个元件组成. 第一个元件是Text Encoder, 它能把输入的文字叙述变成对应的向量; 接下来是一个Generation Model, 现如今大家使用的都是Diffusion Model, 当然使用其他模型也是可以的. 该Generation Module能够接收一个输入的杂讯和输入的文字的encoder, 然后产生一个中间产物, 这个中间产物可以是人能看的懂的, 只是比较小比较模糊的图片, 当然也可以是人完全看不懂的东西, 这个中间产物是图片被压缩以后的结果. 接下来直接套一个Decoder, 这个Decoder的作用就是将图片的压缩版本还原为原本的图片. 通常3个Module是分开训练的, 然后再组合起来.

image-20231119122320203

今天我们看到的比较好的影像生成模型都是差不多的套路, 例如Stable Diffusion. 可以看到, 首先是一个Encoder可以处理输入的东西, 只是它输入的不止有文字, 还有别的可能的输入. 然后还需要一个生成的模型, Stable Diffusion内部使用的就是Diffusion Module, 接着需要一个Decoder将Diffusion Module生成出来的产物也就是图片压缩后的版本还原为原来的图片.

image-20231119123228463

对于DALL-E系列, 也是同样的套路. 我们需要一个文字的Encoder先对文字进行理解, 然后需要一个生成的模型. 其实在DALL-E中, 它尝试了两个生成的模型, 可以用Autoregressive, 由于我们这里暂时生产的只是图片的压缩版本, 计算量并不算太大, 所以用Autoregressive也是一个合适的选择, 当然也可以用另一个生成模型Diffusion Module. 最后再用decoder还原为原来的图片.

image-20231119123620121

Google也有一个影像生成的模型叫做Imagen, 输入一段文字叙述然后产生一张图片. 首先现需要一个Text Encoder, 然后通过影像生成模型生成图片压缩版本, 这里Google Imagen生成的就是人能看得懂的64x64的图片, 最后再生成1024x1024的大图

image-20231119124027254

Framework Component

Text Encoder

首先要介绍的Component是Text Encoder. 我们可以使用GPT作为Encoder, 也可以使用更古早的Bert. 下面的实验数据表明, Text Encoder的选择对结果的影响是非常大的, 该数据来自Google Imagen的Paper, 它们使用的是一个叫T5的Encoder, 并且对不同大小的T5进行试验. 该试验将FID和CLIP作为指标, FID越小代表图片生成效果越好, 而CLIP Score则是值越大越好, 即越往右下角代表模型效果越好. 从结果可以看出, 随着用的Text Encoder越来越大, 图片生成的品质是越来越高的. 所以Text Encoder对结果影响是很大的, 一个好的Text Encoder, 能帮助它去处理影像跟文字成对的资料里面没有看过的新的词汇. 相对而言, Diffusion Module模型的大小就没那么重要了, U-Net size就是指Diffusion Module中Noise Predictor的大小, 该Paper中尝试用了不同大小的U-Net size, 发现增大Diffusion Module大小对结果帮助是非常有限的. 总之, Text Encoder对于今天模型能够有这么好的表现是非常重要的.

image-20231119124809723

FID

Frechet Inception Distance

今天我们在做影像生成模型的时候, 其中一个难题就是我们该如何评价一个影像生成图像做的好与不好. 因为当我们给出一段文字的时候, 根本就没有标准答案, 或者与标准答案不同, 我们也不能断定它是错误的. 所以我们需要一个特别的方法来评价影像生成模型的好坏, 其中一个我们现如今很常用的就是FID.

FID就是要求我们有一个提前训练好的CNN Modle, 一个影像分类的Modle, 我们把机器生成的图片和真实的图片通通输入到CNN之中, 得到latent representation. 然后我们将真实的图片和生成的图片标注出来. 如果两组representation越接近, 就代表生成的影像和真实的影像越接近, 如果离得很远, 就代表两组图像非常不像.

那如何计算两组representation之间的距离呢? FID这边用的是一个比较粗糙但是有用的方法, 就是假设两组representation都是Gaussion Distribution, 然后计算两个Gaussion Distribution之间的distance, 这里算的是叫做Frechet distance. 这个计算方法虽然比较粗糙, 但是结果是比较好的, 跟人类的评估结果比较一致. 所以FID到今天仍然是一个非常常用的做法, 并且我们希望FID是越小越好. 需要注意的是, 我们需要sample出比较多的image才能计算FID.

image-20231119130100392

CLIP

Contrastive Language-Image Pre-Training

CLIP是用400 million image-text pairs训练出的一个模型, 这个模型中有一个Image Encoder和一个Text Encoder, 两个Encoder分别读取一张图片和一段文字作为输入各产生一个vector. 如果这段文字和这张图片是相关的或是成对的, 这两个vector就应该是越近越好, 否则应该是越远越好. 如果CLIP高, 则说明模型生成的图和文字是对应关系的.

image-20231119130117746

Decoder

Decoder在训练的时候一般就不需要影像跟文字成对的资料, 我们可以单凭大量的影像资料就可以把Decoder训练出来.

Decoder如何训练呢? 如果现在我们的中间产物是一张小图, 那我们就可以把手上的影像拿出来, 先做down sampling变成小图, 这样就有成对的资料, 然后就可以训练Decoder把小图变成大图. Imagen模型就是用这样的做法.

image-20231119152035105

如果我们的中间产物不是小图, 而是某种Latent Representation, 此时我们应该训练一个Auto-Encoder, 它有一个Encoder, 输入一张图片, 输出Latent Representation, 然后通过Decoder还原为原来的图片, 我们要使得输入跟输出越接近越好. 训练完之后, 我们将Decoder拆出来用, 这样的Decoder就可以输入一个Latent Representation然后还原为一张图片. 像Stable Diffusion 和 DALL-E用的就是这样的方法.

image-20231119152044889

Generation Model

Generation Model的作用就是输入文字的representation, 然后产生中间产物.

此前我们已经了解了Diffusion Model的概念, 在此处唯一不一样的的地方就是我们的Noise需要加在中间产物上, 或者说Latent Representation上. 假设我们现在是将Latent Representation作为中间产物, 我们先拿一个Encoder出来, 输入一张图片, 然后产生Latent Representation. 接着我们sample出一个杂讯, 该杂讯的dimention和latent representation的dimension是一样的, 然后将其加到Latent Representation上, 以此类推, 直到最后, 我们的Latent Representation变成纯粹杂讯的样子.

image-20231119153003754

接下来就是训练一个Noise Predictor, 这跟我们一般的Diffusion Model是一模一样的, 加入杂讯后的representation, step id和文字的latent representation vector作为输入, 然后预测生成Noise

image-20231119153759499

在生图的时候, 我们首先有一个纯粹从Normal Distribution中sample出来的latent representation, 大小跟小图一致, 然后将其和文字的vector输入到Denoise Module中, 滤去部分杂讯, 反复进行, 在一定次数的decoder之后我们将生成的latent representation输入到Decoder中即可.

image-20231119154138136

参考:

[1] Jonathan Ho and Ajay Jain and Pieter Abbeel. Denoising Diffusion Probabilistic Models.

[2] https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php

标签:diffusion,Diffusion,Decoder,Encoder,Stable,生成,影像,图片
From: https://www.cnblogs.com/ygtrece/p/17869664.html

相关文章

  • StableDiffusion笔记
    title:StableDiffusion笔记banner_img:https://drive.studyinglover.com/api/raw/?path=/photos/blog/background/1679396994125.pngdate:2023-5-2915:36:00categories:-笔记tags:-文字生成图片StableDiffusion是一个图像生成方法,由 StabilityAI and Runway......
  • 新火种AI | Stable Video Diffusion来了!普通人拍大片指日可待
    作者:小岩随着技术的不断进步,AI领域取得了巨大的突破。特别是在图片生成这个赛道,AI目前能做到的成绩超乎想象。或许就在1年以前,很多人,特别是一些专业从业者对AI绘画的印象还停留在“元素要靠东拼西凑”“废图率太高”“成品无法直接使用”等方面,但如今,高质量AI绘图软件的表现完全可......
  • springboot~ConfigurableListableBeanFactory和ApplicationContext的使用场景
    在工具类中封装getBean,使用哪个接口来实现实事上,在工具类中,实现BeanFactoryPostProcessor和ApplicationContextAware接口后,使用它们构造方法里的对象ConfigurableListableBeanFactory和ApplicationContext都可以很方便的获取spring容器里的bean,而在实际应用时,还有有些不同的,比如在......
  • 论文阅读:A CONDITIONAL POINT DIFFUSION-REFINEMENT PARADIGM FOR 3D POINT CLOUD COM
    ACONDITIONALPOINTDIFFUSION-REFINEMENT PARADIGMFOR3DPOINTCLOUDCOMPLETION用于三维点云完成的条件性点扩散-精炼范式摘要三维点云是捕捉现实世界三维物体的重要三维表示。然而,真实扫描的三维点云往往是不完整的,为下游应用恢复完整的点云非常重要。大多数现有的点云完成......
  • Adding Conditional Control to Text-to-Image Diffusion Models
    https://mp.weixin.qq.com/s/iL6YitT7EGP6DnrBehb9MQ1.AddingConditionalControltoText-to-ImageDiffusionModels论文地址:https://arxiv.org/pdf/2302.05543.pdf开源地址:https://github.com/lllyasviel/ControlNet(该项目已有2.4万stars)作者单位:斯坦福大学这......
  • 【腾讯云 HAI域探秘】借助HAI,轻松部署StableDiffusion环境拿捏AI作画-体验实验赢大奖
    【腾讯云HAI域探秘】借助HAI,轻松部署StableDiffusion环境拿捏AI作画-体验实验赢大奖爆火的Ai生图你体验到了吗?没有绘画能力、摄影能力也能随心所欲的创作出自己的作品!但是很多人因为高昂的硬件和繁琐的安装对它望而却步。腾讯云的高性能应用服务HAI(HyperApplicationInventor......
  • 魔导手册 Stable Diffusion 画龙 画坤坤(鲲) 画麒麟
    一、选择模型1、点击Checkpoints 2、拉到最后选择sd-xl-base_1.0 二、开启创作之旅1、点击Generation点击Refiner 2、选择sdxl/sd_xl_refiner_1.0.safetensors(PS下拉框拉到最后就行啦)  3、输入咒语(正向提示词和反向提示词)点击生成 坤坤就出来了 三、......
  • Windows 11 搭建Stable Diffusion遇到的问题
    趁着双11,将我的i54690+ddr34gx2换掉了,换成了AMD5600+ddr4x2,另外加了个1t的m2的ssd。原先的硬件部分留下了:500w的金河田电源kingstonsdd128g系统启动盘保留wdblue1t也保留下来,但是最近待机之后总是会找不到,暂时没去调查什么原因之前的1650s显卡然后......
  • [论文阅读] Painterly Image Harmonization using Diffusion Model
    Pretitle:PainterlyImageHarmonizationusingDiffusionModelaccepted:AAAI2023paper:https://arxiv.org/abs/2212.08846code:https://github.com/bcmi/PHDiffusion-Painterly-Image-Harmonizationref:https://mp.weixin.qq.com/s/0AzaD8qVOFJrFeeIaJ4sTgref:h......
  • Stable Diffusion新玩法火了!给几个词就能生成动图,连动图人物的表情和动作都能随意控制
    作者|小戏单说大模型AI的发展对人们想象力释放的助力,基于StableDiffusion模型的方法首当其冲。透过文本描述到图像生成技术,大模型为我们的想象力打开了一个恢弘的梦幻世界。透过点滴文字,就有可能重现禁锢在我们脑海中无法释放的光怪陆离。而最近,StableDiffusion持续进化,......