Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets

Stable video diffusion:将潜在视频扩散模型扩展到大型数据集

可以做到:文本-视频的生成、(文本-)图像-视频的生成、通过图像-视频微调进行多视图合成

摘要

我们提出了Stable video diffusion——一种用于高分辨率、最先进的文本-视频和图像-视频生成的潜在视频扩散模型。最近,通过插入时间层并在小型高质量视频数据集上对其进行微调,用于 2D 图像合成训练的潜在扩散模型已转变为生成视频模型。然而,文献中的训练方法差异很大,该领域尚未就视频数据的统一策略达成一致。在本文中,我们确定并评估了视频 LDM 成功训练的三个不同阶段:文本到图像预训练、视频预训练和高质量视频微调。此外,我们证明了精心策划的预训练数据集对于生成高质量视频的必要性,并提出了系统的策划流程来训练强大的基础模型,包括字幕和过滤策略。然后,我们探索微调基本模型对高质量数据的影响,并训练文本到视频模型。我们还表明,我们的基本模型为下游任务提供了强大的运动表示,例如图像到视频的生成以及对相机运动特定 LoRA 模块的适应性。最后,我们证明我们的模型提供了强大的多视图 3D 先验,并且可以作为微调多视图扩散模型的基础,该模型以前馈方式联合生成对象的多个视图,在计算成本上性能优于基于图像的方法的一小部分。

SVD的三个训练阶段:

1、文本-图像的预训练

2、在低分辨率大数据集上的视频预训练

3、在具有更高分辨率的小数据集上进行高分辨率视频微调

SVD可以实现文本-视频、(文本-)图像-视频生成、通过图像-视频微调进行多视图合成

本文十分重视数据选择

引言

在扩散模型生成图像建模 [36,64,67,72] 进步的推动下,生成视频模型在研究 [8,40,78,91] 和实际应用中都取得了重大进展。一般来说,这些模型要么从头开始训练[39],要么从插入额外时间层的预训练图像模型进行微调(部分或完全)[8,30,41,78]。训练通常在图像和视频数据集的混合上进行。

虽然围绕视频建模改进的研究主要集中在空间和时间层的精确排列上[8,39,41,78],但上述工作都没有调查数据选择的影响。但训练数据分布对生成模型的显着影响是无可争议的。此外,对于生成图像建模,众所周知,对大型且多样化的数据集进行预训练以及对较小但质量较高的数据集进行微调可以显着提高性能 [12, 67]。由于以前的许多视频建模方法已经成功地借鉴了图像领域的技术[8,40,41],因此值得注意的是数据和训练策略的影响,即将较低分辨率预训练和高质量视频的微调作为两部分进行分离,这还有待研究。这项工作直接涉及这些以前未知的领域。

我们认为,尽管数据选择在大规模训练视频模型时得到了从业者的广泛认可,但在当今的视频研究领域中,数据选择的重大贡献却被严重低估。因此,与之前的工作相比,我们利用简单的潜在视频扩散基线[8],为此我们修复了架构和训练方案并评估了数据管理的效果。为此,我们首先确定了三个不同的视频训练阶段,我们发现这三个阶段对于良好的性能至关重要:文本到图像预训练、低分辨率大数据集上的视频预训练以及在具有更高分辨率的小得多的优质视频数据集上进行高分辨率视频微调。(同时还精心准备了数据集) 借鉴大规模图像模型训练[12,60,62],我们引入了一种大规模管理视频数据的系统方法,并对视频预训练期间数据管理的效果进行了实证研究。我们的主要发现表明,对精心策划的数据集进行预训练可以带来显着的性能改进,并且在高质量微调后这种改进仍然持续存在。

A general motion and multi-view prior 根据这些发现,我们将提出的管理方案应用于包含大约 6 亿个样本的大型视频数据集,并训练一个强大的预训练文本到视频基础模型,该模型提供general运动表示。我们利用这一点,并在较小的高质量数据集上微调基本模型,以实现高分辨率下游任务,例如文本到视频(参见图 1,顶行)和图像到视频。

