读论文《OmniGen: Unified Image Generation》

OmniGen演示了在单一框架内执行各种图像生成任务的能力。此外,它还具有推理能力和语境学习能力。

论文地址:2409.11340v1 (arxiv.org)

项目地址:GitHub - VectorSpaceLab/OmniGen

项目目前还不完整,论文展现的通用性十分强大,就是不知道稳定性怎么样。

摘要

        大型语言模型 (LLM) 的出现统一了语言生成任务,并彻底改变了人机交互。然而,在图像生成领域,能够在单个框架内处理各种任务的统一模型在很大程度上仍未得到探索。在这项工作中,我们介绍了 OmniGen,这是一种用于统一图像生成的新扩散模型。与流行的扩散模型(例如 Stable Diffusion)不同,OmniGen 不再需要 ControlNet 或 IP 适配器等额外模块来处理各种控制条件。OmniGen 具有以下特点:1) 统一:OmniGen 不仅展示了文本到图像的生成功能,而且本身也支持各种下游任务,例如图像编辑、主题驱动生成和视觉条件生成。此外,OmniGen 可以通过将经典的计算机视觉任务转换为图像生成任务(例如边缘检测和人体姿势识别)来处理这些任务。2) 简单性:OmniGen 的架构高度简化,无需额外的文本编码器。此外,与现有的扩散模型相比,它更加用户友好,能够通过指令完成复杂的任务,而无需额外的预处理步骤(例如,人体姿态估计)并花费大量成本,从而显著简化了图像生成的工作流程。3) 知识转移:受益于统一格式的学习,OmniGen 可以有效地在不同任务之间传递知识,管理看不见的任务和领域,并展示出新颖的能力。我们还探讨了该模型的推理能力和思维链机制的潜在应用。

  1. 统一:不仅可以文本生成图像,还支持多种下游任务,如图像编辑、主题驱动生成和视觉条件生成。(这个准确率真的可以保证吗)
  2. 简单:架构简化,不需要额外的文本编码器。
  3. 知识迁移:通过统一格式学习,有效跨任务迁移知识,处理未见任务和领域。

 OmniGen

原则:1)通用性:接受任何形式的图像和文本输入以完成各种任务;2)简洁,避免过于复杂的结构设计和众多的附加组件。

网络架构:如图 2 所示,OmniGen 框架采用由变分自动编码器 (VAE)和预训练的大型转换器模型组成的架构。具体来说,VAE 从图像中提取连续的视觉特征,而 transformer 模型根据输入条件生成图像。在本文中,我们使用 SDXL的 VAE 并在训练期间将其冻结。我们使用 Phi-3 [1] 来初始化 transformer 模型,继承了它出色的文本处理能力。与需要额外编码器来预处理条件信息(例如剪辑文本编码器和图像编码器)的最先进的扩散模型不同,OmniGen 本身就对条件信息进行编码,从而大大简化了管道。此外,OmniGen 在单个模型中联合建模文本和图像,而不是像现有工作 [67; 68; 70; 63; 9] 那样使用单独的编码器独立建模不同的输入条件,这缺乏不同模态条件之间的交互。

OmniGen 的框架。文本被标记化为标记,而输入图像通过 VAE 转换为嵌入。OmniGen 可以接受自由格式的多模态提示,并通过整流方法生成图像。

输入格式:模型的输入可以是自由形式的多模态交错文本和图像。我们使用 Phi-3 的分词器来处理文本,无需任何修改。对于图像,我们首先使用具有简单线性层的 VAE 来提取潜在表示。通过将每个补丁线性嵌入潜在空间中,将其转换为视觉标记序列。按照 [50],我们将基于标准频率的位置嵌入应用于输入视觉标记,并使用与 SD3 [13] 相同的方法来处理具有不同纵横比的图像。此外,我们在将每个图像序列插入 t 之前,用两个特殊标记封装每个图像序列:“<img>”和“</img>”

注意力机制:修改了 LLM 中常见的因果注意力机制,将其与双向注意力集成,如图 2 所示。具体来说,我们对序列中的每个元素应用因果注意力,但在每个图像序列中应用双向注意力。这允许每个 patch 注意同一图像中的其他 patch,同时确保每个图像只能关注以前出现的其他图像或文本序列。

推理:在推理过程中,我们随机采样一个高斯噪声,然后应用流匹配方法来预测目标速度,迭代多个步骤以获得最终的潜在表示。最后,我们使用 VAE 将潜在表示解码为预测图像。默认推理步骤设置为 50。得益于注意力机制,OmniGen 可以像使用 kv-cache 一样加速推理,就像 LLMsby:存储前一个和当前的 key 和 va

