论文阅读笔记:OminiControl: Minimal and Universal Control for Diffusion Transformer

论文阅读笔记:OminiControl: Minimal and Universal Control for Diffusion Transformer

  • 1 背景
    • 1.1 问题
    • 1.2 提出的方法
  • 2 创新点
  • 3 方法
  • 4 模块
    • 4.1 预备知识
    • 4.2 OminiControl
      • 4.2.1 利用已有的结构
      • 4.2.2 统一序列处理
      • 4.2.3 位置感知token交互
      • 4.2.4 可控调节强度
    • 4.3 Subjects200K数据集
  • 5 效果
    • 5.1 和SOTA方法对比

论文:https://arxiv.org/abs/2411.15098
代码:https://github.com/Yuanshi9815/OminiControl

1 背景

1.1 问题

虽然扩散模型显著地提高了图像生成的技术水平,在质量和多样性方面都超过了传统的基于GAN的方法,但细粒度控制的问题仍然存在。本文条件扩散模型被视为控制生成的主要范式,使得用户能够通过自然语言描述来指导合成过程。然而这些模型在根本上缺乏指定精确细节的能力。

为了解决这一限制,最近的工作转向基于图像的控制方法。作为实现细粒度控制的一个有前景的解决方案,这些方法使用户能够通过参考图像或视觉提示来指定他们的意图,提供比单独的文本更精确的指导。

然而,当前的图像控制方法面临着几个关键的挑战:

  1. 现有的方法需要使用专门的控制模块进行大量的架构修改,从而导致显著的参数开销

  2. 这些方法表现出明显的任务偏向——他们通常对空间对齐的控件(例如,边缘引导或深度引导生成)或空间非对齐的控件(如风格转移或主题驱动生成)都很有效,但很少同时适用于这两种空间。

  3. 目前的方法主要针对Unet框架。这些方法在应用于新的扩散Transformer模型(DiT)时可能会会产生次优的结果,这是由于其基本的结构差异,尽管后者具有优越的生成能力。

1.2 提出的方法

基于现有问题,本文提出了 OminiControl,一个全能但最小化的框架,通过利用 DiT 架构中的现有组件来实现有效的控制。

为了实现最小化架构和参数开销:OminiControl 首先利用内置的VAE编码器,将条件图像投影到与目标图像相同的隐空间中,将条件 token 与噪声latent进行拼接,并使用 DiT 的多模态注意力进行处理。这种统一的序列使得去噪网络可以直接处理这两种信号,只需要对现有的Transformer块进行LoRA微调。与现有的IP-Adapter(依赖于单独的CLIP特征提取器)和ControlNet(需要额外的控制模块)不同,OminiControl显著降低了架构复杂性和参数开销。

在此基础上,OminiControl 使用DiT架构统一控制生成任务。通过修改注意力机制中的显式位置嵌入,他同时处理空间对齐和非空间对齐任务。通过显式控制条件 token 在注意力机制中的位置,OminiControl 不仅可以语义注意力处理非对齐控制任务,还可以通过灵活的 token 交互实现空间对齐控制,而不像ControlNet那样依赖于刚性的空间特征。

在设计 OminiControl 的同时,为了充分发挥其在不同控制场景中的潜力,本文解决了主题驱动生成面临的一个关键挑战——缺乏高质量训练数据。为此,作者开发了专门为主题驱动生成任务设计的自动化数据合成 pipeline。该流程建立在一个关键的观察之上,即DiT模型可以通过简单地提供适当的提示来生成具有显著一致性的图像对。使用这个 pipeline,作者创建了一个包含20万张具有丰富变化的多样化图像综合数据集 Subjects200K。

效果如下。
在这里插入图片描述