此外,我们还证明我们的模型提供了强大的多视图先验,并且可以作为微调多视图扩散模型的基础,该模型以前馈方式生成对象的多个一致视图,并且优于专门的新颖视图合成方法,例如Zero123XL 和 SyncDreamer。同时,我们的模型可以做显示的运动控制,具体通过了使用运动线索去提示时间层,并且通过仅在类似于特定运动的数据集上训练 LoRA 模块,这些数据集可以有效地插入到模型中。

总而言之,我们的核心贡献有三个:

(i)我们提出了一个系统的数据管理工作流程,将大量未经管理的视频集合转变为用于生成视频建模的高质量数据集

(ii) 训练最先进的文本到视频和图像到视频模型,其性能优于所有现有模型。

(iii) 通过进行特定领域的实验来探索我们模型中运动和 3D 理解的强先验。具体来说,我们提供的证据表明,预训练的视频扩散模型可以转变为强大的多视图生成器,这可能有助于克服 3D 领域中通常观察到的数据稀缺问题。

背景

最近的视频生成工作依赖于扩散模型从文本或图像调节中联合合成多个一致的帧。扩散模型通过学习逐渐对正态分布的样本进行去噪来实现迭代细化过程,并已成功应用于高分辨率文本到图像和视频合成。

在这项工作中,我们遵循这个范例并在我们的视频数据集上训练潜在视频扩散模型。在这项工作中,我们遵循这个范例并在我们的视频数据集上训练潜在视频扩散模型。我们在下面的段落中简要概述了利用潜在视频扩散模型(Video-LDM)的相关工作。关于GANS和自回归方法的讨论在附录B。

潜在视频扩散模型

Video-LDM 在计算复杂度降低的潜在空间中训练主要生成模型。与仅训练时间层或完全不训练的工作相比,本文微调了整个模型。特别是对于文本到视频的合成,大多数工作直接在文本提示上调节模型或使用额外的文本到图像先验。

在我们的工作中,我们遵循前一种方法,并表明所得模型是强大的一般运动先验,可以轻松地微调为图像到视频或多视图合成模型(也就是说预训练的模型可以很好的进行微调)。此外,我们还引入了对帧速率的微调节。我们还采用 EDM 框架,并将噪声表显着转向更高的噪声值,我们发现这对于高分辨率微调至关重要。

数据管理

在大规模数据集上进行预训练是区分文本图像和语言建模等多项任务中强大模型的重要组成部分。通过利用高效的语言-图像表示(例如 CLIP),数据管理同样已成功应用于生成图像建模。然而,视频生成文献中很大程度上缺少对此类数据管理策略的讨论[39,41,78,90],并且以临时方式引入了处理和过滤策略。在可公开访问的视频数据集中,WebVid-10M [6] 数据集一直是一个流行的选择 [8, 78, 110],尽管带有水印且大小不理想。此外,WebVid-10M 通常与图像数据结合使用[76],以实现联合图像视频训练。然而,这加大了分离图像和视频数据对最终模型的影响的难度。为了解决这些缺点,这项工作对视频数据管理方法进行了系统研究,并进一步介绍了生成视频模型的通用三阶段训练策略,产生了最先进的模型。

为HQ视频合成整理数据

在本节中,我们介绍了在大型视频数据集上训练最先进的视频扩散模型的一般策略。为此,我们(i)介绍了数据处理和管理方法,为此我们在第 3.3 节和第 3.4 节中系统地分析了对最终模型质量的影响,以及(ii)确定了生成视频建模的三种不同的训练方案。特别是,这些方案包括:

第一阶段:图像预训练,即二维文本到图像的扩散模型

第二阶段:视频预训练,对大量视频进行训练

第三阶段:视频微调,在一小部分高分辨率的高质量视频上完善模型。

我们在 3.2 至 3.4 节中分别研究了每种方案的重要性。

数据处理和标注

我们收集长视频的初始数据集,它构成了视频预训练阶段的基础数据。为了避免剪切和淡入淡出泄漏到合成视频中,我们在三个不同的 FPS 级别以级联方式应用剪切检测pipeline。图2(左)为处理前后每个视频的平均剪辑数,表明我们的检测到大量额外剪辑。

