OmniGen: Unified Image Generation——统一图像生成模型

周末闲来无事看了一篇关于统一图像生成的文章,这里记录自己的阅读记录,感兴趣的话可以参考一下,如果想要阅读原文可以来这里,如下所示:

摘要

大型语言模型(LLMs)的出现统一了语言生成任务,并彻底改变了人机交互。然而,在图像生成领域,一个能够在单一框架内处理各种任务的统一模型仍然很大程度上未被探索。在这项工作中,我们介绍了OmniGen,一种新的扩散模型,用于统一图像生成。OmniGen的特点如下:1)统一性:OmniGen不仅展示了文本到图像的生成能力,还自然支持各种下游任务,如图像编辑、主体驱动生成和视觉条件生成。2)简洁性:OmniGen的架构非常简化,无需额外的插件。此外,与现有的扩散模型相比,它更加用户友好,可以通过指令完成复杂的任务,无需额外的中间步骤,大大简化了图像生成的工作流程。3)知识迁移:得益于在统一格式中的学习,OmniGen能够有效地在不同任务之间迁移知识,管理未见过的任务和领域,并展现出新的能力。我们还探讨了模型的推理能力和思维链机制的潜在应用。这项工作代表了通用图像生成模型的首次尝试,官方项目在这里,如下所示:

1 引言

对人工通用智能(AGI)的追求加剧了对能够在单一框架内处理各种任务的生成基础模型的需求。在自然语言处理(NLP)领域,大型语言模型(LLMs)已成为实现这一目标的典范,展示了在众多语言任务中的显著多功能性。然而,视觉生成领域尚未揭示出与LLMs的通用性相匹配的模型。当前的图像生成模型在特定任务中表现出色。例如,在文本到图像生成领域,SD系列模型[12, 51, 55]、DALL-E[54]和Imagen[25]取得了显著进展。同时,许多努力致力于扩展扩散模型以处理特定任务,如ControlNet[75]、InstandID[64]和InstructPix2Pix[3]。目前,对于每个新任务,设计特定模块并对其进行微调是必要的,这阻碍了图像生成的发展。更糟糕的是,这些任务特定的模型导致了一个重大问题:我们无法仅通过输入指令来完成任务,而是需要涉及多个模型和众多步骤的复杂繁琐的工作流程。例如,ControlNet需要使用检测器提取条件(如姿态估计图),然后加载相应的条件模块。InstantID只能处理单人图像,并需要面部检测模型预先检测面部,然后使用面部编码器对面部进行编码。如果用户想要编辑生成的图像,还需要加载额外的模型,如InstructPix2Pix。

图1. OmniGen可以灵活地遵循指令完成各种任务,无需任何额外插件。对于复杂任务(例如第二行的示例),它也可以端到端地完成,无需繁琐的中间步骤。

能否通过用户指令让单一模型完成各种任务的端到端处理,类似于ChatGPT处理语言任务的方式? 我们设想一个未来,图像生成变得简单灵活:任何任务都可以直接通过用户指令完成。受此目标的启发,我们提出了一个统一框架:OmniGen。如图1所示,该框架允许方便灵活地生成任何目的的图像,无需额外的插件或操作。由于在遵循任意指令方面的灵活性,新框架还有助于激发更多有趣的图像生成任务。

与流行的扩散模型不同,OmniGen的结构非常简洁,仅由两个主要组件组成:一个VAE和一个transformer模型。OmniGen支持任意交错的文本和图像输入作为条件来指导图像生成,而不仅仅接受纯文本或图像。为了将这种架构训练成统一模型,我们构建了一个大规模的多任务图像生成数据集X2I,该数据集将不同任务统一为一种格式。我们基于多个基准评估了训练良好的模型,展示了其相较于现有模型的优越生成能力。值得注意的是,OmniGen能够在不同场景之间有效迁移知识,处理未见过的任务和领域,并展现出新的能力。

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

