(2023)PanGu-Draw:通过时间解耦训练和可重用的 Coop-Diffusion 推进资源高效的文本到图像合成

news2025/4/21 19:04:04

PanGu-Draw: Advancing Resource-Efficient Text-to-Image Synthesis with Time-Decoupled Training and Reusable Coop-Diffusion

公众:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料)

目录

0. 摘要

4. PanGu-Draw

4.1 时间解耦训练策略 

4.2 Coop-Diffusion: 多扩散融合

5. 实验

S. 总结

S.1 主要贡献

S.2 方法


0. 摘要

目前的大规模扩散模型代表了有条件图像合成的一大进步,能够解释各种线索,如文本、人体姿势和边缘。然而,它们对大量计算资源和广泛数据收集的依赖仍然是一个瓶颈。另一方面,整合现有的扩散模型,每个模型专门用于不同的控制,并在独特的潜在空间中运行,由于图像分辨率和潜在空间嵌入结构不兼容,使它们共同使用变得具有挑战性。为了解决这些约束,我们提出了 “PanGu-Draw”,这是一个为资源高效的文本到图像合成设计的新颖的潜在扩散模型,能够灵活地适应多个控制信号。首先,我们提出了一种资源高效的 “时间解耦训练策略”,该策略将整体的文本到图像模型分为结构和纹理生成器。每个生成器都使用一种方案进行训练,该方案最大限度地利用数据并提高计算效率,将数据准备减少了 48%,并将训练资源减少了 51%。其次,我们引入了“Coop-Diffusion”,这是一种算法,能够在统一的去噪过程中协同使用具有不同潜在空间和预定义分辨率的各种预训练扩散模型。这允许在任意分辨率下进行多控制图像合成,而无需额外的数据或重新训练。Pangu-Draw 的实证验证展示了它在文本到图像和多控制图像生成方面的卓越能力,为未来模型训练效率和生成多样性提供了有希望的方向。最大的 5B T2I PanGu-Draw 模型已在Ascend 平台上发布。项目页面:https://pangu-draw.github.io

4. PanGu-Draw

4.1 时间解耦训练策略 

提高文本到图像模型的数据、训练和推断效率对于其实际应用至关重要。图 1 显示了两种现有的训练策略:(a) 级联训练,使用三个模型逐步提高分辨率,具有高效的数据利用率,但会使训练和推断时间增加三倍。 (b) 分辨率提升训练从 512x512 开始,然后提高到 1024x1024 分辨率,丢弃较低分辨率的数据,并在所有时间步骤上提供单模型推断,具有适度的效率,但训练成本更高。这些方法与我们的时间解耦策略有所不同,如下所述。

为了提高效率,我们从扩散过程的去噪轨迹中汲取灵感,其中初始去噪阶段主要塑造图像的结构基础,而后期阶段则精炼其纹理复杂性。有了这个见解,我们引入了时间解耦训练策略。该方法将全面的文本到图像模型表示为 ϵ_θ,分为两个在不同时间间隔内运行的专业子模型:结构生成器 ϵ_struct 和纹理生成器 ϵ_texture。每个子模型的大小是原始模型的一半,从而增强了可管理性并减轻了计算负担。

如图 1(c) 所示,结构生成器 ϵ_struct 负责较大时间步骤进行早期去噪,特别是在 T, ..., T_struct 范围内,其中 0 < Tstruct < T。该阶段专注于建立图像的基本轮廓。相反,纹理生成器 ϵ_texture 在后来的较小时间步骤中运行,由 T_struct, ..., 0 表示,以详细生成纹理细节。每个生成器都在隔离环境中进行训练,这不仅减轻了对高内存计算设备的需求,还避免了与模型分片及其伴随的机器间通信开销相关的复杂性。

在推断阶段,ϵ_struct 首先从初始随机噪声向量 z_T 构建基本结构图像 z_(T_struct)。随后, ϵ_texture 通过精练基本图像来增强纹理细节,最终产生最终输出 z_0。这种顺序处理促使了更加资源高效的工作流程,显著减少了硬件占用,并在不损害模型性能或输出质量的情况下加快了生成过程,正如我们在第 5.3 节的实验证明的那样。

