零基础看懂免费开源的Stable Diffusion

这篇具有很好参考价值的文章主要介绍了零基础看懂免费开源的Stable Diffusion。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

前面一篇文章主要讲了扩散模型的理论基础,还没看过上篇的小伙伴可以点击查看:DDPM理论基础。这篇我们主要讲一下一经推出,就火爆全网的Stable Diffusion模型。Stable Diffusion因其免费,开源,生成图像质量高等优点,一经推出,就火爆全网,后面stable-diffusion-webui的推出,更是降低了使用Stable Diffusion模型作画的门槛,一时刷爆了整个社区。今天笔者详细的带大家看一下Stable Diffusion背后的原理。

Diffusion模型

这里为了让大家更好的理解Stable Diffusion模型,我们先来简单介绍一下Diffusion模型。下图展示了diffusion模型在训练和推理的过程。从图中可以看出,扩散过程主要包括几个主要的模型,分别是text encoder(文本编码器),unet,image decoder(图像解码器)。其中,text encoder的作用主要是将输入的文本,即prompt,编码为token embeddings,这个token embeddings就是代表文本的一个个向量。这一个个文本向量会通过某种方式注入到unet中,用来控制unet生成符合文本描述的图像。

零基础看懂免费开源的Stable Diffusion,stable diffusion,AIGC,人工智能,计算机视觉

推理过程

在推理阶段,扩散过程是一个多步去噪的过程,主要就是一个unet网络结构,其输入和输出具有相同的形状,输入为含噪声的图像和时间戳 t t t,输出为图像上添加的噪声,进而得到去掉该噪声的图像。就这样经过unet的一步步去噪,逐步生成一个不含噪声的,符合文本描述的图像。有很多人会问,为什么不直接一步预测出噪声,然后直接将该噪声去掉,生成不含噪声的图像呢?其实这样的话,噪声很大,网络很难预测出准确的噪声分布。上图中的N即扩散过程执行的步数,该参数可以由我们自己指定,一般步数设置的越大,生成的图像会越精细。经过扩散过程后会生成低分辨率的,不含噪声的图像,为了生成更高分辨率的图像,这时就会在后面再接一个image decoder,用来扩大图像的分辨率,image decoder输出的图像即为最后我们想要的高分辨率图像。

文本特征主要是通过cross attention模块加入的,我们来大致拆解一下unet内部的网络结构。如下图,unet内部主要是由多个resnet block和attention模块组成的,两者交替出现。每一个attention模块接受resnet block输出的图像特征和文本特征向量作为输入,将两种特征进行融合,从而达到以文本为条件,控制图像生成的目的。

零基础看懂免费开源的Stable Diffusion,stable diffusion,AIGC,人工智能,计算机视觉

attention内部的计算过程如下图。图像特征和文本特征分别通过三个参数矩阵映射到Q,K,V,然后Q与K的转置点乘除以scale因子后经过softmax计算,最后点乘V,得到最后的特征。当然现在都是基于multi-head的多头attention操作,multi-head只是多次执行下面的操作,得到多个 Z i Z^i Zi,最后再将 Z i Z^i Zi拼接在一起,经过最后一个参数矩阵映射得到最终的 Z Z Z

零基础看懂免费开源的Stable Diffusion,stable diffusion,AIGC,人工智能,计算机视觉

训练过程

diffusion模型的训练过程主要涉及unet网络的学习,需要让unet具备能力:
给它输入一张含噪图像,unet能够预测出含噪图像上的噪声
这样我们就可以去掉含噪图像上的噪声,得到一张干净的、不含噪声的图像。训练数据的构造如下图:

零基础看懂免费开源的Stable Diffusion,stable diffusion,AIGC,人工智能,计算机视觉

首先第一步,选择一张图片;第二步,随机生成一个基础噪声;第三步从0到 T T T的时间范围内,随机选择一个时间戳 t t t,通过 t t t和基础噪声计算出最终要添加的噪声,时间戳 t t t越大,代表噪声添加的次数越多,也即添加噪声的强度越大。第四步就是将第三步生成的噪声加到图像上,得到一个含噪声的图像。此时,步骤四中得到的含噪图像作为unet网络的输入,步骤三生成的噪声作为unet学习的目标,用来训练unet网络。

