Meta CrossFlow:告别噪声,流匹配实现跨模态无缝生成新突破

Meta CrossFlow 框架告别噪声依赖,通过流匹配实现跨模态无缝生成,简化模型设计,提升生成效率和可控性。

原文标题:Meta新突破!跨模态生成告别噪声:流匹配实现任意模态无缝流转

原文作者:机器之心

冷月清谈:

Meta 与约翰霍普金斯大学联合推出 CrossFlow 框架,该框架基于流匹配技术,无需依赖噪声分布或额外条件机制,实现了跨模态生成的新突破。CrossFlow 通过变分编码器将输入模态编码为与目标模态同维度的正则化潜在空间,并利用自注意力机制的 Transformer 实现高效的模态间映射,在文本到图像生成、图像描述、深度估计和超分辨率等多个任务上取得了卓越性能。相较于传统方法,CrossFlow 显著降低了训练成本并提高了生成速度,同时支持语义层面的图像编辑和灵活的源分布定制,为生成式 AI 开辟了更高效、更通用的路径。

怜星夜思:

1、CrossFlow 框架中,变分编码器起到了什么样的关键作用?如果没有变分编码器,直接进行模态间的流匹配会面临什么问题?
2、文章提到CrossFlow在图像编辑方面有潜力,可以通过latent space的差值算术操作实现。这种操作具体是如何实现的?它与传统的图像编辑方法相比有哪些优势和局限性?
3、CrossFlow 如何通过引入二元指示符实现无分类器引导(Classifier-free guidance)? 这种方法相比于传统的依赖额外输入的 condition 的引导方式,有什么优势?

原文内容


本文第一作者为刘启昊,约翰霍普金斯大学计算机科学博士四年级学生,师从 Alan Yuille 教授,研究方向涉及模型鲁棒性、生成模型与 3D 视觉。通讯作者为 Mannat Singh,Meta GenAI 研究员,近期的研究主要涉及视频生成领域创新工作,包括 Emu Video、MovieGen 等项目。


在人工智能领域,跨模态生成(如文本到图像、图像到文本)一直是技术发展的前沿方向。现有方法如扩散模型(Diffusion Models)和流匹配(Flow Matching)虽取得了显著进展,但仍面临依赖噪声分布、复杂条件机制等挑战。


近期,Meta 与约翰霍普金斯大学联合推出的 CrossFlow 框架,以全新的技术路径实现了跨模态生成的突破性进展,为生成式 AI 开辟了更高效、更通用的可能性。该文章已经被 CVPR 2025 收录为 Highlight。



  • 论文标题:Flowing from Words to Pixels: A Noise-Free Framework for Cross-Modality Evolution

  • 论文地址:https://arxiv.org/pdf/2412.15213

  • 项目主页:https://cross-flow.github.io/

  • 代码地址:https://github.com/qihao067/CrossFlow

  • Demo地址:https://huggingface.co/spaces/QHL067/CrossFlow


核心创新:从 “噪声到数据” 到 “模态到模态”


基于 Diffusion 或者流匹配的生成模型通常从高斯噪声出发,通过逐步去噪或优化路径生成目标数据。然而,对于噪声的依赖限制了这类算法的灵活性和潜能。


近期,不少工作在探索如何摆脱对噪声的依赖,比如使用基于薛定谔桥的生成模型。然而这些算法往往很复杂,并且依旧局限于相似模态之间的生成(比如人类转猫脸等)。


而 CrossFlow 则深入分析了流匹配,并基于流匹配提出了一种非常简单跨模态生成新范式,可以直接在模态间进行映射,无需依赖噪声分布或额外条件机制。例如,在文本到图像生成中,模型直接使用流匹配学习从文本语义空间到图像空间的映射,省去了复杂的跨注意力机制(Cross-Attention),仅通过自注意力即可实现高效的文本到图像生成。



通过直接使用流匹配做模态间的映射,本文提出的模型在仅使用由自注意力和前向层组成的 transformer 的情况下,不需要基于任务的特定设计,便在多个任务(图像生成、字幕生成、深度估计、超分辨率)上实现了媲美乃至超过最优算法的性能。



