论文研读:Text2Video-Zero 无需微调,仅改动<文生图模型>推理函数实现文生视频(Arxiv 2023-03-23)
论文名:Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Generators
1. 摘要
1.1 方法总结
-
通过潜空间插值, 实现动作连续帧。
-
以第一帧为锚定,替换原模型的self-attention,改为cross-attention
实现 保证图片整体场景不变的同时,生成具备运动信息的连续帧
1.2 光流(optical flow) 对齐
这里是论文提到的warping operation (源代码为warp_latents_independently函数), 是其方法核心部分
文中代码基于光流的空间变换,常用于背景对齐、运动补偿。
光流坐标变换的作用是将 latent features 映射到新的空间位置,使得目标特征在连续帧中保持一致
- 背景特征:光流仅针对背景计算,背景(或不重要区域)的特征被对齐,减少运动带来的不连续性。
- 转变前: 背景和前景特征未对齐,可能导致运动模糊或抖动。
- 变化后: 背景平滑且稳定,对应特征对齐到相应的几何位置,输出更加自然。
代码解析:
-
输入视频帧向量shape为 (batch_size, frames, channels, H, W) ,
-
计算得到光流矫正向量(reference_flow),形状为 (batch_size, 2,H, W)
其中的2分别代表x方向和y方向(正值向右, 和向下),即每一个像素点有1个偏移量(dx, dy)
- 即warped后的特征是经过光流变换后的潜向量
对于每个像素(x,y), 矫正后的值为new_coords=(x+dx,y+dy)
- 归一化, 并插值grid_sample (mode='nearest‘),得到与latent shape相同的潜空间坐标
2.方法
2.1 将运动信息注入潜空间向量
(Motion Dynamics in Latent Codes)
- 随机采样第一帧的潜向量, x T 1 ∼ N ( 0 , I ) x^1_T \sim N(0,I) xT1∼N(0,I)
- 用一个预训练的SD对 x T 1 x^1_T xT1 进行DDIM去噪, ( δ t \delta t δt steps)
- 定义一个方向向量delta, 这个向量根据图像全局即相机运动原理(从左上到右下),这里默认为一个单位 (1,1)
- 针对m个帧,在方向向量delta上,增加不同的强度, 比如第k个帧:$\delta^k = \lambda (k-1)\delta $
- 通过网格函数(warping operation)将方向向量从 δ \delta δ 转换到潜空间, 得到一个具备<delta方向> 插值效果的帧序列
- 对帧序列进行DDPM加噪( δ t \delta t δt steps)
上述过程,得到一个具备连续方向插值的<帧序列>潜向量
2.2 改变self-attention计算以稳定帧变化
(Reprogramming Cross-Frame Attention)
潜向量注入搞定动作序列后,这一步改动了SD-Unet中attention的计算方式,
具体是将其中的self-attention计算改为cross-attention计算, 原self-attn为:
$ Self-Attn(Q,K,V) = Softmax (QK^T / c) V $
这里假设有m个特征,那么QKV计算就有m次,现在把m次当作m帧,
Q用第i帧, 即 Q^i; K和V都搞定为第一帧(锚定),那么m帧的attention计算为:
C r o s s − F r a m e − A t t n ( Q i , K 1 : m , V 1 : m ) = S o f t m a x ( Q i ) ( K 1 ) T / c ) V 1 Cross-Frame-Attn(Q^i, K^{1:m}, V^{1:m}) = Softmax(Q^i)(K^1)^T / c) V^1 Cross−Frame−Attn(Qi,K1:m,V1:m)=Softmax(Qi)(K1)T/c)V1
这里原文解释为可以保持图像从第一帧开始的《物体》和《背景》结构的一致性
2.3 背景稳定(非必要)
(Background smoothing —Optional)
这一步通过目标检测模型,将物体和背景分离(二值分类标注),将标注的mask图像用网格函数转换到潜空间,得到M
将M和运动潜向量进行一个同或计算(值相同时结果为真),得到一个背景特征更一致的潜向量序列: x ˉ \bar{x} xˉ,
以第k帧为例:
x ˉ t k \bar{x}^k_t xˉtk = M k ⨀ x k t M^k \bigodot x_{k_t} Mk⨀xkt + ( 1 − M k ) ⨀ ( α x ^ t k ) (1-M^k) \bigodot (\alpha \hat{x}^k_t) (1−Mk)⨀(αx^tk) + ( 1 − α ) x t k (1-\alpha)x^k_t (1−α)xtk
-
x ^ \hat{x} x^是背景图像进行空间转换后的向量(warped latent code).
-
α = 0.6 \alpha = 0.6 α=0.6 是调参的经验性设置
整体方法如图:
3. 附带方法
3.1 与带条件的微调方法结合 (Conditional and Specialized Text-to-Video)
这里介绍可以control-net 及 dreambooth 结合,实现带条件控制的编辑。
- control-net效果(pose control):
- dreambooth效果(edge control):
3.2 与图像编辑模型结合 (Video Instruct-Pix2Pix)
存在Prompt2Prompt 和 Intstruct-Pix2Pix这类在SD基础上进行图像编辑的模型,
上述模型强化了《改变文本编辑图像》的功能,但这类方法是预训练的,数据和模型消耗大。
这里同样对上述预训练模型进行self-attn 到 cross-attn的转换操作,可以实现视频的风格编辑,效果如图:
4.实验
4.1 参数设置
- 模型版本: SD1.5
- 视频格式:8 frames (这个可以增加,但每一帧都是靠第一帧计算), 512x512
4.2 消融实验
测试提出的两个改进方法效果:
- 潜空间加光流动作
- self-attn改为cross-frame-atten
4.3 整体效果
这个方法有3个作用
- 通过一段文字,生成对应动画:
- 通过描边或pose支架,再结合文本生成相关动画
- 改变动画的风格
5. 论文摘录
(1) we first enrich the latent codes of gen
erated frames with motion information to keep the global
scene and the background time consistent; (2) we then use cross-frame attention of each frame on the first frame to
preserve the context, appearance, and identity of the fore
ground object throughout the entire sequence.Two novel post-hoc techniques to enforce temporally
consistent generation, via encoding motion dynamics
in the latent codes, and reprogramming each frames
self-attention using a new cross-frame attention.By using cross frame attention, the ap
pearance and structure of the objects and background as
well as identities are carried over from the first frame to
subsequent frames, which significantly increases the tem
poral consistency of the generated frames (see Fig. 10 and
the appendix, Figures 16, 20, 21).
6. Ref:
- https://github.com/Picsart-AI-Research/Text2Video-Zero
相关文章:

论文研读:Text2Video-Zero 无需微调,仅改动<文生图模型>推理函数实现文生视频(Arxiv 2023-03-23)
论文名:Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Generators 1. 摘要 1.1 方法总结 通过潜空间插值, 实现动作连续帧。 以第一帧为锚定,替换原模型的self-attention,改为cross-attention 实现 保证图片整体场…...

服务端错误的处理和web安全检测
文章目录 I 服务端错误的处理业务返回码处理前端处理业务返回码nginx处理http状态码II web安全检测区分服务器类型主机扫漏III 使用 micro_httpd 搭建一个PHP站点步骤下载micro_httpd 并安装它配置micro_httpd 来服务PHP文件I 服务端错误的处理 服务端发生错误时,返回给前端的…...

鸿蒙TCPSocket通信模拟智能家居模拟案例
效果图 一、智能家居热潮下的鸿蒙契机 在当下科技飞速发展的时代,智能家居已如浪潮般席卷而来,深刻地改变着我们的生活方式。从能依据环境光线自动调节亮度的智能灯具,到可远程操控、精准控温的智能空调,再到实时监测健康数据的智…...

SQL-leetcode-197. 上升的温度
197. 上升的温度 表: Weather ---------------------- | Column Name | Type | ---------------------- | id | int | | recordDate | date | | temperature | int | ---------------------- id 是该表具有唯一值的列。 没有具有相同 recordDate 的不同行。 该表包…...

C++系列关键字static
文章目录 1.静态变量2.静态成员变量 1.静态变量 在C的,静态变量是一个非常有用的特性,它在程序执行期间只初始化一次,并在程序的整个执行期间都保持其值。 1.局部静态变量。定义在函数中,只初始化一次,不像普通的局部…...

使用Fn Connect之后,如何访问到其他程序页面?原来一直都可以!
前言 昨天小白讲过在飞牛上登录Fn Connect,就可以实现远程访问家里的NAS。 接着就有小伙伴咨询:如何远程访问到家里其他需要使用不同端口号才能访问到的软件,比如Jellyfin、Emby等。 这个小白在写文章的时候确实没有考虑到,因为…...