2 创新点

  1. 提出了一个针对 DiT 模型的最小化且通用的控制框架 OminiControl。通过重用现有组件来最小化架构变化,仅引入0.1 %的额外参数;通过将条件 token 集成到原始的多模态注意力中,并利用位置嵌入来处理空间对齐和非对齐任务,从而实现统一控制。

  2. 开发了一个自动化的数据合成 pipeline,该 pipeline 利用了 DiT 在生成身份一致图像对方面的固有能力。使用该方法,作者创建并发布了一个包含超过20万张不同图像的大规模数据集 Subjects200K,用于主题驱动生成。

  3. 在包括边缘引导、深度引导和主题驱动生成在内的各种控制任务上进行了广泛的实验。

3 方法

在这里插入图片描述

先前的方法是将条件 token C T C_T CT 和 噪声图像嵌入 X X X 拼接传入多模态注意力中,并用额外的控制模块编码条件图像 C I C_I CI。本文是直接将三者拼接起来传入到 MMA 中。

4 模块

4.1 预备知识

在FLUX.1,Stable Diffusion和PixArt等框架中的 DiT 模型使用Transformer作为去噪网络,对噪声图像进行迭代优化。

一个 DiT 模型处理两种类型的 token:噪声Token X ∈ R N × d X∈R^{N×d} XRN×d 和文本条件Token C T ∈ R M × d C_T∈R^{M×d} CTRM×d,其中 d d d 是嵌入的维度, N N N M M M 分别是图像和文本 token 数量,如图2。在整个网络中,这些token在经过多个Transfomrer块时保持一致的形状。

在FLUX.1中,每个 DiT 块由层归一化后的多模态注意力组成,其中融入了旋转位置嵌入(RoPE)来编码空间信息。对于图像 token X X X,RoPE采用基于 token 在二维网格中位置 ( i , j ) (i,j) (i,j) 的旋转矩阵:
在这里插入图片描述

其中 R ( i , j ) R(i,j) R(i,j) 是位置 ( i , j ) (i,j) (i,j) 处的旋转矩阵。本文 token C T C_T CT 经过相同的变换,其位置设置为 (0,0)。

简单来说 RoPE 的 self-attention 操作的流程是,对于 token 序列中的每个词嵌入向量,首先计算其对应的 query 和 key 向量,然后对每个 token 位置都计算对应的旋转位置编码,接着对每个 token 位置的 query 和 key 向量的元素按照 两两一组 应用旋转变换,最后再计算 query 和 key 之间的内积得到 self-attention 的计算结果。过程如下:
在这里插入图片描述
公式表示如下:
在这里插入图片描述
在这里插入图片描述
旋转位置编码的好处是,当q 和 k 进行 attention 操作后,依然可以保留相对位置,这样就很好的完成了位置编码的任务,而且旋转位置编码就像时钟一样可以无限的旋转,具备很好的外推性。
在这里插入图片描述
参考:https://zhuanlan.zhihu.com/p/687525842

然后,多模态注意力机制将位置编码过的 token 投影为查询 Q,键 K 和值 V,并实现所有 token 之间的注意力计算:
在这里插入图片描述

其中, [ X ; C T ] [X;C_T] [X;CT] 表示图像和文本 token 的拼接。这种范式使得注意力具有双向性。

4.2 OminiControl

基于 DiT 架构,以 FLUX.1 为实现基础,作者开发了 OminiControl,一种全能但最小化的控制框架,通过视觉条件来指导生成。

4.2.1 利用已有的结构

为了实现全能性和最小化框架变化,OminiControl 从基于 DiT 模型中复用 VAE 编码器,将条件图像投影到与噪声图像 token 相同的隐空间中。与以前的方法相比,这种方法显著的降低了架构的复杂性。编码后的条件 token C I C_I CI 与噪声图像 token X X X 具有相同的维度和隐空间,可直接由 Transformer 块处理,OminiControl 利用已有的 DiT 块对他们进行联合处理,只需要通过LORA进行微调即可。

4.2.2 统一序列处理

先前的方法,如 controlnet 和 T2I-Adapter,通过直接特征来合并条件图像:
在这里插入图片描述