训练策略
  • 训练目标:使用修正的流(rectified flow)来优化模型参数。模型被训练以直接回归给定噪声数据、时间步和条件信息的目标速度。
  • 训练管道:逐渐增加图像分辨率,使用 AdamW 作为优化器。

X2IDataset

在论文中,X2I数据集是为了训练和评估 OmniGen 模型而构建的大规模统一图像生成数据集。X2I 的含义是 "anything to image",即任何内容到图像,这个数据集涵盖了多种图像生成任务,并且将它们统一成一个格式以供模型学习。

1. 数据集构建目的

X2I 数据集旨在提供多样化的任务和数据类型,以支持 OmniGen 模型的训练,使其能够处理各种图像生成任务。这包括但不限于文本到图像的生成、图像编辑、主题驱动的图像生成以及视觉条件生成。

2. 数据集组成

X2I 数据集由以下几个部分组成:

2.1 文本到图像(Text to Image)
  • 数据来源:包括 Recap-DataComp、SAM-LLaVA、ShareGPT4V、LAION-Aesthetic、ALLaVA-4V、DOCCI、DenseFusion 和 JourneyDB 等。
  • 数据使用:早期训练阶段使用这些数据集来学习广泛的图像-文本匹配关系和多样化的知识。
2.2 多模态到图像(Multi-modal to Image)

这一部分的数据输入是任意交错的文本和图像。

  • 混合模态提示:例如图像编辑、人类动作、虚拟试穿和风格迁移等任务。
  • 视觉条件:使用 MultiGen 数据集学习更细粒度的空间控制功能,包括边缘检测、深度图、骨架、包围盒和分割等六种代表性视觉条件。
2.3 主题驱动图像生成(Subject-Driven Image Generation)
  • 基础数据集:GRIT-Entity 数据集,通过使用 GRIT 数据集的标注,结合 Grounding DINO 模型和 SAM 进行对象检测和分割,然后使用 MS-Diffusion 模型进行图像重绘。
  • 高级数据集:Web Images 数据集,使用自然图像中的知名个体,通过交叉验证策略筛选和标注图像。
2.4 计算机视觉任务(Computer Vision Tasks)

将经典的计算机视觉任务整合进数据集中,以增强模型的图像生成能力。

  • 低级视觉任务:例如去雨、去模糊、修复、着色等。
  • 高级任务:例如人体姿态估计、深度估计等。
2.5 少量样本到图像(Few-shot to Image)

构建了一个少量样本到图像的数据集,以激发模型的上下文学习能力。

3. 数据集规模和多样性

X2I 数据集包含了大约10亿张图像,覆盖了广泛的任务和条件,使其成为一个非常适合训练通用图像生成模型的大规模数据集。

4. 数据集对模型训练的影响

通过在 X2I 数据集上进行训练,OmniGen 模型能够学习到丰富的视觉和语言知识,这使得它能够在多种图像生成任务中表现出色,并且能够处理以前未见过的领域和任务。

X2I 数据集是 OmniGen 模型成功的关键因素之一,它为模型提供了大量的多样化数据来训练其多任务学习能力。

OmniGen 模型的训练数据示例。我们将所有任务的输入标准化为任意交错的图像文本序列格式,用作模型的提示符。占位符 image_i|表示提示中第 i 个图像的位置
(a) GRIT-Entity 数据集的构建过程图示。我们使用实例分割和重绘方法来获取大量数据。(b) 构建我们的 Web 图像数据集时使用的交叉验证策略的图示。对于人物 A 和人物 B 的合影,我们从人物 A 和人物 B 的单张照片中抽取了几张图像,并询问 MLLM 他们是否出现在合影中。仅当人员 A 和人员 B 的“是”比率都达到特定阈值时,才会保留组照片。然后,标记为 “Yes” 的单个图像用于构建具有相应组图像的数据对。

 

实验

作者在多个基准上评估了OmniGen模型的性能,包括:

1. 图像生成任务

  • 文本到图像:在GenEval基准上评估模型的文本到图像生成能力。
  • 图像编辑:在EMU-Edit数据集上评估模型的图像编辑能力。
  • 主题驱动生成:在DreamBench上评估模型的单一实体主题驱动生成能力。
  • 视觉条件控制:评估模型基于图像提示生成图像的能力。

2. 计算机视觉任务

作者还展示了OmniGen在各种计算机视觉任务上的性能,包括去雨、去模糊、修复和人体姿态识别等。

