(2024,SD3,整流流,定制的采样器,DiT)扩展整流流 transformer 以实现高分辨率图像合成

news2024/11/23 9:58:20

Scaling Rectified Flow Transformers for High-Resolution Image Synthesis

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

2. 流的无模拟训练

3. 流轨迹

3.1. RF 模型的定制 SNR 采样器

4. 文本到图像的体系结构

5. 实验


0. 摘要

扩散模型通过反转数据的正向路径,从噪音中创建数据,已经成为处理高维、感知数据(如图像和视频)的强大生成建模技术。整流流(Rectified flow)是一种最近提出的生成模型形式,它将数据和噪音连接成一条直线。尽管它具有更好的理论性质和概念上的简单性,但它尚未被明确确立为标准实践。在这项工作中,我们改进了现有的噪音采样技术,用于训练整流流模型,使其偏向感知上相关的尺度。通过大规模研究,我们展示了这种方法相较于已建立的扩散公式在高分辨率文本到图像合成方面的卓越性能。此外,我们提出了一种基于 transformer 的文本到图像生成体系结构,该体系结构为两种模态使用独立权重,并实现了图像和文本 token 之间的双向信息流,改善了文本理解、排版和人类偏好评分。我们证明了这种体系结构遵循可预测的缩放趋势,并将较低的验证损失与通过各种指标和人类评估测得的改进的文本到图像合成相关联。我们的最大模型胜过当前最先进的模型,我们将公开我们的实验数据、代码和模型权重。

2. 流的无模拟训练

(2023,InstaFlow & 整流流 & 回流 & 蒸馏)InstaFlow:一步就足以实现基于扩散的高质量文本到图像生成

我们考虑生成模型,其定义了从噪声分布 p1 中的样本 x1 到数据分布 p0 中的样本 x0 之间的映射,采用常微分方程(ordinary differential equation,ODE)表示为:

其中速度(velocity) v 由神经网络的权重 Θ 参数化。Chen 等人(2018)的先前工作建议通过可微 ODE 求解方程(1)。然而,这个过程在计算上是昂贵的,特别是对于参数化 vΘ​(yt​,t) 的大型网络架构。一个更高效的替代方案是直接回归生成概率路径 p0 和 p1 之间的矢量场 u_t​。为构建这样的 u_t​,我们定义一个前向过程,对应于 p0 到  p1=N(0,1) 之间的概率路径 pt​,如下:

对于 a0​=1, b0​=0, 以及 a1​=0, b1​=1,边缘分布

与数据和噪声分布一致。

为了表达 zt​, x0​ 和 ϵ 之间的关系,我们引入 ψt​ 和 ut​,如下所示:

流匹配(Flow Matching)目标 

条件流匹配(Conditional Flow Matching,CFM) 

噪声预测目标(推导见原论文)

请注意,上述目标的最优解在引入时间依赖权重时不会改变。因此,可以导出各种加权损失函数,提供朝着期望解决方案的信号,但可能会影响优化轨迹。为了对不同方法进行统一分析,包括经典的扩散公式,我们可以将目标写成以下形式(参考 Kingma & Gao(2023)):

其中 w_t​ 对应于 L_CFM。

3. 流轨迹

在这项工作中,我们考虑上述形式主义的不同变体,我们将在以下简要描述。 

整流流(Rectified Flow,RF)。整流流(Liu等人,2022;Albergo & Vanden-Eijnden,2022;Lipman等人,2023)将前向过程定义为数据分布和标准正态分布之间的直线路径,即

并使用 L_CFM,其中

网络输出直接参数化速度 vΘ​。

EDM。

Cosine。

(LDM-)Linear。

3.1. RF 模型的定制 SNR 采样器

RF 损失在 [0, 1] 的所有时间步上均匀训练速度 vΘ​。然而,直观地说,由于对于 [0, 1] 中间的 t 来说,速度预测目标 ϵ−x0​ 更为困难,因为对于 t = 0,最优预测是 p1​ 的均值,而对于 t = 1,最优预测是 p0​ 的均值。一般来说,将 t 上的分布从通常使用的均匀分布 U(t) 更改为密度 π(t) 的分布等效于加权损失

因此,我们的目标是通过更频繁地对中间时间步进行采样,给予它们更多的权重。接下来,我们描述用于训练模型的时间步密度 π(t)。

Logit-Normal Sampling。

Mode Sampling with Heavy Tails。

CosMap。

(略,详见原论文) 