其中 C I C_I CI 是空间对齐的,并添加到噪声图像 token X X X 中。该方法虽然对空间对齐任务有效,但面临两个限制:

  1. 对于不存在空间对齐的非对齐场景缺乏灵活性

  2. 刚性的加法限制了条件和图像 token 之间的潜在交互

相反,OminiControl 直接将条件 token 与噪声图像令牌 [ X ; C T ; C I ] [X;C_T;C_I] [X;CT;CI] 拼接,用于多模态注意力处理。该方案通过 DiT 的多模态注意力机制,实现了灵活的 token 交互,允许任意一对 token 之间产生直接关系,而不需要事假严格的空间约束。

在这里插入图片描述

如图5所示,该方法有效的处理了空间对齐和非空间对齐任务,注意力图揭示了清晰的跨 token 关系和交互模式。这种方法获得了更低的训练损失,如图4a,表明了在不同生成场景下优越的调节能力。
在这里插入图片描述

4.2.3 位置感知token交互

虽然统一序列方法允许灵活的 token 交互,但是为新添加的条件 token 编码位置信息并不简单。

在 FLUX.1 中,RoPE 机制要求每个 token 都要有一个制定的位置索引 ( i , j ) (i,j) (i,j),这可能会直接影响 token 在多模态注意力过程中如何交互。

具体来说,对于 512 × 512 512×512 512×512 的输入图像,VAE编码器产生一个 32 × 32 32×32 32×32 的隐 token 网格,每个 token 分配一个位置索引 ( i , j ) (i,j) (i,j) ,其中 i , j ∈ [ 0 , 31 ] i,j∈[0,31] i,j[0,31]。文本 token C T C_T CT 按 FLUX.1 中的设定在 ( 0 , 0 ) (0,0) (0,0) 处保持固定。因此,为条件 token 分配合适的位置索引非常必要。

在本文方法中,为空间对齐和非空间对齐分配了不同的位置索引:
在这里插入图片描述

其中 Δ \Delta Δ 是一个固定的偏移向量。

对于像边缘引导生成这样的空间对齐任务,条件 token 与其对应的噪声图像共享位置,便于精确的空间对应。对于主题驱动生成这样的非对齐任务,作者通过 Δ \Delta Δ 变换条件 token 的位置,保证了与 X X X 不存在空间重叠,如图4b所示,这种变换使得非对齐任务具有更快的收敛速度和更好地性能。

4.2.4 可控调节强度

虽然 OminiControl 的统一序列处理和多模态注意力使训练过程中能够进行有效的 token 交互,但实际应用往往需要在测试时调节条件强度。

作者在多模态注意力计算中引入偏置项来实现这一目的。具体地,对于给定地强度因子 γ \gamma γ,将方程2中地注意力操作改为:
在这里插入图片描述

其中 B ( γ ) B(\gamma) B(γ) 是一个偏置矩阵,调节级联 token [ C T ; X ; C I ] [C_T;X;C_I] [CT;X;CI] 之间地注意力。给定 C T ∈ R M × d C_T∈R^{M×d} CTRM×d X , C I ∈ R N × d X,C_I∈R^N×d X,CIRN×d,偏置矩阵具有结构:
在这里插入图片描述

该公式保留了每个 token 类型的原始注意力模式,同时将 X X X C I C_I CI 之间的注意力权重通过 l o g ( γ ) log(\gamma) log(γ) 来缩放。在测试时,设置 γ = 0 \gamma=0 γ=0 可以消除条件的影响,而 γ > 1 \gamma>1 γ>1 时则会增强条件。这使得用户无需重新训练模型就可以灵活调节文本和图像条件之间的平衡。

4.3 Subjects200K数据集

开发通用控制框架的一个关键挑战在于为主题驱动生成获取高质量的训练数据。虽然 OminiControl 的架构可以实现灵活的控制,但有效的训练需要再保持主题一致的情况下纳入姿势、光照和上下文的自然变化的数据。

现有的解决方案通常依赖于相同的图像对或有限规模的数据集,存在一些局限性。在本文的框架中使用相同的对会导致过拟合,导致模型简单的复现输入,同时,现有的具有自然变化的数据集往往缺乏鲁棒训练所需的规模和多样性。

