短视频界的变革者:上海 AI lab 发布 Vlogger,几句话生成分钟级视频

news2024/11/17 17:36:54

现如今,vlog 已经成为我们日常生活的重要组成部分。无论是看视频学习休闲、记录珍贵瞬间还是分享生活见闻,视频已经成为人们表达创意和观点的独特媒介。

然而,与几秒钟的短视频不同,要创作出引人入胜、生动有趣的长视频,通常需要构思复杂的故事情节和多样化的场景,这一般要专业的摄影团队和繁琐的后期制作。

近期,上海 AI lab 团队发布 Vlogger,用几句话就能生成分钟级视频。

“开局一段话,视频全靠编”,无需专业的摄影团队,由 LLM 当导演,给它一个引入入胜的故事,或许成为专业 vlog 博主指日可待。

论文题目:
Vlogger: Make Your Dream A Vlog

论文链接:
https://arxiv.org/abs/2401.09414

Github 地址:
https://github.com/zhuangshaobin/Vlogger

博客地址:
https://zhuangshaobin.github.io/Vlogger.github.io/

由 LLM 担任导演,作者通过 Vlogger 的剧本创建、演员设计、ShowMaker 拍摄和 Voicer 配音这四个步骤生成高质量的 vlog,而且 Vlogger 克服了以前在长视频生成任务中遇到的挑战:

  • 将用户故事巧妙地分解为许多拍摄场景,并设计了能够在 vlog 中不同场景中出现的演员图像。通过对场景文本和演员图像的明确指令,Vlogger 能够降低由于突然的拍摄变化而引起的时空不一致性

  • 为每个场景生成独立的视频片段,并将它们无缝整合成一个连贯的 vlog。由此避免了使用大规模的长视频数据集进行繁琐的训练

Vlogger 是什么?

如图 1 所示,Vlogger 让 LLM 担任导演,先在规划阶段创建剧本(Script)并设计演员(Actor),基于此,ShowMaker 在拍摄阶段为每个场景生成视频片段,而 Voicer 为此片段配音。

▲图1 Vlogger 框架

通过规划和拍摄阶段内的四个重要角色,这一过程可以分解为自上而下的规划和自上而下的拍摄两部分:

自上而下的规划

vlog 包含了丰富的镜头切换和多样化的内容,直接将复杂的用户故事输入到视频生成模型中,生成分钟级的 vlog 是具有挑战性的,因此,通过图 2 中自上而下的规划分解用户故事。

▲图2 自上而下的规划

1 剧本创建

逐步将用户故事转换为剧本,这是生成 vlog 的第一步。与 LLM 导演进行由粗到细的对话,解析用户故事,这个渐进的剧本创建范式(paradigm)大致可以分为四个阶段:

  1. 粗略阶段(Rough):首先,LLM 导演首先从用户提供的故事中生成了基本的剧本草稿。

  2. 细节阶段(Detailed):随后,LLM 导演通过添加故事细节逐渐完善初步生成的剧本。

  3. 完成阶段(Completed):接下来,LLM 导演检查详细剧本,确保没有遗漏故事的重要部分。

  4. 安排阶段(Scheduled):最后,LLM 导演为剧本中的每个场景分配了拍摄时长和场景内容。得到的最终剧本包含了 个拍摄场景的描述 , 以及它们各自分配的时长 ,。

这个剧本创建过程通过逐步细化的对话,将用户故事逐渐转化为最终剧本。由于 LLM 在语言理解方面展现出强大的能力,能够有效地处理复杂的用户故事,为后续的 vlog 生成提供了清晰的指导。LLM 导演能够有效地将用户故事拆解为多个拍摄场景,并为每个场景分配相应的拍摄时长,从而充分描述整个故事,确保生成的剧本在视觉和情节上保持协调性

2 演员设计