4. 文本到图像的体系结构

对于图像的文本条件采样,我们的模型必须考虑文本和图像两种模态。我们使用预训练模型来获取适当的表示,然后描述我们扩散骨干的体系结构。此概述见图 2。

我们的一般设置遵循 LDM(Rombach等人,2022),用于在预训练自编码器的潜在空间中训练文本到图像模型。与将图像编码为潜在表示类似,我们还遵循以前的方法(Saharia等人,2022b;Balaji等人,2022),使用预训练、冻结的文本模型对文本条件 c 进行编码。详细信息可见附录 B.2。

多模态扩散骨干。我们的体系结构基于 DiT(Peebles & Xie,2023)架构。DiT 只考虑类别条件的图像生成,并使用调制机制以扩散过程的时间步和类别标签作为条件。类似地,我们使用时间步 t 和 c_vec 的嵌入作为输入传递给调制机制。然而,由于汇总的文本表示仅保留关于文本输入的粗粒度信息(Podell等人,2023),网络还需要来自序列表示 c_ctxt 的信息。

我们构建一个包含文本和图像输入嵌入的序列。具体来说,我们添加位置编码,并将潜在像素表示 x ∈ R^(h×w×c) 的 2 × 2 补丁平铺为长度为 1/2 · h · 1/2 · w 的补丁编码序列。在嵌入此补丁编码和文本编码 c_ctxt 到一个共同的维度后,我们连接这两个序列。然后,我们遵循 DiT,并应用一系列调制注意力和 MLP。

由于文本和图像嵌入在概念上相当不同,我们使用两个独立的权重集用于两种模态。如图 2b 所示,这相当于每种模态都有两个独立的 transformer ,但在注意力操作中连接两种模态的序列,以便两种表示可以在各自的空间中工作,但也考虑到对方。

对于我们的扩展实验,我们通过将 hidden 大小设置为 64 · d(在 MLP 块中扩展为 4 · 64 · d 通道)以及注意力头的数量等于 d,通过将模型的大小参数化为模型深度 d,即注意力块的数量。

5. 实验

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

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

相关文章

运维知识点-ACCESS

ACCESS access 扫出后缀为asp的数据库文件 迅雷下载,直接改后缀为.mdbMicrosoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。 Microsoft Off…

商城|商城小程序|基于微信小程序的智慧商城系统设计与实现(源码+数据库+文档)

商城小程序目录 目录 基于微信小程序的智慧商城系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、用户信息管理 2、 商品信息管理 3、公告信息管理 4、论坛信息管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 …

防患未然,OceanBase巡检工具应用实践——《OceanBase诊断系列》之五

1. OceanBase为什么要做巡检功能 尽管OceanBase拥有很好的MySQL兼容性,但在长期的生产环境中,部署不符合标准规范、硬件支持异常,或配置项错误等问题,这些短期不会出现的问题,仍会对数据库集群构成潜在的巨大风险。为…

几种电脑提示mfc140.dll丢失的解决方法,以及如何预防mfc140.dll丢失

mfc140.dll真是一个超级关键的动态链接库文件!一旦这个文件不翼而飞,可能会导致一些程序无法顺利运行,甚至给系统带来麻烦。但别担心!遇到mfc140.dll文件丢失的情况,我们有一堆应对措施可以立马施行,确保问…

qnx display

05-SA8155 QNX Display框架及代码分析(1)_openwfd-CSDN博客 backlight p: 0 t: 0 00000 SHD -----ONLINE----- 2024/03/06 13:49:22.046 backlight p:1060958 t: 1 00000 ERR backlight_be[backlight_be.c:284]: pthread_create enter 2024/03/06 13…

java多线程编程(四)-----线程池

一.线程池的介绍 java中的池是非常重要的思想方法,比如内存池,进程池,连接池,常量池等等。本篇重点介绍java中的线程池。这里的这些池的概念都是一样的,比如做饭的时候,有烧水,切菜&#xff0c…

持续集成(CICD)- Jenkins+Git+gogs综合实战(笔记二)

文章目录 七、拉取代码方法一:直接填写命令进行拉取(不建议用这种)方法二:使用源码管理拉取代码步骤一:确认环境(检查自己是否有Git插件)步骤二:构建项目时对项目的源码管理选择 Git步骤三:输入你仓库的SSH地址或者https地址,并且添加gitee的用户名和密方法一和方法二…

bug_java

