tune a video:one-shot tuning of image diffusion models for text-to-video generation

article/2025/9/19 12:41:35

【Diffusion Models】新加坡国立大学、腾讯强强联手Tune-A-Video:One-Shot微调图像扩散模型用于文本到图像的生成!_哔哩哔哩_bilibili【Diffusion Models】新加坡国立大学、腾讯强强联手Tune-A-Video:One-Shot微调图像扩散模型用于文本到图像的生成!共计2条视频,包括:[论文代码阅读]Tune-A-Video_ One-Shot微调图像扩散模型用于文本到图像的生成新加坡国立大学、腾讯、3连等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1q24y1V79k/?spm_id_from=333.337.search-card.all.click&vd_source=4aed82e35f26bb600bc5b46e65e25c22视频生成和图像生成最大的不同在于要保证视频的连续性,运动主体不能变且运动主体的状态背景等不能产生突变,因此视频生成是一定要添加约束信息的,本文是在图像生成的基础上(T2I)通过特定设计的finetune来完成视频生成(T2V),作者说人类可以通过一个视频就能学习到新的试卷概念,因此设计了one shot video generation。怎么做呢?首先作者升级了stable diffusion的架构将2d卷积换成了3d卷积,并且将self-attention扩展到时空域,但转换之后的计算量会飙升,作者提出了sparse-causal attention,每一帧只和第一帧以及前一阵计算attention,可以极大减少计算量,在训练时,通过一段视频和相应的text进行微调,在推理时,要保证动词的一致性,可以更换背景和主题,依然能产生很好的连续性,one shot的视频实际上就是让T2I模型去学动作的。

如上图所示,第一行为原始的训练视频,训练完成之后,第二、三、四行均为推理视频,可见tune a video产生了主体一致性和动作一致性。

abstract:在现实中没有足够的视频文本对来训练T2V,人类可以从一个样本中学习新的视觉概念,因此本文研究一个新的方向,one shot视频生成,仅使用一个文本-视频对来训练一个T2V,基于已有的T2I的扩散的能力。有两个关键点,1.T2I模型能够生成很好的与动词相对齐的图像,2.扩展T2I模型同时产生多个图像有良好的一致性。为了进一步学习连续运动,采用定制的sparse-causal attention来微调模型。

1.introduction

视频生成的关键是保持一致主体的连续运动,motion and consistent object,如上图所示,第一行,给定text,例如一个男人正在沙滩上跑步,T2I能够很好的对齐动词信息,但是背景不同且不是一致的。但证明T2I可以通过cross-model attention来注意到动词。第二行作者采用了扩展的T2I模型,将T2I模型的中self-attention从一张图扩展到多张图保持跨帧时的内容一致性,并行的生成帧时都和第一帧做attention,可以看到尽管动作还不是连续的,但是主体背景等信息是一致的。可推论self-attention层仅由spatial similarities驱动而不是pixel positions(这块的解释可以从框架角度理解,因为最终推理时是无法改变one shot时学习的动作的,也就是说模型最终学习到的还是一致的空间相似度)。

        tune a video对T2I在时间维度的简单膨胀,1.将3x3 conv换成1x3x3(unet中resnet卷积),2.将spatial self-attention 换成spatio-temporal cross-frame attention。提出了一个简单的tune策略,只更新attention block中的投影矩阵,从one-shot视频中捕获连续的运动状态,其余参数均被冻结。但是spatio-temporal cross-frame attention参数量很大,提出了一个新的变体,sparse-causal attention(SC-Attn),它只计算第一帧和前一帧,自回归生成视频。

2.method

上图是本文的框架, 在fine-tune之前,现将T2I模型膨胀成T2V,其中T2V中的部分参数是从T2I中初始化的,然后采用一个视频去fine-tune,推理时,给定一个text即可生成视频,但是视频中动作是不能变的,one shot的视频就是一个动作。