3. 进一步分析

  • 新兴能力:通过在X2I数据集上进行统一训练,OmniGen能够跨不同场景和任务迁移知识,从而在未见任务和领域上生成图像。
  • 推理能力:OmniGen展示了推理能力,可以通过分析图像内容和文本指令来识别和编辑图像中的特定对象。
  • 逐步推理:作者探索了将逐步推理方法应用于图像生成的可能性,通过模拟人类绘画过程逐步细化图像。

结论

OmniGen是第一个尝试通用图像生成模型的工作,尽管存在一些未解决的问题,但作者计划开源相关资源以促进该领域的进步。这篇论文提出了一个创新的统一图像生成模型,通过简化的架构和多任务学习,展示了在多个图像生成任务上的潜力。

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

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

相关文章

【云安全】云原生安全攻防

一、云原生安全 1、云原生介绍 云原生指构建和运行应用以充分利用通过云交付模式交付的分布式计算。云原生应用旨在充分利用云平台特有的可扩展性、弹性和灵活性优势。根据云原生计算基金会 (CNCF)的定义&#xff0c;云原生技术可帮助企业在公有云、私有云和混合云上构建和运行…

认知杂谈82《跳出信息茧房,持续精进》

内容摘要&#xff1a; 互联网时代&#xff0c;信息丰富&#xff0c;但便捷性削弱了我们的好奇心。互联网是双刃剑&#xff0c;快速获取知识的同时&#xff0c;也让我们陷入“信息茧房”&#xff0c;限制视野。 好奇心减少&#xff0c;部分原因是互联网的“懒惰效应”&#xff0…

ProcessOn为什么导出有水印!!!(利用SVG转PNG)

processon-svg2png ProcessOn 一个非常好用的思维导图网站&#xff0c;但是为什么导出有水印&#xff01;&#xff01;&#xff01;。 功能 支持按钮拖拽支持将流程图svg 转成 png下载支持修改自定义文字下载svg&#xff08;开发中&#xff09; 安装/使用方法 安装并使用…

亚马逊跨境电商测评补单系统防关联全攻略

在跨境电商领域&#xff0c;尤其是亚马逊、速卖通等平台上&#xff0c;测评补单已成为提升产品曝光度和销量的重要手段。然而&#xff0c;但多账号操作带来的关联风险始终是卖家们需要面对的一大问题。为了维护平台的公平秩序&#xff0c;这些各电商平台实施了严格的用户管理制…

Mysql梳理10——使用SQL99实现7中JOIN操作

10 使用SQL99实现7中JOIN操作 10.1 使用SQL99实现7中JOIN操作 本案例的数据库文件分享&#xff1a; 通过百度网盘分享的文件&#xff1a;atguigudb.sql 链接&#xff1a;https://pan.baidu.com/s/1iEAJIl0ne3Y07kHd8diMag?pwd2233 提取码&#xff1a;2233 # 正中图 SEL…

线性跟踪微分器TD详细测试(Simulink 算法框图+CODESYS ST+博途SCL完整源代码)

1、ADRC线性跟踪微分器 ADRC线性跟踪微分器(ST+SCL语言)_adrc算法在博途编程中scl语言-CSDN博客文章浏览阅读784次。本文介绍了ADRC线性跟踪微分器的算法和源代码,包括在SMART PLC和H5U平台上的实现。文章提供了ST和SCL语言的详细代码,并讨论了跟踪微分器在自动控制中的作用…

【C++掌中宝】C++ 中的空指针救世主——nullptr

文章目录 1. 什么是 NULL&#xff1f;2. NULL 在 C 和 C 中的区别3. C11 引入 nullptr 的原因4. nullptr 与 NULL 的区别5. nullptr 的应用场景6. 模拟 nullptr 的实现7. 总结结语 1. 什么是 NULL&#xff1f; 在 C 和 C 编程中&#xff0c;NULL 常用于表示空指针&#xff0c;…

《开题报告》基于SpringBoot的社区养老平台的设计与实现+学习文档+答辩讲解视频

开题报告 研究背景 随着社会的快速发展和人口老龄化趋势的加剧&#xff0c;养老服务已经成为一个日益重要的议题。传统的养老模式逐渐暴露出诸多不足&#xff0c;如服务内容单一、服务质量难以保证、管理效率低下等问题&#xff0c;无法满足老年人日益多样化、个性化的需求。…

导出Power bi中的Measure

