论文研读: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__() 上文管理…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
