stable diffusion简介和原理

news2024/10/5 13:03:18

Stable Diffusion中文的意思是稳定扩散,本质上是基于AI的图像扩散生成模型。
Stable Diffusion是一个引人注目的深度学习模型,它使用潜在扩散过程来生成图像,允许模型在生成图像时考虑到文本的描述。这个模型的出现引起了广泛的关注和讨论,不仅因为它在技术上的创新,还因为它在应用领域的广泛适用性。本文将详细介绍Stable Diffusion的背景、技术原理、应用场景以及其优缺点。

stable-diffusion

一、背景介绍

随着深度学习技术的不断发展,文本到图像生成已经成为了研究的热点领域。过去几年中,出现了许多文本到图像的生成模型,如GANs、VQ-VAE等。这些模型在生成图像时,通常需要使用大量的数据和计算资源,并且生成的图像质量也参差不齐。因此,开发一种更加稳定、高效且能够生成高质量图像的文本到图像生成模型成为了当务之急。

在这个背景下,Stable Diffusion应运而生。该模型由CompVis、Stability AI和LAION的研究人员和工程师共同开发,于2022年发布。与其他文本到图像生成模型相比,Stable Diffusion具有更高的稳定性和生成质量,同时使用了一种创新的潜在扩散过程来生成图像。

在这里插入图片描述

图1 stable diffusion绘画例子

二、技术原理

Stable Diffusion 技术,作为 Diffusion 改进版本,通过引入隐向量空间来解决 Diffusion 速度瓶颈,除了可专门用于文生图任务,还可以用于图生图、特定角色刻画,甚至是超分或者上色任务。作为一篇基础原理介绍,这里着重解析最常用的“文生图(text to image)”为主线,介绍 stable diffusion 计算思路以及分析各个重要的组成模块。

下图是一个基本的文生图流程,把中间的 Stable Diffusion 结构看成一个黑盒,那黑盒输入是一个文本串“paradise(天堂)、cosmic(广阔的)、beach(海滩)”,利用这项技术,输出了最右边符合输入要求的生成图片,图中产生了蓝天白云和一望无际的广阔海滩。

在这里插入图片描述

图2 Stable Diffusion组成

Stable Diffusion 的核心思想是,由于每张图片满足一定规律分布,利用文本中包含的这些分布信息作为指导,把一张纯噪声的图片逐步去噪,生成一张跟文本信息匹配的图片。它其实是一个比较组合的系统,里面包含了多个模型子模块,接下来把黑盒进行一步步拆解。stable diffusion 最直接的问题是,如何把人类输入的文字串转换成机器能理解的数字信息。这里就用到了文本编码器 text encoder(蓝色模块),可以把文字转换成计算机能理解的某种数学表示,它的输入是文字串,输出是一系列具有输入文字信息的语义向量。有了这个语义向量,就可以作为后续图片生成器 image generator(粉黄组合框)的一个控制输入,这也是 stable diffusion 技术的核心模块。图片生成器,可以分成两个子模块(粉色模块+黄色模块)来介绍。下面介绍下 stable diffusion 运行时用的主要模块:

(1) 文本编码器(蓝色模块),功能是把文字转换成计算机能理解的某种数学表示,在第三部分会介绍文本编码器是怎么训练和如何理解文字,暂时只需要了解文本编码器用的是 CLIP 模型,它的输入是文字串,输出是一系列包含文字信息的语义向量。

(2) 图片信息生成器(粉色模块),是 stable diffusion 和 diffusion 模型的区别所在,也是性能提升的关键,有两点区别:

② Diffusion 模型一般都是直接生成图片,不会有中间生成低维向量的过程,需要更大计算量,在计算速度和资源利用上都比不过 stable diffusion;

那低维空间向量是如何生成的?是在图片信息生成器里由一个 Unet 网络和一个采样器算法共同完成,在 Unet 网络中一步步执行生成过程,采样器算法控制图片生成速度,下面会在第三部分详细介绍这两个模块。Stable Diffusion 采样推理时,生成迭代大约要重复 30~50 次,低维空间变量在迭代过程中从纯噪声不断变成包含丰富语义信息的向量,图片信息生成器里的循环标志也代表着多次迭代过程。

(3) 图片解码器(黄色模块),输入为图片信息生成器的低维空间向量(粉色 4*4 方格),通过升维放大可得到一张完整图片。由于输入到图片信息生成器时做了降维,因此需要增加升维模块。这个模块只在最后阶段进行一次推理,也是获得一张生成图片的最终步骤。

那扩散过程发生了什么?

