【AIGC-图片生成视频系列-7】MoonShot:实现多模态条件下的可控视频生成和编辑

目录

一. 贡献概述

二. 方法详解​编辑

三. Zero-Shot主题定制视频生成

四. 文本到视频生成

五. 直接使用图像ControlNet

六. 图像动画比较

七. 视频编辑

八. 针对视频生成中多模态 Cross-Attn的消融实验

九. 对视频生成中多模态 Cross-Attn的消融实验

十. 论文

十一. 个人思考


现有的视频扩散模型(VDM)大多仅限于纯文本条件。因此,它们通常缺乏对生成的视频的视觉外观和几何结构的控制。

今天介绍一种名为 MoonShot 的新视频生成模型,它同时基于图像和文本的多模态输入进行条件控制,在视觉质量和时间一致性方面相对于现有模型有了显著的提高。

一. 贡献概述

已有问题及解决方法:

  1. 在视觉外观方面,文字提示词无法精确描述生成的外观。现有解决方法是在一些图片上对模型做微调,从而实现个性化的生成。同样地,对于视频生成,AnimateDiff 依赖于定制的模型权重来注入条件视觉内容,无论是通过 LoRA 还是 DreamBooth。

  2. 在几何结构生成方面,尽管已有的方法,如 ControlNet 和 T2I-Adapter,利用深度、边缘图作为图像生成的视觉条件,但类似的策略对于视频合成仍然是不确定的。  在视频生成中,一些工作重用了预训练的 ControlNet 模块来生成图像。然而,它们需要通过帧传播或跨帧注意力机制来适配文本到图像的模型用于视频生成,导致与基于 VDM 的方法相比,时间一致性较差。

MoonShot是一个视频生成模型,它使用图像和文本输入来生成视频。该模型基于一个名为多模态视频块(MVB)的视频生成模块。

每个MVB都有三个主要的设计考虑因素:

  1. 传统的时空模块用于视频生成,其中包括一个空间卷积层、一个自注意层和一个聚合空间特征的时间注意层。这种设计允许重复使用文本到图像生成模型的预训练权重,而不改变其空间特征分布,从而包证其生成质量。

  2. 解耦的多模态交叉注意层,它在文本和图像输入上调节生成。这两个条件相互补充,以指导生成。此外,图像输入提供参考视觉线索,允许时间模块专注于视频的一致性。这提高了整体的生成质量和帧的连贯性,如实验证明的那样。

  3. 自由选择模块,由于空间特征分布被保留,预训练的图像ControlNet模块可以立即集成,以控制生成的几何结构,而不需要额外的训练开销。

有一点值得强调,MoonShot的设计允许它通过使用图像和文本输入生成高质量的视频。该模型的多模态交叉注意层通过使用文本和图像输入来指导生成过程,进而提高整体生成质量和帧的连贯性。

二. 方法详解

解耦的多模态交叉注意层的总体工作流程和结构。

在训练阶段,使用视频的初始帧作为图像条件。对于推理,模型接受任何图像以及相应的文本。

值得关注的是,在Unet结构中,有一个新颖的操作,解耦Image Feature 和Text Feature 对结果的影响。

具体的:

  1. Latent Feature 经过转换得到Query。

  2. Image Feature 和Text Feature 经过各自相应的Cross-Attn操作,再和Latent Feature 对应的Query做交叉注意操作。

  3. 最将结果cat在一起,继续进入Unet 其余结构中。此举充分结合图片和文字提示的信息。

三. Zero-Shot主题定制视频生成

图片

图片

四. 文本到视频生成

图片

五. 直接使用图像ControlNet

图片

六. 图像动画比较

图片

七. 视频编辑

图片

八. 针对视频生成中多模态 Cross-Attn的消融实验

图片

九. 对视频生成中多模态 Cross-Attn的消融实验

图片

十. 论文

https://arxiv.org/pdf/2401.01827.pdf

十一. 个人思考

这篇文章的提出的多模态Cross-Attn对我启发性很大,但也看到了一些熟悉的影子,比如IP-Adapter, 以及DreaMoving中的content guider,看来结合多种模态组合来引导生成的方法还是挺有潜力的,大家也可以关注一下。


欢迎加入AI杰克王的免费知识星球,海量干货等着你,一起探讨学习AIGC!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C#]C# OpenVINO部署yolov8图像分类模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8 抛弃了前几代模型的 Anchor-Base。 YOLO 是一种基于图像全局信息进行预测的目标检测系统。自 2015 年 Joseph Redmon、Ali Farhadi 等人提出初代模型以来,领域内的研究者们…

【Leetcode】230. 二叉搜索树中第K小的元素

一、题目 1、题目描述 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。 示例1: 输入:root = [3,1,4,null,2], k = 1 输出:1示例2: 输入:root = [5,3,6,2,4,null,null,1], k = 3 输出:3提示: 树中…

正则表达式 详解,10分钟学会

大家好,欢迎来到停止重构的频道。 本期我们讨论正则表达式。 正则表达式是一种用于匹配和操作文本的工具,常用于文本查找、文本替换、校验文本格式等场景。 正则表达式不仅是写代码时才会使用,在平常使用的很多文本编辑软件,都…

初中数学:三角函数

初中的三角函数,只学习直角三角形中的几个特殊角度对应的函数值。 1、锐角三角函数定义: 锐角角A的正弦(sin),余弦(cos)和正切(tan),余切(cot)以及正割(sec),余割(csc)都叫做角A的锐角三角函数。 正弦(sin):对边比斜边,即sinAa/…

论文阅读:通过时空生成卷积网络合成动态模式(重点论文)