探索Composable Architecture:小众但高效的现代框架技术
近年来,随着应用规模和复杂性的不断提升,对开发效率和可维护性的要求也水涨船高。特别是在领域驱动设计 (DDD) 和反应式编程 (Reactive Programming) 的趋势影响下,一些小众但极具潜力的框架应运而生。本篇博客将深入探讨一种日益受到关注但尚…...

改投论文时如何重构
摘要: 不同期刊和会议对于论文的风格、页数限制等方面有一些差别, 论文在某个地方被拒, 改投别处时需要进行重构. 本贴描述重构的基本方案. 你的衣柜乱糟糟的, 如何清理呢? 方案 A. 把不喜欢的衣服一件件丢掉.方案 B. 把衣服全部丢出来, 然后再把喜欢的衣服一件件放进去. 对…...

P8打卡——YOLOv5-C3模块实现天气识别
🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 1.检查GPU import torch import torch.nn as nn import torchvision.transforms as transforms import torchvision from torchvision import transforms, dat…...

基于微信小程序的校园点餐平台的设计与实现(源码+SQL+LW+部署讲解)
文章目录 摘 要1. 第1章 选题背景及研究意义1.1 选题背景1.2 研究意义1.3 论文结构安排 2. 第2章 相关开发技术2.1 前端技术2.2 后端技术2.3 数据库技术 3. 第3章 可行性及需求分析3.1 可行性分析3.2 系统需求分析 4. 第4章 系统概要设计4.1 系统功能模块设计4.2 数据库设计 5.…...

PyTorch快速入门教程【小土堆】之完整模型训练套路
视频地址完整的模型训练套路(一)_哔哩哔哩_bilibili import torch import torchvision from model import * from torch import nn from torch.utils.data import DataLoader# 准备数据集 train_data torchvision.datasets.CIFAR10(root"CIFAR10&…...

【AIGC】 ChatGPT实战教程:如何高效撰写学术论文引言
💥 欢迎来到我的博客!很高兴能在这里与您相遇! 首页:GPT-千鑫 – 热爱AI、热爱Python的天选打工人,活到老学到老!!!导航 - 人工智能系列:包含 OpenAI API Key教程, 50个…...

TTL 传输中过期问题定位
问题: 工作环境中有一个acap的环境,ac的wan口ip是192.168.186.195/24,ac上lan上有vlan205,其ip子接口地址192.168.205.1/24,ac采用非nat模式,而是路由模式,在上级路由器上有192.168.205.0/24指向…...

非docker方式部署openwebui过程记录
之前一直用docker方式部署openwebui,结果这东西三天两头升级,我这一升级拉取docker镜像硬盘空间嗖嗖的占用,受不了,今天改成了直接部署,以下是部署过程记录。 一、停止及删除没用的docker镜像占用的硬盘空间 docker s…...

大模型的prompt的应用二
下面总结一些在工作中比较实用的prompt应用。还可以到以下网站参考更多的prompt AI Prompts - WayToAGI 举个例子,让大模型写一份周报 # 角色:智能周报编写助手 ## 背景: 需要根据产品经理提供的简要周报框架,补充完整的周报内容。 ## 注意事项: 言简意赅,重点突…...

ubuntu 22.04安装ollama
1. 顺利的情况 按照官网的提示,执行下面的命令: curl -fsSL https://ollama.com/install.sh | sh如果网络畅通,github访问也没有问题,那就等待安装完成就行 2. 不顺利的情况 由于众所周知的情况,国内网络访问githu…...

从企业级 RAG 到 AI Assistant,阿里云 Elasticsearch AI 搜索技术实践
在过去一年中,基座大模型技术的快速迭代推动了 AI 搜索的演进,主要体现在以下几个方面: 1.搜索技术链路重构 基于大模型的全面重构正在重塑 AI 搜索的技术链路。从数据采集、文档解析、向量检索到查询分析、意图识别、排序模型和知识图谱等…...

Redis--高可用(主从复制、哨兵模式、分片集群)
高可用(主从复制、哨兵模式、分片集群) 高可用性Redis如何实现高可用架构?主从复制原理1. 全量同步2. 命令传播3. 增量同步 Redis Sentinel(哨兵模式)为什么要有哨兵模式?哨兵机制是如何工作的?…...

