当前位置: 首页 > news >正文

MagicVideo-V2:多阶段高保真视频生成框架

本项工作介绍了MagicVideo-V2,将文本到图像模型、视频运动生成器、参考图像embedding模块和帧内插模块集成到端到端的视频生成流程中。由于这些架构设计的好处,MagicVideo-V2能够生成具有极高保真度和流畅度的美观高分辨率视频。通过大规模用户评估,它在性能上表现优越,超过了领先的文本到视频系统,如Runway、Pika-1.0、Morph、Moon Valley和Stable Video Diffusion模型。

github链接:https://magicvideov2.github.io/

1. 引言

文本到视频(T2V)模型的大量涌现标志着领域的重大进步,这得益于最近传播的基于扩散的模型。这项工作提出了MagicVideo-V2,这是一个新颖的多阶段T2V框架,将文本到图像(T2I)、图像到视频(I2V)、视频到视频(V2V)和视频帧插值(VFI)模块集成到端到端视频生成流程中。 T2I 模块通过从文本提示生成一个初始图像,捕捉输入的美学要素,为视频生成奠定基础。然后 I2V 模块以图像为输入,输出生成视频的低分辨率关键帧。随后的 V2V 模块增加了关键帧的分辨率并增强了其细节。最后,帧插值模块在视频中添加平滑的运动。

2. MagicVideo-V2

MagicVideo-V2 是一个多阶段端到端视频生成流程,能够从文本描述生成高美学水平的视频。它包括以下关键模块:

  • 「Text-to-Image 模型」,从给定的文本提示生成具有高保真度的美学图像。
  • 「Image-to-Video 模型」,使用文本提示和生成的图像作为条件生成关键帧。
  • 「Video to Video 模型」,对关键帧进行细化和超分辨率处理,生成高分辨率视频。
  • 「Video Frame Interpolation 模型」,在关键帧之间插入帧以平滑视频运动,最终生成高分辨率、流畅、高度美学的视频。

下面的小节将详细解释每个模块。

在这里插入图片描述
Text-to-Image 模块
T2I 模块以用户提供的文本提示为输入,并生成一张 1024 × 1024 的图像作为视频生成的参考图像。参考图像有助于描述视频内容和美学风格。MagicVideo-V2 兼容不同的 T2I 模型。具体而言,在 MagicVideo-V2 中使用了一个内部开发的基于扩散的 T2I 模型,该模型能够输出高美学的图像。

Image-to-Video 模块
I2V 模块基于高美学的 SD1.5模型,该模型利用人类反馈来提高在视觉质量和内容一致性方面的能力。I2V 模块通过受[10]启发的运动模块对高美学的 SD1.5 进行了扩展,两者都在内部数据集上进行了训练。 I2V 模块还增加了一个参考图像embedding模块,用于利用参考图像。具体而言,采用外观编码器来提取参考图像embedding ,并通过交叉注意力机制将其注入到 I2V 模块中。通过这种方式,图像提示可以有效地与文本提示解耦,并提供更强的图像调节。此外,采用了潜在噪声先验策略,以在起始噪声潜变量中提供布局条件。帧是从标准高斯噪声初始化的,其均值从零移向参考图像潜变量的值。通过适当的噪声先验技巧,可以部分保留图像布局,并改善帧之间的时间一致性。为了进一步增强布局和空间调节,部署了一个 ControlNet 模块,直接从参考图像中提取 RGB 信息,并将其应用于所有帧。这些技术使帧与参考图像很好地对齐,同时允许模型生成清晰的运动。

采用图像-视频联合训练策略来训练 I2V 模块,其中将图像视为单帧视频。联合训练的动机在于利用内部高质量和美学的图像数据集,以提高生成视频的帧质量。图像数据集部分还可以弥补视频数据集在多样性和数量上的不足。

Video to Video模块
V2V 模块的设计与 I2V 模块类似。它与 I2V 模块共享相同的主干和空间层。它的运动模块是使用高分辨率视频子集进行单独微调以进行视频超分辨率的。图像外观编码器和 ControlNet 模块也在这里使用。这是至关重要的,因为生成的视频帧具有更高的分辨率。利用参考图像的信息有助于通过减少结构错误和故障率来引导视频扩散步骤。此外,它还可以增强更高分辨率生成的细节。

视频帧插值(VFI)
VFI 模块使用一个内部训练的基于 GAN 的 VFI 模型。它采用了增强型可变分离卷积(EDSC)头 ,与基于 VQ-GAN 的架构配对,类似于 [8] 所进行的研究中使用的自动编码器模型。为了进一步提高其稳定性和流畅性,使用了[13]中提出的预训练轻量级插值模型。

