SDXL-Stable Diffusion改进版

文章目录

  • 1. 摘要
  • 2. 算法:
    • 2.1 结构:
    • 2.2 微小的条件机制
    • 2.3 多宽高比训练
    • 2.4 改进自编码器
    • 2.5 所有组合放到一起
    • 2.6 主流方案比较
  • 3. 未来工作
  • 4. 限制

论文: 《SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis》
github: https://github.com/Stability-AI/generative-models

1. 摘要

SDXL,用于文生图,与之前SD相比,SDXL使用3倍大的UNet backbone:归因于更多的attention block、更大的cross-attention。作者设计多种新颖条件机制,同时引入一个精细化模块用于提升生成图片保真度。与之前版本SD相比,SDXL大大提升了性能。

2. 算法:

在这里插入图片描述
SDXL整体结构如图1所示。

2.1 结构:

扩散生成模型主要使用UNet结构,随着DM发展,网络结构发生变化:从增加self-attention、改进上采样层,增加cross-attention到基于transformer的结构。
为了高效,作者移除最浅特征层中transformer block,中间层使用transformer block数量设置为2和10,移除最深特征层(8倍降采样层),如表1作者与SD1.x及x2.x进行比较。
在这里插入图片描述
同时作者使用更强大预训练文本编码器,将OpenCLIP ViT-bigG与CLIP ViT-L倒数第二输出层进行concat。除了增加cross-attention层约束输入文本,另外将合并的文本编码作为模型条件输入,由此导致模型参数量达到2.6B,其中文本编码器器817M。

2.2 微小的条件机制

LDM的显著缺点为:训练模型需要比较小的图像大小,归因于其二阶段结构。对于该问题,一种方案为丢弃训练集中某一分辨率以下图片,比如:Stable Diffusion 1.4/1.5中512分辨率以下图片;另一种为过小图片进行上采样。然而前者将导致训练集大量数据丢弃,后者上采样过程引入人工因素,导致模型输出模糊样本
作者使用原始图片分辨率 c s i z e = ( h o r i g i n a l , w o r i g i n a l ) c_{size} = (h_{original}, w_{original}) csize=(horiginal,woriginal)作为Unet条件输入,具体地,使用傅里叶特征将图片编码,concat为向量,该向量与timestep embedding相加。该过程如算法1
在这里插入图片描述

推理时,用户可设置所需图像分辨率尺度,如图3,随着图像尺寸提升,图片质量提升。
在这里插入图片描述
作者比较仅使用512 * 512分辨率以上数据集(CIN-512-only)、所有数据(CIN-nocond)、增加分辨率条件(CIN-size-cond),结果如表2,
在这里插入图片描述
基于裁剪参数调节模型
在这里插入图片描述
如图4前两行,之前模型生成目标可能被裁剪,这由于训练过程使用随机裁剪,为对齐batch中数据尺寸。为解决此问题,作者在加载数据过程,使用均匀采样裁剪坐标 c t o p 、 c l e f t c_{top}、c_{left} ctopcleft(距离左上角点距离),并将其作为条件参数通过傅里叶特征编码送入模型。该过程如算法1所示。推理时设置 ( c t o p , c l e f t ) = ( 0 , 0 ) (c_{top}, c_{left}) = (0, 0) (ctop,cleft)=(0,0)可生成目标在图中心的样本,如图5所示。
在这里插入图片描述

2.3 多宽高比训练

当前文生图模型所生成图片为正方形,512 * 512或1024 * 1024,与真实图片存在差异。对此作者使用多种宽高比图片进行训练,但像素总量接近1024*1024,宽、高为64倍数。
预训练阶段使用固定宽高比及分辨率,只有在finetune阶段使用多种宽高比训练;

2.4 改进自编码器

作者训练与原始Stable Diffusion相同网络结构的自编码器,额外增加跟踪权重的指数滑动平均,实验结果如表3,SD-VAE 2.x为改进后结果。
在这里插入图片描述

2.5 所有组合放到一起

作者训练最终模型SDXL,使用2.4节提到的自编码器
首先进行预训练基础模型,使用内部数据集,宽高分布如图2,训练时使用分辨率256*256,同时使用size及crop condition,如2.2节所述;之后在512 * 512图片上进一步训练;最后在1024 * 1024分辨率,基于不同宽高比进行训练
在这里插入图片描述
精细化阶段
如图6,作者发现有些生成样本局部质量低,对此作者基于高质量、高分辨率数据在隐空间单独训练LDM,如SDEdit所提,利用基础模型生成隐向量进行加噪降噪处理。推理时,如图1,渲染来自基础SDXL模型的隐向量,基于该向量,使用同一文本输入,利用精细化模型进行扩散去噪。可视化结果如图6、13。
在这里插入图片描述
生成图片用户评估结果如图1左,该精细化模块作用明显。但在FID、CLIP指标上,与文本越一致样本,指标反而低于SD-1.5、SD-2.1,如图12,作者分析Kirstain等人证明COCO zero-shot FID得分与视觉评估负相关,应以人工评估为准,作者实验与此一致。
在这里插入图片描述

2.6 主流方案比较

图8为各种主流生成方案结果比较
在这里插入图片描述

3. 未来工作

单阶段:SDXL为二阶段方法,需要额外精细化模型,增加内存及采样速度,未来研究单阶段方案;
文本合成:较大的文本编码器,相对于之前SD模型,提升了文本表达能力,但是插入token或者放大模型可能也会有帮助;
结构:作者实验了基于transformer的结构:UViT、DiT,但是没有增益,需要进一步研究超参;
蒸馏:SDXL生成质量虽然提升,但是推理成本增加,未来借助蒸馏降低该成本;

