长视频生成速度提升100倍!新加坡国立提出Video-Infinity:分布式长视频生成 精华
文章链接:https://arxiv.org/abs/2406.16260
工程地址:https://video-infinity.tanzhenxiong.com/
代码地址:https://github.com/Yuanshi9815/Video-Infinity
虽然最近扩散模型在视频生成方面取得了显著的成果,但生成的视频通常仅限于少量帧,导致剪辑只持续几秒钟。生成较长视频的主要挑战包括显著的内存需求以及在单个GPU上所需的长时间处理。一个简单的解决方案是将工作负载分散到多个GPU上,但这会导致两个问题:
- 确保所有GPU有效通信以共享时间和上下文信息;
- 修改现有的视频扩散模型,这些模型通常在短序列上进行训练,以创建更长的视频而无需额外训练。
为了解决这些问题,本文介绍了Video-Infinity,一种分布式推理pipeline,能够在多个GPU上并行处理以生成长视频。具体来说,提出了两种一致性机制:剪辑并行和双范围注意力。剪辑并行优化了跨GPU的上下文信息收集和共享,最小化通信开销,而双范围注意力则调节时间自注意力,在设备之间有效平衡局部和全局上下文。两种机制结合在一起,分配工作负载并实现快速生成长视频。在8×Nvidia 6000 Ada GPU(48G)设置下,本文的方法可以在大约5分钟内生成最多2300帧的视频,使得长视频生成的速度比现有方法快100倍。
亮点直击
- 首次通过分布式并行计算解决长视频生成问题,提高了可扩展性并减少了生成时间。
- 引入了两种相互关联的机制:剪辑并行化优化了GPU间的上下文信息共享,双范围注意力机制调整时间自注意力以确保设备间视频的连贯性。
- 本文的实验表明,与现有的超长文本到视频方法Streaming T2V 相比,本文的方法可以快达100倍。
生成效果展示
介绍
人类一直以来追求在数字系统中复制我们所生活的动态世界。传统上这部分工作由物理学和图形学主导,但最近随着数据驱动生成模型的出现而得到了增强。这些模型可以创建高度逼真的图像和视频,使其与现实难以区分。然而,这些模型通常只能生成非常短的视频片段,大多数限制在16-24帧。一些模型可以扩展到60或120帧,但在分辨率和视觉质量上做出了很大妥协。
生成长视频面临重大挑战,主要是由于模型训练和推理所需的资源需求巨大。当前的模型受限于可用资源,通常在短片段上进行训练,很难在更长的序列中保持质量。此外,一次性生成一分钟长的视频可能会占用GPU内存,使任务显得难以实现。
现有的解决方案,包括自回归方法、分层方法和从短到长的方法,提供了部分补救措施,但存在显著的局限性。自回归方法按顺序生成帧,依赖于前面的帧。分层方法先创建关键帧,然后填充过渡帧。此外,一些方法将长视频视为多个重叠的短视频片段。这些方法不是端到端的;它们通常缺乏全局连续性,需要大量计算,尤其是在重叠区域,并且在跨段一致性方面挣扎。
为了解决这些问题,本文引入了一个用于分布式长视频生成的新框架,称为Video-Infinity。从高层次来看,它采用分而治之的原则。它将长视频生成任务分解为较小的、可管理的段。这些段分布在多个GPU上,允许并行处理。所有客户端应协同工作,以确保最终视频在语义上的连贯性。
这种设置虽然简单明了,但面临两个主要挑战:确保所有GPU之间有效通信以共享上下文信息,以及调整现有模型(通常在较短序列上训练)以生成更长的视频而无需额外的训练。
为了克服这些挑战,本文引入了两种协同机制:剪辑并行化和双范围注意力机制。剪辑并行化通过将上下文信息分成三部分,实现了多个GPU之间的高效协作。它采用交错通信策略,分三步完成共享。在剪辑并行化的基础上,双范围注意力机制精细调整时间自注意力机制,以在设备间实现局部和全局上下文的最佳平衡。这种平衡使得在短片段上训练的模型能够扩展到长视频生成,同时保持整体连贯性。
更令人兴奋的是,通过利用这两种策略,Video-Infinity将内存开销从二次方减少到线性。凭借多设备并行的强大能力和足够的显存,本文的系统可以生成任意长度甚至无限长的视频。
因此,本文的方法显著延长了可生成视频的最大长度,并加快了长视频生成的速度。具体而言,在8×Nvidia 6000 Ada(48G)设置下,本文所提出的方法在仅5分钟内就能生成长达2300帧的视频。
前提
视频生成的扩散模型
分布式长视频生成
在本文的核心pipeline中,Video-Infinity将视频的潜变量分割成多个片段,然后分布到多个设备上。如下图 3 所示,在其中沿着时间维度划分视频的潜变量。这种分割允许在不同设备上并行地对不重叠帧进行去噪处理。为了实现这一点,本文提出了剪辑并行机制(在后面章节中详细介绍),它有效地同步设备间的时间信息。此外,本文也引入了双范围注意力机制,调节时间注意力以确保无需额外训练的长视频一致性。
视频扩散的剪辑并行化机制
为了确保分布在不同设备上的片段的一致性,本文提出了剪辑并行机制,如上图3所示。该机制并行化了视频扩散模型的时间层,并实现了高效的设备间通信。
并行化的时间模块:在标准扩散模型中,时间模块聚合跨帧的特征,可以简化为:
这种连接提供了对处理特征的整体视图,保持了分布式系统中时间的一致性。关于这些时间模块如何整合上下文的进一步细节将在文章的后面章节中讨论。
最终,所有节点完成上下文同步,确保每个设备拥有执行计算所需的全部上下文。更多细节可以参考原文附录。
将每个模块并行化
在剪辑并行化的基础上,本节详细介绍了每个时间模块中信息如何进行同步。关键技术是双范围注意力(Dual-scope attention),它促进了无需训练的长视频生成并降低了通信成本。
视频扩散模型通常包括三个时间模块:注意力模块(Attention())、卷积模块(Conv())和群规范化模块(GroupNorm())。本文定制了这些模块,使它们能够集成到剪辑并行化中,实现跨多设备的分布式处理,从而有效地实现视频内容的同步和一致性。
DualScope注意力模块。在并行推理中应用注意力带来了新的挑战。原始的注意力模块需要同时访问所有输入标记。为了在剪辑并行性下采用它,需要跨设备聚合标记,这导致了巨大的通信成本。此外,当应用于更长序列时,那些在较短视频片段上训练的注意力模块通常会降低质量。
实验
设置
基础模型。在实验中,选择了文本到视频模型VideoCrafter2 (320 x 512) 作为本文方法的基础模型。VideoCrafter2 模型是在16帧视频上训练的,擅长生成既一致又高质量的视频片段。它还是VBench 评估中得分最高的开源视频生成模型。
指标评估。使用VBench 作为综合视频评估工具,涵盖各种视频维度的广泛指标。对于每种方法,使用VBench 提供的提示生成视频进行评估。所测量的指标包括VBench 中视频质量类别下的所有指标,包括主体一致性、背景一致性、时间闪烁、运动平滑度、动态程度、美学质量和成像质量。考虑到VBench 评估通常针对16帧视频片段进行,本文对超过16帧的视频进行了评估方法的修改:从每个视频中随机抽取五个16帧片段进行单独评估,然后计算这些评估的平均分数。
基线方法。本文的方法与几种其他方法进行了基准比较:
- FreeNoise : 本文选择FreeNoise作为基准,因为它也是一种无需训练的方法,可以基于VideoCrafter2 模型生成长视频。它采用重新调度技术来初始化噪声,并结合基于窗口的注意力融合来生成更长的视频。
- Streaming T2V : 为了评估本文方法在生成长视频方面的有效性,选择了Streaming T2V作为基准。Streaming T2V涉及训练一个新模型,使用自回归方法生成长格式视频。与本文的方法类似,它也具备生成超过1000帧视频的能力。
- OpenSora V1.1 : 基于DiT 的视频扩散模型,支持最多120帧,可以在各种分辨率下生成视频,并专门针对长视频序列进行了训练,以增强其扩展视频生成能力。
实现细节。默认情况下,所有扩散的参数均保持与VideoCrafter2 的原始推理设置一致,去噪步骤设置为30。本文的实验在8 × Nvidia 6000 Ada(48G内存)上进行。为了实现剪辑并行化中的时间模块,本文使用 torch.distributed 工具包,并使用Nvidia的NCCL作为后端,以促进高效的GPU间通信。此外,所有fps条件设置为24,分辨率设置为512 × 320。请注意,Streaming T2V的分辨率无法修改,因此视频以其默认分辨率生成(预览视频为256 × 256,最终视频为720 × 720)。
主要结果
容量和效率
本文在8 × Nvidia 6000 Ada(48G)设置上评估了本文所提出方法的能力。本文的方法成功地生成了分辨率为512 × 320、时长达95秒(以24帧每秒计算)的2300帧视频。值得注意的是,得益于高效的通信和多GPU并行处理的利用,整个计算过程大约花费了5分钟(312秒)。
下表1展示了各种方法在相同设备规格下生成长视频的能力。为了确保可比性,本文将所有方法生成的视频分辨率标准化为512x320。对于StreamingT2V,本文提供了两组数据:一组用于生成预览视频,分辨率为256x256;另一组用于生成分辨率为720x720的最终视频。结果表明,本文的方法在端到端类别中是最具能力的,可以生成长达2300帧的最长视频 — 比OpenSora V1.1多8.2倍。此外,本文的方法在生成128帧短视频和1024帧长视频方面始终表现出最短的时间。值得注意的是,在生成1024帧视频时,本文的方法比唯一能够生成这种长度视频的基线方法StreamingT2V快100多倍。即使与StreamingT2V生成更小、分辨率较低的预览视频的速度相比,本文的方法也快16倍。
视频质量本文比较了本文方法生成的视频与FreeNoise 和StreamingT2V 在长视频生成方面的表现。下图4展示了使用相同提示生成的不同方法生成的一些视频帧。此外,下表2显示了这些方法生成的视频质量,评估了VBench 中的各种指标。
如上图所示,虽然StreamingT2V方法生成了具有足够动态性的长视频,但它们在开始和结束之间缺乏一致性。相比之下,FreeNoise 生成的视频在整个过程中对象位置保持一致,但视觉上变化较少。例如,弹吉他的人的视频保持了单一的姿势,仅有微小的移动。同样地,左侧的狗专注地看着摄像头,耳朵、鼻子或身体的位置没有变化。OpenSora V1.1 未能生成第一个视频,第二个视频的背景也不够平滑。相反,本文的方法不仅确保了更好的一致性,而且在生成的视频中呈现出更明显的运动。
上表 2显示,与本文中提到的基础模型VideoCrafter 2 相比,本文的方法在大多数指标上略有下降,除了动态指标。在生成64帧视频时,本文的方法与其他方法相比表现出优势和劣势。然而,本文的平均指标得分高于FreeNoise和OpenSora V1.1。在生成更长的192帧视频时,本文的方法在大多数评估指标上表现优于StreamingT2V,这是唯一能够生成这种长度视频的其他方法。
消融
移除局部上下文。从上图5的顶部面板可以观察到,ResNet()中同步信息的缺失导致在设备(1)上的最后一帧(第23帧)和设备(2)上的第一帧(第24帧)之间出现了细节上的差异,这些差异在图中用红色标出。例如,人物服装颜色的差异和机器人手上桌面零件的形状差异,这些在原始推断中并不存在。当 Attention() 模块的上下文缺失时,第23帧和第24帧变成了明显不同的图像,显示出相邻设备生成的视频段之间存在显著的不连续性。这些观察结果表明,ResNet() 和 Attention() 模块中的同步对于在不同设备上生成的视频帧的视觉一致性和连续性至关重要。
移除全局上下文。上图5的底部面板展示了当全局上下文同步缺失时,视频内部的内容一致性难以维持的情况。例如,在第12帧和第16帧中,地平线保持较高,但在第20帧以后,地平线明显上升。此外,当移除局部上下文同步时,虽然不同设备片段之间的内容保持一致,但在过渡区域缺乏共享上下文导致异常。例如,第22帧的雪内容突然过渡到图中标记为红色的狗。这些示例突显了全局和局部上下文同步在视频生成中的重要性。
结论
本文介绍了Video-Infinity,这是一个利用多个GPU进行长视频生成的分布式推断pipeline。提出了两种机制,剪辑并行化和双范围注意力机制,来解决分布式视频生成中的关键挑战。剪辑并行化通过优化上下文信息的交换来减少通信开销,而双范围注意力修改了自注意力机制以确保设备间的一致性。这些创新共同促成了高达2,300帧的视频快速生成,大幅提升了与现有方法相比的生成速度。这种方法不仅扩展了扩散模型在视频制作中的实际应用性,还为长视频生成效率设立了新的基准。
限制
为了充分发挥本文方法的潜力,它依赖于多个GPU的可用性。此外,本文的方法在涉及场景转换的视频生成方面表现不佳。
本文转自 AI生成未来 ,作者:Zhenxiong Tan等