接下来,我们使用三种不同的合成字幕方法来注释每个剪辑:首先,我们使用图像字幕器 CoCa 注释每个剪辑的中帧,并使用 V-BLIP 获得基于视频的字幕。最后,我们通过前两个字幕的基于 LLM 的摘要生成剪辑的第三个描述。

由此产生的初始数据集,我们将其称为大型视频数据集 (LVD),由 5.8 亿个带注释的视频剪辑对组成,形成了 212 年的内容。(本文构建了一个名为LVD的大型视频数据集)

然而,进一步的调查表明,生成的数据集包含可能会降低最终视频模型性能的示例,例如运动较少的剪辑、过多的文本存在或普遍较低的审美价值。因此,我们另外用密集光流 [22, 46] 注释我们的数据集,我们以 2 FPS 进行计算,并通过删除平均光流幅度低于特定阈值的任何视频来过滤静态场景。事实上,当通过光流分数考虑 LVD 的运动分布(见图 2,右)时,我们识别出其中接近静态剪辑的子集。

此外,我们应用光学字符识别 [4] 来清除包含大量书面文本的剪辑。最后,我们使用 CLIP [62] 嵌入来注释每个剪辑的第一帧、中间帧和最后一帧,从中计算美学分数 [76] 以及文本图像相似度。表1中提供了我们数据集的统计数据,包括剪辑的总大小和平均持续时间。

总结:

1、剪辑检测和运动注释非常重要,可以保证时间质量。

2、训练生成文本-视频模型的另一个关键要素是字幕。最好每个视频有多个字幕,并且与视频内容保持良好的一致。

3、训练示例的质量要高

为了确保时间质量,我们在download后立即使用级联方法检测剪辑,相应地剪辑视频并估计每个生成的视频剪辑的光流。之后,我们对每个剪辑应用三个合成字幕,并进一步提取与所有这些文本提示的帧级 CLIP 相似性,以便能够过滤掉外层。最后,使用基于 CLIP 嵌入的aesthetics评分来评估帧级别的视觉质量。

对于字幕的生成,我们观察到 CoCa 通常可以捕获良好的空间细节,而 VBLIP 则倾向于捕获时间细节。我们使用LLM将这两者结合起来,并对所有三种类型的合成字幕进行实验。

阶段一:图片预训练

本文在stable diffusion的基础上构建初始模型,使其可以有强大的视觉表征。在有预训练的空间权重的模型和没有预训练的空间权重的模型上进行预训练,来分析图像预训练的效果(附录D)。并且使用人类偏好比较了模型(附录E),如图3a所示。结果表明图片预训练模型确实很重要。

阶段二:整理视频预训练数据集

视频数据管理的系统方法

对于多模态图像建模,数据管理是许多强大的判别型和生成型模型的关键要素。然而,由于视频领域中没有同样强大的现成表示可用于过滤掉不需要的示例,因此我们依靠人类偏好作为信号来创建合适的预训练数据集。具体来说,我们使用下面描述的不同方法来策划 LVD 子集,然后考虑在这些数据集上训练的潜在视频扩散模型的基于人类偏好的排名。

LVD-F为最终的预训练数据集。

精心策划的训练数据可提高性能

图3b为结果

LVD-10M-F是比LVD-10M小四倍的数据集。经过管理的数据集要比没经过管理的数据集效果更好。

为了进一步展示我们的管理方法的有效性,我们将在 LVD-10M-F 上训练的模型与在 WebVid-10M [6](最受认可的研究许可数据集)和 InternVid-10M [96] 上训练的类似视频模型进行比较。尽管 LVD-10M-F 也比这些数据集小四倍,但在时空质量和提示对齐方面,人类评估者更喜欢相应的模型,如图 4b 所示。

数据管理有助于规模化

数据管理的优势也随着大量数据而发挥作用。(图4c)

对精选数据进行训练时,数据集大小也是一个关键因素,其中在 50M 精选样本上训练的模型优于在 LVD-10M-F 上训练相同步数的模型。(图4d)

阶段三:高质量的微调

