十分钟读懂Stable Diffusion
网络知识 2023-06-05 16:24www.1681989.comseo网站推广
由于Diffusion在反向扩散过程中需要把完整尺寸的图片输入到U-Net,使得速度非常慢,目前应用最广的并不是Diffusion,而实其改进版Stable Diffusion。接下来我们介绍Stable Diffusion是如何根据文字生成图像的,相比Diffusion做了哪些优化。由于Stable Diffusion里面有关扩散过程的描述,描述方法有很多版本,比如前向过程也可以叫加噪过程,为了便于理解,这里把各种描述统一说明一下。
Diffusion扩散模型文章里面所有出现Diffusion扩散模型的地方,都是指2020年提出的DDPM模型DDPM: Denoisg Diffusion Probabilistic Models
前向扩散过程、加噪过程(含义一样,下同)
反向扩散过程、去噪过程、图片生成过程、Samplg
单轮去噪过程、单轮U-Net过程、单轮反向扩散过程
开源的Stable Diffusion
目前AI绘画最火的当属Midjorney和Stable Diffusion,由于Midjourney没有开源,我们主要分享下Stable Diffusion,后面我们会补充介绍下Midjourney。
公开资料显示,Stable Diffusion是StabilityAI公司于2022年提出的,论文和代码都已开源。StabilityAI在10月28日完成了1.01亿美元的融资,目前估值已经超过10亿美元。
大家可以去Stable Diffusion Onle这个网站体验一下Stable Diffusion,我们输入文本“’A sunset over a mounta range, vector image”(山脉上的日落),看一下效果
Stable Diffusion绘画
在了解应用后,接下来我们介绍下Stable Diffusion。主要还是通过图解的方式,避免大量公式推导,看起来费劲。
1. Stable Diffusion文字生成图片过程
Stable Diffusion其实是Diffusion的改进版本,主要是为了解决Diffusion的速度问题。那么Stable Diffusion是如何根据文字得出图片的呢?下图是Stable Diffusion生成图片的具体过程
可以看到,对于输入的文字(图中的“An astronout ridg a horse”)会经过一个CLIP模型转化为text embeddg,然后和初始图像(初始化使用随机高斯噪声Gaussian Noise)一起输入去噪模块(也就是图中Text conditioned latent U-Net),输出 大小的图片。在文章(绝密伏击十分钟读懂Diffusion图解Diffusion扩散模型)中,我们已经知道了CLIP模型和U-Net模型的大致原理,这里面关键是Text conditioned latent U-,翻译过来就是文本条件隐U-网络,其实是通过对U-Net引入多头Attention机制,使得输入文本和图像相关联,后面我们重点讲讲这一块是怎么做的。
2. Stable Diffusion的改进一图像压缩
Stable Diffusion原来的名字叫“Latent Diffusion Model”(LDM),很明显就是扩散过程发生隐空间中(latent space),其实就是对图片做了压缩,这也是Stable Diffusion比Diffusion速度快的原因。
自编码器(Autoencoder)
Stable Diffusion会先训练一个自编码器,来学习将图像压缩成低维表示。
通过训练好的编码器 ,可以将原始大小的图像压缩成低维的latent data(图像压缩)
通过训练好的解码器 ,可以将latent data还原为原始大小的图像
在将图像压缩成latent data后,便可以在latent space中完成扩散过程,对比下和Diffusion扩散过程的区别,如下图所示
Diffusion扩散过程和Stable Diffusion扩散过程的对比
可以看到Diffusion扩散模型就是在原图 上进行的操作,而Stale Diffusion是在压缩后的图像 上进行操作。
Stable Diffusion的前向扩散过程和Diffusion扩散模型基本没啥区别,只是多了一个图像压缩,只是反向扩散过程二者之前还是有区别。
3. Stable Diffusion的改进二反向扩散过程
在第一节我们已经简单介绍过Stable Diffusion文字生成图片的过程,这里我们扩展下,看一下里面的细节,如下图所示
支持文本输入的反向扩散过程
上图从右至左,输入的文字是“Pairs milky way”(银河系的巴黎),经过CLIP模型 转为Text embeddg,然后和初始图像(噪声向量 )、Time step向量 ,一起输入Diffusion模块(多轮去噪过程),将输出的图像 经过解码器 后,生成最终的图像。
Stable Diffusion在反向扩散过程中其实谈不上改进,只是支持了文本的输入,对U-Net的结构做了修改,使得每一轮去噪过程中文本和图像相关联。在上一篇文章(绝密伏击十分钟读懂Diffusion图解Diffusion扩散模型)中,我们在介绍使用Diffusion扩散模型生成图像时,一开始就已经介绍了在扩散过程中如何支持文本输入,以及如何修改U-Net结构,只是介绍U-Net结构改进的时候,讲的比较粗,感兴趣的可以去看看里面的第一节。下面我们就补充介绍下Stable Diffusion是如何对U-Net结构做修改,从而更好的处理输入文本。
3.1 反向扩散细节单轮去噪U-Net引入多头Attention(改进U-Net结构)
我们先看一下反向扩散的整体结构,如下图所示
反向扩散过程的整体结构
从上图可以看出,反向扩散过程中输入文本和初始图像 需要经过 轮的U-Net网络( 轮去噪过程),得到输出 ,解码后便可以得到最终图像。由于要处理文本向量,必然要对U-Net网络进行调整,这样才能使得文本和图像相关联。下图是单轮的去噪过程
单轮去噪过程
上图的最左边里面的Semantic Map、Text、Representations、Images稍微不好理解,这是Stable Diffusion处理不同任务的通用框架
Semantic Map表示处理的是通过语义生成图像的任务
Text表示的就是文字生成图像的任务
Representations表示的是通过语言描述生成图像
Images表示的是根据图像生成图像
这里我们只考虑输入是Text,会通过模型CLIP模型生成文本向量,然后输入到U-Net网络中的多头Attention(Q, K, V)。
这里补充一下多头Attention(Q, K, V)是怎么工作的,我们就以右边的第一个Attention(Q, K, V)为例。
其中可以看到每一轮去噪过程中,文本向量会和当前图像计算相关性。
Stable Diffusion完整结构
我们来看一下Stable Diffusion完整结构,包含文本向量表示、初始图像(随机高斯噪声)、时间embeddg,如下图所示
Stable Diffusion完整结构
上图详细的展示了Stable Diffusion前向扩散和反向扩散的整个过程,我们再看一下不处理输入文字,只是单纯生成任意图像的Diffusion结构。
不输入文字,单纯生成任意图像的Diffusion结构
可以看到,不处理文字输入,生成任意图像的Diffusion模型,和Stable Diffusion相比,主要有两个地方不一样
少了对输入文字的embeddg过程(少了编码器 、解码器 )
U-Net网络少了多头Attention结构
除了Stable Diffusion之外,Midjourney最近也非常出圈,我们简单介绍下。
爆火的Midjourney
Midjourney是一款AI绘图工具,其创始人是David Holz。目前Midjourney每月的收入大概超过200万美元,用户可以通过Discord平台的newbie频道使用。Discord平台是一款游戏聊天平台,月活超过1.5亿,其中使用Midjounery的用户数已突破380万。2021年初,Discord拒绝了微软120亿美元的收购要约。本质上Discord是一个社区,Midjourney通过在Discord上创建了自己的服务器,并创建了大量的频道,以及开发了自己的机器人,来向用户提供服务。
Midjourney首页
用户可以在Midjourney首页里点击“Jo the Beta”,直接会跳转到它们在Discord上的频道。
点击“Jo the Beta”跳转到Midjorney
可以看到上图中显示用户数是381万,当前在线30万。用户使用Midjorney也非常简单,只需要点击主页左下方的newbie频道便可进入。
通过newbie频道进入Midjourney
进入newbie频道后,便可以通过/image+提示词,让Midjourney生成图片
Midjourney文字生成图片
可以看到在输入“sunshe black hold”后生成了四张图片。
由于目前Midjourney并没有开源,我们并不知道其背后的技术,大概率还是基于Diffusion扩散模型。随着AIGC的爆火,各种应用开始不断出现,AI绘画便是其中的一个典型案例。目前最火的AI绘画模型当属Stable Diffusion,目前有关Stable Diffusion的文章并不多,主要偏向应用介绍,对于如何处理输入文字以及去噪过程的具体细节,这方面的文章还是比较少,写这篇文章的目的就是希望能把Stable Diffusion讲清楚,让更多人的了解。
Diffusion扩散模型文章里面所有出现Diffusion扩散模型的地方,都是指2020年提出的DDPM模型DDPM: Denoisg Diffusion Probabilistic Models
前向扩散过程、加噪过程(含义一样,下同)
反向扩散过程、去噪过程、图片生成过程、Samplg
单轮去噪过程、单轮U-Net过程、单轮反向扩散过程
开源的Stable Diffusion
目前AI绘画最火的当属Midjorney和Stable Diffusion,由于Midjourney没有开源,我们主要分享下Stable Diffusion,后面我们会补充介绍下Midjourney。
公开资料显示,Stable Diffusion是StabilityAI公司于2022年提出的,论文和代码都已开源。StabilityAI在10月28日完成了1.01亿美元的融资,目前估值已经超过10亿美元。
大家可以去Stable Diffusion Onle这个网站体验一下Stable Diffusion,我们输入文本“’A sunset over a mounta range, vector image”(山脉上的日落),看一下效果
Stable Diffusion绘画
在了解应用后,接下来我们介绍下Stable Diffusion。主要还是通过图解的方式,避免大量公式推导,看起来费劲。
1. Stable Diffusion文字生成图片过程
Stable Diffusion其实是Diffusion的改进版本,主要是为了解决Diffusion的速度问题。那么Stable Diffusion是如何根据文字得出图片的呢?下图是Stable Diffusion生成图片的具体过程
可以看到,对于输入的文字(图中的“An astronout ridg a horse”)会经过一个CLIP模型转化为text embeddg,然后和初始图像(初始化使用随机高斯噪声Gaussian Noise)一起输入去噪模块(也就是图中Text conditioned latent U-Net),输出 大小的图片。在文章(绝密伏击十分钟读懂Diffusion图解Diffusion扩散模型)中,我们已经知道了CLIP模型和U-Net模型的大致原理,这里面关键是Text conditioned latent U-,翻译过来就是文本条件隐U-网络,其实是通过对U-Net引入多头Attention机制,使得输入文本和图像相关联,后面我们重点讲讲这一块是怎么做的。
2. Stable Diffusion的改进一图像压缩
Stable Diffusion原来的名字叫“Latent Diffusion Model”(LDM),很明显就是扩散过程发生隐空间中(latent space),其实就是对图片做了压缩,这也是Stable Diffusion比Diffusion速度快的原因。
自编码器(Autoencoder)
Stable Diffusion会先训练一个自编码器,来学习将图像压缩成低维表示。
通过训练好的编码器 ,可以将原始大小的图像压缩成低维的latent data(图像压缩)
通过训练好的解码器 ,可以将latent data还原为原始大小的图像
在将图像压缩成latent data后,便可以在latent space中完成扩散过程,对比下和Diffusion扩散过程的区别,如下图所示
Diffusion扩散过程和Stable Diffusion扩散过程的对比
可以看到Diffusion扩散模型就是在原图 上进行的操作,而Stale Diffusion是在压缩后的图像 上进行操作。
Stable Diffusion的前向扩散过程和Diffusion扩散模型基本没啥区别,只是多了一个图像压缩,只是反向扩散过程二者之前还是有区别。
3. Stable Diffusion的改进二反向扩散过程
在第一节我们已经简单介绍过Stable Diffusion文字生成图片的过程,这里我们扩展下,看一下里面的细节,如下图所示
支持文本输入的反向扩散过程
上图从右至左,输入的文字是“Pairs milky way”(银河系的巴黎),经过CLIP模型 转为Text embeddg,然后和初始图像(噪声向量 )、Time step向量 ,一起输入Diffusion模块(多轮去噪过程),将输出的图像 经过解码器 后,生成最终的图像。
Stable Diffusion在反向扩散过程中其实谈不上改进,只是支持了文本的输入,对U-Net的结构做了修改,使得每一轮去噪过程中文本和图像相关联。在上一篇文章(绝密伏击十分钟读懂Diffusion图解Diffusion扩散模型)中,我们在介绍使用Diffusion扩散模型生成图像时,一开始就已经介绍了在扩散过程中如何支持文本输入,以及如何修改U-Net结构,只是介绍U-Net结构改进的时候,讲的比较粗,感兴趣的可以去看看里面的第一节。下面我们就补充介绍下Stable Diffusion是如何对U-Net结构做修改,从而更好的处理输入文本。
3.1 反向扩散细节单轮去噪U-Net引入多头Attention(改进U-Net结构)
我们先看一下反向扩散的整体结构,如下图所示
反向扩散过程的整体结构
从上图可以看出,反向扩散过程中输入文本和初始图像 需要经过 轮的U-Net网络( 轮去噪过程),得到输出 ,解码后便可以得到最终图像。由于要处理文本向量,必然要对U-Net网络进行调整,这样才能使得文本和图像相关联。下图是单轮的去噪过程
单轮去噪过程
上图的最左边里面的Semantic Map、Text、Representations、Images稍微不好理解,这是Stable Diffusion处理不同任务的通用框架
Semantic Map表示处理的是通过语义生成图像的任务
Text表示的就是文字生成图像的任务
Representations表示的是通过语言描述生成图像
Images表示的是根据图像生成图像
这里我们只考虑输入是Text,会通过模型CLIP模型生成文本向量,然后输入到U-Net网络中的多头Attention(Q, K, V)。
这里补充一下多头Attention(Q, K, V)是怎么工作的,我们就以右边的第一个Attention(Q, K, V)为例。
其中可以看到每一轮去噪过程中,文本向量会和当前图像计算相关性。
Stable Diffusion完整结构
我们来看一下Stable Diffusion完整结构,包含文本向量表示、初始图像(随机高斯噪声)、时间embeddg,如下图所示
Stable Diffusion完整结构
上图详细的展示了Stable Diffusion前向扩散和反向扩散的整个过程,我们再看一下不处理输入文字,只是单纯生成任意图像的Diffusion结构。
不输入文字,单纯生成任意图像的Diffusion结构
可以看到,不处理文字输入,生成任意图像的Diffusion模型,和Stable Diffusion相比,主要有两个地方不一样
少了对输入文字的embeddg过程(少了编码器 、解码器 )
U-Net网络少了多头Attention结构
除了Stable Diffusion之外,Midjourney最近也非常出圈,我们简单介绍下。
爆火的Midjourney
Midjourney是一款AI绘图工具,其创始人是David Holz。目前Midjourney每月的收入大概超过200万美元,用户可以通过Discord平台的newbie频道使用。Discord平台是一款游戏聊天平台,月活超过1.5亿,其中使用Midjounery的用户数已突破380万。2021年初,Discord拒绝了微软120亿美元的收购要约。本质上Discord是一个社区,Midjourney通过在Discord上创建了自己的服务器,并创建了大量的频道,以及开发了自己的机器人,来向用户提供服务。
Midjourney首页
用户可以在Midjourney首页里点击“Jo the Beta”,直接会跳转到它们在Discord上的频道。
点击“Jo the Beta”跳转到Midjorney
可以看到上图中显示用户数是381万,当前在线30万。用户使用Midjorney也非常简单,只需要点击主页左下方的newbie频道便可进入。
通过newbie频道进入Midjourney
进入newbie频道后,便可以通过/image+提示词,让Midjourney生成图片
Midjourney文字生成图片
可以看到在输入“sunshe black hold”后生成了四张图片。
由于目前Midjourney并没有开源,我们并不知道其背后的技术,大概率还是基于Diffusion扩散模型。随着AIGC的爆火,各种应用开始不断出现,AI绘画便是其中的一个典型案例。目前最火的AI绘画模型当属Stable Diffusion,目前有关Stable Diffusion的文章并不多,主要偏向应用介绍,对于如何处理输入文字以及去噪过程的具体细节,这方面的文章还是比较少,写这篇文章的目的就是希望能把Stable Diffusion讲清楚,让更多人的了解。
网络推广
- 5g网络有多快:5g网络网速有多快
- dota2无法连接至steam网络 为什么无法连接dota2网络
- 无线网络信号接收器 无线网络信号接收器怎么用
- 网络延时是什么意思 网络延时是什么原因
- 无线网络不可用:无线网络不可用是什么原因
- 网络广告销售技巧 网络广告销售技巧有哪些
- 智能手机网络设置 智能手机网络设置在哪里
- 为什么找不到无线网络 为什么找不到无线网络信
- 网络这么赚钱:网络怎么能赚到钱
- 为什么无线网络连接不上 为什么无线网连不起来
- 网络上的人际交往 网络上人际交往的优势
- 支付宝网络系统异常 支付宝显示网络异常什么时
- 营销软件:营销软件有哪些
- 无法访问您要使用的功能所在的网络位置
- 网络安全基本知识 网络安全基本知识有哪些
- 什么网络电话最好用 什么网络电话最好用最便宜