资源高效的专门训练制度。我们进一步采用了上述两个模型的专门训练设计。从文本中导出图像结构的结构生成器 ϵ_struct 需要在涵盖广泛概念的大量数据集上进行训练。传统方法,如稳定扩散,通常会消除低分辨率图像,丢弃约 48% 的训练数据,从而增加数据集成本。相反,我们将高分辨率图像与放大的低分辨率图像结合在一起。正如我们在第 5.3 节的实验中证明的那样,这种方法没有性能下降,因为预测的 z_(T_struct) 仍然包含大量噪噪声。通过这种方式,我们实现了更高的数据效率,并避免了语义退化的问题。

此外,由于图像结构在 z_(T_struct) 中确定,而纹理生成器 ϵ_texture 专注于细化纹理,我们建议在较低分辨率下训练 ϵ_texture,同时仍以高分辨率进行采样。如我们在第 5.3 节的实验中所示,这种策略不会导致性能下降,也不会出现结构问题(例如,重复呈现 [21])。因此,我们在训练效率方面取得了总体 51% 的改进。图 1 总结了不同训练策略的数据、训练和推断效率。除了更高的数据和训练效率外,我们的策略还在推断效率方面取得了更高的成就,与级联训练策略相比,推断步骤更少,与分辨率提升训练策略相比,每步模型更小。.

4.2 Coop-Diffusion: 多扩散融合

如图 2(a) 所示,存在许多预训练的扩散模型,如各种 SD、ControlNet、图像变化等,每个模型都专为特定的控制和图像分辨率而设计。将这些预训练模型融合起来,可以实现多控制或多分辨率图像生成,而无需训练新模型,这是具有潜力的。然而,这些模型具有不同的潜在空间和分辨率,妨碍了由不同模型控制的图像的联合合成,从而限制了它们的实际应用。为了应对这些挑战,我们提出了 Coop-Diffusion 算法,具有两个关键的子模块,如图 2(b) 和 (c) 所示,以弥合潜在空间差距和分辨率差距,并在相同空间中统一去噪过程。

弥合潜在空间差距。为了弥合空间 A 和 B 之间的潜在空间差距,我们提出通过使用图像空间作为中间步骤,将潜在空间 B 中的模型预测 ϵ′_t 转换为潜在空间 A 中的模型预测。具体做法如下:首先,我们预测干净数据 ˆz′_(0,t),如下所示:

其中,z'_t 是有噪潜在,ϵ′_t 是模型预测的噪声。然后,使用潜在解码器模型 D' 将 ˆz′_(0,t) 解码为像素级图像 ˆx'_(0,t)。使用图像编码器模型 E 将这个图像编码到潜在空间 A,即 ˜z_(0,t) = E(ˆx'_(0,t)),最后转换为模型预测,如下所示:

有了统一的 ˜ϵ_t,我们现在可以在 ˜ϵ_t 和 ϵ_t 之间执行多控制融合(其中 ϵ_t 是模型 ϵ_θ 使用潜在空间 A 中的 z_t 得到的预测,在图 2 中为简洁起见被省略)。具体而言,融合过程如下:

其中,d 和 1−d 是每个模型的引导强度,d ∈ [0, 1],用于共同引导两个模型的去噪过程,以进行多控制图像生成。算法 1 进一步说明了这个融合过程。

弥合分辨率差距。为了整合低分辨率模型和高分辨率模型的去噪过程,需要进行上采样和/或下采样。传统的双线性上采样通常应用于去噪过程中的中间结果 z_t,但可能放大像素相关性。这种放大偏离了最初的独立同分布(Independent and Identically Distributed,IID)假设,导致最终图像中出现严重的伪影,如图 3(a) 所示。相反,下采样不会出现这个问题。为了解决上采样中的 IID 问题,我们提出了一种新的上采样算法,保持 IID 假设,从而弥合不同预训练分辨率模型之间的分辨率差距。