上图是pipeline,首先输入视频和文本,在unet中有三attention,第一个是SC-Attn,第二个是cross-Attn(不同模态之间的attn),第三个是新增的Temp-Attn,黄色表示不断更新的,灰色表示不更新的其中Q,query是不断更新的,KV是不更新。右侧是sparse-causal attention,计算第i帧,要取到第1帧和i-1帧,之后分别投影得到KV,再计算softmax。

上式可以看到Q是第i帧通过投影矩阵产生,但是K和V就不是了,常规操作,ldm中text conditional都是加在KV上的。这里,第一帧做attention能够保证在生成内容上的全局一致性,与前一帧计算attention能够保持运动的一致性,连续性。

network inflation

普通的unet是由多层2d convolution residual blocks构成,后续是attention,每一个attention是由一个self-attention、一个cross-attention和一个feed-forward network构成,spatial self-attention利用特征图上pixel locations来实现similar correlations,cross-attention则考虑pixel和conditional input(text)之间的相关性。

        首先对输入视频使用1x3x3的卷积,可以将frame的1转到batch处理,所以2d还是可以的。

sparse-casual attention

如上图所示,v表示帧,第一个是spatial attention,在单帧之间做attention,第二张图是spatio-temporal attention,每一帧和所有帧之间计算attention,计算量是第一张图的平方,第三张图是causal attention,第i帧只会和所有的i-1帧计算attention,第四张图就是本文使用的sparse-causal attention,第四帧只与第一帧和第三帧计算attention,是前一张图的稀疏版本。


http://chatgpt.dhexx.cn/article/v8DO8KSw.shtml

相关文章

视频 处理

案例 Fu Xianjun. All Rights Reserved. 一.视频信号 视频信号(以下称为视频)是非常重要的视频信息来源,它是信息处理过程中经常要处理的一类信号。实际上,视频是由一系列图像构成的。这一系列图像被称为帧,帧是以固定…

用Python剪辑视频?太简单了

人生苦短,快学Python! 最近我在网上下载一个视频,结果下载到本地是近百个视频片段,为了方便观看只能将这些片段合并为一个视频整体。 不过我并没有搜到能够处理类似情况的小工具,只是发现剪映等软件可以实现视频合并功…

图片与视频的处理

1.首先需要在mac上安装ffmpeg(参考社区的安装教程) 需要先安装drew 然后再安装ffmpeg 2.使用dlib工具进行人脸识别,获取特征点,并输出人脸坐标 import cv2 import dlib import numpy as np import matplotlib.pyplot as pltpat…

基本全局阈值处理

基本全局阈值处理 1、全局阈值处理 (1)计算步骤 通常,在图像处理中首选的方法是使用一种能基于图像数据自动地选择阈值的算法,为了自动选阈值,下列迭代过程采用的就是这样的方法: (1) 针对全局阈值选择初…

基本的全局阈值处理Otsu方法进行最佳全局阈值处理

前言 图像阈值处理在图像分割中处于核心地位!本节将重点介绍一些常见的阈值处理方法。 一、基本的全局阈值处理 选取阈值往往是通过直方图来选择的,一方面我们可以人为的设置一个阈值进行一次二值化处理达到全局阈值处理的目的,但这样的阈值…

阈值调整

1.不平衡分类问题的阈值调整 如上图所示,正负例样本不平衡,负样本多,分类器就会更容易把图片分成负样本,因此要设置阈值, 如何选择阈值: 1.ROC曲线上的最优阈值 2.PR曲线上的最优阈值

神经网络阈值是什么意思,神经网络阈值如何确定

BP神经网络中初始权值和阈值的设定 1、首先需要了解BP神经网络是一种多层前馈网络。2、以看一下在matlab中BP神经网络的训练函数,有梯度下降法traingd,弹性梯度下降法trainrp,自适应lr梯度下降法traingda等。 3、在matlab中命令行窗口中定义输入P&…

图像的阈值处理

一般情况下,一张图片分为前景和背景,我们感兴趣的一般的是前景部分,所以我们一般使用阈值将前景和背景分割开来,使我们感兴趣的图像的像素值为1,不感兴趣的我0,有时一张图我们会有几个不同的感兴趣区域&…