扩散过程发生在图片信息生成器中,把初始纯噪声隐变量输入到 Unet 网络后结合语义控制向量,重复 30~50 次来不断去除纯噪声隐变量中的噪声,并持续向隐向量中注入语义信息,就可以得到一个具有丰富语义信息的隐空间向量(右下图深粉方格)。采样器负责统筹整个去噪过程,按照设计模式在去噪不同阶段中动态调整 Unet 去噪强度。
更直观看一下,如图 3 所示,通过把初始纯噪声向量和最终去噪后的隐向量都输到后面的图片解码器,观察输出图片区别。从下图可以看出,纯噪声向量由于本身没有任何有效信息,解码出来的图片也是纯噪声;而迭代 50 次去噪后的隐向量已经耦合了语义信息,解码出来也是一张包含语义信息的有效图片。
在这里插入图片描述

图3 可视化输出图片变化

到这里,我们大致介绍了 Stable Diffusion 是什么以及各个模块思路,并且简单介绍了 stable diffusion 的扩散过程。第三部分我们继续分析各个重要组成模块的运行机制,更深入理解 Stable Diffusion 工作原理。

github开源地址

三、应用场景

Stable Diffusion具有广泛的应用场景。首先,它可以应用于文本生成图像领域。通过输入一段文字描述,Stable Diffusion可以生成一张符合描述的清晰图像。这种应用场景非常适合于创意设计、艺术创作等领域。例如,设计师可以通过文字描述来设计一张海报或者服装图案,然后使用Stable Diffusion来生成符合描述的图像。

其次,Stable Diffusion还可以应用于图像修复、超分辨率重建等领域。在这些领域中,Stable Diffusion可以通过对图像进行编码和解码来修复图像中的缺陷或者提高图像的分辨率。这种应用场景非常适合于数字图像处理、计算机视觉等领域。

此外,Stable Diffusion还可以应用于视频制作、游戏设计等领域。在这些领域中,可以使用Stable Diffusion来生成视频中的动态图像或者游戏中的场景和角色。这种应用场景非常适合于影视制作和游戏开发等领域。

github开源地址 https://github.com/CompVis/stable-diffusion

stable-diffusion-ui

由于Stable Diffusion只是针对开发者的程序,需要通过接口或者命令程序去使用生成图片,对普通人非常不友好,所有一款面向普通人UIweb应用出现了,它就是开源项目stable-diffusion-ui。
Stable Diffusion Web UI是一个基于Stable Diffusion模型的应用程序接口,它利用gradio模块搭建出交互程序,可以在低代码GUI中立即访问Stable Diffusion。Stable Diffusion是一个画像生成AI,能够模拟和重建几乎任何可以以视觉形式想象的概念,而无需文本提示输入之外的任何指导。

Stable Diffusion Web UI提供了多种功能,如txt2img、img2img、inpaint等,还包含了许多模型融合改进、图片质量修复等附加升级。用户可以通过调节不同参数生成不同效果,根据自己的需要和喜好进行创作。在界面Extras(更多)中,用户可以找到优化(清晰、扩展)图像的功能;在Settings中,用户可以修改默认参数。
在这里插入图片描述

Stable Diffusion web UI GitHub 地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui

Midjourney和Stable Diffusion

作为目前市场两个主流的AI绘画工具,简单介绍一下他们的共同点和不同点,还有各自的优缺点。

共同点和不同点

Midjourney和Stable Diffusion都是AI绘画工具,它们有一些共同点,但也有很多不同之处。

共同点

  • 都是基于AI技术的绘画工具。
  • 都可以通过输入文字或文本提示来生成图像。
  • 都可以用于创作各种类型的艺术作品,包括插画、漫画、摄影、设计等。

不同点

  • 生成图像的算法不同:Midjourney主要使用的是扩散模型(diffusion model),而Stable Diffusion则基于Latent Diffusion Model(LDM)。
  • 使用的技术栈不同:Midjourney使用了DALL·E模型,而Stable Diffusion则使用了CLIP ViT-L/14文本编码器。
  • 输出图像的质量不同:Midjourney的输出图像质量相对较高,而Stable Diffusion的输出图像质量相对较低。
  • 使用难度不同:Midjourney的使用难度相对较高,需要一定的学习和实践才能掌握,而Stable Diffusion则相对较容易上手。
  • 功能不同:Midjourney具有更多的功能和插件,可以用于创作各种类型的艺术作品,而Stable Diffusion则主要专注于图像生成。
  • 总的来说,Midjourney和Stable Diffusion都是非常优秀的AI绘画工具,它们各有所长,可以根据自己的需求选择合适的工具进行创作。

优缺点