在剧本创建完成后,是时候在 vlog 中安排演员了。LLM 导演将会再次审查剧本,汇总演员列表。然后,通过调用角色设计师(例如 SD-XL),作者生成了这些演员在 vlog 中的参考图像,使演员在各个场景中能够贴合剧本,为后续拍摄做好准备。

  1. 演员总结(Actor Summarization): 首先,从生成的剧本中,通过与 LLM 导演的对话,提取出演员的相关信息,形成演员总结。

  2. 演员图像生成(Actor Image Generation): 接下来,基于上述信息,LLM 导演调用一个 LLM 设计师生成演员的参考图像。

  3. 主角选择(Protagonist Selection): 最后,LLM 导演根据演员的总结和剧本,决定了在剧本每个拍摄场景中的主角。这个过程通过特定的指令来实现,确保所选的主角与剧本中的场景相匹配。

自下而上的拍摄

如图 3 所示,这是通过 ShowMaker 进行底层拍摄(Bottom-Up Shooting)的过程。通过 ShowMaker 模型进行实际的视频生成,并用 Voicer 对其配音。

▲图3 自下而上的拍摄

3 ShowMaker 拍摄

在剧本文本和演员图像的指导下,作者提出了一种新颖的 ShowMaker 模型作为摄影师,如图 4 所示。ShowMaker 是专为生成每个拍摄场景的视频片段而设计的视频扩散模型,用于生成每个拍摄场景的视频片段。它能够为每个拍摄场景生成规定时长的视频片段,同时保持剧本和演员之间的时空一致性,以确保整体的视频流畅和自然。

▲图4 ShowMaker(a)总体架构(b)时空增强块(STEB)(c)模式选择

  • 从结构上看:在该模型中引入了时空增强块(STEB)。该块可以自适应地利用场景描述和演员图像作为文本和视觉提示,通过时空-演员和时空-文本的交叉注意力,这些提示仔细指导 ShowMaker 增强剧本和演员的时空一致性。

  • 从训练的角度来看:提出一种概率模式选择机制,通过混合训练 Text-toVideo(T2V)生成和预测来增强 ShowMaker 的能力。

在生成视频片段之前,模型将场景描述(Scene Description)作为文本提示,以及每个场景的演员图像(Actor Image)作为视觉提示

ShowMaker 在生成视频片段的过程中采用两种学习模式,在推理阶段利用了生成模式和预测模式的组合

  • 生成模式用于开始生成一个视频片段。

  • 预测模式中,使用之前生成的帧作为上下文,预测下一帧,以此类推,直到满足剧本中指定的场景时长。

4 Voicer 配音

最终,为了增强 vlog 的完整性,在 LLM 导演的指导下,调用 Text-To-Speech 模型作为 Voicer,为 vlog 进行配音,将场景描述转换为相应的音频,并将其与视频片段相结合。

实验结果

作者在当前流行的视频基准数据集 UCF-101 上进行 zero-shot 评估。表 1 显示 Vlogger 表现出色,不论输入文本是类别标签还是人工提示,Vlogger 都取得了最佳的 FVD 性能。

▲表1 在 UCF-101 数据集上的零样本比较

通过与其他先进的 T2V 生成模型进行比较,Vlogger 展示了其在视频生成任务上的优越性。

▲表2 在 Kinetics-400 上的比较

▲表3 在 MSR-VTT 上的比较

在 UCF-101 上,不需要对进行任何微调,Vlogger 实现了 zero-shot 长视频生成。与领域唯一的开源长视频生成模型 TATS 相比,Vlogger 在生成 1000 帧视频时性能显著更好,并且没有 TATS 存在的随着帧数增加而视频质量下降的问题。

▲图5 长视频生成

三种 vlog 生成流程的比较

作者比较了三种不同的生成流程,分别是没有自回归(MovieFactory)、完全自回归一次生成(Phenaki)和 Vlogger 生成流程。通过相同的剧本和 ShowMaker 作为摄影师。结果显示,即便在相同的输入条件下,Vlogger 在生成 vlog 的质量上超过了其他框架,表现更为优越。

