Open-Sora是一款由Colossal-AI团队开发和开源的视频生成模型,旨在复现OpenAI的Sora视频生成产品。该模型基于Diffusion Transformer(DiT)架构,通过三个训练阶段——大规模图像预训练、大规模视频预训练以及高质量视频数据微调,能够生成与文本描述高度一致的视频内容。
Open-Sora是什么
Open-Sora是Colossal-AI团队推出的开源视频生成模型,目标在于复现OpenAI的Sora视频生成技术。该模型利用DiT架构,经过三个阶段的训练:大规模图像预训练、大规模视频预训练和高质量视频数据微调,从而实现生成与输入文本描述相符的视频内容。作为一项开源解决方案,Open-Sora涵盖了视频生成模型训练的全流程,包括数据处理、训练细节和模型检查点,供所有对文本生成视频技术感兴趣的用户免费学习和使用。
Open-Sora的官网入口
Open-Sora的模型架构
Open-Sora采用当前流行的Diffusion Transformer(DiT)架构,基于华为开源的PixArt-α高质量文本到图像生成模型,并通过添加时间注意力层来扩展至视频生成。具体设计如下:
核心组件
- 预训练的VAE(变分自编码器):VAE组件用于数据压缩,将输入的视频数据映射到潜在空间的低维表示。在Open-Sora中,VAE的编码器在训练时压缩视频数据,而在推理阶段,则从潜在空间中采样高斯噪声生成视频。
- 文本编码器:该组件负责将文本提示(如描述视频内容的句子)转换为文本嵌入,这些嵌入随后与视频数据结合,确保生成的视频与文本描述相符。
- STDiT(空间时间扩散变换器):这是Open-Sora的核心组件,利用空间-时间注意力机制的DiT模型。STDiT通过串联二维空间注意力模块与一维时间注意力模块来建模视频数据中的时序关系,同时交叉注意力模块用于对齐文本的语义信息。
架构设计
- 空间-时间注意力机制:STDiT模型的每一层包含空间和时间注意力模块,空间注意力模块处理视频帧的二维特征,而时间注意力模块则处理帧间的时序关系。这种设计使得模型能够有效处理视频数据的空间和时间维度。
- 交叉注意力:在时间注意力模块之后,交叉注意力模块用于将文本嵌入与视频特征融合,确保生成的视频内容与文本描述相匹配。
- 训练与推理流程:在训练阶段,VAE编码器将视频数据压缩,并与文本嵌入一起训练STDiT模型。在推理阶段,从VAE潜在空间中采样噪声,与文本提示一同输入到STDiT模型中,生成去噪后的特征,最终通过VAE解码器解码得到视频。
Open-Sora的复现方案
Open-Sora的训练复现方案借鉴了Stable Video Diffusion(SVD)的工作,分为三个阶段:大规模图像预训练、大规模视频预训练以及高质量视频数据微调。通过这三个阶段的训练,Open-Sora模型能够逐步提升视频生成能力,从基础的图像理解到复杂的视频内容生成,最终实现高质量的视频生成效果。
第一阶段:大规模图像预训练
在第一阶段,模型通过大规模图像数据集进行预训练,以建立对图像内容的基本理解。此阶段旨在利用现有的高质量图像生成模型(如Stable Diffusion)作为基础,初始化视频生成模型的权重。通过这种方式,模型能够从图像数据中学习到丰富的视觉特征,为后续的视频预训练奠定坚实基础。
第二阶段:大规模视频预训练
第二阶段专注于大规模视频数据的预训练,旨在增强模型对视频时间序列的理解。此阶段通过大量视频数据训练,以学习视频中的时序关系和动态变化。为了提高模型的泛化能力,需要确保视频题材的多样性。此外,模型在此阶段将加入时序注意力模块,以更好地处理时间序列数据。此阶段的训练将在第一阶段的基础上进行,使用前一阶段的权重作为起点。
第三阶段:高质量视频数据微调
最后阶段是对模型进行微调,使用高质量的视频数据以进一步提升生成视频的质量和真实感。在此阶段,虽然使用的视频数据量可能较少,但视频的时长、分辨率和质量都更高。微调过程帮助模型捕捉更细致和逼真的视频内容,从而生成更符合用户期望的视频。