近年来,大型语言模型(LLMs)在统一语言生成任务方面取得了显著成就,彻底改变了人机交互的方式。然而,在图像生成领域,一个能够处理各种任务的统一模型仍然是一个未被充分探索的领域。最近,一篇名为"OmniGen: Unified Image Generation"的论文提出了一种名为OmniGen的新扩散模型,旨在统一图像生成任务。
OmniGen的主要创新之处在于其架构的高度简化和易用性,以及其能够处理各种图像生成任务的能力。与现有的扩散模型(如Stable Diffusion)不同,OmniGen不需要额外的模块(如ControlNet或IP-Adapter)来处理不同的控制条件。
OmniGen不仅展示了文本到图像的生成能力,还能够支持各种下游任务,如图像编辑、主体驱动生成和视觉条件生成。此外,OmniGen还能够通过将它们转化为图像生成任务来处理经典的计算机视觉任务,如边缘检测和人体姿态识别。
OmniGen的架构非常简洁,消除了对额外文本编码器的需求。与现有的扩散模型相比,OmniGen更加用户友好,使复杂的任务能够通过指令完成,而不需要额外的预处理步骤(如人体姿态估计),从而大大简化了图像生成的工作流程。
由于在统一格式下进行学习,OmniGen能够有效地在不同的场景之间转移知识,处理未见过的任务和领域,并展示出新的能力。
OmniGen的架构由两个主要组件组成:一个变分自编码器(VAE)和一个预训练的大型Transformer模型。VAE用于从图像中提取连续的视觉特征,而Transformer模型则根据输入条件生成图像。
在输入方面,OmniGen可以接受任意形式的图像和文本输入,以支持各种任务。对于文本输入,OmniGen使用Phi-3的tokenizer进行处理,而对于图像输入,OmniGen使用一个简单的线性层将它们转换为潜在表示,然后使用线性嵌入将每个补丁转换为视觉标记。
在注意力机制方面,OmniGen修改了LLM中的常见因果注意力机制,将其与双向注意力结合使用。具体来说,OmniGen对序列中的每个元素应用因果注意力,但对每个图像序列内的元素应用双向注意力。这允许每个补丁关注同一图像中的其他补丁,同时确保每个图像只能关注之前出现的其他图像或文本序列。
OmniGen使用修正流(rectified flow)来优化模型参数。与DDPM(Denoising Diffusion Probabilistic Models)不同,修正流通过在噪声和数据之间进行线性插值来进行前向过程。OmniGen被训练为根据噪声数据、时间步长和条件信息直接回归目标速度。
在图像编辑任务中,OmniGen面临的一个挑战是模型可能会学习到一个意外的捷径,即简单地复制输入图像作为输出,以使相关的训练损失非常低。为了解决这个问题,OmniGen通过放大图像中发生变化的区域的损失来引导模型关注需要修改的区域。
OmniGen在多个图像生成任务上进行了评估,包括文本到图像生成、图像编辑、主体驱动生成和视觉条件控制。在所有这些任务上,OmniGen都展示了与现有模型相当或更好的性能。
在GenEval基准测试中,OmniGen与现有的图像生成模型进行了比较,并展示了与当前最先进的扩散模型相当的性能。值得注意的是,OmniGen只有3.8亿个参数,而SD3模型有12.7亿个参数。
在EMU-Edit数据集上,OmniGen与现有的图像编辑模型进行了比较,并展示了与当前最先进的模型相当的性能。
在DreamBench数据集上,OmniGen展示了比基于微调的方法更好的主体保真度和文本保真度。
在使用不同视觉条件(如分割掩码、Canny边缘地图、HED边缘地图和深度地图)的实验中,OmniGen展示了对这些条件的控制能力,并生成了与输入条件相似的图像。
尽管OmniGen在统一图像生成方面取得了显著的进展,但仍有一些限制和未来研究方向。
限制
- 与现有的扩散模型一样,OmniGen对文本提示很敏感,通常需要详细的文本描述来生成高质量的图像。
- OmniGen的文本渲染能力有限,能够处理短文本段,但不能准确生成长文本。
- OmniGen生成的图像可能会包含错误的细节,尤其是小而精致的部分。
- OmniGen不能处理未见过的图像类型(如用于表面法线估计的图像)。
未来研究方向
- 通过在更多相关数据上训练模型来解决这些限制。
- 探索OmniGen在其他图像生成任务和领域的应用。
- 进一步优化OmniGen的架构和训练策略,以提高其性能和效率。