AIGC001-latent-diffusion(SD)第一次让文生图如此生动有趣!

news2025/3/15 11:49:56

AIGC001-latent-diffusion(SD)第一次让文生图如此生动有趣!


文章目录

    • 0 论文工作
    • 1 论文方法
    • 2 效果

0 论文工作

通过将图像形成过程分解为去噪自编码器的连续应用,扩散模型(DMs)实现了对图像数据等方面的最先进的综合结果。这些方法允许一个指导机制来控制图像生成过程,而无需再训练。然而,由于这些模型通常直接在像素空间中运行,因此进行优化功能强大的dm通常会消耗数百天的GPU,而且由于顺序评估,推理是昂贵的。使其能够在有限的计算资源上进行DM培训,同时保持其质量和质量灵活性,本文将它们应用于强大的预训练自动编码器的潜在空间。与以前的工作相比,在这种表示上训练扩散模型允许第一次达到复杂性降低和细节保存之间的一个接近最优的点,大大提高了视觉保真度。通过在模型架构中引入交叉注意层,使得扩散模型成为强大和灵活的生成器,用于一般条件输入,如文本或边界框和高分辨率合成,以卷积的方式成为可能。
简单来说,这篇论文提出了潜扩散模型 (Latent Diffusion Models, LDMs),一种用于高分辨率图像合成的新的生成式模型。LDMs 结合了自编码器和扩散模型的优势,在图像的低维潜空间中执行扩散过程,而不是在高维像素空间中。这种方法显著提高了生成效率和图像质量,并能够生成具有精细细节和逼真纹理的高分辨率图像。此外,LDMs 可以通过引入条件信息来控制生成过程,例如文本描述或类别标签,实现特定类型图像的合成。
相较于当时的同期DALLE系列和IMAGEN系列的策略方法,SD目前成为最受欢迎的底层文生图模型,无论是提升可控的controlnet,T2I-adapter还是定制概念的dreambooth,扩充性能的SDXL实际上都是让sd成为一个更好用的工具。在civitai 等网站可以看到各种玩家训练的sd模型,这是意见很酷的事情。毫无疑问SD是现在免费试用的最好的最核心的文生图模型。但是开源开的好就是不赚钱(题外话)。。。

1 论文方法

在这里插入图片描述
LDMs 主要包含以下三个步骤:
a. 感知压缩:
首先,使用一个变分自编码器 (Variational Autoencoder, VAE) 将高分辨率图像压缩到一个低维的潜空间。VAE 的编码器将图像映射到潜空间中的一个低维向量,而解码器则将潜向量重建为高分辨率图像。
VAE 的训练目标是最大化输入图像的变分下界 (ELBO),这确保了潜空间能够捕捉图像的重要信息,同时去除高频噪声和不必要的细节。
b. 潜空间扩散:
在潜空间中,LDMs 应用一个马尔可夫链来描述扩散过程。该过程从一个随机噪声向量开始,逐步将其转换为有意义的图像表示。
扩散过程由一系列高斯分布组成,每个高斯分布的均值和方差由一个预先定义的时间步长控制。随着时间步长的增加,高斯分布的方差逐渐减小,噪声逐渐被消除,最终得到一个清晰的图像表示。
LDMs 的扩散模型是一个U-Net 架构,它被训练来预测每个时间步长的噪声,从而逆转扩散过程,从噪声中恢复图像表示。
c. 条件生成和高分辨率重建:
为了实现条件图像生成,LDMs 使用交叉注意力机制将条件信息(例如文本描述或类别标签)融入到 U-Net 中。这样,扩散模型可以根据条件信息来引导生成过程,生成符合特定要求的图像。
最后,使用 VAE 的解码器将潜空间中的图像表示重建为高分辨率图像。
2. 优缺点:
优点:
高分辨率: LDMs 能够生成具有精细细节和逼真纹理的高分辨率图像。
高效性: 由于扩散过程在低维潜空间中进行,LDMs 的训练和推理效率更高。
多样性: LDMs 能够生成各种不同风格和内容的图像,表现出很强的多样性。
可控性: 通过引入条件信息,LDMs 可以实现对生成过程的精细控制。
缺点:
训练数据需求: LDMs 通常需要大量的训练数据才能学习到图像的复杂分布。
计算成本: LDMs 的训练和推理过程仍然需要较高的计算资源。
难以捕捉全局结构: LDMs 在捕捉图像的全局结构方面可能会存在一些局限性,例如生成大型物体或复杂场景时。

2 效果

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

STM32手写超频到128M函数

今天学习了野火的STM32教程学会了如何设置STM32的时钟频率,步骤比较详细,也很容易理解,就是视频教程不能跳着看,只能一节节的看,不然会知识不连贯,造成有些知识不理解,连续着看还是没有什么难度…

Spring的FactoryBean多例问题

关于spring bean,我们了解的最多的还是单例,而多例bean,除了平时我们自己new的那些多实例外(但不属于IOC管理了),几乎很少能用到,而在spring 层面,FactoryBean刚好是多例的一个体现,…

Java中流的概念细分

按流的方向分类: 输入流:数据流向是数据源到程序(以InputStream、Reader结尾的流)。 输出流:数据流向是程序到目的地(以OutputStream、Writer结尾的流)。 按处理的数据单元分类: 字…

python-pytorch 下批量seq2seq+Bahdanau Attention实现问答1.0.000