神经网络阈值是什么意思,神经网络的权值和阈值

神经网络权值怎么确定? 神经网络的权值是通过对网络的训练得到的。如果使用MATLAB的话不要自己设定,newff之后会自动赋值。也可以手动:{};{}。一般来说输入归一化,那么w和b取0-1的随机数就行。 神经网络的权值确定的目的是为了让…

opencv c++ 二值图像、阈值计算方法、全局阈值、自适应阈值

1、图像定义: 彩色图像 :三通道,像素值一般为0~255; 灰度图像:单通道,像素值一般为0~255; 二值图像:单通道,像素值一般为0(黑色)、255&#xff08…

图像分割 - 阈值处理 - 全局阈值处理

目录 1. 介绍 2. 代码实现 3. 代码讲解 1. 介绍 当目标和背景像素的灰度分布非常不同的时候,可以对整个图像使用全局阈值 在大多数的应用中,图像之间通常存在足够的变化,全局阈值是一种合适的办法。所以,需要一种对图像做阈值…

硬阈值 软阈值

1 定义 1.1 硬阈值 硬阈值的定义如下: 相当于 1.2 软阈值 软阈值的定义如下: 相当于 1.3 二者对比(可视化解释) 这是一张很经典地表述软阈值和硬阈值区别的图,其中软阈值是蓝色的线,他没有突变&#xff1…

神经网络阈值是什么意思,神经网络阈值怎么设置

BP神经网络中初始权值和阈值的设定 1、首先需要了解BP神经网络是一种多层前馈网络。2、以看一下在matlab中BP神经网络的训练函数,有梯度下降法traingd,弹性梯度下降法trainrp,自适应lr梯度下降法traingda等。 3、在matlab中命令行窗口中定义输入P&…

图像处理--阈值处理

图像二值化 图像二值化就是将图像上的像素点的灰度值设置为两个值,一般为0(表示黑色)和255(表示白色),可以将整个图像呈现出明显的黑白效果。 最常用的方法就是先将图像灰度处理,然后设定一个阈…

两种划分阈值的方法

风险等级划分的时候可以降低主观性的一些系统方法 方法一:分层聚类法 凝聚层次聚类/分裂层次聚类 重点:确定层次聚类的簇数,画出树状图,基本就能得到你的区间范围,但数据量大的时候还是得再用代码跑 方法二&#xf…

“阀值”与“阈值”的区别

真相请看下图红色框里内容(手动微笑) 啥??你跟我说没看懂,好吧,说的再明白点,“阀(f)值”是一个错误的用词,其正确用法是“阈(y)值”。…

【p116】

#查询score表中为196004,课程号为1201的学生成绩 #查询student表中姓周的学生情况 #查询数学成绩第2~5名的信息 #查询通信专业最高分的学生的情况 #查询1004课程的最高分,最低分,平均成绩 #查询至少有3名学生选修且以4开头的课程号和平均分数 #将计算机专…

《JDK学习》使用JDK的keytool生成p12证书

由于前段时间在研究itext技术中的签章技术中遇到了数字签名的问题,需要用到p12证书,因此就撰写一篇用我们jdk自带的keytool 工具生成p12证书的方法供各位交流。 keytool 简介 keytool 是java 用于管理密钥和证书的工具. 其功能包括: 创建并管…

日志 P11,P12

日志: 复制一个04.内容与03是一样的. 标准日志文件: 在mybatis-config.xml中写入setting设置,配置日志文件(注意setting只能放在properties与typeAliases的中间)。 setting中参数的内容可以在mybatis官方文档查找。…

xcode ios 怎么导入p12证书

注意:在哪台电脑上生成的根证书才能在哪台电脑上导出p12,在另外的电脑上是没有导出p12的选项的(或者是灰的点不了) 1.双击p12文件,将其导入到钥匙串,或者直接把p12文件拖入到钥匙串里 2.如下图,…