图 2(c) 可视化了我们的上采样算法。具体而言,对于低分辨率的 z'_t,我们使用图像空间作为中间空间,将低分辨率空间中的 z'_t 转换为高分辨率空间中的 ˜z_t。我们首先使用去噪模型 ϵ'_θ 预测噪声 ϵ'_t,然后根据 Eq. 4 预测干净数据 ˆz'_(0,t),这通过解码器 D' 转换为图像 ˆx'0,t。然后,我们对 ˆx'_(0,t) 进行上采样,得到其高分辨率对应物 ˆx_(0,t)。最后,使用编码器 E 将 ˆx_(0,t) 编码到潜在空间,得到 ˆz_(0,t),然后添加 t 步噪声,最终得到高分辨率空间中的 ˜z_t。

有了统一的 ˜z_t,我们现在可以执行多分辨率融合。首先,我们使用低分辨率模型进行去噪,得到中间 z'_t 和其高分辨率对应物 ˜z_t。然后,我们使用高分辨率模型从 ˜z_t 开始进行去噪,反之亦然。这种方法使我们能够进行单阶段超分辨率,而无需进行所有低分辨率去噪步骤,从而提高推断效率。算法 1 进一步说明了这个融合过程。

5. 实验

在自动评估中,PanGu-Draw 表现突出。在人工评估中,PanGu-Draw 与最先进模型差异不大。

在多控制图像生成中,PanGu-Draw 表现良好。

在多分辨率图像生成中,PanGu-Draw 表现良好。

消融研究表明:时间解耦策略表现突出(图 4);仅使用低分辨率图像训练文本编码器不会造成性能退化(图 5);当去噪时间步 500 作为结构生成器和纹理生成器的分界点时,模型性能最好(图 6)。

S. 总结

S.1 主要贡献

本文提出了 “PanGu-Draw”,使用资源高效的 “时间解耦训练策略”,将文本到图像模型分为结构和纹理生成器,提高了数据利用率和计算效率。还引入了“Coop-Diffusion”,在统一的去噪过程中协同使用具有不同潜在空间和预定义分辨率的各种预训练扩散模型。这允许在任意分辨率下进行多控制图像合成,无需额外的数据或重新训练。

S.2 方法

本文使用的时间解耦策略如图 1c 所示:

  • 该方法将文本到图像模型分为两个在不同时间间隔内运行的子模型:结构生成器和纹理生成器,每个子模型的大小是原始模型的一半。
  • 结构生成器负责早期去噪,该阶段专注于建立图像的基本轮廓。
  • 纹理生成器负责晚期去噪,以详细生成纹理细节。
  • 结构生成器结合使用高分辨率图像与放大的低分辨率图像进行训练,提高了数据利用率。
  • 由于图像结构在结构生成器中确定,而纹理生成器专注于细化纹理。可在较低分辨率下训练 纹理生成器,同时仍以高分辨率进行采样。实验结果表明,该方法不会导致性能下降,且可以提升训练效率。

Coop-Diffusion: 多扩散融合具有两个关键的子模块,以弥合潜在空间差距和分辨率差距,并在相同空间中统一去噪过程,如图 2 所示。

弥合潜在空间差距。为了弥合空间 A 和 B 之间的潜在空间差距,通过使用图像空间作为中间步骤,将潜在空间 B 中的噪声预测转换为潜在空间 A 中的噪声预测。如图 2b 所示。

  • 基于潜在空间 B 中的噪声预测干净潜在
  • 使用解码器把潜在转化为图像
  • 使用图像编码器把图像转化为潜在空间 A 中的干净潜在
  • 基于潜在空间 A 中有噪潜在和干净潜在,预测潜在空间 A 中的噪声
  • 使用转化到 A 中的预测噪声和 A 中预测噪声的线性组合,来引导去噪过程

