第十五期 03 Stable Diffusion模型

news/2024/9/20 21:36:41/文章来源:https://www.cnblogs.com/ssyfj/p/18380576

一: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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI Agents有哪些风险?哪些措施可以减少风险?

引言 许多人工智能开发者正在创建具有更高自主性、能够访问外部工具或服务,并在可靠适应、规划和开放式长期行动以实现目标方面能力更强的系统。我们将这类系统视为具有相对较高程度的代理性,并将它们称为(人工智能)代理或具有代理性的系统。相对较低程度的代理性系统仅辅助…

Markdown学习(选做)

一.已掌握 1.基本语法 (1)标题: 使用#符号表示标题,#的数量表示标题的级别,最多支持六级标题。 (2)段落: Markdown使用空行来分隔段落。 (3)强调: 使用 * 或_符号表示强调,一个符号表示斜体,两个符号表示加粗。例如: 斜体 加粗 (4)列表:序号 姓名 年龄 职业1 张三 30…

算法与数据结构——内存与缓存

内存与缓存 数组和链表两种数据结构分别代表了“连续存储”和“分散存储”两种物理结构。实际上,物理结构在很大程度上决定了程序对内存和缓存的使用效率,进而影响算法程序的整体性能。 计算机存储设备 计算机中包括三种类型的存储设备:硬盘(hard disk)、内存(random-acc…

SpringBoot - [07] Web入门

题记部分 一、Web 入门SpringBoot将传统Web开发的mvc、json、tomcat等框架整合,提供了spring-boot-starter-web组件,简化了Web应用配置。创建SpringBoot项目勾选SpringWeb选项后,会自动将spring-boot-starter-web组件加入到项目中。spring-boot-starter-web启动器主要包括w…

k8s~ServiceAccount_ClusterRole_ClusterRoleBinding

apisix的k8s服务发现配置 命名空间权限是基于Kubernetes RBAC能力的授权,通过权限设置可以让不同的用户或用户组拥有操作不同Kubernetes资源的权限。Kubernetes RBAC API定义了四种类型:Role、ClusterRole、RoleBinding与ClusterRoleBinding,这四种类型之间的关系和简要说明…

国产化适配——银河麒麟V10(2)

续上文 三、nignx安装 ng版本是:nginx-1.20.2 链接:https://pan.baidu.com/s/1gVJ_YgD-_gyJ6JL2VxoFhA 提取码:bqf4 版本比较老了,大家可以自己去官网下载最新的版本使用。 官网地址:https://nginx.org/en/download.html 1.挂载镜像 mount -t iso9660 /mnt/tools/Kylin-Se…

nessus使用教程心得

安装教程网络一大堆,这里就不多哔哔。点击查看代码 倒计时发USD不符合萨达办法1.输入你注册的账号密码进行登录,进入主页面。 ![](https://img2024.cnblogs.com/blog/3471184/202408/3471184-20240826102025745-788321108.png)2.点击“New Scan”新建一个扫描。 ![](https://…

Prometheus监控规则推荐网站

Prometheus监控规则推荐网站🔰Prometheus监控规则推荐网站: https://samber.github.io/awesome-prometheus-alerts/

Prometheus监控规则网站

Prometheus监控规则网站🔰Prometheus监控规则推荐网站: https://samber.github.io/awesome-prometheus-alerts/

学习vue3——element插槽

input 带有前缀图标1 <el-input 2 class="inputClass" 3 v-model="form.name" 4 ref="name" 5 placeholder="请输入用户名" 6 clearable 7 > 8 …

[ARC183D] Keep Perfectly Matched

树的重心,匹配My Blogs [ARC183D] Keep Perfectly Matched 这场不打感觉亏麻了,怎么大家都不会 D。首先匹配路径长度之和最大,很典的想到取重心,猜测答案上界 \(\sum_i dep_i\) 可以取到。 取完重心之后,希望不断把两个不同的子树里的点进行匹配,直到删空。因为原树本身存…

触想强固型工业显示器加速海上油气勘探开发

石油作为现代工业发展的主要能源,已成为国际间政治、经济博弈的重要工具。一、行业发展背景过去百年间,人类对陆地油气资源的勘探开发逐渐趋于饱和,而面对持续增长的全球能源需求,海洋勘探已成为当今油气能源角逐的主要“战场”,进一步催生出对先进的自动化海上钻井系统的…