框架(Mybatis配置日志)
mybatis配置日志输出 先导入日志依赖 <dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency> 编写log4j.properties配置文件 # Root logger option log4j.rootLogge…...

人工智能-Python上下文管理器-with
概念 Python提供了 with 语句的这种写法,既简单又安全,并且 with 语句执行完成以后自动调用关闭文件操作,即使出现异常也会自动调用关闭文件操作;其效果等价于try-except-finally with 拥有以下两个魔术方法 __enter__() 上文管理…...

每天40分玩转Django:Django类视图
Django类视图 一、知识要点概览表 类别知识点掌握程度要求基础视图View、TemplateView、RedirectView深入理解通用显示视图ListView、DetailView熟练应用通用编辑视图CreateView、UpdateView、DeleteView熟练应用Mixin机制ContextMixin、LoginRequiredMixin理解原理视图配置U…...

自动化测试之Pytest框架(万字详解)
Pytest测试框架 一、前言二、安装2.1 命令行安装2.2 验证安装 三、pytest设计测试用例注意点3.1 命名规范3.2 断言清晰3.3 fixture3.4 参数化设置3.5 测试隔离3.6 异常处理3.7 跳过或者预期失败3.8 mocking3.9 标记测试 四、以案例初入pytest4.1 第一个pytest测试4.2 多个测试分…...

基于51单片机(STC32G12K128)和8X8彩色点阵屏(WS2812B驱动)的小游戏《贪吃蛇》
目录 系列文章目录前言一、效果展示二、原理分析三、各模块代码1、定时器02、矩阵按键模块3、8X8彩色点阵屏 四、主函数总结 系列文章目录 前言 《贪吃蛇》,一款经典的、怀旧的小游戏,单片机入门必写程序。 以《贪吃蛇》为载体,熟悉各种屏幕…...

2011-2020年各省粗离婚率数据
2011-2020年各省粗离婚率数据 1、时间:2011-2020年 2、来源:国家统计局 3、指标:地区、年份、粗离婚率 4、范围:31省 5、指标解释:粗离婚率指某地区当年离婚对数占该地区年平均人口的比重。计算公式为:…...

C++高级编程技巧:模板元编程与性能优化实践
C高级编程技巧:模板元编程与性能优化实践 在C编程的世界里,模板元编程(Template Metaprogramming)是一项强大的技术,它允许程序员在编译时而非运行时进行计算和类型操作。这项技术的核心在于C模板系统,它…...

Mac 版本向日葵退出登录账号
找遍整个软件,Mac 版本的向日葵甚至逆天到没有提供退出登录的功能… 随后我发现可以直接删除向日葵的配置文件达到退出登录的效果,具体操作如下: cd /etc # 确认存在 orayconfig.conf 文件 ls orayconfig.conf # 删除 sudo rm -f oray…...

SOLIDWORKS Composer在产品设计、制造与销售中的应用
SOLIDWORKS Composer是一款专为技术团队设计的高效沟通工具,广泛应用于产品设计、制造、销售及售后等领域。它能从复杂的CAD数据中提取关键信息,轻松转化为高质量的产品文档、交互式3D动画及说明视频,显著提升产品沟通效率。 Composer擅长制…...

Win11+WLS Ubuntu 鸿蒙开发环境搭建(一)
参考文章 Windows11安装linux子系统 WSL子系统迁移、备份与导入全攻略 如何扩展 WSL 2 虚拟硬盘的大小 Win10安装的WSL子系统占用磁盘空间过大如何释放 《Ubuntu — 调整文件系统大小命令resize2fs》 penHarmony南向开发笔记(一)开发环境搭建 一&a…...

[CSAW/网络安全] Git泄露+命令执行 攻防世界 mfw 解题详析
Home界面: Home界面翻译如下: 欢迎访问我的网站! 我自己从头开始写的! 您可以使用上面的链接浏览页面! About界面: 观察到Git,联想Git泄露 Git泄露 Git是一个非常流行的开源分布式版本控制系…...

MySQL 锁那些事
Q1 : MySQL有哪些锁,功能是什么,如何项目中使用?Q2 : 行锁是如何实现的?什么情况下会使用行锁?Q3 : 四种事务隔离形式的行锁有什么不一样?读未提交读提交可重复读串行 Q4 : MySQL 的读写都是怎样加锁的?Q5 : 需要注意什么? Q1 : MySQL有哪些锁,功能是什么,如何项目中使用…...