超燃!纯AI生成《泰坦尼克号》大片!浙大阿里发布MovieDreamer:超长电影生成“梦工厂“

论文链接:https://arxiv.org/pdf/2407.16655
项目主页:https://aim-uofa.github.io/MovieDreamer/
github链接:https://github.com/aim-uofa/MovieDreamer

亮点直击

  • MovieDreamer,一个新颖的分层框架,将自回归模型与扩散渲染结合起来,平衡长时间叙事连贯性与短时间视觉保真度。该方法大幅延长了生成视频内容的时长,达到数千个关键帧。

  • 使用多模态自回归模型生成视觉token序列。自回归模型支持zero-shotfew-shot的个性化生成场景,并支持可变长度的关键帧预测。

  • 使用了一种新颖的多模态脚本,对场景和角色身份进行分层结构化丰富描述。这种方法不仅促进了视频不同片段之间的叙事连贯性,还增强了角色控制和身份保持能力。

  • 方法展示了卓越的生成质量,具有详细的视觉连续性、高保真度的视觉细节以及角色身份保持能力。

最近的视频生成技术进展主要利用扩散模型来生成短时内容。然而,这些方法在处理复杂叙事和保持角色一致性方面常常不足,而这些对于电影等长篇视频制作至关重要。本文提出了MovieDreamer,一个新颖的分层框架,将自回归模型的优势与基于扩散的渲染相结合,开创了具有复杂情节进展和高视觉保真度的长时视频生成。本文的方法利用自回归模型来保持整体叙事连贯性,预测视觉token序列,然后通过扩散渲染将其转换为高质量的视频帧。这种方法类似于传统的电影制作过程,将复杂的故事分解为可管理的场景拍摄。

此外,本文采用多模态脚本,丰富了场景描述,提供详细的角色信息和视觉风格,增强了场景间的连续性和角色身份一致性。本文在各种电影类型中进行了广泛的实验,证明本文的方法不仅在视觉和叙事质量上取得了优异的成绩,而且有效地将生成内容的时长显著延长,超越了当前的能力。

方法

概览

本文提出了一种新颖的框架,用于生成扩展的视频序列,该框架利用自回归模型在长期时间一致性方面的优势和扩散模型在高质量图像渲染方面的优势。本文的方法以多模态脚本作为条件,以自回归方式预测关键帧tokens,并使用这些帧作为anchor生成完整的视频。本文的方法提供了灵活性,支持zero-shot生成以及需要遵循给定风格的few-shot场景。本文特别注意在多模态脚本设计、自回归训练和扩散渲染过程中保持角色身份的一致性。下图2中展示了整体框架。

通过扩散自编码器进行关键帧tokens

为了创建简洁且忠实于图像的表示,本文采用扩散自编码器。本文的编码器 包含一个预训练的 CLIP 视觉模型和一个基于transformer的tokens压缩器,它将图像 编码为数量减少的压缩tokens,记为。解码器使用这些tokens重建图像,采用预训练的 SDXL 扩散模型,生成 的重建图像。提取的潜在图像tokens通过交叉注意力被输入到扩散解码器中。本文在训练压缩器和解码器的同时,保持CLIP视觉模型冻结。训练这个扩散自编码器的损失函数如下:

其中, 是输入图像, 是其在时间步 对应的噪声潜在表示,即 其中 , 和 定义了一个噪声调度。在本文的实验中,作者经验性地发现,仅仅两个tokens就能充分描述关键帧的主要语义,这一发现与之前的工作[42]一致。

自回归关键帧tokens生成

本文使用预训练的大型语言模型 LLaMA2-7B初始化本文的自回归模型。与大型语言模型(LLMs)不同,本文的模型 根据输入的多模态脚本 和历史信息 预测压缩的视觉tokens,其公式如下:

本文的方法首先利用预训练的大型语言模型,特别是 LLaMA2-7B,来构建本文的自回归模型 G。与传统的 LLM 不同,G 旨在从多模态脚本 和历史数据 中预测压缩的视觉tokens。模型函数定义为