我们的贡献总结如下:

  • 我们介绍了OmniGen,一种在多个领域表现出色的统一图像生成模型。该模型展示了有竞争力的文本到图像生成能力,并自然支持各种下游任务,如可控图像生成和经典计算机视觉任务。此外,它可以在没有任何冗长中间步骤的情况下处理复杂的任务。据我们所知,OmniGen是第一个实现如此全面功能的图像生成模型。

  • 我们构建了第一个全面的图像生成数据集,命名为X2I,意为“任何到图像”。该数据集涵盖了广泛的图像生成任务,所有这些任务都被标准化为统一的格式。

  • 通过在多任务数据集上的统一训练,OmniGen可以将学到的知识应用于解决未见过的任务和领域,并展现出新的能力。此外,我们探讨了模型的推理能力和思维链机制。

  • OmniGen迈出了通用图像生成基础模型的第一步。我们将开源相关资源(模型、代码和数据),并希望这项工作能为未来的图像生成模型提供一些见解。

2 OmniGen

在本节中,我们将介绍OmniGen框架的详细信息,包括模型架构和训练方法。

模型设计

网络架构。OmniGen的设计原则是通用性和简洁性。如图2所示,OmniGen采用了一个由变分自编码器(VAE)[27]和预训练的大型transformer模型组成的架构。具体来说,我们使用了SDXL[51]中的VAE来从图像中提取连续的视觉特征。由Phi-3[1]初始化的transformer模型根据作为条件的指令生成图像。训练期间仅冻结VAE。与需要额外编码器预处理条件信息(如CLIP文本编码器和图像编码器)的最先进扩散模型不同,OmniGen本身通过自身编码条件输入,显著简化了流程。此外,OmniGen在单一模型中联合建模文本和图像,而不是像现有工作[8, 64, 68, 70, 72]那样独立建模不同输入条件,缺乏不同模态条件之间的交互。

输入表示。模型的输入可以是自由形式的多模态交错文本和图像。我们使用Phi-3的tokenizer处理文本。对于图像,我们首先使用一个带有简单线性层的VAE提取潜在表示。然后,通过在潜在空间中线性嵌入每个patch,将它们展平为视觉token序列。参考[49],patch大小设置为2。我们对视觉token应用标准频率位置嵌入,并像SD3[12]一样处理具有不同纵横比的图像。此外,我们在每个图像序列前后封装两个特殊token:“<img>”和“</img>”,然后将其插入文本token序列中。我们还在输入序列的末尾附加时间步嵌入[49]。我们不需要任何任务特定的特殊token来指示任务类型。

注意力机制。与可以分解为离散token进行建模的文本不同,我们认为图像应基于其本质作为一个整体进行建模。因此,我们通过将双向注意力与常见的因果注意力机制集成,修改了LLM中的常见因果注意力机制,如图2所示。具体来说,我们对序列中的每个元素应用因果注意力,但在每个图像序列内应用双向注意力。这允许每个patch关注同一图像中的其他patch,同时确保每个图像只能关注之前出现过的其他图像或文本序列。

推理。在推理过程中,我们随机采样一个高斯噪声,然后应用流匹配方法预测目标速度,迭代多次以获得最终的潜在表示。最后,我们使用VAE解码器将潜在表示解码为预测图像。得益于注意力机制,OmniGen可以像LLMs一样通过使用kv-cache加速推理:在GPU上存储输入条件的先前和当前键值状态,以计算注意力而无需重复计算。

训练策略

训练目标。在这项工作中,我们使用校正流[39]来优化模型参数。与DDPM[24]不同,流匹配通过在噪声和数据之间进行线性插值来执行前向过程。在步骤t,xt定义为:xt = tx + (1-t)ε,其中x是原始数据,ε~N(0,1)是高斯噪声。模型被训练为直接回归给定噪声数据xt、时间步t和条件信息c的目标速度。具体来说,目标是最小化均方误差损失:

L = E[||(x - ε) - vθ(xt, t, c)||2] (1)

对于图像编辑任务,目标是在保持其他区域不变的情况下修改输入图像的特定区域。因此,输入图像和目标图像之间的差异通常很小,这使得模型可以学习一个意外的捷径:简单地将输入图像复制为输出以使相关训练损失非常低。为了缓解这种现象,我们放大了图像中发生变化区域的损失。更具体地说,我们基于输入图像x'和目标图像x的潜在表示计算每个区域的损失权重:

