StableDiffusion模型发展历史

这篇具有很好参考价值的文章主要介绍了StableDiffusion模型发展历史。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  参考资料:

  相应的github和huggingface

  LDM [github]

  StableDiffusion v1.1 ~ v1.4 [github] [huggingface]

  StableDiffusion v1.5 [huggingface] [github]

  StableDiffusion v2 v2.1 [github] [huggingface]  

  首先说一下,这篇文章的目的是让你清晰地了解StableDffusion这个模型的发展脉络,由于目前开源AIGC模型基本上都是基于SD的,因此了解它的发展历史是非常有必要的,毕竟它是进行再创作的根基,不了解这个base而盲目地搞一些finetune,虽然可能也会出效果,但有事倍功半的危险。

  1. LDM

   LDM指latent-diffusion model。纵观Diffusion model的发展历史,使用一个基于Unet的noise predictor进行diffusion reverse process是主线,这个思路在DDPM这篇文章中就已经阐述的很清楚了,但是受限于大量的hidden features,训练速度堪忧,并且分辨率没办法提的很高。classifier-guided[Diffusion Models Beat GANs on Image Synthesis]和classifier-free[CLASSIFIER-FREE DIFFUSION GUIDANCE]这两篇文章给出了设计“条件Diffusion Model”的方法,但是仍然没有解决训练速度和显存占用的问题。直到LDM的提出,通过引入一个预训练的VAE做图片降维,然后在latent-space做diffusion,才为Diffusion Model的大规模训练打开了大门。与此同时,它提出可以使用一个业务相关的conditioning模块,并借助CrossAttension机制一把实现多个任务比如inpainting,SR,depth-guided等等。总之,LDM是学术界的产物,由Compvis独立提出,为后续的Stablediffusion打下了技术基础。但同时由于它(LDM)学术产物的本质,得到的关注远远不如SD。
   2. StableDiffusion v1.1 ~ v1.4
  发出了LDM那篇CVPR文章后,Compvis团队得到了工业界的关注,得以和Runway和Stability AI合作。有了他们的支持,Compvis开始做一些昂贵的尝试,即在LAION数据集上进行大规模的训练。本质上,SDv1.1 ~ 1.4使用的算法框架和LDM完全一致。特别地,SD使用了固定的(frozen)CLIP text encoder作为上一节提到的conditioning模块,也就是说不做杂七杂八的conditioning了,依赖于LAION数据集的驱动,就一门心思好好把T2I这个任务给做好。下面我摘抄两段github上的话,很好地总结了这个阶段的模型的发展:Stable Diffusion v1 refers to a specific configuration of the model architecture that uses a downsampling-factor 8 autoencoder with an 860M UNet and CLIP ViT-L/14 text encoder for the diffusion model. The model was pretrained on 256x256 images and then finetuned on 512x512 images.

StableDiffusion模型发展历史,stable diffusion,人工智能,计算机视觉,深度学习

  3. StableDiffusion v1.5

  上面提到Compvis团队不仅了Stablility-AI团队合作,还和Runway团队有合作。而SD1.5这个火遍大江南北的模型就是由RunwayML团队发布在hugging face上的。值得注意的是这次模型的发布就不再是Compvis了(可能是利益相关的问题吧),看看它是怎么做的:

The Stable-Diffusion-v1-5 checkpoint was initialized with the weights of the Stable-Diffusion-v1-2 checkpoint and subsequently fine-tuned on 595k steps at resolution 512x512 on "laion-aesthetics v2 5+" and 10% dropping of the text-conditioning to improve classifier-free guidance sampling.

  似乎没有什么fancy的... 仅仅就是在一个美学打分较高的LAION子集上猛猛训...步数超过了v1-4而已。但是这里有两个需要注意的地方,先看一下runway在hugging face上发布的模型:

StableDiffusion模型发展历史,stable diffusion,人工智能,计算机视觉,深度学习

  一个是pruned,这个pruned是什么意思?reddit上有一段很好的解释: https://www.reddit.com/r/StableDiffusion/comments/xymibu/what_does_it_mean_to_prune_a_model/