python-pytorch 下批量seq2seq+Bahdanau Attention实现简单问答1.0.000 前言原理看图数据准备分词、index2word、word2index、vocab_size输入模型的数据构造注意力模型decoder的编写关于损失函数和优化器在预测时完整代码参考前言 前面实现了 luong的dot 、general、concat注意…

某神,云手机启动?

某神自从上线之后,热度不减,以其丰富的内容和独特的魅力吸引着众多玩家; 但是随着剧情无法跳过,长草期过长等原因,近年脱坑的玩家多之又多,之前米家推出了一款云某神的app,目标是为了减少用户手…

Android9.0 MTK平台如何增加一个系统应用

在安卓定制化开发过程中,难免遇到要把自己的app预置到系统中,作为系统应用使用,其实方法有很多,过程很简单,今天分享一下我是怎么做的,共总分两步: 第一步:要找到当前系统应用apk存…

PostgreSQL基本使用Schema

参考文章:PostgreSQL基本使用(3)Schema_pg数据库查询schema-CSDN博客 PostgreSQL 模式(Schema)可以理解为是一个表的集合(或者所属者)。 例如:在 MySQL 中,Scheam 是库&…

储能服务系统架构:实现能源可持续利用的科技之路

随着可再生能源的快速发展和能源系统的智能化需求增加,储能技术作为能源转型和可持续发展的关键支撑之一,备受各界关注。储能服务系统架构的设计和实现将对能源行业产生深远影响。本文将探讨储能服务系统架构的重要性和关键组成部分,旨在为相…

安卓开发--安卓使用Echatrs绘制折线图

安卓开发--安卓使用Echatrs绘制折线图 前期资料安卓使用Echarts绘制折线图1.1 下载 Echarts 安卓资源1.2 新建assets文件1.3 新建布局文件1.4 在布局文件中布局WebView1.5 在活动文件中调用 最终效果 前期资料 Echarts 官网样式预览: https://echarts.apache.org/examples/zh/…

使用Webcam实现摄像头的开启和关闭,并保存和复制图片

实现思路 0,将webcam的jar文件传入项目中 1,显示摄像头的地方:创建一个画板,在画板上添加开启和关闭按钮 2,设置开启和关闭功能:创建一个类实现动作监听器,进而实现监听动作按钮 3&#xff…

《我的阿勒泰》读后感

暂没时间写,记录在此,防止忘记,后面补上!!! 【经典语录】 01、如果天气好的话,阳光广阔地照耀着世界,暖洋洋又懒洋洋。这样的阳光下,似乎脚下的每一株草都和我一样,也把身子完全舒展开了。 02、…

Jmeter预习第1天

Jmeter参数化(重点) 本质:使用参数的方式来替代脚本中的固定为测试数据 实现方式: 定义变量(最基础) 文件定义的方式(所有测试数据都是固定的情况下[死数据],eg:注册登录&#xff0…

为了“降本增效”,我用AI 5天将SpringBoot迁移到了Nodejs

背景 大环境不好,各行各业都在流行“降本增效”,IT行业大肆执行“开猿节流”,一顿操作效果如何?普通搬砖人谁会在乎呢。 为了收紧我的口袋,决定从头学习NodejsTypeScript,来重写我的Java后端服务。 其实这…

【ECharts】数据可视化

目录 ECharts介绍ECharts 特点Vue2使用EChats步骤安装 ECharts引入 ECharts创建图表容器初始化图表更新图表 示例基本柱状图后台代码vue2代码配置 组件代码运行效果 基本折线图示例代码组件 基础饼图示例代码后台前端配置组件运行效果 其他 ECharts介绍 ECharts 是一个由百度开…

找不到msvcr110.dll无法继续执行代码的原因分析及解决方法

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是找不到msvcr110.dll文件。这个错误通常发生在运行某些程序或游戏时,系统无法找到所需的动态链接库文件。为了解决这个问题,下面我将介绍5种常见的解决方法。 一&#…

重学java 44.多线程 Lock锁的使用

昨日之深渊,今日之浅谈 —— 24.5.25 一、Lock对象的介绍和基本使用 1.概述 Lock是一个接口 2.实现类 ReentrantLock 3.方法 lock()获取锁 unlock()释放锁 4.Lock锁的使用 package S78Lock;import java.util.concurrent.locks.Lock; import java.util.concurrent.lo…

类与对象:接口

一.概念 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。 二.语法规则 与定义类相似,使用interface关键词。 Idea可以在开始时直接创建…

【控制实践——二轮平衡车】【三】基于PID的直立控制

传送门 系列博客前言直立运动分析基于PID控制器的直立控制角度环控制角速度控制总结 电机转速的控制前言电机转速控制 结语 系列博客 【控制实践——二轮平衡车】【一】运动分析及动力学建模 【控制实践——二轮平衡车】【二】实物设计和开源结构&代码 【控制实践——二轮…

常见 JVM 面试题补充

原文地址 : 26 福利:常见 JVM 面试题补充 (lianglianglee.com) CMS 是老年代垃圾回收器? 初步印象是,但实际上不是。根据 CMS 的各个收集过程,它其实是一个涉及年轻代和老年代的综合性垃圾回收器。在很多文章和书籍的划分中&…

Scrapy顺序执行多个爬虫

Scrapy顺序执行多个爬虫 有两种方式: 第一种:bat方式运行 新建bat文件 cd C:\python_web\spiders\tiktokSelenium & C: & scrapy crawl spider1 & scrapy crawl spider2 & scrapy crawl spider3 & scrapy crawl spider4 第二种&a…