传统的 LLM 通常使用交叉熵损失进行训练,这适用于离散输出。然而,本文的模型处理的是连续实值图像tokens,使得交叉熵不适用。

受 GIVT的启发,本文采用 k-混合高斯混合模型(GMM)来有效地建模这些实值tokens的分布。这涉及用 2kd 个均值、2kd 个方差和 k 个混合系数来参数化 GMM。

这些参数是通过自回归模型的一个修改后的线性输出层获得的,从而能够从 GMM 中采样连续tokens。模型通过最小化负对数似然进行训练:

其中 代表总帧数, 表示当前帧, 是每帧的压缩tokens数量。为了简化这些连续tokens的学习,本文还结合了预测tokens和真实tokens之间的 和 损失,并优化以下目标:

为了解决自回归模型在长视频关键帧生成中的过拟合问题,本文实施了几种关键策略:

  • 数据增强:为了最大限度地利用本文的训练数据,本文应用了随机水平翻转和随机反转视频帧的时间顺序。这种训练数据增强大大增加了训练数据的多样性。

  • 面部embedding随机化:为了防止身份泄露,本文随机检索同一角色在不同帧中的面部embedding。否则,模型会简单地通过面部embedding输入记住训练帧。

  • 激进的Dropout:本文使用了异常高的50%的Dropout率,这对于从有限的训练数据中进行广泛学习至关重要。

  • tokens mask:本文以0.15的概率随机mask输入tokens,这适用于因果注意力mask。这迫使模型根据可用的上下文(如面部ID)推断缺失的信息,进一步增强了其从部分数据中进行泛化的能力。

自回归条件下的多模态脚本。本文开发了一种结构良好的多模态脚本格式,作为自回归模型的输入,如下图14所示。本文的脚本整合了多个维度:角色、场景元素和叙述弧线。仅使用文本来准确表示角色外貌是具有挑战性的;因此,本文将文本描述与面部embedding结合起来,以提供每个角色的更详细表示。为了便于自回归模型的处理,本文将脚本格式结构化,以明确区分这些元素。

对于非文本模态(如面部embedding和压缩tokens),本文使用多层感知器将其投射到LLaMA的embedding空间中。主要的挑战在于文本数据,它往往会产生长序列,从而消耗过多的tokens空间并限制模型的上下文广度。为了解决这个问题,本文将文本视为一种单独的模态,将其分为“标识符”和“描述”(见上图2)。标识符是简洁的陈述,用于建立脚本的结构。相比之下,描述则详细说明了生成的属性,每个描述都使用CLIP编码为一个单独的[CLS]tokens,然后投射到统一的输入空间中。

这种方法通过将整个句子压缩成单个tokens,显著延长了训练期间可用的上下文长度。本文使用LongCLIP作为描述的文本编码器,支持最多248个tokens的输入,这增强了本文处理详细叙述内容的能力。因此,时间步的多模态脚本及其之前的历史数据表示为:

其中,、 和 分别表示描述、标识符和角色面部embedding的embedding。 表示之前预测的压缩帧tokens。负对数似然损失公式如下:

个性化生成的few-shot训练。 为了促进个性化电影内容生成,本文提出了一种利用上下文学习的few-shot学习方法。在训练过程中,本文从一集中随机选择10个帧,将它们编码为视觉tokens,并随机将这些tokens添加到该集的视觉tokens之前。这一策略不仅促进了上下文学习,使模型能够根据参考帧定制内容,还作为一种数据增强技术,有效减轻了过拟合问题。

本文的模型具有多功能性,支持zero-shot和few-shot生成模式。在zero-shot模式下,模型仅根据文本提示生成内容。在few-shot模式下,模型利用一小组用户提供的参考图像,使生成的内容更符合用户的偏好,而无需进一步训练。这一功能确保用户能够高效地生成高质量、定制化的视觉内容,符合他们期望的主题和风格。

保留 ID 的扩散渲染