在上一节中,我们演示了系统数据管理对视频预训练的有益影响。然而,由于我们主要感兴趣的是优化视频微调后的性能,因此我们现在研究阶段 II 后的这些差异如何转化为阶段 III 后的最终性能。在这里,我们借鉴了潜在扩散建模 [12, 60] 的训练技术,并提高了训练示例的分辨率。此外,我们使用一个小型微调数据集,其中包含 25 万个高视觉保真度的预字幕视频剪辑。

为了分析视频预训练对最后阶段的影响,我们对三个相同的模型进行了微调,这些模型仅在初始化方面有所不同。我们用预训练的图像模型初始化第一个权重,并跳过视频预训练其余两个模型使用上一节中的潜在视频模型的权重进行初始化,特别是在 50M 精选和非精选视频剪辑上训练的模型。结果如图4e。从策划的预训练权重恢复的微调排名始终高于从未经策划的训练后的视频权重初始化的微调。

结论:

1、将视频预训练和视频的微调训练分开可以提高最终的模型性能;

2、在大规模、精心策划的数据集上进行视频预训练效果更好。

大规模训练视频模型

预训练基础模型

我们的视频模型基于stable diffusion 2.1 [67] (SD 2.1)。最近的工作表明,在训练图像扩散模型时采用噪声调度至关重要,转向更高分辨率图像的更多噪声。第一步,我们使用 Karras 等人提出的网络预处理将图像模型中的固定离散噪声表微调为连续噪声,Karras方法的图像大小为256*384。插入时间层后,我们在 LVD-F 上以 256 × 384 的分辨率在 14 帧上训练模型。我们使用标准 EDM 噪声调度 [48] 进行 150k 次迭代和批量大小 1536。接下来,我们对模型进行微调,使用批量大小 768 进行 100k 次迭代,生成 14320 × 576 帧。我们发现,在此训练阶段将噪声计划转向更多噪声非常重要(训练细节在附录D)

高分辨率文本-视频模型

我们在约 100 万个样本的高质量视频数据集上对基本文本到视频模型进行了微调。数据集中的样本通常包含大量的物体运动、稳定的相机运动和对齐良好的字幕,并且总体上具有很高的视觉质量。我们使用批量大小 768 在分辨率 576 × 1024 下对基本模型进行 50k 次迭代微调(再次将噪声调度转向更多噪声)。

高分辨率图片-视频模型

除了文本-视频之外,我们还对图像-视频生成的基本模型进行了微调,其中视频模型接收静态输入图像作为条件。因此,我们将输入基础模型的文本嵌入替换为条件的 CLIP 图像嵌入。此外,我们将调节帧通道的噪声增强 [37] 版本连接到 UNet [69] 的输入。我们不使用任何mask技术,只是在时间轴上复制帧。我们微调两个模型,一个预测 14 帧,另一个预测 25 帧。

帧插值

为了以高帧速率获得流畅的视频,我们将高分辨率文本到视频模型微调为帧插值模型。通过掩码将左右帧连接到UNet的输入。该模型学习预测两个调节帧内的三个帧,从而有效地将帧速率提高了四倍。

多视图生成

为了同时获得对象的多个新视图,我们在多视图数据集上微调图像到视频 SVD 模型。

数据集

Objaverse数据集和MVImgNet数据集

模型

SD2.1-MV是具有图片先验的,Scratch-MV没有先验,SVD-MV是经过finetune的。

我们使用 8 个 80GB A100 GPU 训练所有模型 12k 步骤(∼16 小时),总批量大小为 16,学习率为 1e-5。

总结

我们提出了稳定视频扩散(SVD),这是一种用于高分辨率、最先进的文本到视频和图像到视频合成的潜在视频扩散模型。为了构建其预训练数据集,我们进行了系统的数据选择和扩展研究,并提出了一种方法来整理大量视频数据,并将大型且嘈杂的视频集合转变为适合生成视频模型的数据集。此外,我们介绍了视频模型训练的三个不同阶段,我们分别对其进行分析,以评估它们对最终模型性能的影响。稳定视频扩散提供了强大的视频表示,我们可以从中微调视频模型,以实现最先进的图像到视频合成和其他高度相关的应用,例如用于摄像机控制的 LoRA。最后,我们提供了关于视频扩散模型的多视图微调的开创性研究,并表明 SVD 构成了强大的 3D 先验,它在多视图合成中获得了最先进的结果,同时仅使用了先前方法的一小部分计算量。