A neural network is just a bunch of math operations. The "neurons" are connected by various "weights," which is to say, the output of a neuron is multipled by a weight (just a number) and gets added into another neuron, along with lots of other connections to that other neuron.

When the neural network learns, these weights get modified. Often, many of them become zero (or real close to it). And since anything time zero is zero, we can skip this part of the math when using the network to predict something. Also, when a set of data has a lot of zeros, it can be compressed to be much smaller.

Pruning finds the nearly zero connections, makes them exactly zero, and then let's you save a smaller, compressed network. Moreover, when you use the network to predict/create something, an optimized neural network solution (i.e. the code that does all of the math specified by the network) can do so faster by intelligently skipping the unneeded calculations involving zero.

  这下就知道了,模型的pruning就是剪掉不需要的部分。pruned知道了,ema又是什么意思呢?这个其实我可以解释一下:EMA stands for Exponential Moving Average, and it refers to a technique used to smooth out noise in the training data. 即EMA是一种训练策略,在训练的时候模型会有一个主模型例如Unet,同时也会保存一个copy即EMA_Unet,这个EMA_Unet可以简单地看作是Unet的一个权值平均化的版本,可以使得训练更加稳定。一般认为EMA_Unet能够降噪,因此load ema版本的权重就可以了,但是如果你想接着finetune,那么不妨同时load EMA_Unet和真实的Unet,继续用ema的策略训练下去。hugging face上有一段话:

StableDiffusion模型发展历史,stable diffusion,人工智能,计算机视觉,深度学习

   可知v1-5-pruned.ckpt包含的信息是比v1-5-pruned-emaonly.ckpt的信息“绝对”多的,然后就按自己需求有选择地下载就好了。

  4. StableDiffusion v2 v2.1

  上面说到之前的模型发布都是Compvis和Runway完成的,现在老大Stability-AI也坐不住了。我猜它应该是想挣钱的,因此发布Stalediffusion v2的一个重要举措是删除NSFW的东西。这个也可以理解,因为做产品就要考虑风控啊。SD v2同样有一个一句话定义:Stable Diffusion v2 refers to a specific configuration of the model architecture that uses a downsampling-factor 8 autoencoder with an 865M UNet and OpenCLIP ViT-H/14 text encoder for the diffusion model. The SD 2-v model produces 768x768 px outputs. 有三个变化,一个是text-encoder变了,变这个东西意味着什么?意味着和StableDiffusion v1割席,必须重新从零去训练了。一个是分辨率加大了,这个东西似乎没有什么技术壁垒,因为卷积这个操作好像天生就能够兼容不同分辨率的方图。

  然后,StableDiffusion v2引入了一个叫v-prediction的概念,这导致模型出现了v2, v2-base, v2.1, v2.1-base,v2和v2.1是SD主推的产品(我的理解),而v2-base和v2.1-base则是原始的noise-prediction的模型。逻辑是这样的,v2-base是从零开始训的,并且屏蔽了NSFW,v2基于v2-base继续finetune。v2.1-base是基于v2-base finetune的,v2.1基于v2.1-base继续finetune。下面只展示v2-base的训练介绍,其他的模型训练信息可以到hugging face上自己去看:

StableDiffusion模型发展历史,stable diffusion,人工智能,计算机视觉,深度学习文章来源地址https://www.toymoban.com/news/detail-538634.html

