首页 > 其他分享 >第十五期 03 Stable Diffusion模型

第十五期 03 Stable Diffusion模型

时间:2024-08-26 10:53:28浏览次数:14  
标签:Diffusion 03 模型 Stable 生成 图像 文本

一:Transformer

Transformer是来自 NLP 领域的非常著名的模型方法。Transformer在语言建模和构建对话式 AI 工具方面取得了巨大成功。 在视觉应用中,Transformer 表现出了泛化和自适应的优势,这使得它们非常适合通用学习。 它们比其他技术能够更好地捕捉文本甚至图像中的语义结构。 然而,Transformers 需要大量数据,并且与其他方法相比,在许多视觉领域的性能方面也面临着瓶颈期。 Transformer可以与扩散模型结合,通过Transformer的“词嵌入”可以将文本插入到模型中。这意味着将词Token化后,然后将这种文本表示添加到U-Net的输入(图像)中,经过每一层U-Net神经网络与图像一起进行变换。从第一次迭代开始到之后的每一次迭代都加入相同的文本,从而让文本“作为指南”生成图像,从有完整噪声的第一次迭代开始,然后进一步向下应用到整个迭代

二:Latent Diffusion模型

Latent Diffusion模型不直接在操作图像,而是在潜在空间中进行操作。通过将原始数据编码到更小的空间中,让U-Net可以在低维表示上添加和删除噪声。

(一)潜在空间(Lantent Space)

潜在空间简单的说是对压缩数据的表示,所谓压缩指的是用比原始表示更小的数位来编码信息的过程。比如我们用一个颜色通道(黑白灰)来表示原来由RGB三原色构成的图片,此时每个像素点的颜色向量由3维变成了1维度。维度降低会丢失一部分信息,然而在某些情况下,降维不是件坏事。通过降维我们可以过滤掉一些不太重要的信息你,只保留最重要的信息

(二)“潜在扩散模型”(Latent Diffusion Model)

将GAN的感知能力、扩散模型的细节保存能力和Transformer的语义能力三者结合,创造出更稳健和高效的生成模型。与其他方法相比,Latent Diffusion不仅节省了内存,而且生成的图像保持了多样性和高细节度,同时图像还保留了数据的语义结构。而基于Latent的扩散模型可以将这些过程压缩在低维的Latent隐空间,这样一来大大降低了显存占用和计算复杂度,这是常规扩散模型和基于Latent的扩散模型之间的主要区别,也是SD模型火爆出圈的关键一招

三:Stable Diffusion模型

传统的扩散模型(如DDPM)的做法是在像素空间预测预测噪声图noise_t,输入是每一步的图片image_t和代表step的Time embedding,然后在图片image_t上减去模型预测的噪声noise_t,得到image_t-1,如此迭代N步,即可得到可识别的图片。

(一)Stable Diffusion算法原理

由于直接在图像上做diffusion的搜索空间太大,导致模型生成速度慢,且生成图像不可控,所以Latent Diffusion Model通过引入Cross Attention和隐空间机制,提升了模型的效率和可控性。Stable Diffusion(后文简称SD)是在LDM基础上,研发的一个文生图模型。由于SD的图片效果好、开源性强(模型、训练数据均开源),参数量小(仅1B左右,可以用消费级显卡调用),由此形成了良好的社区生态,推动了AIGC社区的蓬勃发展。 https://segmentfault.com/a/1190000043330934#item-7 训练数据里面既包含了图片描述和图像信息,相互训练

Stable diffusion从文本生成图像的流程如下所示:

  1. Stable Diffusion在潜空间中生成随机张量。可以通过设置随 机数生成器的来控制此张量。如果将种子设置为某个值,获得 相同的随机张量。
  2. 网络 U-Net 将潜在噪声图像和文本提示作为输入,并预测噪 声,也在潜在空间(4x64x64 张量)中。
  3. 从潜在图像中减去潜在噪声。这将成为新潜在图像。
  4. 步骤 2 和 3 重复一定数量的采样步骤,例如 20 次
  5. 最后,VAE的解码器将潜在图像转换回像素空间,这是运行 Stable Diffusion后获得的图像。

(二)文生图

推理步骤:
  • 输入text用text encoder提取text embeddings
  • 同时初始化一个随机噪音noise(latent上的,512x512图像对应的noise维度为64x64x4)
  • 将text embeddings和noise送入扩散模型UNet中生成去噪后的latent
  • 送入autoencoder的decoder模块得到生成的图像

(三)图生图

推理步骤:初始图像经过autoencoder编码之后的latent加高斯噪音得到,其余步骤与文生图一致

四:结合LLM、LangChain的使用

Stable Diffusion是一种基于Diffusion模型的生成模型,通过逐步引入噪声来从随机状态生成数据。在图像生成方面,Stable Diffusion可以从无到有地创造出逼真的图片。 然而,仅仅依靠Stable Diffusion还不足以实现完全自动化的图像生成。这时,LangChain的角色就变得至关重要。LangChain是一种用于微调语言模型的框架,特别适用于调整生成模型的输出。通过使用LangChain,我们可以训练模型根据特定任务调整文本的生成,从而更好地满足我们的需求。 最后,LLM在控制整个流程中起着指挥棒的作用。LLM,如GPT系列模型,具有强大的理解和生成自然语言的能力。通过使用LLM,我们可以将具体的指令或主题转化为可被Stable Diffusion和LangChain理解的文本