弥合分辨率差距。为整合低分辨率模型和高分辨率模型的去噪过程,需要进行上采样和/或下采样。传统的双线性上采样可能放大像素相关性,导致最终图像中出现严重的伪影。为解决这个问题,使用图像空间作为中间空间,将低分辨率空间中的潜在转换为高分辨率空间中的潜在。

  • 使用去噪模型预测噪声,然后预测干净潜在
  • 使用解码器把潜在转化为图像
  • 对图像进行上采样,得到其高分辨率图像
  • 使用编码器将高分辨率图像编码到潜在空间,然后添加 t 步噪声,最终得到高分辨率空间中的有噪潜在
  • 然后可以执行多分辨率融合。首先,使用低分辨率模型进行去噪,得到中间潜在和其高分辨率对应物。然后,使用高分辨率模型从高分辨率潜在开始进行去噪
  • 使用该方法可以进行单阶段超分辨率,而无需进行所有低分辨率去噪步骤,从而提升推断效率

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

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

相关文章

php的laravel权限问题

1.这是我新建的一个路由&#xff0c;然后就是说每新建一个路由都要给他开个权限&#xff01;&#xff01;&#xff01;&#xff01; 2.这个是组内大佬写的&#xff1a; 我们也可以在里面加&#xff0c;也可以在浏览器的页面手动加&#xff08;对我们新手来说还是浏览器的页面…

使用uni-app editor富文本组件设置富文本内容及解决@Ready先于onload执行,无法获取后端接口数据的问题

开始使用富文本组件editor时&#xff0c;不知如何调用相关API设置富文本内容和获取内容&#xff0c;本文将举例详解 目录 一.了解editor组件的常用属性及相关API 1.属性常用说明 2.富文本相关API说明 1&#xff09;editorContext 2&#xff09; editorContext.setContents…

JVM 常用知识和面试题

1. 什么是JVM内存结构&#xff1f; jvm将虚拟机分为5大区域&#xff0c;程序计数器、虚拟机栈、本地方法栈、java堆、方法区&#xff1b; 程序计数器&#xff1a;线程私有的&#xff0c;是一块很小的内存空间&#xff0c;作为当前线程的行号指示器&#xff0c;用于记录当前虚拟…

Avalonia学习(十五)-OxyPlot

今天开始继续Avalonia练习。展示一些样例&#xff0c;尤其是第三方库的使用。 本节&#xff1a;OxyPlot 1.引入OxyPlot.Avalonia 2.项目引入 在Main方法里增加OxyPlotModule.EnsureLoaded()方法调用。 public static void Main(string[] args) {OxyPlotModule.EnsureLoade…

Java线程池ThreadPoolExecutor源码解析

Java线程池ThreadPoolExecutor源码解析 1.ThreadPoolExecutor的构造实现 以jdk8为准&#xff0c;常说线程池有七大参数&#xff0c;通常而言&#xff0c;有四个参数是比较重要的 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit …

python3处理xls并flask显示

前言&#xff1a; 工作中有需求对xls文件进行生成和显示&#xff0c;这里就将对应的xls文件的处理&#xff0c;读取和flask展示代码罗列出来&#xff0c;方便大家使用&#xff1a; 需要的模块&#xff0c;这里需要注意版本号&#xff0c;如果直接安装使用报错&#xff0c;就指…

Tensorflow2.X的GPU版框架最快最稳搭建方法

一、环境基础 Windows10以上 已装Anaconda 支持GPU 二、搭建步骤 1. 在Anaconda中创建并进入虚拟环境 conda create -n envname python3.8 conda activate envname 注意&#xff1a;envname 替换为你自己想命名的&#xff0c;下文将以“Ljdenv”出现 2.安…

微服务实战系列之Dubbo(下)

前言 眼看着2023即将走远&#xff0c;心里想着似乎还有啥&#xff0c;需要再跟各位盆友叨叨。这不说曹操&#xff0c;曹操就来了。趁着上一篇Dubbo博文的余温尚在&#xff0c;博主兴匆匆地“赶制”了Dubbo的下集&#xff0c;以飨读者。 上一篇博主依然从Dubbo的内核出发&#…

几代WiFi有什么差异,它们有什么区别

最典型的差异指标&#xff1a;单流传输速率 第一代 基于的标准&#xff1a; 802.11 使用频率&#xff1a;2.4GHz 单流最大传输速率&#xff1a;2Mbit/s 第二代 基于的标准&#xff1a; 802.11b 使用频率&#xff1a;2.4GHz 单流最大传输速率&#xff1a;11Mbit/s 第三代 …