在本文的方法中,虽然主要的扩散解码器能够熟练地重建目标图像,但有时在捕捉细节方面,特别是面部特征上,会有所欠缺。这是由于压缩后的token中细节的衰减。为了解决这个问题,本文增强了中的交叉注意力模块。这种增强涉及到整合来自多模态脚本的描述性文本embedding 和面部embedding 。

为了进一步提升模型对关键细节的关注能力,本文引入了一种随机mask策略,该策略会遮蔽一部分输入token。这种技术鼓励解码器更有效地利用现有的面部和文本线索,以更高的保真度重建图像,特别是在保持身份特征方面。这种身份保留渲染也弥补了在自回归建模过程中身份丢失的问题,如下图3所示,显著提高了身份感知质量。

基于关键帧的视频生成

在获得电影中的关键帧后,本文可以基于这些关键帧生成电影片段。一种直接的方法是利用现有的图像到视频模型,例如Stable Video Diffusion (SVD),来生成这些片段。具体来说,SVD将输入图像转化为用于条件的潜在特征,并通过交叉注意力引入与输入图像的CLIP特征的交互。虽然SVD能够生成高质量的短视频,例如25帧,但在生成更长的电影片段时会遇到困难。

为了生成更长的电影片段,一种直接的方法是利用前一个视频的最后一帧作为生成后续视频的初始帧。这个过程可以迭代进行,以获得较长的视频序列。然而,本文通过实验证明,这会导致严重的错误积累:随着时间的推移,视频帧的质量会逐渐恶化。

为了解决这个问题,本文提出了一种简单而有效的解决方案。本文的动机是始终使用第一帧的特征作为视频扩展过程中的“锚”,以增强模型对原始图像分布的感知。在实际操作中,本文在生成后续视频时,使用原始输入图像的CLIP特征,而不是前一个视频的最后一帧进行交叉注意力交互。

实验

与最先进的模型比较

故事生成。 许多现有的故事生成方法专注于使用小数据集进行微调,表现出较差的泛化能力。因此,本文仅与那些展示出高泛化能力的方法进行比较,即StoryDiffusion和 StoryGen。如下图4所示,StoryDiffusion无法保持长期一致性。例如,角色的头发不一致,关键帧77中的角色与关键帧968中的角色不一致。类似地,StoryGen也未能保持一致性并生成了异常结果。相比之下,本文的方法在生成极长内容的同时,能够在多个角色之间保持短期和长期的一致性。这个观察也通过下表1中的定量结果得到了证实,本文的方法在LT和ST指标上均取得了高分。此外,更高的CLIP得分反映了本文生成的结果与故事情节很好地契合。更好的IS、AS和FID得分表明本文的方法生成了高质量的图像。

视频结果。 本文对生成长视频的方法进行了详细比较。对于文本到视频的方法,本文使用测试集中准备的详细描述作为输入。对于图像到视频的方法,本文采用由本文的方法生成的关键帧作为输入。如下表2所示,本文的方法在质量方面显著优于现有的开源模型,展示了强大的泛化能力。最重要的是,本文的方法能够生成持续数小时的视频,且质量几乎没有妥协,达到了最先进的水平。

分析

反过拟合策略。 大型自回归模型是强大的学习器,这使得它们很容易对数据集过拟合。如下图6的第一行所示,生成的内容主要由输入字符主导。即使给出不同的文本提示,模型也会生成相似的视觉内容。本文的反过拟合策略旨在削弱字符ID与目标帧之间的对应关系,从而避免简单的记忆。如第二行所示,这有助于生成与文本描述高度一致的多样化高质量结果。

多模态电影脚本。 多模态脚本引入了面部embedding,以更好地保持一致性。下图5有力地展示了这种设计的有效性。具体来说,移除面部embedding会导致模型保持角色一致性的能力下降。面部embedding携带了比单纯文本更细致和精确的信息。使用面部embedding后,短期和长期的一致性都得到了很好的保持。