局限

1、长视频的合成:虽然潜在方法提供了效率优势,但一次生成多个关键帧在训练和推理过程中都非常昂贵,未来长视频合成的工作应该尝试级联非常粗略的帧生成,或者构建专用的tokenizers视频生成。

2、生成的视频有时会遇到生成的运动太少的问题

3、视频扩散模型通常采样速度较慢且对 VRAM 要求较高,扩散蒸馏方法 是快速合成的有希望的候选方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/242710.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

re:Invent 云端历程:Swami Sivasubramanian 博士主题演讲-数据共生与开放

re:Invent 云端历程:Swami Sivasubramanian 博士主题演讲-数据共生与开放 亚马逊云科技 re:Invent 大会简介 亚马逊云科技 re:Invent 是亚马逊云科技为全球云计算社区举办的学习大会。是云计算领域的行业风向标,科技界的全球年度重磅盛会。 亚马逊云科…

Sketch for Mac:实现你的创意绘图梦想的矢量绘图软件

随着数字时代的到来,矢量绘图软件成为了广告设计、插画创作和UI设计等领域中必不可少的工具。在众多矢量绘图软件中,Sketch for Mac(矢量绘图软件)以其强大的功能和简洁的界面脱颖而出,成为了众多设计师的首选。 Sket…

Json数据报文解析-Gson库-JsonObject类-JsonParse类-JsonArray类