到了这里,关于StableDiffusion模型发展历史的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Excel的发展历史

           1982年,Microsoft推出了它的第一款电子制表软件──Multiplan,并在CP/M系统上大获成功,但在MS-DOS系统上,Multiplan败给了Lotus 1-2-3。这个事件促使了Excel的诞生,正如Excel研发代号Doug Klunder:做Lotus 1-2-3能做的,并且做的更好。1985年,第一款Excel诞生,它只用于Mac系统;

    2024年02月13日
    浏览(42)
  • Hadoop发展历史

    1)Hadoop是一个由Apache基金会所开发的 分布式系统基础架构 2)主要解决,海量数据的 存储 和海量数据的 分析计算 问题。 3)广义上来说,Hadoop通常是指一个更广泛的概念—— Hadoop生态圈 。 1)Hadoop创始人 Doug Cutting ,为 了实 现与Google类似的全文搜索功能,他在Lucene框架基

    2024年02月11日
    浏览(77)
  • docker发展历史

    2008年,Solomon Hykes 和他的朋友 Kamel Founadi、Sebastien Pahl 共同创立了一家名为 DotCloud 的公司,目标是利用一种叫做容器的技术来创建他们称作是“大规模的创新工具”:任何人都可以使用的编程工具。 2010年,dotCloud获得了创业孵化器Y Combinator的支持,并开始吸引到一些真正的投

    2024年02月13日
    浏览(40)
  • 手机的发展历史

    目录 一.人类的通信方式变化 二.手机对人类通信的影响 三.手机的发展过程 四.手机对现代人的影响         人类通信方式的变化是一个非常广泛和复杂的话题,随着技术的进步和社会的发展,人类通信方式发生了许多重大的变化。下面是一些主要的变化趋势:       

    2024年02月12日
    浏览(43)
  • 神经网络的发展历史

    神经网络的发展历史可以追溯到上世纪的数学理论和生物学研究。以下是神经网络发展史的详细概述: 1943年,Warren McCulloch和Walter Pitts提出了一种神经元模型,被称为MCP神经元模型,它模拟了生物神经元的基本功能。 这一模型使用二进制逻辑来描述神经元的激活和抑制过程,

    2024年02月07日
    浏览(43)
  • 密码学发展历史介绍

      稍微介绍一下密码学,密码学是研究编制密码和破译密码的学科,就是研究防与攻。密码学的发展历程可分三个阶段:古典密码、近代密码、现代密码。   古典密码阶段:从密码的产生到发展成为近代密码之间的这段时期密码的发展历史。主要特点是手工加解密,叫手

    2023年04月17日
    浏览(50)
  • 计算机视觉发展历史

    目录 1.视觉对于生物界的重要作用 2.人类对于计算机视觉的探索 2.1 20世纪50年代——研究生物视觉的工作原理 2.2 20世纪60年代——计算机视觉萌芽 2.3 20世纪70年代——开创性提出识别流程 2.4 20世纪80年代——着眼于提取特征 2.5  20世纪90年代——图像分割 2.6  21世纪初——各

    2024年02月07日
    浏览(53)
  • ARM简介及其发展历史

    ARM名声很大,最近在学习STM32,也借机梳理一下关于ARM的各种概念和信息。 本文主要内容:ARM一词的含义,ARM的发展历史,ARM cortex系列处理器简介与ARM在不同市场的应用情况。 1.1 ARM公司 ARM第一种意思是指ARM公司。 ARM公司成立于1990年,是一家英国半导体设计公司,总部位于

    2023年04月10日
    浏览(47)
  • 一文了解OpenAi的发展历史

    OpenAI是一家人工智能研究机构,成立于2015年,总部位于美国加州旧金山。它的目标是促进人工智能的发展,使其成为人类最重要的技术之一,并为全球公众带来积极的社会影响。下面是OpenAI的发展历史: 2015年,Elon Musk、Sam Altman等数位企业家、投资人联合创立了OpenAI,以研究

    2024年03月13日
    浏览(50)
  • HTTP 第二章 发展历史

    HTTP(HyperText Transfer Protocol )是万维网(World Wide Web)的基础协议。 1989 年,当时在 CERN 工作的 Tim Berners-Lee 博士写了一份关于建立一个通过网络传输超文本系统的报告。这个系统起初被命名为 Mesh 。 Tim Berners-Lee 对于 Web 的最初设想不是一个只读媒体,是可以远程添加或移动文

    2024年01月22日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包