通过上面的1,2,3,4步,我们可以生成很多训练数据,训练过程中就是不断将训练数据喂给unet,让其自主学习如何预测出含噪图像上的噪声,以达到去噪的目的。

Stable Diffusion模型

stable diffusion的最大贡献就是没有直接在像素空间进行图像的加噪和去噪,而是先将图像进行压缩(下采样),压缩到一个图像表征维度更低的隐空间(latent),然后在隐空间中进行扩散过程,这不仅加快了扩散过程的速度,同时减少了计算资源的消耗,而且在隐空间中操作依然能够保证生成图像的质量。举个例子,如果原图像的分辨率是256x256,现在将它下采样8倍,到32x32,那么在32x32分辨率的图像上操作肯定比直接在256x256分辨率的图像上操作更快且节省资源。256x256分辨率的原图即为像素空间特征,压缩后的32x32分辨率的图就是隐空间特征。

零基础看懂免费开源的Stable Diffusion,stable diffusion,AIGC,人工智能,计算机视觉

stable diffusion模型在推理和训练阶段的流程图如上图所示。与diffusion模型相比,最大的变化就是在推理阶段,扩散过程的输入由原来的随机噪声图像image变成了随机噪声latent,其实两者本质上都是纯噪声,只不过latent的分辨率比image的分辨率低,所以经过扩散过程生成的latent(Generated low resolution latent)也要比生成的image(Generated low resolution image)分辨率低,如果stable diffusion最终要生成与diffusion模型相同分辨率的图像的话,这里image decoder的放大倍率就要更大。
那么在训练阶段,主要进行前向过程,也就是给图像加噪声。下图就是stable diffusion生成训练数据的过程。可见,和diffusion相比,只是多了一步将原图压缩到latent的过程,后面的添加噪声都是在latent上进行的。

零基础看懂免费开源的Stable Diffusion,stable diffusion,AIGC,人工智能,计算机视觉

下面我们放一张stable diffusion论文中的原图。
零基础看懂免费开源的Stable Diffusion,stable diffusion,AIGC,人工智能,计算机视觉
其中 E \mathcal E E为图像编码器,用来压缩图像尺寸, D \mathcal D D为图像解码器用来恢复图像尺寸。图中的Diffusion Process即为前向过程,原图像 x x x经过编码器 E \mathcal E E压缩到隐空间 z z z后,在 z z z上进行加噪,生成 z T z_T zT。生成过程为逆向过程,给定隐空间噪声,经过多步去噪,生成不含噪声的压缩后的 z z z,再经过图像解码器恢复原始图像的尺寸。

参考

https://www.cnblogs.com/gczr/p/14693829.html
https://jalammar.github.io/illustrated-stable-diffusion/
https://readpaper.com/pdf-annotate/note?pdfId=4665140328076951553&noteId=1834381375833065728文章来源地址https://www.toymoban.com/news/detail-642131.html