3. 实验

人工评估
为了评估 MagicVideo-V2,邀请人工评估员进行与当代最先进的 T2V 系统的比较分析。61 名评估员小组对 MagicVideo-V2 和另一种 T2V 方法之间的 500 次并行比较进行了评分。每个选民在每一轮比较中基于相同的文本提示,被呈现一对随机视频,其中包括我们的一个与竞争对手的一个。他们被提供了三个评估选项 - 好、相同或差 - 分别表示对 MagicVideo-V2 的偏好、无偏好或对竞争 T2V 方法的偏好。评估员被要求根据他们在三个标准上的总体偏好投票:

  • 1)哪个视频具有更高的帧质量和整体视觉吸引力。
  • 2)哪个视频在时间上更一致,具有更好的运动范围和运动有效性。
  • 3)哪个视频具有更少的结构错误或不良情况。

这些试验的统计数据可以在下表 1 中找到,其偏好比例显示在下图 2 中。结果清楚地表明 MagicVideo-V2 更受青睐,从人类视觉感知的角度证明了其卓越的性能。
在这里插入图片描述
在这里插入图片描述

4. 定性示例

在下图3中呈现了 MagicVideo-V2 的精选定性示例。为了更好的观看体验,邀请读者在我们的项目网站上观看附带的视频。如前所述,MagicVideo-V2 的 I2V 和 V2V 模块擅长矫正和改进 T2I 模块的缺陷,生成流畅而富有审美的视频。
在这里插入图片描述
下图4中展示了一些例子。
在这里插入图片描述
在这里插入图片描述

5. 结论

MagicVideo-V2 提出了一种新的文本到视频生成流程。综合评估得到了人类裁判的支持,证实了 MagicVideo-V2 超越了现有技术方法。MagicVideo-V2 的模块化设计,整合了文本到图像、图像到视频、视频到视频和视频帧插值,为生成流畅且高审美的视频提供了一种新的策略。

相关文章:

MagicVideo-V2:多阶段高保真视频生成框架

本项工作介绍了MagicVideo-V2,将文本到图像模型、视频运动生成器、参考图像embedding模块和帧内插模块集成到端到端的视频生成流程中。由于这些架构设计的好处,MagicVideo-V2能够生成具有极高保真度和流畅度的美观高分辨率视频。通过大规模用户评估&…...

【三】【C++】类与对象(二)

类的六个默认成员函数 在C中,有六个默认成员函数,它们是编译器在需要的情况下自动生成的成员函数,如果你不显式地定义它们,编译器会自动提供默认实现。这些默认成员函数包括: 默认构造函数 (Default Constructor)&…...

ffmpeg 输入文件,输入出udp-ts 指定pid

要使用FFmpeg将输入文件转换为UDP传输流(TS)并指定特定的PID,您可以使用以下命令: ffmpeg -i input_file -c:v libx264 -preset ultrafast -tune zerolatency -f mpegts -map 0:v:0 -map 0:a:0 -pid 0x12345678 udp://output_addr…...

自研人工智能小工具-小蜜蜂(国外ChatGpt的平替)

国内有非常多好用的人工智能工具,但均无法完全替代国外ChatGpt。 ChatGPT相较于其他国内工具的优势在于以下几点: 创新的语言生成能力:ChatGPT是由OpenAI开发的先进的自然语言生成模型,它采用了大规模的预训练和精细调整方法。因此…...

Stable Diffusion 模型下载:ReV Animated

模型介绍 该模型能够创建 2.5D 类图像生成。此模型是检查点合并,这意味着它是其他模型的产物,以创建从原始模型派生的产品。 条目内容类型大模型基础模型SD 1.5来源CIVITAI作者s6yx文件名称revAnimated_v122EOL.safetensors文件大小5.13GB 生成案例 …...

某赛通电子文档安全管理系统 PolicyAjax SQL注入漏洞复现

0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…...

Prometheus 采集Oracle监控数据

前言 oracledb_exporter是一个开源的Prometheus Exporter,用于从Oracle数据库中收集关键指标并将其暴露给Prometheus进行监控和告警。它可以将Oracle数据库的性能指标转换为Prometheus所需的格式,并提供一些默认的查询和指标。 download Oracle Oracle Windows Install …...

【ARM Trace32(劳特巴赫) 使用介绍 3.1 -- 不 attach core 直接访问 memory】