工作中做交接文档时&#xff0c;有时需要导出Power BI中所有度量值&#xff0c;这时可以下载两个工具。 一 &#xff0c; 下载工具&#xff1a; 1 &#xff0c; DaxStudio&#xff1a; http://daxstudio.org/ 2&#xff0c; Vertipaq Analyzer&#xff1a; https://www.sqlbi.c…

编写程序将华氏温度78度转换为摄氏温度,转换成的摄氏温度要求输出。转换公式为:摄氏度=(5/9)*(华氏度-32)

目录 前言 一、代码部分 二、运行截图 前言 1.本文所讲的是java程序设计语言&#xff0c;其内容是在java语言程序设计实现摄氏温度的转换&#xff1b; 2.Java文件的编写以收入到我的专栏“Java”当中&#xff0c;其中有相关的系列文章&#xff1b; 3.本文的操作步骤具有…

ROG NUC:重塑未来,从“芯”开始

ROG NUC以令人惊叹的紧凑身形、强大配置&#xff0c;从“芯”出发&#xff0c;重塑我们对科技生活的想象&#xff0c;让玩家感受由微缩主机带来的性能风暴。 至强“芯”脏&#xff0c;性能巅峰 ROG NUC至高搭载英特尔酷睿Ultra9处理器&#xff0c;采用先进的制程工艺&#xff…

for循环的应用

正三角 for (int i 0; i < 8; i) { for (int j 0; j < 15; j) { int kong 8 - i - 1; int star 2 * i 1; if (j < kong) { Console.Write(" "); } else if (j < kong star)…

基于Springboot企业员工人事管理系统JAVA|VUE|SSM计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统&#xff1a;Window操作系统 2、开发工具&#xff1a;IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

CodeMeter创新授权解决方案,为半导体自动化行业打造全面保护策略

面临挑战 随着半导体行业的快速发展&#xff0c;KINESYS Software需要为其客户提供更加灵活且适应性强的自动化解决方案。半导体制造过程的复杂性日益增加&#xff0c;晶圆追踪和设备管理需要更高效、精确的解决方案。同时&#xff0c;行业标准的变化以及对安全性和合规性的严格…

C++ 移动迭代器:STL与移动语义的相遇

移动迭代器&#xff1a;STL与移动语义的相遇 一、引言二、C 中移动语义的先决条件2.1、传统的复制机制2.2、移动语义的引入2.3、使用 std::move 进行显式移动 三、移动迭代器3.1、移动迭代器的用途3.2、如何使用移动迭代器3.3、移动迭代器的注意事项 四、避免数据丢失五、范围库…

Gartner最新指南:如何通过开展红队演习提高网络弹性

由于事件和监管要求不断增加&#xff0c;安全和风险管理领导者努力建立网络弹性并有效管理网络威胁。本研究指导这些领导者制定红队计划以支持弹性及其关键组件。 主要发现 根据 2024 年 Gartner 设计和构建现代安全运营调查&#xff0c;73% 的组织认为红队角色对安全运营目标的…

FGL;FGL peptide;EVYVVAENQQGKSKA; Cas:499993-62-3

【FGL peptide 简介】 FGL peptide 是一种多肽&#xff0c;是由15个氨基酸组成的两亲性多肽分子,序列为Glu - Val - Tyr - Val - Val - Ala - Glu - Asn - Gln - Gln - Gly - Lys - Ser - Lys - Ala。FGL peptide 能够由多肽筛选发现。多肽筛选是一种主要通过免疫测定法而集合活…

JAVA开源项目 体育馆管理系统 计算机毕业设计

本文项目编号 T 048 &#xff0c;文末自助获取源码 \color{red}{T048&#xff0c;文末自助获取源码} T048&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计 六、核…

大作业(手把手带你实现):交通标志图像分类系统

在现代交通管理中&#xff0c;交通标志的识别与分类是确保道路安全和流畅的重要环节。随着智能交通系统的发展&#xff0c;利用计算机视觉技术实现交通标志的自动识别成为研究热点。这一系统不仅能帮助司机更快地理解路况&#xff0c;还能为自动驾驶汽车提供关键决策支持。通过…

【QA-MISRA】解决使用命令行扫描项目后看不到报告的问题

1、 文档目标 解决使用命令行扫描项目后看不到报告的问题 2、 问题场景 客户使用命令行扫描项目后看不到报告&#xff0c;原因是客户未设置和勾选报告格式就导出了DAX文件进行命令行直接扫描。 3、软硬件环境 1、软件版本&#xff1a; QA-MISRA23.04 2、机器环境&#xff1…