python文件打包实战技巧

众所周知&#xff0c;python是一种脚本语言&#xff0c;python程序必须在python环境下运行&#xff0c;所以如果想把自己写的程序给别人看的话&#xff0c;就比较麻烦&#xff0c;他需要先配置python环境&#xff0c;对于电脑小白来说这是“要命”的事情。而且如果是客户的话&a…

【SD】inpaint 模型 - 换脸术 ☑

文生图-局部重绘 涂抹脸部 关键词添加lora&#xff1a; <lora:Naruto_zilaiye:1.5>, 生成图&#xff1a;

Python 中的运算符介绍(1)

算数运算符 常见的% 、//、/ 用法 赋值运算符 赋值运算&#xff1a;将等号右边赋值给等号左边 常见场景&#xff1a; 比较运算符 代码解析&#xff1a; 逻辑运算符 位运算符&#xff08;了解&#xff09; 三目运算符 身份证运算符 成员运算符

uniApp中uView组件库的丰富单元格方法

目录 基础功能 #自定义内容 #自定义大小 #展示右箭头 #跳转页面 #右侧内容垂直居中 #自定义插槽 当谈到uniapp的uView组件库中的单元格&#xff08;Cell&#xff09;方法时&#xff0c;我们需要了解它的基本功能和用法。 单元格是一种常用的UI元素&#xff0c;在移动应…

每日一题——LeetCode977

方法一 个人方法&#xff1a; 以示例1为例&#xff1a;把[-4,-1,0,3,10] 中n<0的元素拆分出来&#xff0c;把他们的平方从小到大放入arr数组&#xff0c;则arr[0,1,16] ,那数组就还剩[3,10] 对于剩下的元素&#xff0c;看arr里面有没有比他们平方更小的元素先放入res数组&…

WAZUH的安装、设置代理

wazuh安装 wazu的安装分为以下两种方式 官方文档&#xff1a;https://wazuh.com/blog/detecting-common-linux-persistence-techniques-with-wazuh/ 1、自定义安装 这种方式就是一步一步的安装 直接参考官方文档&#xff1a; 这里就不详细介绍了 2、直接下载打包好的虚拟机…

python观察图像的幅度谱和相位谱——冈萨雷斯数字图像处理

原理 在图像处理中&#xff0c;当我们对图像进行傅里叶变换&#xff0c;可以得到两个重要的成分&#xff1a;幅度谱和相位谱。这些成分在图像分析和处理中扮演着关键的角色。 傅里叶变换 傅里叶变换是一种将信号从时域&#xff08;或空间域&#xff09;转换到频率域的工具。对…

Note: Wildlife Protection

wildlife protection protection wildlife Dinosaurs died out because of an unexpected incident. unexpected dinosaurs But wildlife today disappears or is in danger just because humans do harm to it. 但是&#xff0c;今天的野生动植物因为人类的伤害而消失了或…

Hadoop安装笔记1单机/伪分布式配置_Hadoop3.1.3——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

将下发的ds_db01.sql数据库文件放置mysql中 12、编写Scala代码&#xff0c;使用Spark将MySQL的ds_db01库中表user_info的全量数据抽取到Hive的ods库中表user_info。字段名称、类型不变&#xff0c;同时添加静态分区&#xff0c;分区字段为etl_date&#xff0c;类型为String&am…

Autodesk Maya各版本安装指南

链接地址如下&#xff1a; https://pan.baidu.com/s/1Fg7MvUJS0tl5t2XAwMK9xg?pwd0531 1.鼠标右击【Maya2024(64bit)】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;【解压到 Maya2024(64bit)】。 2.打开解压后的文件夹&#xff0c;双击打开【Setu…

【形式语言与自动机/编译原理】CFG->Greibach->NPDA(1)

本文将详细讲解《形式语言与自动机》&#xff08;研究生课程&#xff09;或《编译原理》&#xff08;本科生课程&#xff09;中的上下文无关文法&#xff08;CFG&#xff09;转换成Greibach范式&#xff0c;再转成下推自动机&#xff08;NPDA&#xff09;识别语言是否可以被接受…