那么,如何将这些技术结合起来呢?

  1. 首先,我们需要使用LLM生成一个描述图片内容的文本指令。这个指令可以是任何形式的语言,例如“一只坐在篮子里的红色小猫”。
  2. 然后,这个文本指令被输入到LangChain中进行微调。LangChain可以根据上下文或其他特定要求调整文本的生成,确保生成的文本与原始指令(给SD使用的指令)保持一致,同时更符合我们的期望。
  3. 最后,微调后的文本被输入到Stable Diffusion中,转化为逼真的图片。
这种结合的优势在于其自动化程度和灵活性。通过使用LLM和LangChain,我们可以轻松地调整生成的图片内容、风格和质量。此外,由于所有这些步骤都可以通过文本指令进行控制,因此这种技术可以广泛应用于各种场景,如艺术创作、产品设计、虚拟现实等。     https://segmentfault.com/a/1190000043330934 <iframe style="display: none !important"></iframe>

标签:Diffusion,03,模型,Stable,生成,图像,文本
From: https://www.cnblogs.com/ssyfj/p/18380576

相关文章

  • [oeasy]python031_[趣味拓展]unix起源_Ken_Tompson_Ritchie_multics
    [趣味拓展]unix起源_Ken_Tompson_Ritchie_multics......
  • CF2003F 解题报告
    题目描述现在有三个长度为\(n\)的序列\(a,b,c\)。你需要提取一个子序列\(p_1,p_2,\dots,p_m\),满足如下条件:\(\foralli\in(1,m],p_i>p_{i-1}\)。\(\foralli\in(1,m],a_i\geqa_{i-1}\)。\(b_{p_1},b_{p_2},\dots,b_{p_m}\)是互不相同的。在此基础上最大化......
  • Chapter 03 Vue指令(下)
    欢迎大家订阅【Vue2+Vue3】入门到实践专栏,开启你的Vue学习之旅!文章目录前言一、v-on指令二、v-for指令三、v-bind指令四、v-model指令前言在Vue.js中,指令是带有v-前缀的特殊属性,不同属性对应不同的功能。通过学习不同的指令,我们能够灵活应对多种业务场景......
  • 题解:CF70D Professor's task
    题意实现以下两种操作:往点集\(S\)中添加一个点\((x,y)\)。询问点\((x,y)\)是否在点集\(S\)的凸包中。分析动态凸包板子。建议先完成P2521[HAOI2011]防线修建。上题维护的是上半个凸包,本题维护上下两个。将凸包中的点按\(x\)排序,通过\((x,y)\)前驱......
  • 5分钟 Stable Diffusion 本地安装
    5分钟StableDiffusion本地安装5分钟StableDiffusion本地安装1.引言1.1什么是StableDiffusion?1.2本地安装的优势2.准备工作2.1系统要求2.2推荐硬件配置2.3软件依赖3.安装步骤3.1下载StableDiffusion3.2安装Python环境3.3安装必要的Python库3.4配置......
  • POLIR-Society-Organization-真实社政: 人性{黑、白、灰}: + 管理Strategy的(整体/组织
    手机实名制+虚拟卡号手机实名制防止电诈减少犯罪发生;虚拟卡号确实有正面意义与负面意义正面意义:"虚拟号"的政策本身是好的没问题的;例如,社会性的研究;即使“不法分子”使用“虚拟号”诈骗犯罪,群众的“警惕性”更高更易察觉;因为:“虚拟号段”已经“预先分类”过,筛选......
  • [C++ Error] f0202.cpp(13): E2268 Call to undefined function 'system'
    system('pause');解决方法,修改代码:system("pause");[C++Error]f0202.cpp(13):E2268Calltoundefinedfunction'system'错误解释:这个错误表明您在C++代码中尝试调用了一个未定义的函数system。system函数是C标准库中的函数,用于执行一个字符串中给出的命令。在C++中,......
  • 基于STM32F103的FreeRTOS系列(十一)·信号量·二值信号量与计数信号量详细使用以及移植
    目录1. 信号量简介1.1 同步和互斥1.1.1 同步1.1.2 互斥1.1.3 总结1.2 分类1.2.1 二值信号量1.2.2 计数信号量1.2.3 互斥信号量1.2.4 递归信号量2. 信号量控制块3. 常用信号量API函数3.1 创建信号量函数3.1.1 创建二值信号量 xSe......
  • 题解:P10358 [PA2024] Obrazy
    题解:P10358[PA2024]Obrazy题目传送门即当最小的画框都不可能覆盖整个矩形墙面时,输出−1。[PA2024]Obrazy题目背景PA20243C题目描述题目译自PA2024Runda3Obrazy,感谢Macaronlin提供翻译给定尺寸为$h\timesw$的矩形墙面,以及$n$种尺寸的正方形画框,每种尺寸......
  • 2038-01-19 11:14:07
    2038年1月19日星期二我走进齐州第〇中学,开始我人生的第4997天。寒风刺骨,我坐在初二(10)班的教室内瑟瑟发抖。上完了语文、英语、物理课,全班来到信息教室。“什么时候能吃饭啊”我在电脑面前想。正在我想的时候,突然2036年8月17日星期日今天我收获了第100个......