Open-Sora 1.1重磅更新+解读:完全开源的高效复现类Sora视频生成方案!YYDS! 精华
项目链接:https://github.com/hpcaitech/Open-Sora
Open Sora 1.1是Colossal AI开发的开源视频生成模型的最新迭代,标志着在这个快速发展的领域取得了实质性的飞跃。在其前身Open Sora 1.0的基础上,该版本在功能、训练效率和整体灵活性方面进行了显著改进。
Open-Sora项目是一项致力于高效制作高质量视频,并使所有人都能使用其模型、工具和内容的计划。通过采用开源原则,Open-Sora 不仅实现了先进视频生成技术的低成本普及,还提供了一个精简且用户友好的方案,简化了视频制作的复杂性。通过 Open-Sora,我们希望更多开发者一起探索内容创作领域的创新、创造和包容。
解决Open-Sora 1.0的限制
虽然Open-Sora 1.0提供了一种有前途的视频生成方法,但在视频长度(限制为2秒)和整体质量方面存在限制。Open-Sora 1.1直面这些限制,提供了以下增强功能:
- 延长视频长度:最显著的改进之一是能够生成长达15秒的视频,与Open-Sora 1.0的2秒限制相比,这是一个显著的增加。这个扩展的时间范围为更广泛的创意应用打开了大门。
- 可变输出:Open-Sora 1.1在视频输出方面提供了更多灵活性。它可以生成不同分辨率(从144p到720p)和宽高比的视频,满足多样化的项目需求。
- 图像生成:除了视频生成,Open-Sora 1.1还扩展了其功能,包括图像生成。这种多功能性使用户能够在生成视频的同时创建高质量的静态图像。
- 增强提示功能:Open-Sora 1.1在提示功能方面引入了进步,使用户能够利用图像和视频作为视频生成的提示。这种功能解锁了令人兴奋的可能性,例如:
(1)使图像动画化:通过生成短视频序列为静态图像赋予生命。
(2)延长生成的视频:在保持连贯性的同时,无缝地延长生成视频的长度。
(3)视频到视频编辑:通过使用视频提示插入或修改片段来编辑现有视频。
(4)拼接视频:为不同视频片段之间创建平滑过渡,实现统一的流畅。
揭开技术进步的面纱
Open-Sora 1.1的显著改进归因于几项关键技术进步:
模型规模和数据集增加:与Open-Sora 1.0相比,Open-Sora 1.1利用了一个规模显著更大的数据集(1000万个视频)。此外,模型本身拥有7亿个参数,潜在地有助于提高视频质量。
多任务学习: Open-Sora 1.1在训练过程中采用了多任务学习方法。这使得模型能够同时处理各种视频属性,包括分辨率、帧长和宽高比。通过在训练过程中考虑这些因素,模型可以适应并生成具有多种特性的视频。
模型架构修改(ST-DiT-2): 开发人员引入了ST-DiT-2,这是Open-Sora 1.0中使用的原始模型架构的改进版本。这种修改促进了更好的训练稳定性和整体性能,为改进视频生成奠定了基础。
揭示数据预处理流程
Open-Sora 1.1的成功不仅取决于模型的架构和训练,还取决于其训练所使用的数据质量。为了确保高质量的训练数据,采用了一套细致的数据处理流程。以下是涉及的关键步骤的详细说明:
原始视频分割: 该过程始于原始视频素材,可以从在线来源或公共数据集获取。这些原始视频根据场景检测算法被分割成较短的片段。此分割确保每个训练样本聚焦于视频中的一个连贯场景。
多分数评估: 在分割之后,每个视频片段都经历了一个评估过程,在这个过程中使用预训练模型预测了多个分数。这些分数评估了视频质量的各个方面,以及适用于训练Open-Sora 1.1的程度。
美观分数: 这个分数衡量了视频片段的视觉吸引力。模型认为外观上吸引人的视频更可能被选中用于训练。
光流分数: 这个分数分析了视频中的运动模式。具有显著运动的片段对于训练模型生成动态视频内容更具信息量。
光学字符识别(OCR): 此步骤涉及检测和识别视频片段中存在的任何文本。文本信息可以为模型在训练期间提供宝贵的上下文,有助于生成语义一致的视频。
字幕和匹配分数计算: 只有通过了美观分数、光流分数和文本存在(如果适用)的初始评估的视频片段才会进入下一阶段。在这里,为这些入选片段生成字幕。这些字幕提供了视频内容的文本描述,进一步丰富了训练数据。此外,还计算了匹配分数,以评估生成的字幕与实际视频内容之间的对齐程度。与字幕和视觉之间存在强烈相关性的视频对于训练更具价值。
最终过滤和摄像机运动检测: 在最后阶段,视频片段根据匹配分数进行过滤。匹配分数较低的片段将被丢弃。剩下的片段经历摄像机运动检测。此步骤分析视频中的摄像机运动,为模型学习并生成具有多样化摄像机工作的视频提供了宝贵信息。
生成高质量的视频文本对: 通过经过这些步骤精心处理原始视频,数据处理流程确保为训练Open-Sora 1.1创建高质量的视频文本对。这些视频文本对具有以下几个关键特点:
高审美质量: 被选用用于训练的视频在视觉上具有吸引力,有助于生成外观上吸引人的输出。
大视频运动: 在训练数据中存在显著运动,使模型能够生成动态且引人入胜的视频。
强语义一致性: 从视频中提取的文本信息以及在训练期间对齐的字幕促进了语义一致性,使模型能够生成与描述相符的视频。
总的来说,如下图所示的数据处理流程是一个关键的筛选器,仅选择和准备最适合用于训练Open-Sora 1.1的视频文本对。这一细致的过程为模型生成高质量和语义有意义的视频奠定了基础。
揭秘Bucket系统和masking策略
用于高效多分辨率训练的Bucket系统: 在不同分辨率的视频上高效训练模型可能需要大量计算资源。Open-Sora 1.1通过引入Bucket系统来解决这一挑战。根据视频的分辨率、帧数和宽高比将视频分组成Bucket。这样可以通过确保具有相似属性的视频一起训练,从而在具有有限资源的GPU上实现高效处理。该系统还包括 keep_prob 和 batch_size 等功能,以控制计算成本并在训练期间平衡GPU负载。
图像/视频调节的masking策略:Open-Sora 1.1利用Transformers执行图像到图像和视频到视频生成任务。为了基于图像或视频提示来引导生成过程,模型采用了一种masking策略。在提示中具体帧被显示(未遮挡),使模型能够专注于这些元素并将它们融入生成的视频中。
Open-Sora 1.0在将这种策略直接应用于预训练模型时面临挑战,实际上,该模型在处理单个样本中具有不同时间步长的帧时遇到困难,因为它没有针对这种情况进行训练。为了解决这个问题,Open-Sora 1.1在训练过程中引入了一种随机masking策略。这涉及到在各种组合中显示帧(第一帧、最后一帧、随机帧等)。通过在训练期间让模型接触各种遮挡场景,模型在用于图像/视频调节期间视频生成时能更有效地处理具有不同时间步长的帧。
解决训练挑战
Open-Sora 1.1团队认识到训练过程中受到资源限制的限制。这些限制需要在整个过程中进行仔细的监控和调整训练策略。以下是训练细节和特定选择背后的原因:
数据集限制:
原计划数据集: 团队最初计划利用一个更大的数据集,可能达到3000万个视频(panda-70M和额外的数据)。有限的预处理: 磁盘I/O瓶颈阻碍了完整的数据处理,导致了一个更小的、1000万个视频的数据集用于训练。
训练细节:
微调: 训练过程从对不同分辨率的图像进行微调开始,持续了6k步,利用了来自Pixart-alpha-1024的checkpoints。这展示了模型适应生成具有不同分辨率图像的能力。
用于加速扩散训练的SpeeDiT: 采用了SpeeDiT(一种扩散训练加速算法)来加快扩散训练过程。
多阶段训练: 预训练阶段涉及多个阶段,每个阶段都有不同的配置。
阶段1
这个初始阶段专注于教会模型基础知识。它使用较小的批量大小进行更好的学习,并在较低分辨率(240p)的视频上进行训练。尽管视频质量看起来还不错,但模型仍然需要了解如何处理随时间变化的视频序列的更多信息(时间知识)。为了解决这个问题,开发人员做出了一些调整,比如增加训练时间,切换到不同的训练方法(从iddpm-speed切换到iddpm),改变模型看待部分训练数据的方式(遮挡比例),增加有关视频帧速率(fps调节)的信息。
阶段2和3:
在这里,模型处理更高分辨率的视频,逐渐从240p/480p移动到480p/720p。每个阶段都使用了所有的训练数据,完成一个阶段大约需要一天的时间。有趣的是,模型能够在最后一个阶段通过使用前一个阶段训练的信息来更快地学习。
总体而言,Open-Sora 1.1的训练大约需要64个H800 GPU耗时约9天。
限制和未来工作
Open-Sora 1.1的开发人员承认当前版本存在几个限制,并强调了未来改进的方向:
生成失败: 在某些情况下,特别是在处理复杂内容或大量tokens时,模型无法生成所需的场景。潜在的原因包括时间注意力崩溃和代码中发现的错误。团队正在积极寻找解决方法,并计划在未来版本中增加模型大小和训练数据量,以提高生成质量。
生成噪音和流畅性: 生成的视频可能会出现噪声和缺乏流畅性,特别是对于较长的视频。这归因于缺乏时间VAE(变分自动编码器)。受Pixart-Sigma关于适应新VAE的发现的启发,开发人员计划在下一个版本中加入时间VAE。
缺乏时间一致性: 在视频帧之间保持一致性,特别是在较长的视频中,仍然是一个挑战。有限的训练FLOP(浮点运算)被认为是一个 contributing 因素。团队计划通过收集更多数据并延长训练过程来解决这个问题。
人物视频生成质量低下: 模型在生成具有人物的高质量视频方面存在困难。这可能是由于用于训练的人物数据量有限。开发人员计划收集更多的人物数据,并对模型进行微调以提高人物视频生成的质量。
审美分数低: 生成的视频当前的审美质量并不理想。在训练期间缺乏审美评分过滤,受到I/O瓶颈的影响,被认为是一个潜在的原因。团队计划实现基于审美评分的数据过滤,并微调模型以生成更具审美吸引力的视频。
较长视频的质量下降: 对于相同提示的不同视频长度,生成的视频质量往往会随着视频长度的增加而下降。这表明模型在不同视频长度之间保持图像质量的一致性方面存在困难。开发人员计划通过改进模型适应不同序列长度的能力来解决这个问题。
结论
Open Sora 1.1代表着视频生成技术普及化的重大飞跃。事实上,通过提供扩展的视频长度、可变的输出格式、增强的提示功能和提高的训练效率,它为用户提供了更大的创作自由。技术进步,包括更大的模型和数据集、多任务学习和改进的架构,为进一步改进奠定了基础。尽管仍然存在局限性,但开发人员致力于通过整合临时VAE、收集更多样的训练数据和改进训练过程等策略来解决这些问题,这为未来迭代中更强大、更通用的视频生成铺平了道路。Open Sora 1.1是迈向高质量视频创作面向更广泛观众的未来的垫脚石。
附录
更新时间表
[2024.04.25] 🤗 我们在 Hugging Face Spaces 上发布了 Gradio demo for Open-Sora (https://huggingface.co/spaces/hpcai-tech/open-sora)。
[2024.04.25] 🔥 我们发布了 Open-Sora 1.1 版本,支持 2 秒到 15 秒、144p 到 720p、任何纵横比的文本转图像、文本转视频、图像转视频、视频转视频、无限时间生成。此外,发布了完整的视频处理流程。[checkpoint] (https://github.com/hpcaitech/Open-Sora/tree/main)[报告](https://github.com/hpcaitech/Open-Sora/blob/main/docs/report_02.md)
[2024.03.18] 我们发布了 Open-Sora 1.0 版本,这是一个完全开源的视频生成项目。Open-Sora 1.0 支持完整的视频数据预处理、带加速的训练、推断等流程。我们的模型只需 3 天训练就能生成 2 秒 512x512 的视频。[检查点](https://github.com/hpcaitech/Open-Sora?tab=readme-ov-file#open-sora-10-model-weights) [博客] (https://hpc-ai.com/blog/open-sora-v1.0)[报告](https://github.com/hpcaitech/Open-Sora/blob/main/docs/report_01.md)
[2024.03.04] Open-Sora 提供的训练可以减少 46% 的成本。[博客](https://hpc-ai.com/blog/open-sora)
最新视频
您可以在我们的🤗 Gradio application on Hugging Face (https://huggingface.co/spaces/hpcai-tech/open-sora)应用程序中体验 Open-Sora。我们的Gallery(https://hpcaitech.github.io/Open-Sora/)中还提供更多样本。
新功能/更新
📍 Open-Sora 1.1 发布。模型权重可在此处(https://github.com/hpcaitech/Open-Sora?tab=readme-ov-file)获取。它在 0 秒到 15 秒、144p 到 720p、各种纵横比的视频上进行训练。查看我们的报告 1.1 (https://github.com/hpcaitech/docs/report_02.md)获取更多讨论内容。
🔧 数据处理流程 v1.1 已发布。提供从原始视频到(文本,视频剪辑)配对的自动处理pipeline(https://github.com/hpcaitech/Open-Sora?tab=readme-ov-file#data-processing),包括场景切割、滤波(审美、光流、OCR 等)、字幕生成和管理。使用此工具,您可以轻松构建您的视频数据集。
✅ 修改后的 ST-DiT 架构包括绳索位置编码、qk 规范、更长的文本长度等。
✅ 支持以任何分辨率、纵横比和持续时间(包括图像)进行训练。
✅ 支持图像和视频调节以及视频编辑,从而支持图像动画、视频连接等功能。
📍 Open-Sora 1.0 发布。模型权重可在此处(https://github.com/hpcaitech/Open-Sora?tab=readme-ov-file#model-weights)获取。仅使用 400K 视频剪辑和 200 个 H800 天(与 Stable Video Diffusion 的 152M 个样本相比),我们就能生成 2 秒 512×512 的视频。查看我们的报告 1.0 (https://github.com/hpcaitech/docs/report_01.md)获取更多讨论内容。
✅ 从图像扩散模型到视频扩散模型的三阶段训练。我们提供每个阶段的权重。
✅ 支持训练加速,包括加速Transformers、更快的 T5 和 VAE,以及序列并行化。Open-Sora 在训练 64x512x512 视频时提高了 55% 的训练速度。详细信息请参阅 acceleration.md(https://github.com/hpcaitech/docs/acceleration.md)。
🔧 数据预处理流程 v1.0,包括下载(https://github.com/tools/datasets/README.md)、视频剪辑(https://github.com/tools/scenedetect/README.md)和字幕生成工具(https://github.com/tools/caption/README.md)。我们的数据收集计划可以在 datasets.md (https://github.com/hpcaitech/docs/datasets.md)中找到。
下一步计划【按优先级排序】
- 训练 Video-VAE 并将我们的模型调整到新的 VAE。【进行中】
- 调整模型参数和数据集大小。【进行中】
- 引入更好的调度器,例如 SD3 中的修正流。【进行中】
本文转自 AI生成未来 ,作者:Elmo&Open-Sora