文章目录 背景介绍背景介绍 在使用 trace32 时在有些场景需要不 attach core 然后去读写 memory,比如在某些情况下 core 已经挂死连接不上了,这个时候需要dump内存,这个时候需要怎做呢? print "test for memory access directly";SYStem.OPTION WAITRESET OF…...

MySQL事务和SQL优化

目录 一、什么是事务 二、事务的特征 三、MySQL使用事务 3.1 实现流程: 实现截图: 3.2 实例演示: 四、事务的隔离级别 幻读: 如何解决: 脏读: 不可重复读: 幻读和不可重复读两者区别…...

[C语言]结构体初识

结构体定义 结构体是一些值的集合,被成为成员变量,结构的每个成员可以是不同类型的变量 声明: 定义了一个结构体比如以张蓝图,不占据内存,当你创建了一个结构体变量时,才占空间. #include<stdio.h>//struct 为结构体关键字, student 自定义结构体名称 struct student …...

跨平台开发:浅析uni-app及其他主流APP开发方式

随着智能手机的普及&#xff0c;移动应用程序&#xff08;APP&#xff09;的需求不断增长。开发一款优秀的APP&#xff0c;不仅需要考虑功能和用户体验&#xff0c;还需要选择一种适合的开发方式。随着技术的发展&#xff0c;目前有多种主流的APP开发方式可供选择&#xff0c;其…...

MyBatis常见面试题汇总

说一下MyBatis执行流程&#xff1f; MyBatis是一款优秀的基于Java的持久层框架&#xff0c;它内部封装了JDBC&#xff0c;使开发者只需要关注SQL语句本身&#xff0c;而不需要花费精力去处理加载驱动、创建连接等的过程&#xff0c;MyBatis的执行流程如下&#xff1a; 加载配…...

juc并发线程学习笔记(一)

本系列会更新我在学习juc时的笔记和自己的一些思想记录。如有问题欢迎联系。 并发编程 进程与线程 1.进程和线程的概念 程序是静态的&#xff0c;进程是动态的 进程 程序由指令和数据组成&#xff0c;但这些指令要运行&#xff0c;数据要读写&#xff0c;就必须将指令加载…...

力扣热门100题刷题笔记 - 3.无重复字符的最长子串

力扣热门100题 - 3.无重复字符的最长子串 题目链接&#xff1a;3. 无重复字符的最长子串 题目描述&#xff1a; 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。示例&#xff1a; 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字…...

达梦数据库死锁排查与解决

在达梦数据库系统中&#xff0c;死锁是指两个或多个事务相互等待对方释放资源&#xff0c;从而造成循环等待的现象&#xff0c;严重影响数据库的正常运行。以下是使用达梦数据库进行死锁排查和解决的具体步骤&#xff1a; 死锁查看 查询当前死锁信息 SELECT lc.lmode, lc.ta…...

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之TextClock组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之TextClock组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、TextClock组件 TextClock组件通过文本将当前系统时间显示在设备上。支持不同…...

CICD注册和使用gitlab-runner常见问题

1、现象 fatal: unable to access https://github.com/homebrew/brew/: 2、解决 git config --global --unset http.proxy git config --global --unset https.proxy 查看gitlab-runner是否成功&#xff1a; userusers-MacBook-Pro ~ % gitlab-runner -h 查看gitlab-run…...

关于Django部署

首先了解一下开发环境服务器跟生产环境服务器有何不同。 一、我们通过 python manage.py runserver 启动开发环境服务器&#xff0c;这条命令背后做了哪些事情&#xff1f; 1、首先加载Django项目的设置&#xff08;settings&#xff09; 2、检查数据库迁移&#xff0c;确保数…...

计算机网络——01什么是InterNet

什么是InterNet 1.1 什么是网络 由节点和边组成的与形状大小无关的拓扑 1.2 什么是Internet 从具体构成角度来说&#xff1a; 节点&#xff1a; 主机及其上运行的应用程序路由器、交换机等网络交换设备 边&#xff1a;通信链路 接入网链路&#xff1a;主机连接到互联网的链…...

刷存在感,Excel转Protobuf/Json通用配置文件

使用场景 最近工作流中有将Excel转Protobuf作为配置文件的技术方案。具体实现是先定一个proto文件&#xff0c;再在一个对应excel表中定义对应字段&#xff0c;由策划在excel进行更改。proto文件可以生成对应语言的脚本&#xff0c;然后将excel转成对应protobuf的binary。 我…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...