原文链接 github code 介绍视频 视频序列包含丰富的动态模式,例如在时域中表现出平稳性的动态纹理模式,以及在空间或时域中表现出非平稳的动作模式。 我们证明了时空生成卷积网络可用于建模和合成动态模式。 该模型定义了视频序列上的概率分布&#xff0…

Linux驱动开发(1)-最简单的字符设备驱动开发例子

1.简介 字符设备驱动:按照字节流进行读写操作的设备,例如点灯、按键、IIC、SPI、LCD。 Linux系统中一切皆文件,驱动加载成功,就会在/dev目录生成文件,对文件操作,则可实现对硬件操作。应用程序运行在用户…

使用sentinel作为熔断器

什么是sentinel Sentinel,中文翻译为哨兵,是为微服务提供流量控制、熔断降级的功能,它和Hystrix提供的功能一样,可以有效的解决微服务调用产生的“雪崩”效应,为微服务系统提供了稳定性的解决方案。随着Hytrxi进入了维…

springboot + vue3实现增删改查分页操作

springboot vue3实现增删改查分页操作 环境最终实现效果实现功能主要框架代码实现数据库后端前端 注意事项 环境 jdk17 vue3 最终实现效果 实现功能 添加用户,禁用,启用,删除,编辑,分页查询 主要框架 后端 spri…

Redis小计(4)

目录 1.Set和Get操作 2.mset和mget 3.mset,mget,set后加参数的优点 4.incr,incrby,incrbyfloat 1.Set和Get操作 flushall:清除所有k-v键值对。(删库跑路小技巧) set k v[ex | px]:设置超时…

综合跨平台全端ui自动化测试框架Airtest——AirtestIDE录制微信小程序脚本教学

前言 有在自动化测试领域的小伙伴应该都知道,app和小程序自动化这一类的自动化测试在实际操作中有时候很棘手让人心烦,动不动就是用appium写代码脚本维护什么的,不仅步骤繁琐,环境配置方面也是繁琐无比,动不动就与客户…

钡铼技术BL110智能网关功能介绍 | PLC程序的上传和下载

在工业自动化系统中,PLC(可编程逻辑控制器)是一种常见的控制设备。通常情况下,PLC被用于监控、控制和调节生产过程中的各种设备和机器。而PLC一旦出现故障,就会影响到下控设备的工作状态,进而影响整个工厂的…

SpringCloud系列篇:入门讲解Spring Cloud是什么

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于SpringCloud的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.Spring Cloud是什么 二.Spring …

Jenkins修改全局maven配置后不生效解决办法、以及任务读取不同的settings.xml文件配置

一、修改Global Tool Configuration的maven配置不生效 说明:搭建好jenkins后,修改了全局的settings.xml,导致读取settings一直是之前配置的。 解决办法一 Jenkins在创建工作任务时,会读取当前配置文件内容,固定在这…

CodeWave智能开发平台--03--目标:应用创建--06变量作用域和前后端服务逻辑

摘要 本文是网易数帆CodeWave智能开发平台系列的第08篇,主要介绍了基于CodeWave平台文档的新手入门进行学习,实现一个完整的应用,本文主要完成06变量作用域和前后端服务逻辑 CodeWave智能开发平台的08次接触 CodeWave参考资源 网易数帆Co…

【大数据进阶第三阶段之Hive学习笔记】Hive基础入门

目录 1、什么是Hive 2、Hive的优缺点 2.1、 优点 2.2、 缺点 2.2.1、Hive的HQL表达能力有限 2.2.2、Hive的效率比较低 3、Hive架构原理 3.1、用户接口:Client 3.2、元数据:Metastore 3.3、Hadoop 3.4、驱动器:Driver Hive运行机制…

Vue3-41-组件- 动态组件 component 标签 和 is 属性 的使用

说明 <component> 标签 有一个 is 属性&#xff0c; 可以给这个 is属性 赋值为一个 组件对象&#xff0c; 这样这个<component> 标签就可以渲染指定的组件对象了。 使用案例 本案例中会 准备两个简单的组件&#xff0c; 在 App.vue 中导入这两个组件&#xff0c;并…

python调用openai api报错self._sslobj.do_handshake()OSError: [Errno 0] Error

python调用openai api报错self._sslobj.do_handshake()OSError: [Errno 0] Error 废话不说&#xff0c;先上代码&#xff0c;根据官网的介绍写的,chatgpt3.5 api简单调用 import os from openai import OpenAI from dotenv import load_dotenv# 加载 .env 文件中的变量 load_…

Spring——Spring AOP1(代理模式Proxy)

代理&#xff08;Proxy&#xff09;模式 1.创建工程 2.代理&#xff08;Proxy&#xff09;模式介绍 作用&#xff1a;通过代理可以控制访问某个对象的方法&#xff0c;在调用这个方法前做前置处理&#xff0c;调用这个方法后做后置处理。&#xff08;即&#xff1a; AOP的微观…

【Docker】docker 服务相关命令

目录 1. 启动docker 服务 2.查看docker 服务的状态 3. 停止docker 服务 4.重启 docker 服务 5.开机自启动命令 1. 启动docker 服务 systemctl start docker 2.查看docker 服务的状态 systemctl status docker 3. 停止docker 服务 systemctl stop docker 此时再使用 syst…

element-ui table-自定义表格某列的表头样式或者功能

自带表格 自定义表格某列的表头样式或者功能 <el-table><el-table-column :prop"date">//自定义表身每行数据<template slot-scope"scope">{{scope.row[scope.column.label] - ? - : scope.row[scope.column.label]}}</template>…