▲表4 生成过程消融研究

在 ShowMaker 引入时空增强块是否有效?

时空增强块(STEB)是 Vlogger 中的一个关键组成部分,包括空间图像交叉注意力和时间文本交叉注意力。在实验中,通过改变参数 进行了空间图像交叉注意力的消融研究。结果显示,CLIP-I 在 增加时显著改善,在 时达到最大值

另外,通过引入时间文本交叉注意力(TTCA),在 Vimeo11k 数据集上的 T2V 生成和预测性能都显著提高。

▲图6 空间图像交叉注意力的消融

混合训练范式是否有用?

与之前的随机掩码训练方法进行比较,结果表明,混合训练范式在提高模型的 T2V 生成和预测都有效。

▲表5 时域文本交叉注意力和混合训练范式的消融

总结

Vlogger 为长视频生成带来了新的可能性,通过创新性的四个步骤和先进的 ShowMaker 模型,成功地克服了以往在这一领域所面临的挑战。实验证明,Vlogger 在多个方面都表现出色,展现了其在zero-shot 视频生成任务上的优越性能。

这个系统不仅仅是一个视频生成工具,更是一个富有创意的导演,从用户提供的故事中提取元素,将其转化为连贯而有创意的视觉叙事。相信 Vlogger 的成功能为开放领域中的长视频生成提供新的思路和工具,为未来的研究和设计奠定坚实的基础。

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

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

相关文章

十分钟学会用springboot制作微信小程序富文本编辑器

1.1 富文本模型设计 在构建富文本编辑器系统时,首先需要设计一个合适的富文本模型。 CREATE TABLE IF NOT EXISTS rich_texts (id INT PRIMARY KEY AUTO_INCREMENT,title VARCHAR(255),content TEXT,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );这个表包括…

一键转换MOV至MP3:轻松删除原视频,释放存储空间!

你是否曾经有一个MOV格式的视频文件,想要提取其中的音频却苦于没有合适的工具?现在,有了我们的全新视频剪辑工具,这个烦恼全部消失!我们为你提供一键式解决方案,将MOV视频文件快速转换为MP3音频格式。 首先…

PyNest 一个可以搭建微服务的 Python 包

PyNest 在构建 Python API 和微服务方面崭露头角,解决了 FastAPI 中存在的关键问题,因此成为卓越的框架。凭借其模块化的架构和先进的特性,PyNest 在 2024 年及以后有望成为 Python 开发者的首选选择。 随着 Python 生态系统的不断成熟&…

YAYI-UIE: 一个用于通用信息提取的聊天增强的指令微调框架

1、写作动机: 最近的研究提出了基于大型语言模型的方法,以统一地建模不同的信息提取任务。然而,这些现有方法在处理英语以外的中文语言的信息提取能力方面存在不足。 2、主要贡献: 提出了YAYI-UIE,一个端到端的聊天…

Prometheus+grafana配置监控系统

使用docker compose安装 方便拓展, 配置信息都放在在 /docker/prometheus 目录下 1.目录结构如下 . ├── conf │ └── prometheus.yml ├── grafana_data ├── prometheus_data └── prometheus_grafana.yaml2.创建目录文件 mkdir /docker/prometheus &&am…

Java面试题之 IO(四)

Java面试题之 IO(四) 文章目录 Java面试题之 IO(四)随机访问流 文章来自Java Guide 用于学习如有侵权,立即删除 随机访问流 这里要介绍的随机访问流指的是支持随意跳转到文件的任意位置进行读写的 RandomAccessFile 。…

C# Onnx yolov8 仪表指针检测

目录 效果 模型信息 项目 代码 训练数据 下载 C# Onnx yolov8 仪表指针检测 效果 模型信息 Model Properties ------------------------- date:2024-01-31T11:19:38.828556 author:Ultralytics task:detect license:AGPL-…

C++ 哈希 开放定址法