一、前言 本文我们将介绍如何解析Json数据,主要通过Gson库中的相关类来实现。 二、详细步骤 首先,我们要拿到一个基础的Json数据,这里将以下面的Json数据作为示例: {"code":"1","msg":"ok&q…

***Cpolar配置外网访问和Dashy

Dashy是一个开源的自托管的导航页配置服务,具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你可以将自己常用的一些网站聚合起来放在一起,形成自己的导航页。一款功能超强大,颜值爆表的可定制专属导航页工具 结合cpolar内网工具,我们实现无需部署到公网服务器…

大数据机器学习与深度学习——回归模型评估

大数据机器学习与深度学习——回归模型评估 回归模型的性能的评价指标主要有:MAE(平均绝对误差)、MSE(平均平方误差)、RMSE(平方根误差)、R2_score。但是当量纲不同时,RMSE、MAE、MSE难以衡量模型效果好坏,这就需要用到R2_score。 平均绝对…

redis-学习笔记(Jedis 通用命令)

flushAll 清空全部的数据库数据 jedis.flushAll();set & get set 命令 get 命令 运行结果展示 exists 判断该 key 值是否存在 当 redis 中存在该键值对时, 返回 true 如果键值对不存在, 返回 false keys 获取所有的 key 值 参数是模式匹配 *代表匹配任意个字符 _代表匹配一…

2 接口测试实战演示

上一篇:1 接口测试介绍-CSDN博客 拿到开发提供的接口文档后,结合需求文档开始做接口测试用例设计,下面用最常见也最简单的注册功能介绍整个流程。 说明:以演示接口测试流程为主,不对演示功能做详细的测试,…

Jenkins离线安装部署教程简记

前言 在上一篇文章基于Gitee实现Jenkins自动化部署SpringBoot项目中,我们了解了如何完成基于Jenkins实现自动化部署。 对于某些公司服务器来说,是不可以连接外网的,所以笔者专门整理了一篇文章总结一下,如何基于内网直接部署Jen…

TDengine Kafka Connector将 Kafka 中指定 topic 的数据(批量或实时)同步到 TDengine

教程放在这里:TDengine Java Connector,官方文档已经写的很清晰了,不再赘述。 这里记录一下踩坑: 1.报错 java.lang.UnsatisfiedLinkError: no taos in java.library.pathat java.lang.ClassLoader.loadLibrary(ClassLoader.j…

SE考研真题总结(三)

继续更新,今天准备连出两期该系列~ SE考研真题总结(二)https://blog.csdn.net/jsl123x/article/details/134857052?spm1001.2014.3001.5501 目录 一.简答题 二.代码大题 一.简答题 1.工程和科学的区别 科学是关于事物的基本原理和事实的…

102基于matlab的PCA+ELM和PCA+PSO-ELM的费用估计

基于matlab的PCAELM和PCAPSO-ELM的费用估计,输出输出两者的预测误差并进行比较,输出优化后的迭代曲线。数据可更换自己的,程序已调通,可直接运行。 102matlab PCAPSOELM (xiaohongshu.com)

第16章 网络io与io多路复用select/pool/epool

第16.1节 写一个服务端代码 服务端代码 #include <stdio.h> #include <errno.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h>#include <fcntl.h>int main() {//openint sockfd sock…

大数据技术之Storm的安装与配置

大数据技术之Storm的安装与配置 这篇文章深入研究了大数据技术中实时计算系统 Apache Storm 的安装与配置过程。首先&#xff0c;文章介绍了 Apache Storm 在大数据处理中的重要性&#xff0c;强调其在实时数据处理领域的关键作用。随后&#xff0c;详细阐述了如何在系统中进行…

掌握Web、DNS、FTP、DHCP服务器的配置。掌握简单网络方案的规划和设计

1、Web服务器配置 2、综合设计 配置完后,所有的终端主机都要能够访问外网服务器,并进行测试。(本题可以自行选题,自行设计,但必须包含路由器、服务器(web、dns、DHCP、)、交换机及防火墙)。 3.做好规划并搭建拓扑图: 4.给PC机与服务器配置好IP,网关 5.给每个交换机…

【Spring】02 Bean 的命名

文章目录 1. 定义2. 使用优势3. 如何命名4. 注解驱动5. 最佳实践1&#xff09;使用明确的业务名词2&#xff09;避免缩写和首字母缩略词2&#xff09;不要过度使用别名 结语 在 Spring 框架中&#xff0c;Bean 是应用程序中的主要组件&#xff0c;负责承载和管理应用的核心功能…

bugku -- eval

<?phpinclude "flag.php";$a $_REQUEST[hello];eval( "var_dump($a);");show_source(__FILE__); ?> //这段代码包含了一个PHP脚本。首先&#xff0c;它包含了一个名为"flag.php"的文件。然后&#xff0c;它定义了一个变量$a&#xff0c…

SpringBootWeb入门、HTTP协议、Web服务器-Tomcat

目录 一、SpringBootWeb入门 二、HTTP协议 HTTP-请求协议 HTTP-响应协议 HTTP-协议解析 三、Web服务器-Tomcat 服务器概述 Tomcat 一、SpringBootWeb入门 直接基于SpringFramework进行开发&#xff0c;存在两个问题&#xff1a;配置繁琐、入门难度大 通过springboot就…

MATLAB读写txt文件数据与进制转换

文章目录 前言读txt文件读txt中的十进制数据到MATLAB读txt数据的其他进制数据转为十进制到MATLAB读txt内容到MATLAB 写txt文件总:将MATLAB生成的10进制数据转换成十进制和radix进制写入txt分:将MATLAB中十进制数据以radix进制数据格式写入txt文件分:将MATLAB中十进制数据写入tx…

gRPC-Gateway:高效转换 RESTful 接口 | 开源日报 No.105

grpc-ecosystem/grpc-gateway Stars: 16.4k License: BSD-3-Clause gRPC-Gateway 是一个遵循 gRPC HTTP 规范的 gRPC 到 JSON 代理生成器。它是 Google 协议缓冲编译器 protoc 的插件&#xff0c;可以读取 protobuf 服务定义并生成反向代理服务器&#xff0c;将 RESTful HTTP…

linux下配置vscode中的ros的c++调试

第一步 这块是launch.json {"version": "0.2.0","configurations": [{"name": "g - 生成和调试活动文件","type": "cppdbg","request": "launch","program": "${wo…