ID保持渲染。 在启用ID保持渲染之前,本文的解码器已经显示出重建目标图像的能力。然而,对于训练集外的图像,由于压缩token中细微面部特征的丢失,重建的角色外观可能与预期目标略有不同。应用ID保持渲染后,本文的解码器在保持角色身份方面表现出显著增强的能力。实验结果如上图3所示,清楚地展示了后处理步骤的有效性。

few-shot个性化生成。 本文的方法作为一个强大的上下文学习者,能够根据用户提供的少量参考生成与风格或角色一致的结果。结果展示在下图7中。本文的模型在few-shot场景下能够生成与参考风格和角色更一致的结果。

结论

本文提出了MovieDreamer,以应对生成具有复杂叙事的长时间视觉内容的挑战。该方法巧妙地结合了自回归和扩散的优势,能够生成长视频。此外,本文设计了多模态脚本,旨在保持生成序列中角色的一致性。本文进一步引入了身份保持渲染,以更好地保持角色身份,并通过上下文建模支持few-shot电影创作。这项工作有望为自动化长时间视频制作的未来发展开辟令人兴奋的可能性。

参考文献

[1] MovieDreamer: Hierarchical Generation for Coherent Long Visual Sequences

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

正则表达式与文本处理

目录 一、正则表达式 1、正则表达式定义 1.1正则表达式的概念及作用 1.2、正则表达式的工具 1.3、正则表达式的组成 2、基础正则表达式 3、扩展正则表达式 4、元字符操作 4.1、查找特定字符 4.2、利用中括号“[]”来查找集合字符 4.3、查找行首“^”与行尾字符“$”…

前端江湖:从菜鸟到大侠的修炼手册

在这个数字编织的梦幻世界里,前端,这个听起来就带着几分仙气与神秘感的词汇,实则是每一位互联网探险家手中的魔法杖。它不仅连接着代码的冰冷逻辑与用户的炽热情感,更在无数次的点击与滑动间,绘制出一幅幅绚丽多彩的交…

通过IP获取对应的经纬度地区

背景 项目现在要通过IP获取对应的地区和经纬度。后面会根据经纬度在地图上展示 直接用大佬给出的ip-info 这是大佬给的项目地址 https://gitee.com/jthinking/ip-info这是运行实例 感谢大佬打赏 ![在这里插入图片描述]

怎样在 Nginx 中配置基于请求客户端指纹识别数据的路由?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 文章目录 怎样在 Nginx 中配置基于请求客户端指纹识别数据的路由 怎样在 Nginx 中配置基于请求客户端指纹识别数据的路由 在当今数字化的世界中,网站和应用程…

谷粒商城实战笔记-69-商品服务-API-品牌管理-JSR303自定义校验注解

文章目录 1. 需求介绍2. 创建自定义校验注解2.1 编写自定义校验注解2.1.1 注解定义2.1.2 配置文件 3. 实现自定义校验器3.1 编写自定义校验器 4. 使用自定义校验5. 多类型校验器的支持6. 测试 上一节讲解了如何使用分组校验。 这一节将详细介绍如何在Java中实现自定义校验注解以…

步进电机常见的三种驱动方式

步进电机是一种作为控制用的特种电机, 它的旋转是以固定的角度(称为"步距角")一步一步运行的, 其特点是没有积累误差( 为100%), 所以广泛应用于各种开环控制。 步进电机的运行要有一电子装置进行驱动, 这种装置就是步进电机驱动器, 它是把控制系统发出的脉冲信号转化…

宝塔单ip,新建多站点

报错如上: 那么如何新建多站点呢 先随便写个名字上去,然后再重新绑定别的端口… 这个时候访问99端口即可 。 如果是有域名,则不需要这样做 、直接80端口也可以多站点

富芮坤FR800X系列之按键检测模块设计

FR800X系列按键检测模块 读者对象: 本文档主要适用以下工程师: 嵌入式系统工程师 单片机软件工程师 IOT固件工程师 BLE固件工程师 文章目录 1.概要2.用户如何设计按键检测模块2.1 GPIO初始化2.2按键模块初始化2.3设计中断函数:2.4循环…