模型训练过程是离散的且需要偏离噪声,Karras等人提出的EDM框架可能是未来模型训练方案,时间连续、采样灵活、无需噪声纠正机制。

4. 限制

  1. 对于生成复杂结构充满挑战,比如人手,如图7所示。虽然使用很多训练数据,但是人体结构复杂性导致难以获得准确表征一致性,这可能由于图中手及相似目标具有比较高方差,难以建模;
    在这里插入图片描述
  2. 某些细微差别,如微妙的灯光效果或微小的纹理变化导致生成图像不真实;
  3. 当前模型训练依赖大规模数据集,可能引入社会种族问题,生成图像进而存在该问题;
  4. 当样本包含多个目标时,模型存在“concept bleeding”现象,即不同元素出现合并或堆叠,如图14。该问题可能由于文本编码器导致,所有信息压缩到单个token,难以联系到合适目标及属性,Feng等人通过单词关系编码解决;对抗损失也可导致此现象,由于不同联系的负样本出现在同一batch;
    在这里插入图片描述
  5. 呈现长且易读文本存在困难,如图8,克服此问题需要进一步强化模型文本生成能力;
    在这里插入图片描述

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

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

相关文章

STM32自带的DSP库的滤波初体验(一)

最近在弄STM32自带的DSP库里的滤波,记录一下: arm_fir_instance_q15 instance_q15_S; #define NUM_TAPS 16 //滤波系数的个数 #define BLOCK_SIZE 32 q15_t firStateF32[BLOCK_SIZE NUM_TAPS]; q15_t Fir_Coeff[NUM_TAPS] {-79, -136, 312, 6…

暗黑版GPT流窜暗网 降低犯罪门槛

随着AIGC应用的普及,不法分子利用AI技术犯罪的手段越来越高明,欺骗、敲诈、勒索也开始与人工智能沾边。 近期,专为网络犯罪设计的“暗黑版GPT”持续浮出水面,它们不仅没有任何道德界限,更没有使用门槛,没有…

解析Java中的包装类和泛型

Java中的包装类和泛型 一、包装类与基本类型二、泛型1、什么是泛型2、引出泛型3、泛型类的定义和使用4、擦除机制5、泛型的上界6、泛型方法7、通配符 总结 一、包装类与基本类型 包装类,就是基本数据类型对应的类类型。我们已知Java中有8种基本数据类型&#xff0c…

分布式协议与算法——Paxos算法

目录 Paxos算法Basic Paxos算法三种角色如何达成共识(协商过程)小结: Multi-Paxos算法关于 Multi-Paxos 的思考领导者优化Basic PaxosChubby 的 Multi-Paxos 实现小结 参考 Paxos算法 Paxos论文 Paxos Made Simple 、author:Lesli…

MongoDB创建用户 、数据库、索引等基础操作

MongoDB的权限认证是相对来说比较复杂的,不同的库创建后需要创建用户来管理。 本机中的MongoDB是docker 启动的,所以先进入docker的镜像中 docker exec -it mongodb bash 这样就进入到了镜像MongoDB中,然后输入命令连接MongoDB数据库 注…

省电模式稳定电压显示IC32×4 LCD显示驱动芯片

简述 VK1C21A是一个点阵式存储映射的LCD驱动器,可支持最大128点(32SEGx4COM) 的LCD屏,也支持2COM和3COM的LCD屏。单片机可通过3/4个通信脚配置显示参数和发 送显示数据,也可通过指令进入省电模式。具备高抗干扰&a…

【SpringBoot】| ORM 操作 MySQL(集成MyBatis)

目录 一:ORM 操作 MySQL 1. 创建 Spring Boot 项目 2. MapperScan 3. mapper文件和java代码分开管理 4. 事务支持 一:ORM 操作 MySQL 使用MyBatis框架操作数据, 在SpringBoot框架集成MyBatis,使用步骤: &#x…

漫画 | TCP/IP之大明邮差

后记: 1973年,卡恩与瑟夫开发出了网络中最核心的两个协议:TCP协议和IP协议,随后为了验证两个协议的可用性,他们做了一个实验,在多个异构网络中进行数据传输,数据包在经过近10万公里的旅程后到达…

Python爬虫在框架下的合规操作与风险控制

大家好!作为一名专业的爬虫代理供应商,我今天要和大家分享一些关于Python爬虫在法律框架下的合规操作与风险控制的知识。随着互联网的发展,数据爬取在商业和研究领域扮演着重要的角色,但我们也必须遵守相关法律和规定,…

【小程序】Canvas 画布分享海报

成品效果图 可以通过切换下面图片形成不同的海报背景分享图 <template><view>// type"2d"必须加<canvas type"2d" :style"{width:Artwidth px,height:Artheight px, margin:0 auto}" canvas-id"firstCanvas"id&quo…

神码ai伪原创【php源码】

大家好&#xff0c;小编为大家解答python必备常用英语词汇笔记的问题。很多人还不知道python中常用的英语单词&#xff0c;现在让我们一起来看看吧&#xff01; 火车头采集ai伪原创插件截图&#xff1a; 一.什么是注释 注释是对一段代码的解释&#xff0c;不参与程序运行&…

信息安全技术工业控制系统安全控制应用指南学习笔记

工业控制系统安全控制基线 根据工业控制系统在国家安全、经济建设、社会生活中的重要程度&#xff0c;遭到破坏后对国家安全、社会秩序、公共利益以及公民、法人和其他组织的合法权益的危害程度等&#xff0c;结合信息安全等级保护标准划分及实施效果分析&#xff0c;结合工业…