到了这里,关于零基础看懂免费开源的Stable Diffusion的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Stable diffusion模型大合集(18个)免费下载

    RealDosMix ChilloutMix DDicon Lyriel Realistic Vision V2.0 国风3 hanfu 汉服 fking_scifi_v2 Dreamlike Photoreal 2.0 墨心 MoXin 小人书•连环画 blindbox/大概是盲盒 epi_noiseoffset Miniature world style XP 3D: C4D,3D style on Midjourney 沁彩 Colorwater majicMIX realistic XXMix realistic 介绍:真人模型    下载地址:https://pan.qu

    2024年02月13日
    浏览(74)
  • 免费搭建个人stable-diffusion绘画(干货教程)

    目前AI绘画主流的模型有Midjourney、Stable Diffusion、DALL·E,最火的当属Midjorney和Stable Diffusion,但是由于Midjourney没有开源且要付费,我今天主要分享Stable Diffusion的部署和使用方法的分享。 大家应该面对的一个不可避免的问题,就是本身电脑的局限性,比如显卡,比如GPU,比如磁盘

    2024年02月09日
    浏览(55)
  • 开源 AI库Stable Diffusion 介绍

    Stable Diffusion 是一个用于生成高质量 AI 绘画的 Python 库,以下是一些使用 Stable Diffusion 的基本步骤: 安装 Stable Diffusion 库。您可以使用 pip 安装,命令如下: 准备模型和输入图像。Stable Diffusion 提供了一些预训练模型,可以用于生成 AI 绘画。您还需要准备一张输入图像,该图

    2024年02月12日
    浏览(21)
  • Stable Diffusion免费(三个月)通过阿里云轻松部署服务

    今天偶然间看到了阿里云官网的这个,就来尝试了一下,果然香碰碰,接下来三个月可以好好愉快的来玩耍了。 1、申请阿里云免费试用三个月,入口如下: 函数计算FC_无服务器计算_Serverless_容器与中间件-阿里云 阿里云函数计算(Function Compute)是一个事件驱动的全托管计算服

    2023年04月25日
    浏览(40)
  • 如何免费使用 Stable-Diffusion AI 绘画服务

    最近一直有朋友问我,自己设备配置不行怎么使用 Stable-Diffusion,问我有没有共享的 Stable-Diffusion AI 绘画服务能体验一下,付费也行。说实话听到付费我确实心动了,但我的机器作一次图 30s 起步,而付费的云服务器动辄一个月 4k+,只好抑制住这份心动。 但是总有办法的。

    2024年02月10日
    浏览(69)
  • 基于LoRA微调部署Stable Diffusion【免费试用阿里云】

    Stable Diffusion 是一种文本到图像的潜在扩散模型,由 Runway 和慕尼黑大学合作构建,第一个版本于 2021 年发布。目前主流版本包含 v1.5、v2和v2.1。它主要用于生成以文本描述为条件的详细图像,也应用于其他任务,如修复图像、生成受文本提示引导的图像到图像的转换等。 体验

    2024年02月13日
    浏览(78)
  • Stable Diffusion 开源模型 SDXL 1.0 发布

    关于 SDXL 模型,之前写过两篇: Stable Diffusion即将发布全新版本 Stable Diffusion XL 带来哪些新东西? 一晃四个月的时间过去了,Stability AI 团队终于发布了 SDXL 1.0。当然在这中间发布过几个中间版本,分别是 SDXL beta 和 SDXL 0.9。相较于 SDXL 0.9 的仅供研究的版本,这次的完整版本进

    2024年02月15日
    浏览(35)
  • 可用于Stable Diffusion免费的AI绘画标签生成器

    这是一个开源项目,借花献佛,基于原作者的基础上进行了微调还有以及修改内容。 支持中英文,权重以及xxxx词汇,老司机都懂。 直接可在右侧根据需求进行点选操作,然后复制到自己的Stable Diffusion中进行AI绘画。 下载压缩包 百度云盘 夸克云盘 安装nmp,如果你机器有的话

    2024年02月09日
    浏览(43)
  • 使用阿里云免费Serverless函数计算产品资源安装 Stable Diffusion

    喜欢用 Stable Diffusion 的小伙伴注意了!上一篇介绍了使用谷歌的 Colab 免费资源来安装这个画图神器。 但因为资源是免费的,高峰时期有可能会被谷歌断掉服务的连接,像周末这种使用高峰,GPU 的资源得不到保证。 没关系,今天我们来介绍一个更靠谱的安装方法,让你随时随

    2024年02月09日
    浏览(35)
  • 自制开源的 Midjourney、Stable Diffusion “咒语”作图工具

    本篇文章聊聊如何通过 Docker 和八十行左右的 Python 代码,实现一款类似 Midjourney 官方图片解析功能 Describe 的 Prompt 工具。 让你在玩 Midjourney、Stable Diffusion 这类模型时,不再为生成 Prompt 描述挠头。 本文将提供两个版本的工具,分别支持 CPU 和 GPU 推理使用,如果你有一张大于

    2024年02月09日
    浏览(29)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包