为了解决这个数据挑战,作者利用一个关键的观察:最先进的DiT模型,如FLUX.1,在提供适当的提示时,可以生成身份一致的图像对,在次基础上,作者开发了一个 pipeline 来创建 Subjects200K,这是一个专门为主题驱动生成设计的大规模数据集:

  • 提示生成。作者使用GPT-4o生成了超过30000个不同的主题描述,每个描述在多个场景中代表同一个主题,目标是突出不同的对象或主体,同时允许自然变化。

  • 成对图像合成。将收集到的描述重组为结构化提示,每个提示语在两个不同的场景中描述同一个主题。这些提示输入到 FLUX 中生成图像对。每一对的设计都是为了在姿态、照明和上下文变化的情况下保持主题一致。

  • 质量评估。最后,作者用GPT-4o对生成的图像对进行评估,去除无匹配对,保证身份一致性和较高的图像质量。

生成数据集如图6,超过200000张高质量图像。
在这里插入图片描述

5 效果

5.1 和SOTA方法对比

效果对比。
在这里插入图片描述
在这里插入图片描述

参数量对比。
在这里插入图片描述

不同任务效果展示。

使用 Subject200K 的效果。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

时序论文30|NIPS24一篇对时间戳深入研究的文章

论文标题:Frequency Adaptive Normalization For Non-stationary Time Series Forecasting 论文链接:https://arxiv.org/pdf/2409.18696 代码链接:https://github.com/ForestsKing/GLAFF 前言 这篇论文提出了一个新框架GLAFF,…

图像处理 - 车道线检测:智能驾驶的“眼睛”

引言 在智能驾驶技术飞速发展的今天,车道线检测作为一项基础而关键的技术,扮演着车辆“眼睛”的角色。它不仅关系到车辆的导航和定位,还直接影响到自动驾驶系统的安全性和可靠性。本文将带你深入了解车道线检测技术的原理、方法以及在实际应用…

加速科技精彩亮相ICCAD 2024

12月11日—12日 ,中国集成电路设计业的年度盛会——ICCAD 2024在上海世博馆隆重举行。本次活动以“智慧上海,芯动世界”为主旨,汇聚了众多业界精英,共同探讨集成电路产业的未来。作为半导体测试行业领军企业,加速科技携…

java+springboot+mysql法律咨询网

