开源文生视频模型Open-Sora目前已经进行了大升级,现已支持16s视频生成和720p分辨率。并且可以处理任何宽高比的文本到图像、文本到视频、图像到视频、视频到视频和无限长视频的生成需求。
Open-Sora坚持全部开源,包含Open-Sora的模型架构、最新的模型权重、多时间/分辨率/长宽比/帧率的训练流程、数据收集和预处理的完整流程、所有的训练细节。
据最新结果显示,Open-Sora在github超过16,000颗星,是国内乃至全球领先的类Sora开源模型之一。
此次,Open-Sora对1.0版本中的STDiT架构进行了关键性改进,旨在提高模型的训练稳定性和整体性能。针对当前的序列预测任务,团队采纳了大型语言模型的最佳实践,将时序注意力中的正弦波位置编码替换为更加高效的旋转位置编码。此外,为了增强训练的稳定性参考SD3模型架构,进一步引入了QK归一化技术,以增强半精度训练的稳定性。为了支持多分辨率、不同长宽比和帧率的训练需求,提出的ST-DiT-2架构能够自动缩放位置编码,并处理不同大小尺寸的输入。
在新版本Open-Sora中采用了一种多阶段训练方法,每个阶段都会基于前一个阶段的权重继续训练。相较于单一阶段训练,这种多阶段训练通过分步骤引入数据,更高效地实现了高质量视频生成的目标。
初始阶段:大部分视频采用144p分辨率,同时与图片和240p、480p的视频进行混训,训练持续约1周,总步长81k。
第二阶段:将大部分视频数据分辨率提升至240p和480p,训练时长为1天,步长达到22k。
第三阶段:进一步增强至480p和720p,训练时长为1天,完成了4k步长的训练。整个多阶段训练流程在约9天内完成。
研究人员发现,基于Transformer的特性,可以轻松扩展DiT架构以支持图像到图像以及视频到视频的任务,并提出了一种掩码策略来支持图像和视频的条件化处理。通过设置不同的掩码,可以支持各种生成任务,包括:图生视频,循环视频,视频延展,视频自回归生成,视频衔接,视频编辑,插帧等。受到UL2方法的启发,在模型训练阶段引入了一种随机掩码策略。具体而言,就是在训练过程中以随机方式选择并取消掩码的帧,包括但不限于取消掩码第一帧、前k帧、后k帧、任意k帧等。基于Open-Sora1.0的实验,应用50%的概率应用掩码策略时,只需少量步数模型能够更好地学会处理图像条件化。在最新版的Open-Sora中,采用了从头开始使用掩码策略进行预训练的方法。此外,还为推理阶段提供了掩码策略配置的详细指南,五个数字的元组形式在定义掩码策略时提供了极大的灵活性和控制力。
在Sora的技术报告中,OpenAI指出,使用原始视频的分辨率、长宽比和长度进行训练可以增加采样灵活性,改善帧和构图。对此,提出了分桶的策略。所谓的桶,是分辨率、帧数、长宽比的三元组。为不同分辨率的视频预定义了一系列宽高比,以覆盖大多数常见的视频宽高比类型。在每个训练周期epoch开始之前,会对数据集进行重新洗牌,并将样本根据其特征分配到相应的桶中。会将每个样本放入一个分辨率和帧长度均小于或等于该视频特性的桶中。为了降低计算资源的要求,研究人员为每个keep_prob和batch_size引入两个属性(分辨率、帧数),以减少计算成本并实现多阶段训练。这样就可以控制不同桶中的样本数量,并通过为每个桶搜索良好的批大小来平衡GPU负载。
在Open-Sora 1.0的开发过程中,研究人员意识到数据的数量和质量对于培育一个高效能模型极为关键。因此,新版本中致力于扩充和优化数据集,建立了一个自动化的数据处理流程,该流程遵循奇异值分解(SVD)原则,涵盖了场景分割、字幕处理、多样化评分与筛选,以及数据集的管理系统和规范。