wi,j = { 1 if xi,j = x'i,j 1/||x - x'||2 if xi,j ≠ x'i,j } (2)

因此,发生变化的区域被分配了显著更高的权重,指导模型专注于要修改的区域。

训练流程。参考之前的工作[5, 12, 16],我们在训练过程中逐渐增加图像分辨率。低分辨率数据高效,而高分辨率可以增强生成图像的美学质量。每个训练阶段的详细信息如表1所示。我们采用AdamW[40]优化器,β=(0.9,0.999)。所有实验在104个A800 GPU上进行。

3 X2I数据集

为了实现强大的多任务处理能力,必须在大规模和多样化的数据集上训练模型。然而,在图像生成领域,尚未出现现成的大规模和多样化数据集。在这项工作中,我们首次构建了一个大规模的统一图像生成数据集,我们称之为X2I数据集,意为“任何到图像”。我们将所有数据转换为统一的格式,图3展示了一些X2I数据集的示例。整个数据集包含约0.1亿张图像。以下部分将提供详细的组成描述。

文本到图像

该数据子集的输入是纯文本。我们从多个来源收集了多个开源数据集:RecapDataComp[33](56M图像的子集)、SAM-LLaVA[5]、ShareGPT4V[6]、LAION-Aesthetic[57](4M图像的子集)、ALLaVA-4V[4]、DOCCI[45]、DenseFusion[34]和JourneyDB[59]。虽然这些数据集数量庞大,但图像质量并不总是足够高。在训练的早期阶段,我们使用它们来学习广泛的图像-文本匹配关系和多样化的知识。在第3阶段之后,我们使用内部收集的16M高质量图像来增强生成图像的美学质量。我们使用InternVL2[10]为内部数据和LAION-Aesthetic创建合成注释。

图3. X2I数据集的示例。我们将所有任务的输入标准化为交错的图像-文本序列格式。占位符|image i|表示第i个输入图像的位置。

主体驱动图像生成

我们为主体驱动图像生成构建了一个大规模基础数据集(GRIT-Entity数据集)和一个高质量高级数据集(Web Images数据集)。对于GRIT-Entity数据集,我们利用GRIT数据集[50],该数据集在图像中标注了对象名称。使用这些注释,我们应用GroundingDINO[38]进行开放集文本到边界框检测。基于定位的边界框,我们使用SAM[28]从裁剪图像中分割对象掩码。我们进一步使用MS-Diffusion[66]对对象图像进行重绘,以获得更高质量和多样性的数据。数据构建过程和最终指令格式在补充材料中说明。通过这些方法,我们获得了6M数据对。

尽管基于GRIT的方法提供了大量样本,但直接从原始图像中提取的输入数据将使模型陷入简单的复制粘贴模式。为了充分发挥OmniGen的主体驱动图像生成能力,我们从网络上构建了一个高质量的自然图像数据集。我们使用搜索引擎收集同一个人的多张不同图像,使用一张作为输入,另一张作为输出。示例如图3-(c)所示。构建过程的更多细节在补充材料中给出。

计算机视觉任务

我们引入经典计算机视觉任务以扩展模型的生成能力边界。对于低级视觉任务(低光图像增强[67]、去雨[73]、去模糊[44]、修复[52]、外修复[52]和着色[57]),其中注释本身就是图像,我们只添加文本指令,这些指令由GPT-4随机生成。对于高级视觉任务,我们选择将所有注释表示为图像。我们使用LAION[57]中的图像作为源图像,使用[52]中的注释作为目标,构建图像对(如源图像及其人体姿态映射)。注释包括人体姿态、深度映射、Canny边缘、Hed边缘和分割。此外,我们还使用了几个用于指代图像分割的数据集,包括RefCOCO[26]、ADE20k[78]和ReasonSeg[29]。如图3-(d)所示,输入是源图像和自然语言表达,输出是带有相应对象以蓝色高亮的图像。

少样本到图像

我们构建了一个少样本到图像的数据集,以激发模型的上下文学习能力。具体来说,对于前面描述的每个任务,我们随机选择几个示例,并将原始输入与这些示例组合形成新的输入。具体的数据格式如图3-(e)所示。由于训练资源的限制,我们选择只使用一个示例来提高训练效率。

图5. 主体驱动生成。当参考图像包含多个对象时,OmniGen可以根据文本指令自动识别所需对象,无需额外的预处理步骤,如图像裁剪或面部识别。

4 实验结果

默认推理步骤设置为50。我们使用分类器自由引导进行文本条件和图像条件,参考[3]。默认引导尺度设置为2.5,图像引导尺度设置为1.6。对于图像编辑任务,我们将图像引导尺度增加到2。

表2. GenEval基准测试结果。∗表示冻结的文本编码器的参数。我们的模型在相对较小的参数规模下取得了可比性能。

图像生成

4.1.1 定性结果

图4总结了不同图像生成任务的结果,包括文本到图像、图像编辑和视觉条件生成。这些结果表明,OmniGen可以根据多模态指令处理各种下游任务。

图5展示了主体驱动生成任务的结果。OmniGen可以从给定的参考图像中提取所需对象并生成新图像。此外,当参考图像包含多个对象时,模型可以根据文本指令(例如,图像中穿着深红色衬衫的那个)直接选择所需对象,而无需额外的预处理步骤,如图像裁剪或面部识别。相比之下,现有模型[22, 64]需要手动从多人图像中裁剪目标人物,使用面部检测器检测面部,使用面部编码器对面部进行编码,并通过交叉注意力模块输入到扩散模型中。无需这些复杂过程,OmniGen可以在单一的端到端步骤中完成任务。

更多定性结果在补充材料中提供。

4.1.2 文本到图像

参考[12],我们在GenEval[20]基准上评估文本到图像生成能力。我们将OmniGen的性能与其他流行图像生成模型的报告结果进行比较,总结在表2中。令人惊讶的是,OmniGen的性能与当前扩散模型(如SD3)相当,这突显了我们框架的有效性。值得注意的是,OmniGen仅有38亿参数,而SD3模型总共有127亿参数。OmniGen的架构显著简化,消除了额外编码器的成本,从而大大提高了参数利用效率。

4.1.3 多模态到图像

我们在EMU-Edit[58]数据集上评估图像编辑能力,在DreamBench[56]上评估主体驱动生成能力。我们使用CLIP-T来衡量模型遵循指令的程度,而CLIP-I相似度分数衡量模型保留源图像元素的能力。如表3所示,OmniGen展示了与当前最先进模型相当的性能。值得注意的是,对于主体驱动生成任务,我们选择特定对象的一张图像作为输入,而不是像DreamBooth那样对模型进行微调。

表3. 左:EMU-Edit测试数据结果。右:DreamBench结果。作为一个通用模型,OmniGen展示了与最佳专有模型相当的性能。

表4. 与SOTA方法在可控图像生成上的比较。↑表示结果越高越好,而↓表示结果越低越好。

                              图6. OmniGen在各种传统视觉任务中的结果。

图7. ControlNet涉及多个步骤和插件:首先使用相应的检测器从参考图像中提取信息,然后加载适当的ControlNet模块来处理视觉条件。相比之下,OmniGen在一个单一模型中完成整个任务。

在表4中,我们使用[31]的数据集和脚本评估基于视觉条件的生成能力。对于每个条件,可控性通过测量输入条件与从生成图像中提取的条件之间的相似性来评估。我们可以发现,OmniGen在所有条件下都取得了有竞争力的结果。

计算机视觉任务

我们在图6中展示了几个计算机视觉任务的定性结果。OmniGen可以处理各种低级视觉任务,如去雨、去模糊和修复。在图6的底部,我们可以看到OmniGen还能够处理高级视觉任务,如人体姿态识别。

需要注意的是,OmniGen在CV任务中的能力并不旨在超越为特定任务长期开发的现有最先进模型。我们希望它能够将从这些传统计算机视觉任务中学到的知识转移到图像生成任务中,从而解锁更大的潜力。一些示例如图7所示。ControlNet涉及多个步骤和插件:首先使用相应的检测器从参考图像中提取信息,然后加载适当的ControlNet模块来处理视觉条件。相比之下,OmniGen在一个单一模型中完成整个任务。

5 进一步分析

LLMs展示了显著的泛化能力,并通过上下文学习和思维链等机制提升性能。我们在OmniGen中也观察到了类似的功能,并在本节中展示了我们的发现。

                                                    图8. OmniGen的涌现能力示例

涌现能力

通过将所有任务标准化为统一格式并在X2I数据集上训练,OmniGen可以获取通用知识,并允许在不同场景和任务之间迁移知识,从而在未见过的任务和领域上实现生成能力。

任务组合。在实际应用中,用户需求通常涉及任务的组合。如图8-(a)所示,我们的模型能够同时处理多个指令,包括不同任务的指令以及同一任务的多个指令。这些结果突显了我们模型的多功能性和在野外广泛应用的潜力。

端到端工作流程。用户通常需要加载多个模型并进行多步骤处理,最终生成满意的图像,使得工作流程非常繁琐和昂贵。OmniGen同时具备出色的多模态理解和图像生成能力,能够在不依赖外部模型的情况下完成许多任务从而显著简化工作流程并节省成本。如图7所示,OmniGen可以从参考图像中提取相关条件信息,并在一步内基于捕获的条件生成新图像。这个过程是隐式的,所有处理都在模型内部完成,用户只需输入一个简单命令。

未见领域的上下文学习。我们使用FSS[32]中的数据评估泛化能力,该数据集包含在前述数据集中从未见过的对象。在图8-(b)的右侧,我们可以看到OmniGen对“铅笔刀”的概念不熟悉,无法从图像中识别它。然而,当提供一个示例时,模型能够做出准确预测。通过提供一个示例,模型能够成功完成这个未见的分割任务。

推理能力

我们探讨了模型的推理能力,并在图9中展示了结果。如图9的左半部分所示,当给出一个未明确指定对象的指令时,例如“我在哪里可以洗手?请在图像1中帮我找到合适的地方”,模型可以识别图像内容并推断需要一个水槽。因此,模型识别并指示图像中水槽的区域。这一功能在具身智能领域创造了潜在应用,帮助智能体理解多模态指令,定位必要对象并规划后续行动。此外,图9的右半部分展示了在推断目标对象后,模型还可以对其进行编辑操作。如果没有匹配的对象,模型将避免编辑任何无关对象(参见图9右下角的示例)。

思维链

思维链(CoT)方法可以通过将任务分解为多个步骤并依次解决每个步骤来显著提升LLMs的性能,从而获得准确的最终答案。我们考虑是否可以为图像生成应用类似的方法。受人类绘画基本方式的启发,我们希望模仿从空白画布逐步绘制图像的过程,迭代地从空白画布逐步完善图像。我们构建了一个动漫图像数据集,并使用PAINTS-UNDO1模型模拟每个阶段的绘画创作。我们选择8个代表性帧来描绘最终图像的逐步发展。在过滤出不一致的序列后,我们在该数据集上对模型进行了16,000步的微调。

结果如图10所示,与原始模型的输出并列。对于逐步生成,输入数据包括当前步骤的图像和文本,然后模型预测下一步的图像。可以观察到,微调后的模型成功模拟了人类艺术家的行为:绘制基本轮廓,逐步添加细节,进行仔细修改,并对图像进行着色。通过这种方式,用户可以修改先前的结果以控制当前输出,从而更积极地参与图像生成过程,而不是被动地等待带有黑箱扩散模型的最终图像。不幸的是,最终生成的图像质量并未超过原始模型。在逐步生成方法中,模型可能会引入错误的修改,导致最终图像有些混乱。这并不意味着该方法不可行;目前,我们只进行了初步探索,未来的进一步优化留待研究。基于之前关于LLMs的工作[36],结果表明过程监督显著优于结果监督,我们相信在图像生成领域也可以实现类似的效果。

6. 消融研究

在本节中,我们评估了OmniGen中某些模块的必要性。

注意力掩码。图11-顶部展示了在没有修改注意力机制的情况下生成的图像(参见第2.1节)。如图所示,图像中有很多噪声。与图4相比,图11-顶部的生成图像有许多扭曲区域,这证实了LLMs中的单向注意力机制不适用于校正流。

加权损失。图11-底部展示了在没有使用第2.2节中的加权损失进行训练时的结果。对于图像编辑任务,由于编辑区域通常很小,模型倾向于直接将输入图像复制为输出。比较图11-底部和图4,很明显,使用加权损失可以防止模型学习这种捷径。

输入图像表示。CLIP模型广泛用于多模态理解模型[37]。我们还探讨了使用CLIP和使用VAE处理输入图像的差异。结果如表5所示。两种策略之间没有太大差异。使用VAE在图像相似度上有轻微优势,这可能与输出图像也需要VAE处理有关。使用VAE的另一个优势是避免了额外的模块,保持了模型的简洁性。直接输入原始图像是另一种更简单的方法,我们将其留给未来的探索。

7 相关工作

多模态生成模型。大型语言模型(LLMs)通过在大规模数据集上训练,展示了在单一框架内处理各种语言任务的能力。通过在多任务数据集上训练,LLMs可以处理未见过的任务,并通过上下文学习和思维链等机制提升性能。除了语言,多模态大语言模型[11, 37]被提出以整合视觉和语言能力。然而,它们缺乏生成图像的能力。一些工作提出将LLMs与扩散模型集成,使LLMs具备图像生成能力[18, 60, 61, 69]。其他工作使用离散token同时支持图像和文本生成[41, 62, 71]。它们专注于多模态生成,但图像生成能力有限。同时期的工作如TransFusion[79]和Show-O[71]将扩散和自回归方法统一到一个模型中,自回归生成文本,通过扩散生成图像。然而,与现有扩散模型一样,这些工作主要关注有限的图像生成任务,主要是文本到图像生成,无法涵盖更复杂和多样的视觉生成任务。通用图像生成基础模型的构建仍然不明确,尚未得到充分探索。

扩散模型。扩散模型的最新进展显著,Stable Diffusion(SD)系列[12, 51, 55]、DALL-E[54]和Imagen[25]做出了重要贡献。这些模型主要设计用于文本到图像生成任务。许多努力致力于扩展扩散模型的能力,如ControlNet[75]、T2I-Adapter[43]、StyleShot[15]。InstructPix2Pix[3]、InstructSD[48]和EMU-edit[58]通过指令探索执行一般图像编辑任务。然而,这些方法是任务特定的,通过修改模型架构扩展SD的能力。相比之下,OmniGen是一个原生支持各种图像生成任务的模型,不再需要任何预处理步骤或来自其他模型的辅助。有一些工作探索计算机视觉(CV)任务的统一[2, 14, 19, 65]。然而,这些努力主要关注经典视觉任务,而不是通用图像生成任务,并且通常在相应任务的专门设计和训练模型下表现不佳。在我们的工作中,引入CV任务的目的不是在CV任务上获得SOTA性能,而是使模型能够学习通用知识。

8 局限性和结论

在这项工作中,我们介绍了OmniGen,第一个统一的图像生成模型。它设计简单、灵活且易于使用。我们还构建了第一个大规模的统一图像生成数据集X2I,以激活OmniGen的通用能力。OmniGen在各种任务中展示了出色的图像生成能力。

然而,当前模型仍存在一些问题。文本渲染能力有限,无法准确生成长文本。输出图像可能包含不需要的细节(例如异常手部)。此外,之前未见的图像类型(例如表面法线图)几乎无法按预期处理。更多失败案例在补充材料中提供。

我们相信,未来图像生成的范式应该是简单和灵活的,允许通过任何多模态指令直接生成各种图像,而无需复杂的工作流程。OmniGen代表了通用图像生成基础模型的重要一步。我们将开源相关资源,希望为图像生成的未来提供一些见解。

9 更多定性结果

在本节中,我们提供了OmniGen的更多定性结果。总体而言,OmniGen在与其他任务特定开源模型相比时,取得了有竞争力甚至更优的结果。需要注意的是,OmniGen是一个通用模型,并未专门为任何特定任务训练。此外,OmniGen具有许多其他模型缺乏的能力,允许它遵循多模态指令完成复杂任务。据我们所知,OmniGen是第一个在图像生成中实现如此灵活控制的模型。

文本到图像

图12展示了更多文本到图像任务的示例。OmniGen可以生成任意纵横比的图像。

图像编辑

在图13中,我们提供了OmniGen与其他一些开源模型的定性结果比较。如图所示,OmniGen取得了比现有开源模型更好的结果,准确修改指定目标而不改变其他内容。Emu-edit不是开源的,因此无法进一步评估。此外,OmniGen展示了强大的指令理解能力,能够处理复杂任务,如在一个步骤中执行两个编辑指令(如图13-(e)所示)和推理编辑任务(如图13-(f)所示)。在图13-(f)中,我们没有明确指定要修改的目标;模型从描述中推断出目标(气球)并进行精确修改。OmniGen将图像和文本输入到一个统一的transformer中,允许不同模态之间进行广泛交互,从而具有强大的多模态指令遵循能力,这是InstructPix2Pix等框架无法实现的。

主体驱动

图14展示了DreamBench上更多主体驱动生成任务的示例。与Kosmos-G类似,我们使用对象的一张图像作为参考,并根据文本描述生成新图像,而无需在特定对象上进行微调。如图所示,OmniGen在主体保真度和文本保真度方面取得了更好的结果,即在遵循新文本指令的同时保留参考图像中的对象。Kosmos-G难以保持参考图像中的对象。值得注意的是,Kosmos-G并不总是遵循文本指令;如图14-(d)所示,它未能描绘描述的内容。相反,Kosmos-G几乎复制了参考图像,这就是为什么它具有更高的CLIP-I相似度(见主论文中的表3)。此外,Kosmos-G使用SD1.5作为图像模型,导致图像质量低于OmniGen。

身份保留生成

图15展示了身份保留生成任务的结果。OmniGen在质量上优于InstantID,与最新模型PULID-FLUX相当。需要注意的是,作为一个通用模型,OmniGen的面部相似度尚未达到最新专用模型PULID-FLUX的水平,这是未来改进的一个领域。与这些模型不同,InstantID需要面部检测器来检测面部,面部编码器来提取面部特征,而OmniGen不需要任务预处理步骤或额外插件。它通过输入图像和指令自动完成任务。此外,OmniGen不仅关注面部;它可以捕捉输入图像中的其他有用参考信息,如服装。例如,在图15-(a)和-(b)中,OmniGen倾向于保留输入图像中人物的服装。当然,当指令中指定了服装时,OmniGen也可以遵循指令使用新服装(参见图15-(c)和-(d))。相比之下,其他模型只能使用提取的面部,无法利用输入图像中的原始服装。

图16展示了一些OmniGen的独特功能。现有模型无法处理包含多个对象的输入图像或多个输入图像。OmniGen可以根据指令从包含多个对象的图像中提取所需个体,还可以同时处理多个图像,如图16-(a)所示。此外,OmniGen不仅可以处理人;如图16-(b)所示,它可以识别图像中的特定服装项目,并使用它们生成新图像。

失败案例

图17展示了几种典型的当前模型失败案例。我们将当前模型的局限性总结如下:

  • 与现有扩散模型类似,OmniGen对文本提示敏感。通常,详细的文本描述会产生更高质量的图像。

  • 当前模型的文本渲染能力有限;它可以处理短文本段,但无法准确生成较长文本。此外,由于资源限制,训练期间输入图像的数量限制为最多三个,阻止了模型处理长图像序列。

  • 生成的图像可能包含错误的细节,尤其是小而精致的部位。在主体驱动生成任务中,面部特征偶尔不完全对齐。OmniGen有时也会生成不正确的手部描绘。

  • OmniGen无法处理未见过的图像类型(例如表面法线估计的图像)。

我们相信,大多数限制可以通过在更多相关数据上训练模型来解决。此外,与大多数模型相比,OmniGen的下游任务微调更简单。由于OmniGen本身支持多模态输入,用户无需花费大量精力为特定任务设计网络(例如,无需为条件生成添加ControlNet,也无需为图像风格设计额外的风格编码器)。我们将开源训练代码,用户只需准备数据即可为各种任务微调模型,包括之前任何模型都未支持的新任务。我们相信这种方法可以激发广泛的下游应用。

由于缺乏高质量图像数据和模型尺寸不足,OmniGen的图像质量不如最新的FLUX模型。一方面,扩展数据和模型尺寸至关重要;另一方面,使现有模型如FLUX具备类似的多模态指令遵循能力也是一个潜在的研究方向。

10 主体驱动数据集

图18-左展示了GRIT-Entity数据集的构建过程。尽管基于GRIT的方法提供了大量数据,但直接从原始图像中提取的输入数据将使模型陷入简单的复制粘贴模式。为了充分发挥OmniGen的主体驱动图像生成能力,我们使用自然图像构建了一个高质量的Web Images训练数据集。首先,我们从Datacomp数据集4中采样了2000万个Alt-text条目,并使用spaCy5进行命名实体识别。我们选择了最常出现的名称,并使用GPT-4过滤出真实、知名的人物,得到2000个名称。此外,我们通过包括密切相关的人物扩展了最初的2000个名称,得到约10000个名称对。然后,我们使用搜索引擎抓取这些人物和配对的图像。由于网络图像中的噪声,抓取的图像可能不包含指定人物,我们设计了一种交叉验证策略,使用InternVL[10]过滤单人和组图像,如图18-右所示。保留的单人和组图像随后被标注了服装和动作等细节。我们成功构建了一个包含533K图像对的数据集。

图18-左展示了GRIT-Entity数据集的构建过程。尽管基于GRIT的方法提供了大量数据,但直接从原始图像中提取的输入数据将使模型陷入简单的复制粘贴模式。为了充分发挥OmniGen的主体驱动图像生成能力,我们使用自然图像构建了一个高质量的Web Images训练数据集。首先,我们从Datacomp数据集4中采样了2000万个Alt-text条目,并使用spaCy5进行命名实体识别。我们选择了最常出现的名称,并使用GPT-4过滤出真实、知名的人物,得到2000个名称。此外,我们通过包括密切相关的人物扩展了最初的2000个名称,得到约10000个名称对。然后,我们使用搜索引擎抓取这些人物和配对的图像。由于网络图像中的噪声,抓取的图像可能不包含指定人物,我们设计了一种交叉验证策略,使用InternVL[10]过滤单人和组图像,如图18-右所示。保留的单人和组图像随后被标注了服装和动作等细节。我们成功构建了一个包含533K图像对的数据集。

11 补充材料

11.1 模型架构

OmniGen的架构如图19所示。它由一个变分自编码器(VAE)和一个transformer模型组成。VAE用于提取图像的潜在表示,而transformer模型则根据指令生成图像。模型接受任意交错的文本和图像输入,并通过统一的transformer进行处理。

11.2 训练细节

我们在多个阶段逐步增加图像分辨率进行训练,以提高数据效率和生成图像的美学质量。每个训练阶段的详细信息如表1所示。我们使用AdamW优化器,β=(0.9,0.999)。所有实验在104个A800 GPU上进行。

11.3 数据集构建

我们构建了X2I数据集,涵盖了广泛的图像生成任务。数据集的组成如下:

  • 文本到图像:我们从多个来源收集了多个开源数据集,包括RecapDataComp、SAM-LLaVA、ShareGPT4V、LAION-Aesthetic、ALLaVA-4V、DOCCI、DenseFusion和JourneyDB。我们还使用内部收集的高质量图像来增强生成图像的美学质量。

  • 主体驱动图像生成:我们构建了GRIT-Entity数据集和Web Images数据集。GRIT-Entity数据集通过实例分割和重绘方法获取大量数据,而Web Images数据集则使用自然图像构建。

  • 计算机视觉任务:我们引入了经典计算机视觉任务,包括低级视觉任务(如低光图像增强、去雨、去模糊、修复、外修复和着色)和高级视觉任务(如人体姿态识别、深度映射、Canny边缘、Hed边缘和分割)。

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

11.4 实验设置

我们在多个基准上评估了OmniGen的性能,包括GenEval、EMU-Edit、DreamBench和控制生成任务。我们使用CLIP-T和CLIP-I相似度分数来评估模型遵循指令和保留源图像元素的能力。

11.5 定性结果

我们在补充材料中提供了更多定性结果,展示了OmniGen在文本到图像、图像编辑、主体驱动生成和身份保留生成任务中的表现。我们还展示了OmniGen在处理未见过的任务和领域时的涌现能力,以及其在推理和思维链机制中的潜力。

11.6 失败案例

我们总结了当前模型的局限性,并提供了一些典型的失败案例。我们相信,大多数限制可以通过在更多相关数据上训练模型来解决。此外,OmniGen的下游任务微调更简单,用户只需准备数据即可为各种任务微调模型。

12 结论

在这项工作中,我们介绍了OmniGen,第一个统一的图像生成模型。它设计简单、灵活且易于使用。我们还构建了第一个大规模的统一图像生成数据集X2I,以激活OmniGen的通用能力。OmniGen在各种任务中展示了出色的图像生成能力。我们相信,未来图像生成的范式应该是简单和灵活的,允许通过任何多模态指令直接生成各种图像,而无需复杂的工作流程。OmniGen代表了通用图像生成基础模型的重要一步。我们将开源相关资源,希望为图像生成的未来提供一些见解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Together_CZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值