Florence2:Advancing a unified representation for a variety of vision tasks

Florence-2模型:开启统一视觉基础模型的新篇章_florence -2-CSDN博客文章浏览阅读1.1k次,点赞108次,收藏109次。Florence-2是由微软Azure AI团队开发的一款多功能、统一的视觉模型。它通过统一的提示处理不同的视觉任务,表现出色且优于许多大型模型。Florence-2的设计理念是…

ArcSDE超过连接数解决方案

问题说明:服务器间歇性的会报连接数超限的问题,经常需要手动释放部分连接才能解决。之前遇到过类似的问题,主要是增大数据库连接数,同时检查死链接的情况,因为修改配置需要重启数据库,所以前期一直手动释放…

谷粒商城实战笔记-62-商品服务-API-品牌管理-OSS整合测试

文章目录 一,Java中上传文件到阿里云OSS1,整合阿里云OSS2,测试上传文件 二,Java中整合阿里云OSS服务指南引言准备工作1. 注册阿里云账号2. 获取Access Key3. 添加依赖 实现OSS客户端1. 初始化OSSClient2. 创建Bucket3. 上传文件4.…

初识Play Framework框架和第一个Java play web项目的创建

文章目录 初识Play Framework框架和第一个Java play web项目的创建一、简介特点架构开发流程示例代码总结 二、创建第一个Java play web项目1、下载play框架,配置系统环境变量(jdk的安装就不再说了) 2、检查play的版本和创建第一个play项目3、将项目通过idea或eclip…

福特汽车:总是悲喜交加时

每辆电动汽车的亏损高达6.94万美元,这把全美最大汽车制造商——福特汽车,也整不会了。 燃油车全美销量第一、电动车全美销量第二,销量大增的福特汽车增收不增利,息税前利润下滑27%至28亿美元, 因盈利远不及预期&#x…

【Python】pandas:查看数据(head, tail, values属性, at, iat, loc, iloc, [ ], sample)

pandas是Python的扩展库(第三方库),为Python编程语言提供 高性能、易于使用的数据结构和数据分析工具。 pandas官方文档:User Guide — pandas 2.2.2 documentation (pydata.org) 帮助:可使用help(...)查看函数说明文…

Spring Boot:图书管理系统(一)

1.编写用户登录接口 代码: package com.example.demo;import jakarta.servlet.http.HttpSession; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotatio…

Linux 查找命令

目录 1. 查看二进制文件 which 2. 查看指定文件 find ​2.1 文件名查找 2.2 文件大小查找 前面学习过的 Linux 命令,其实质是一个个的二进制可执行程序,与 Windows 系统中的 .exe 文件是一个意思。 1. 查看二进制文件 which 语法: w…

sonar代码扫描报错:ERROR: Something went wrong storing the PDF at server side.

原因: URL带“/”引起的,去掉即可。 去掉之后成功:

2、从0搭建企业门户网站——云服务器租用

目录 正文 1、登录阿里云 2、进入云服务器界面 3、租用云服务器 正文 云服务器厂商很多,这里主要以阿里云服务器为主介绍云服务器的相关知识。 1、登录阿里云 阿里云官网地址 2、进入云服务器界面 登录后,点击控制台,进入主界面。

当AI遇上“近亲繁殖”:牛津剑桥Nature封面揭秘

在这个AI无所不能的时代,一项新的研究再次刷新了我们的认知边界。牛津大学、剑桥大学、帝国理工学院和多伦多大学的研究团队,携手登上《自然》杂志封面,揭露了一个令人震惊的事实:AI也可能遭遇“近亲繁殖”的问题! 更多信息,请关注微信公众号:JAVA和人工智能 “近亲繁…

[Unity] ShaderGraph实现不同贴图素材的同一材质球复用

无意间发现的ShaderGraph小技巧, 可以实现同一个ShaderGraph,同一个Material材质球, 但使用不同的Texture贴图,而Sprite显示不会相互覆盖。 具体实现方法如下: 声明Texture2D时,把名字命名成&#xff1a…