Midjourney的优点

  • 输出图像质量高
  • 功能丰富:Midjourney具有较多的功能和插件,可以用于创作各种类型的艺术作品,例如插画、漫画、摄影、设计等。
  • 支持多种输入方式:Midjourney支持输入文字、图像、视频等多种形式的输入,方便用户进行创作。

Midjourney的缺点:

  • 使用难度较高
  • 需要科学上网
  • 需要付费

Stable Diffusion的优点:

  • 稳定性好
  • 细节表现好
  • 对硬件要求较低:Stable Diffusion对硬件的要求较低,可以在普通的PC上运行。
  • 免费本地使用

Stable Diffusion的缺点

  • 输出图像质量不稳定:Stable Diffusion的输出图像质量有时会不稳定,需要一定的实践和调整才能得到满意的图像。
  • 功能相对较少:Stable Diffusion的功能相对较少,主要专注于图像生成,不如Midjourney那样具有较多的功能和插件。

总的来说,Midjourney和Stable Diffusion都是非常优秀的AI绘画工具,它们各有所长,可以根据自己的需求选择合适的工具进行创作。
Midjourney具有较高的输出图像质量和丰富的功能,但使用难度较高且对硬件要求较高;而Stable Diffusion具有较好的稳定性和细节表现力,但对训练数据要求较高且功能相对较少。

总结

Stable Diffusion是一个引人注目的文本到图像生成模型,具有广泛的应用前景和潜在的发展空间。该模型使用潜在扩散过程来生成图像,具有很高的生成质量和稳定性。它可以应用于文本生成图像、图像修复、超分辨率重建等多个领域,并且具有开源的预训练模型方便用户使用。然而,由于潜在扩散过程的复杂性以及数据和计算资源的限制,Stable Diffusion仍然存在一些挑战和问题需要进一步研究和解决。

后续会讲解Stable Diffusion web UI的安装和使用,教你如何使用Stable Diffusion制作出,你想要它制作的图片!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1136941.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 算法高级篇:回溯算法的优化与剪枝技巧

Python 算法高级篇:回溯算法的优化与剪枝技巧 引言 1. 什么是回溯算法?2. 回溯算法的优化与剪枝技巧2.1 剪枝技巧2.1.1 可行性剪枝2.1.2 最优性剪枝 2.2 优化方法 2.2.1 记忆化搜索2.2.2 双向搜索 3. 代码示例3.1 旅行推销员问题 4. 总结 引言 回溯算法…

Windows下如何编译FFmpeg

ffmpeg一般在linux环境中使用,但是我们目前很多的开发工具是windows,为了方便在windows下调试和使用ffmpeg,我们需要再windows下面编译和使用ffpeg,本文只讲述windows下如何编译ffmpeg的内容。   windows下编译ffmpeg有很多的方…

「Dr. Bomkus 的试炼」——最详尽的通关资讯!

🧪 Dr. Bomkus 的试炼:新的冒险来临 天才科学家Dr. Bomkus一直在不知疲倦地打造他的最新作品。但是遇到了一些问题!现在,他需要你的帮助。 为了找到真正的有价值之人,Dr. Bomkus准备了六场试炼。这一系列令人激动的挑战…

VR全景餐厅,为餐饮老板开启了新纪元

在近两年的“元宇宙”概念的催生下,VR全景技术逐渐渗透到我们生活的方方面面,从舌尖到指尖、从田间到车间、从衣食住行到娱乐消费等,越来越多的行业、领域开始引入VR全景了,并在各自的垂直领域开拓了VR全景新时代。 而一直以来&am…

VBA技术资料MF73:将Logo添加到页眉侧

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…

SENet 学习

ILSVRC 是一个比赛,全称是ImageNet Large-Scale Visual Recognition Challenge,平常说的ImageNet比赛指的是这个比赛。 使用的数据集是ImageNet数据集的一个子集,一般说的ImageNet(数据集)实际上指的是ImageNet的这个子…

解决javascript报错:SyntaxError: Invalid Unicode escape sequence

在处理cookie时报这个错: 网上搜了一圈都说是反斜杠问题,要把\替换成/ 但是试了网上的replace替换: replace(/\\/g, /) 结果没有用!!! 然后我干脆直接做了一个最简单字符串赋值,再打印出来。…

