Connect with us

人工智能

StreamDiffusion:一种用于实时交互生成的管道级解决方案

mm
StreamDiffusion: A Pipeline-level Solution for Real-time Interactive Generation

由于其巨大的潜力和商业化机会,尤其是在游戏、广播和视频流媒体领域,元宇宙目前是增长最快的技术之一。现代元宇宙应用程序利用人工智能框架,包括计算机视觉和扩散模型,以增强其现实感。元宇宙应用程序面临的一个重大挑战是集成各种扩散管道,以提供低延迟和高吞吐量,确保人类和这些应用程序之间的有效交互。

当前的扩散基AI框架在创建图像从文本或图像提示方面非常出色,但在实时交互方面却乏力。这种局限性在需要连续输入和高吞吐量的任务中尤其明显,例如视频游戏图形、元宇宙应用程序、广播和实时视频流媒体。

在本文中,我们将讨论StreamDiffusion,一种实时扩散管道,用于生成交互式和逼真的图像,解决当前扩散基框架在涉及连续输入的任务中的局限性。StreamDiffusion是一种创新方法,旨在将原始图像的顺序噪声转换为批量去噪,目标是实现高吞吐量和流畅的流媒体。这种方法背离了现有扩散基框架使用的传统等待和交互方法。在接下来的部分中,我们将详细介绍StreamDiffusion框架,探索其工作原理、架构和与当前最先进框架的比较结果。让我们开始。

StreamDiffusion:实时交互生成介绍

元宇宙是性能密集型应用程序,因为它们需要实时处理大量数据,包括文本、动画、视频和图像,以提供其标志性的交互式界面和体验。现代元宇宙应用程序依赖于基于人工智能的框架,包括计算机视觉、图像处理和扩散模型,以实现低延迟和高吞吐量,确保无缝的用户体验。目前,绝大多数元宇宙应用程序依赖于减少去噪迭代的发生,以确保高吞吐量并增强应用程序的交互能力。这些框架选择一种共同的策略,即使用神经ODE(普通微分方程)重构扩散过程或将多步骤扩散模型减少到几步甚至一步。虽然这种方法可以带来令人满意的结果,但它有一些局限性,包括灵活性有限和计算成本高。

另一方面,StreamDiffusion是一个管道级解决方案,它从一个正交方向开始,并增强了框架生成实时交互图像的能力,同时确保高吞吐量。StreamDiffusion使用一个简单的策略,即批量去噪步骤,而不是去噪原始输入。该策略从异步处理中汲取灵感,因为框架不需要等待第一个去噪阶段完成后才能继续下一个阶段,如下图所示。为了解决U-Net处理频率和输入频率同步的问题,StreamDiffusion框架实现了一个队列策略来缓存输入和输出。

虽然StreamDiffusion管道从异步处理中汲取灵感,但它有自己的独特之处,因为它实现了GPU并行性,使框架能够使用单个U-Net组件对批量噪声潜在特征进行去噪。此外,现有的扩散基管道强调在生成的图像中强调给定的提示,通过纳入分类器自由指导,这导致当前管道具有冗余和过多的计算开销。为了确保StreamDiffusion管道不会遇到相同的问题,它实现了一种创新性的RCFG或残差分类器自由指导方法,使用虚拟残差噪声来近似负条件,从而允许框架在过程的初始阶段计算负噪声条件。此外,StreamDiffusion管道还通过实现一种随机相似性过滤策略来减少传统扩散管道的计算要求,该策略确定管道是否应该处理输入图像,方法是计算连续输入之间的相似性。

StreamDiffusion框架建立在扩散模型和加速扩散模型的基础上。

扩散模型以其出色的图像生成能力和提供的控制而闻名。由于其能力,扩散模型已被应用于图像编辑、文本到图像生成和视频生成。另外,开发一致的模型已展示了提高样本处理效率的潜力,而不会损害模型生成的图像质量,这为扩散模型的适用性和效率开辟了新的途径,方法是减少采样步骤的数量。虽然扩散模型非常强大,但它们有一个主要的局限性:图像生成速度慢。为了解决这个局限性,开发人员引入了加速扩散模型,这是一种扩散基框架,不需要额外的训练步骤或实现预测器-校正器策略和自适应步骤大小求解器来增加输出速度。

StreamDiffusion和传统扩散基框架之间的区别在于,后者主要关注个别模型的低延迟,而前者引入了一种管道级方法,旨在实现高吞吐量,从而实现高效的交互扩散。

StreamDiffusion:工作原理和架构

StreamDiffusion管道是一种实时扩散管道,用于生成交互式和逼真的图像,它采用6个关键组件:RCFG或残差分类器自由指导、流批处理策略、随机相似性过滤器、输入输出队列、模型加速工具和预计算过程。让我们详细讨论这些组件。

流批处理策略

传统上,扩散模型中的去噪步骤是顺序执行的,导致U-Net处理时间随着处理步骤的数量而显著增加。然而,为了生成高保真图像,增加处理步骤的数量是必要的,StreamDiffusion框架引入了流批处理策略来克服交互扩散框架中的高延迟问题。

在流批处理策略中,顺序去噪操作被重构为批量处理,每个批量对应于一定数量的去噪步骤,去噪步骤的数量由每个批量的大小决定。通过这种方法,每个批量中的每个元素都可以使用单个U-Net在去噪序列中进一步执行一步。通过迭代实现流批处理策略,时间“t”处编码的输入图像可以转换为时间“t+n”处的图像到图像结果,从而简化去噪过程。

残差分类器自由指导

CFG或分类器自由指导是一种人工智能算法,执行原始条件项和负条件或无条件之间的一系列向量计算,以增强原始条件的效果。该算法加强了原始条件的效果,尽管它需要计算负条件残差噪声,这需要将个别输入潜在变量与负条件嵌入配对,然后通过U-Net在参考时间传递嵌入。