文章目录 1.创建Maven时: idea报错为:java:错误:不支持发行版本5 1.创建Maven时: idea报错为:java:错误:不支持发行版本5 在 maven地址\conf\setting.xml 中设置默认jdk版本… 把图…

VGW在 Windows 平台上局域网就绪的旁路由器程序

在查阅本篇文章之前可以查看下,本人前两年写的关于VGW软件路由器的文章 Linux 平台上面单网卡 TUN/TAP实现局域网其它设备上网_linux 物理网卡与tun同网段-CSDN博客 VGW软件路由器是一个工作IEEE以太网(L2)链路层的路由器程序,它…

Windows环境下Scala编程环境搭建

不知道多少人和曾经的我一样,对于安装环境搭建一直无脑跟做,报一堆错,无脑百度迟迟才解决,所以懂搭建逻辑,步骤前后关系是非常,非常,非常重要的,所以接下来我会先讲逻辑,…

刚刚,OpenAI官方发文驳斥马斯克,自曝8年间邮件往来截图

文章开篇表示:「OpenAI 的使命是确保 AGI 惠及全人类,这意味着既要构建安全、有益的 AGI,又要帮助创造广泛的利益。我们正在分享我们在实现使命方面所学到的知识,以及有关我们与马斯克关系的一些事实。我们打算驳回马斯克的所有主…

GEE 高阶应用——在GEE code editor加载不同了底图(使用Snazzy Maps外界包)

简介 这里我们需要引入一个require()函数来获取这个包来添加到你添加的编程界面中,然后你就可以获取不同款式的地图。 在任何脚本或应用程序中自定义地球引擎基图只需一行代码即可通过 URL、名称或标签添加 Snazzy Maps 中的任何样式用于快速、无阻塞执行的异步评估结果 导入…

别再为微信登录烦恼!Xinstall的Universal Links让你秒速直达APP!

微信登录Universal Links校验不通过?无法直达APP场景页面?别担心,Xinstall来帮你解决这一难题! 随着移动互联网的迅猛发展,App已成为我们日常生活中不可或缺的一部分。而微信,作为拥有十亿用户的社交巨头…

geoserver+mapbox-gl 离线部署矢量切片地图服务学习笔记

geoserver安装 geoserver的安装包可以在官网下载Download - GeoServer,想要选择版本点击Archived找到指定版本进行下载http://geoserver.org/download/ (如果网络不稳定,也可以直接使用下面的下载地址) geoserver-2.15.0.rar资…

python基础练习题目

1. 根据身高体重,判断人的胖瘦 描述: 通过身高和体重,判断一个人的胖瘦。国际上一般采用BMI体重指数,计算公式为BMI 体重 / 身高2(保留小数点后1位),参考标准如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪…

完美解决VMware中配置suse10虚拟机网络

一、注意!!!配置suse10网络,需要在虚拟机关机状态下进行,否则会配置不成功; 二、配置与主机在同一网段(仅主机模式,网卡一); 在suse系统关机状态下,Vmware中设置”虚拟网…

掘根宝典之c语言#define,#include,#,##,#undef,#if,#ifdef,#elif,#endif,defined函数

目录 #define #define(宏定义命令) define与typedef作用域的的区别: #define定义宏 注意 #define 替换规则 注意 宏和函数对比 宏的缺点: 宏和函数的对比 #运算符 注意点 ##运算符 注意点 #include(文…

“色狼”用英语怎么说?柯桥日常英语,成人英语口语学习

最近有粉丝问我"色狼"英文翻译是啥 首先声明不是"colour wolf"哈 关于“色狼”的英文表达有很多 快和C姐一起来看看吧! 1.pervert 这个单词的意思是变态、色狼 是对性变态者最直观的描述 He is such a pervert! I saw him lo…

激光在SIC晶圆制造中的应用

碳化硅是一种性能优异的第三代半导体材料,具有光学性能良好、化学惰性大、物理特性优良的特点,包括带隙宽、击穿电压高、热导率高和耐高温性能强等优点,常作为新一代高频、高功率器件的衬底材料,广泛应用在高端制造业领域&#xf…

C++入门项目:通讯录管理系统

文章目录 一、步骤拆分1.系统需求2.显示菜单3.添加联系人4.显示联系人5.删除联系人6.查找联系人7.修改联系人8.清空通讯录9.退出功能 二、完整代码(200行)三、手把手视频教程 一、步骤拆分 1.系统需求 利用C来实现一个通讯录管理系统,系统中…