哈希算法 哈希,是一种算法思想吗,它的核心是映射,哈希方法中使用的转换函数称为哈希(散列)函数,构造出来的结构称为哈希表(Hash Table)(或者称散列表) 在STL 中,提供了两个使用哈希底层实现的容器 unordered_set 和 …

西瓜书读书笔记整理(十二) —— 第十二章 计算学习理论(下)

第十二章 计算学习理论(下) 12.4 VC 维(Vapnik-Chervonenkis dimension)12.4.1 什么是 VC 维12.4.2 增长函数(growth function)、对分(dichotomy)和打散(shattering&…

Python算法题集_合并区间

本文为Python算法题集之一的代码示例 题目56:合并区间 说明:以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需…

CANoe实际项目中文件夹的规划

本人,之前设计了一个CANoe工程,由于工程设计之初没有设计好文档的归纳分类,导致文件查找起来非常费劲。 为了避免以后出现文件混乱,不可查找的问题,故特此归纳说明。 建立工程时: 第1步就应该设计好文档…

品牌定位传播之道:公关、广告与定位原则的结合

​在当今商业环境中,品牌传播的重要性日益凸显。一个成功的品牌传播策略不仅能提升品牌知名度和美誉度,还能在消费者心智中建立稳固的地位。本文将深入探讨公关、广告和定位原则在品牌传播中的作用,以及迅腾文化如何助力品牌传播价值。 一、…

miniReact<一>

一、工程化配置 1.1 目录结构 1.1.1 Multi-repo VS Mono-repo Multi-repo 每个库有自己独立的仓库,逻辑清晰,协同管理复杂 Mono-repo 很方便管理不同独立的库的生命周期,会有更高的操作复杂度 项目有很多包,同时管理多个不同的…

iOS开发Xcode中的ld64和-ld_classic是什么意思

在iOS应用程序开发中,Xcode是一款广泛使用的集成开发环境(IDE),而链接器是构建应用程序的关键组成部分之一。在Xcode中,我们常常会遇到两个重要的概念:ld64和-ld_classic。它们分别代表了默认链接器和经典链…

Shell脚本之 -------------免交互操作

一、Here Document 1.Here Document概述 Here Document 使用I/O重定向的方式将命令列表提供给交互式程序 Here Document 是标准输 入的一种替代品,可以帮助脚本开发人员不必使用临时文件来构建输入信息,而是直接就地 生产出一个文件并用作命令的标准…

JVM篇----第十八篇

系列文章目录 文章目录 系列文章目录前言一、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?二、对象分配规则三、描述一下JVM加载class文件的原理机制?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到…

springboot综合案例(一)

文章目录 前言项目开发流程需求分析库表设计编码环节环境搭建mybatis的配置jsp模版引擎的配置日志的配置基本项目工程的配置 功能实现用户注册实现验证码功能实现用户注册 用户登录功能员工列表实现员工信息增删查改员工增加信息员工修改信息删除员工信息 前言 我具体用一个小…

InputNumber数字输入框(antd-design组件库)简单使用

1.InputNumber数字输入框 通过鼠标或键盘,输入范围内的数值。 2.何时使用 当需要获取标准数值时。 组件代码来自: 数字输入框 InputNumber - Ant Design 3.本地验证前的准备 参考文章【react项目antd组件-demo:hello-world react项目antd组件-demo:hello…

震动传感器详解

当涉及到物体的震动检测和感应时,震动模块成为一种常见且实用的工具。这种小巧而功能强大的设备可以用于各种应用,从智能家居到安防系统,再到工业自动化等领域。通过感知和转换物体震动为电信号,震动模块在许多方面都发挥着重要的…

chromedriver安装和环境变量配置

chromedriver 1、安装2、【重点】环境变量配置(1)包的复制:(2)系统环境变量配置 3、验证 1、安装 网上随便搜一篇chromedriver的安装文档即可。这里是一个快速链接 特别提醒:截止2024.1.30,chr…