项目介绍: 使用javaspringbootmysql开发的法律咨询网(文书),系统包含管理员、用户角色,功能如下: 管理员:登录系统;用户管理;文章管理(法律知识&#xff09…

安卓BLE蓝牙开发经验分享

注意点一:一开始必须申请权限,否则后面根本无法成功。 注意点二:BLE使用向某个特征写入来发送数据,写入一次默认长度是23字节,必须向蓝牙设备申请更大字节的写入才能发送更多字节。(23字节是BLE通信的最小…

Linux shell的七大功能 ---自动补齐、管道机制、别名

1、自动补齐---TAB 输入命令的前几个字符,按下tab键,会自动补齐完整的字符,若有多个命令、文件或目录的前几个字符相同,按下tab将会全部列举出来 2、管道机制---| 例如:ls -- help |more 将有关ls的帮助内容传递给“|…

实现SpringBoot项目嵌入其他项目

很多时候我们需要在项目里面嵌入其他项目或者被其他项目嵌入,如我们开发一个开源项目b,用户需要在自己的项目a嵌入b项目,使用b项目的功能,而且要实现a项目工作最小化,最好实现引入即用。 1.定义b项目的自定义配置 …

Fiddler查看服务器响应数据有乱码,如何解决?

解决方案: 第1步: (1)打开注册表,快捷键winr,操作如下图所示: (2) 在运行输入框中输入:regedit。 第2步:进入注册页主界面,如下图所示&#x…

ASP.net Core EntityFramework Code EF code 汇总

Entity FrameWork EF 总结 EF Core EF Core 如果实体模型很多,全部放在 上下文中的 OnModelCreating(ModelBuilder modelBuilder) 不太好维护 可以把实体模型 分离出去,每个类创建一个实体模型 public class BookConfiguration :IEntityT…

Docker概述与基础入门

1. 什么是Docker? Docker 是一个开源的平台,用于自动化应用程序的构建、部署和管理。它允许开发人员通过将应用程序及其依赖项打包成容器镜像,从而确保应用可以在任何环境中一致地运行。Docker 容器是轻量级的、可移植的、且具有高度隔离性的…

【Linux学习】十五、Linux/CentOS 7 用户和组管理

Linux下组和用户的管理都必须是root用户下进行: 一、组的管理 1.组的创建 格式: groupadd 组名参数: -g:指定用户组的组ID(GID),如果不提供则由系统自动分配。 【案例】创建一个名为 oldg…

XV6 开发环境搭建

Step 1 搭建ubuntu 20.04 虚拟机 注意:一定要使用ubuntu 20.04,该版本可以直接通过deb安装gnu编译工具链。 安装完虚拟机后,换apt源。 ubuntu20.04镜像下载链接 设置root账户密码: sudo passwd root Step 2 下载解压qemu 5.1.0 wget ht…

计算机网络-基础概念(HTTP,TPC/IP, DNS,URL)

HTTP不同的版本 HTTP0.9于1990年问世,此时HTTP并没有作为正式的标准被建立。HTTP正式被公布是1996年的5月,版本命名为HTTP/1.0。HTTP1.1,1997年1月公布,目前仍然是主流版本的HTTP协议版本。 TCP/IP 通常使用的网络是在TCP/IP协…

使用枚举实现单例模式,不会反序列化破坏攻击,不会被反射破坏攻击。(附带枚举单例的简单实现)

原因分析 1.反序列化方法 ① jdk8中的Enum源码中对反序列化方法进行重写,抛出异常。 java.lang.Enum#readObject方法截图如下 ②java.io.ObjectInputStream#readObject 方法中的 readEnum 方法处理了枚举类型的反序列化,从而确保了枚举的单例特性。 …

数据挖掘之聚类分析

聚类分析(Clustering Analysis) 是数据挖掘中的一项重要技术,旨在根据对象间的相似性或差异性,将对象分为若干组(簇)。同一簇内的对象相似性较高,而不同簇间的对象差异性较大。聚类分析广泛应用…

【C++】判断能否被 3, 5, 7 整除问题解析与优化

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述💯老师代码实现与分析老师代码逻辑分析优点缺点 💯学生代码实现与分析学生代码逻辑分析优点缺点 💯改进与优化优化代码实现优化…

PHP开发日志 ━━ 基础知识:四种不同的变量返回方式该如何调用

最近在给框架升级,其中涉及到古早的缓存系统升级,现在准备区分类型为混合、变量和普通文件,那么变量用什么形式存储到缓存才能给后续开发带来便利和通用性呢?于是就涉及到了本文的php基础知识。 好吧,又是一个无用的知…

Y3编辑器教程5:触发器进阶使用(镜头、UI、表格、函数库、排行榜、游戏不同步)

文章目录 一、游戏声音设计二、 游戏镜头设计2.1 镜头的基本参数2.2 镜头时间轴动画 三、界面编辑3.1 界面编辑器设置3.2 添加按钮事件3.3 触发编写 四、 表格编辑器(实现对话UI)4.1 一维表和多维表4.2 数据验证、搜索、保存与撤销4.3 Excel导入导出4.4 …

高中数学:成对数据的统计分析

文章目录 一、成对数据的统计相关性1、相关关系2、样本相关系数 二、一元线性回归模型及其应用1、一元线性回归模型2、最小二乘估计3、拟合效果比较公式4、注意点5、例题 三、列联表与独立性检验1、分类变量2、分类变量与列联表3、独立性检验4、常用小概率值和临界值5、例题6、…

Python OCR文字识别api接口

一.引言 文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技…