GZ035 5G组网与运维赛题第2套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项(高职组) 赛题第2套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通(35分) 子任务1:5G公共网络部署与调试(15分) 子任务2:5G室内与室外站点建设(20分) 竞赛模块2--5G公共网络运维与优化(…

ROS学习笔记——配置环境变量

重点解决:避免每次都source ros2环境,每次都要设置ros_domain_id等等设置 Background ROS 2 relies on the notion of combining workspaces using the shell environment. ros2 依赖于“组合工作区”这个改变,使用shell 环境来实现 …

中央设备状态监控系统CMS如何帮助半导体晶圆厂提高产品良率

中央设备状态监控系统(CMS)在半导体晶圆厂中扮演着关键角色,帮助企业提高产品的良率。本文将介绍CMS是什么、当前半导体晶圆厂产品良率面临的挑战,并重点探讨CMS如何通过实时数据监控、故障预测和预警、以及统计分析和过程改进等方…

Linux之VM、WindowsServer安装及开发环境配置

目录 前言 一、操作系统简介 1. 基本概述 1.2 常见的操作系统 1.3 个人版本与服务器版本的区别 1.4 Linux的各个版本 Debian Ubuntu Redhat Fedora centos 二、安装并配置VMWare虚拟机 1. 安装 2. 激活VM虚拟机软件 3. 使用注意事项 3.1 注意点一:配置…

设计大师都在用!电商设计素材网站大公开

双十一即将到来,想必各电商平台的设计师早已开启电商设计项目。找到合适的电商设计模板是电商设计成功的关键因素。高质量的电商设计模板素材不仅能够提升网站的吸引力,还能提升用户体验,从而增加商品的交易率。 Pixso资源社区 在寻找电商设计…

【LeetCode】102. 二叉树的层序遍历

题目链接 文章目录 Python3方法一: 广度优先搜索 (BFS) ⟮ O ( n ) ⟯ \lgroup O(n) \rgroup ⟮O(n)⟯方法二: 深度优先搜索 (DFS) ⟮ O ( n ) ⟯ \lgroup O(n) \rgroup ⟮O(n)⟯ C方法一: 广度优先搜索 (BFS) ⟮ O ( n ) ⟯ \lgroup O(n…

arch linux 安装 vsftpd 配置虚拟用户

后面操作会直接基于 yay 操作 自行查找如何安装 yay 公司经常会用到 ftp 服务 不想用 apache 的 ftp server 所以自己在小机器上撞了 arch linux 用来安装软件 跑程序等。 1. 安装 vsftpd yay vsftpd --noconfirm选择 1 安装 输入密码 2. 安装 pam_pwdfile 安装 pam_pwdf…

走近Nexstar Digital,看美国百家电视台内容管理的齿轮如何运转?

美国五大电视网之一的CW电视台,是《邪恶力量》《吸血鬼日记》等热播剧的产地,最终在2022年被Nexstar收入囊中。 Nexstar Media Group是全球领先的多元化媒体公司之一,也是美国最大的地方广播电视集团之一,活跃于美国116个市场&am…

HCIA数据通信——交换机(Vlan间的通信与安全)

前言 之前的提到了交换机的概念和实验。不过交换机的一些功能还没有说完,我们的实验也仅仅是阻止相同地址段的IP地址互通,也没有用到子接口和路由器。显然,那样的配置过于简单。 端口安全 Port Security(端口安全)的功…

DeepSpeed: 大模型训练框架 | 京东云技术团队

背景: 目前,大模型的发展已经非常火热,关于大模型的训练、微调也是各个公司重点关注方向。但是大模型训练的痛点是模型参数过大,动辄上百亿,如果单靠单个GPU来完成训练基本不可能。所以需要多卡或者分布式训练来完成这…

使用性能监控软件的主要措施

性能监控软件是管理和维护计算机系统的不可或缺的工具。它们提供了实时性能数据,帮助用户优化资源利用、提高系统稳定性和提供更好的用户体验。选择合适的性能监控软件并正确使用它们可以帮助你在竞争激烈的数字时代脱颖而出,确保你的系统始终在最佳状态…

腾讯云国际-如何使用对象存储COS在 CKafka 控制台创建数据异步拉取任务?腾讯云代充

操作场景 Datahub 支持接入各种数据源产生的不同类型的数据,统一管理,再分发给下游的离线/在线处理平台,构建清晰的数据通道。 本文以 COS 数据为例介绍如何在 CKafka 控制台创建数据异步拉取任务,并对任务进行修改配置&#xf…

【国科方案】设置引脚复用、方向和输入输出

【国科方案】设置引脚复用、方向和输入输出 文章目录 【国科方案】设置引脚复用、方向和输入输出前言一、复用、方向和数据二、总结 前言 记录在工作中调试国科方案芯片引脚复用等功能。不同的方案厂家引脚的处理是不一样的,下面就详细介绍一下国科方案引脚的使用。…