为了解决CFG算法提出的问题,StreamDiffusion框架引入了残差分类器自由指导算法,旨在减少计算负条件嵌入的U-Net干扰的计算成本。首先,编码的潜在输入被转移到噪声分布中,使用噪声调度器确定的值。一旦潜在一致性模型被实现,算法就可以预测数据分布,并使用CFG残差噪声生成下一步噪声分布。

输入输出队列

高速图像生成框架的一个主要问题是其神经网络模块,包括U-Net和VAE组件。为了最大限度地提高效率和输出速度,图像生成框架将不需要神经网络模块处理的过程(如图像预处理和后处理)移到管道外,并在管道外并行处理。此外,管道精心执行特定的操作,包括张量格式转换、输入图像缩放和归一化,以处理输入图像。

为了解决模型吞吐量和人类输入之间的处理频率差异,管道集成了一个输入输出队列系统,实现了高效的并行化,如下图所示。

处理后的输入张量被系统地排队用于扩散模型,并在每个帧中,模型检索输入队列中最新的张量,并将其转发到VAE编码器,从而启动图像生成过程。同时,VAE解码器的张量输出被馈送到输出队列中。最后,处理后的图像数据被传输到渲染客户端。

随机相似性过滤器

在图像没有变化或变化很小的场景中,或者没有静态环境或没有活跃的用户交互时,相似的输入图像被反复馈送到U-Net和VAE组件中。这种反复馈导致生成近似的图像,并且会消耗额外的GPU资源。此外,在涉及连续输入的场景中,不修改的输入图像可能会偶尔出现。为了解决这个问题并防止不必要的资源利用,StreamDiffusion管道在其管道中使用了一个随机相似性过滤器组件。随机相似性过滤器首先计算参考图像和输入图像之间的余弦相似性,然后使用余弦相似性分数来计算跳过后续U-Net和VAE过程的概率。

根据概率分数,管道决定是否跳过后续过程,如VAE编码、VAE解码和U-Net。如果这些过程不被跳过,管道保存当前时间的输入图像,并同时更新参考图像以供将来使用。这种基于概率的跳过机制允许StreamDiffusion管道在动态场景中具有低帧间相似性完全运行,而在静态场景中具有高帧间相似性。这种方法有助于节省计算资源,并确保根据输入图像的相似性实现最佳的GPU利用率。

预计算

U-Net架构需要条件嵌入和输入潜在变量。传统上,条件嵌入是从提示嵌入中派生而来,提示嵌入在帧之间保持不变。为了优化提示嵌入的派生,StreamDiffusion管道预计算这些提示嵌入并将其存储在缓存中,然后在流媒体或交互模式下调用它们。在U-Net框架内,基于每个帧的预计算提示嵌入计算键值对,并且可以通过对U-Net进行轻微修改来重用这些键值对。

模型加速和微小自动编码器

StreamDiffusion管道使用TensorRT,Nvidia的深度学习接口优化工具包,来构建VAE和U-Net引擎,以加速推理速度。为此,TensorRT组件对神经网络执行多种优化,旨在提高效率和深度学习框架和应用程序的吞吐量。

为了优化速度,StreamDiffusion配置框架使用固定输入维度和静态批量大小,以确保特定输入大小的最佳内存分配和计算图,从而实现更快的处理时间。

上图提供了推理管道的概述。核心扩散管道包含U-Net和VAE组件。管道包含去噪批量、采样噪声缓存、预计算提示嵌入缓存和调度器值缓存,以增强速度和管道生成实时图像的能力。随机相似性过滤器或SSF被部署来优化GPU使用,并动态地控制扩散模型的传递。

StreamDiffusion:实验和结果

为了评估其能力,StreamDiffusion管道被实现在LCM和SD-turbo框架上。Nvidia的TensorRT被用作模型加速器,并且为了实现轻量级效率,管道使用了TAESD组件。让我们来看看StreamDiffusion管道在与当前最先进框架比较时的表现。

定量评估

下图展示了原始顺序U-Net和管道中去噪批量组件之间的效率比较,如图所示,实现去噪批量方法可以显著减少处理时间,几乎比传统U-Net循环在顺序去噪步骤中减少了50%。

此外,不同去噪步骤的平均推理时间也在与当前最先进管道相比时显著提高了不同的加速因子,结果如以下图所示。

继续,具有RCFG组件的StreamDiffusion管道在推理时间方面表现出比具有传统CFG组件的管道更低的推理时间。

使用RCFG组件的影响在以下图像中与使用CFG组件相比时显而易见。

如图所示,使用CFG会加强文本提示在图像生成中的影响,使用CFG组件生成的图像比不使用CFG组件生成的图像更能体现输入提示。结果在使用RCFG组件时进一步改善,生成的图像对提示的影响比使用原始CFG组件时更显著。

总结

在本文中,我们讨论了StreamDiffusion,一种实时扩散管道,用于生成交互式和逼真的图像,并解决了当前扩散基框架在涉及连续输入的任务中的局限性。StreamDiffusion是一种简单而新颖的方法,旨在将原始图像的顺序噪声转换为批量去噪,目标是实现高吞吐量和流畅的流媒体。StreamDiffusion旨在通过消除传统的等待和交互方法来实现高吞吐量和流畅的流媒体,消除当前扩散基框架使用的传统等待和交互方法。潜在的效率收益凸显了StreamDiffusion管道在提供高性能计算和令人信服的生成人工智能解决方案的商业应用中的潜力。

专业为工程师,心为作家。 Kunal是一名技术作家,对AI和ML有着深厚的热爱和理解,致力于通过其引人入胜和信息丰富的文档来简化这些领域中的复杂概念。