作者发现,使用流匹配做模态间映射的核心在于如何形成 regularized 的分布。


为了实现这一点,作者提出使用变分编码器(Variational Encoder):将输入模态(如文本)编码为与目标模态(如图像)同维度的正则化潜在空间,确保跨模态路径的平滑性和语义连贯性。然后,作者发现:仅需要训练一个最简单的流匹配模型,就可以实现这两个空间的映射。 



同时,现在的图片生成模型往往依赖无分类器引导(Classifier-free guidance)。这种引导通过改变额外输入的 condition 来实现。为了在无额外条件机制的情况下实现无分类器引导,作者通过引入二元指示符,在单模型中实现条件与非条件生成的灵活切换,显著提升生成质量。


实验表现


作者通过大量实验证明了新范式的优势:


1. 在文本到图像生成任务上,相比于主流的使用跨注意力增加 text condition 的方法,CrossFlow 取得了更好的生成效果,并且有更好的 scaling 特性





2. latent space 的差值算术操作:支持语义层面的加减运算(如 “戴帽子的狗”+“墨镜”-“帽子”=“戴墨镜的狗”),为生成内容提供前所未有的可控性,同时为图像编辑、平滑的视频生成等任务提供了新思路。


图片
图片
图片



3. 源分布可定制,让图像生成更灵活,同时显著降低训练成本,提高生成速度:原本的图像生成始终学习从噪声到图像的映射,因此流匹配所需要学到的 path 的复杂度是确定的。而 CrossFlow 则建立了一个可学习的源分布到图像的映射,通过不同的方法来学习源分布,可以改变两个分布之间的差异以及 path 的复杂度,实现更灵活、快速的生成。


具体来说,相比 DALL-E 2 等模型,CrossFlow 训练资源需求大幅减少(630 A100 GPU 天 vs. 数千天),而后续的研究工作也表明,通过对源分布的设计,可以进一步将训练时间缩短至 208 A100 GPU 天,并提高 6.62 倍的采样速度。


4. 由于流匹配的 “双向映射” 的特性(bi-directional flow property),可以直接将文本到图像生成模型反过来使用,成为一个图像描述(image captioning)模型——该模型在 COCO 上取得了 SOTA 水平。



5. 无需基于任务的特定设计,即可以在多个任务上(图像生成、图像描述、深度估计、超分辨率)的多个数据集上取得 SOTA 的水平,推动模型使用统一、单一框架适配多任务。




结语


CrossFlow 的诞生标志着生成式 AI 从 “噪声中创造” 迈向 “语义间流转” 的新阶段。其简洁的设计、卓越的性能与灵活的扩展性,为跨模态生成提供了更多的可能性。

© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:[email protected]

想从工程角度来聊聊,感觉变分编码器就像一个“适配器”,把不同接口的数据“翻译”成统一格式,以便后续的流匹配模型更好地“理解”。如果没有这个适配器,不同模态的数据直接硬怼,那流匹配模型可能就直接懵逼了,训练效果肯定大打折扣。

想象一下,你要把一个USB-A的设备插到一个Type-C的接口上,没有转接头肯定不行。变分编码器就是这个转接头,保证了数据能够顺利“插入”流匹配模型。

我理解的这个二元指示符,就像一个“开关”,控制着模型是否接收外部信息。当开关打开时,模型会根据给定的文本生成图像;当开关关闭时,模型会自由发挥,生成一些可能比较随机的图像。

这种设计的妙处在于,它让模型同时具备了“听话”和“创造”的能力。既可以根据用户的指令生成特定的图像,也可以在没有指令的情况下,自由地探索各种可能性。

而且,这种方法避免了使用额外的 condition,降低了模型的复杂度,使得训练更加高效。

latent space 的差值算术操作,简单来说,就是把图像在潜在空间中的表示当成向量,然后进行加减运算。比如,“戴帽子的狗”的向量 + “墨镜”的向量 - “帽子”的向量 = “戴墨镜的狗”的向量。然后把这个新的向量解码回图像,就实现了图像编辑。

这种方法的优势在于:

* 语义层面编辑:可以直接在语义层面操纵图像,而不是像素层面,更符合人类的编辑习惯。
* 可控性强:可以精确控制编辑的效果,比如只改变狗的眼镜,而保持其他部分不变。
* 平滑过渡:由于在潜在空间中操作,图像编辑的过程更加平滑自然,避免了突兀的变化。

局限性在于:

* 依赖潜在空间质量:如果潜在空间的表示不够好,编辑效果也会受到影响。
* 复杂操作困难:对于一些复杂的编辑操作,可能需要进行多次加减运算,比较繁琐。

从信息论的角度来看,无分类器引导的目标是最大化生成图像与 condition 之间的互信息。传统的引导方式通过引入额外的 condition 来实现,相当于增加了模型的输入信息量,从而提高了互信息。

而 CrossFlow 的方法则通过在训练过程中引入随机噪声来正则化模型,使得模型能够更好地学习到 condition 与生成图像之间的内在关系。这种方法不需要额外的输入信息,但同样可以达到提高互信息的目的。

这种方法的优势在于,它更加节省计算资源,并且可以避免由于引入额外 condition 而导致的过拟合问题。

这部分我觉得挺巧妙的。简单来说,CrossFlow 在训练的时候,会随机地把一部分样本的 condition(比如文本描述)置为空,然后用一个二元指示符来标记这个状态。这样,模型在训练的时候就同时学习了条件生成和非条件生成。

在推理的时候,通过调整二元指示符的值,就可以控制生成结果对 condition 的依赖程度。如果指示符为 1,就表示完全依赖 condition;如果指示符为 0,就表示不依赖 condition。

相比于传统的依赖额外输入的 condition 的引导方式,这种方法的优势在于:

* 节省计算资源:不需要额外的模型或输入,减少了计算量。
* 模型更简洁:不需要复杂的跨注意力机制,模型结构更简洁。
* 灵活性更高:可以通过调整指示符的值,灵活控制生成结果。

从信号处理的角度来看,这种latent space 操作类似于在频域进行滤波。不同的语义信息对应于不同的频率成分,通过加减运算可以实现对特定频率成分的增强或抑制,从而达到图像编辑的目的。

与传统的图像编辑方法(如直接修改像素值)相比,这种方法具有更好的鲁棒性和泛化能力。因为潜在空间的表示对图像的噪声和变换具有一定的容忍性。

用更学术的语言来说,变分编码器的作用是进行representation alignment,将不同模态的数据映射到具有相似统计特性的潜在空间。这样可以缓解模态差异带来的学习难度,提升模型的泛化能力。

更进一步,变分编码器还可以引入一些正则化约束,例如KL散度,使得潜在空间的分布更加平滑和连续。这有助于提升生成结果的质量和可控性。

我理解的这种latent space的操作,有点像PS里的图层蒙版。每一项属性(比如帽子、墨镜)都相当于一个图层,我们可以通过加减不同的图层来改变最终的图像。

优势很明显,就是可以进行非常精细的控制。比如,我想把狗的帽子换成一顶绿色的帽子,只需要把“帽子”图层替换成“绿色帽子”图层即可。

但是,这种方法也有一定的局限性。比如,如果模型没有学习到某种属性的表示,就无法对该属性进行编辑。另外,对于一些复杂的属性,可能需要多个图层组合才能表示,操作起来比较麻烦。

变分编码器在 CrossFlow 中扮演着至关重要的角色,它负责将不同模态的数据(比如文本和图像)映射到一个共享的、正则化的潜在空间。这个过程确保了跨模态路径的平滑性和语义连贯性,就像是为不同语言的人找到了一个共同的翻译中枢,保证交流的顺畅。

如果没有变分编码器,直接进行模态间的流匹配,那就像是让说不同语言的人直接对话,结果很可能是鸡同鸭讲。具体来说,可能面临以下问题:

1. 分布不匹配:不同模态的数据分布差异巨大,直接进行流匹配会导致模型难以学习到有效的映射关系。
2. 语义不连贯:即使模型能够勉强建立映射,也可能无法保证生成结果的语义合理性,比如生成的图像与输入的文本描述不符。
3. 训练不稳定:由于数据分布的复杂性,模型的训练过程可能会变得非常不稳定,难以收敛。