Make-A-Video:文本直接生成视频,PyTorch 实现完整指南
【免费下载链接】make-a-video-pytorchImplementation of Make-A-Video, new SOTA text to video generator from Meta AI, in Pytorch项目地址: https://gitcode.com/gh_mirrors/ma/make-a-video-pytorch
Make-A-Video 是 Meta AI 推出的文本到视频生成模型:输入一句文字描述,输出一段连贯视频。这个仓库是它的 PyTorch 实现,把其中的伪 3D 卷积和时间注意力拆成了可复用的模块,你可以直接拿来用。
它是什么:给图像生成器装上「时间」的零件包
先说定位:这不是一个开箱即用的视频生成应用,而是 Meta AI 文本到视频模型核心模块的开源实现。
思路很直白:文本到图像模型(比如 DALL·E 2)像一位只会拍单张照片的摄影师。Make-A-Video 的思路是,把这位已经很出色的「摄影师」升级成摄像师——每一帧仍然沿用图像模型的技术,再叠加两套时间机制,让帧与帧连起来。
上图来自原论文:左侧是伪 3D 卷积,每个 2D 空间卷积层后面跟一个 1D 时间卷积层;右侧是时间注意力,接在空间注意力之后。注意两条虚线标注——时间模块都初始化为「恒等映射」,也就是训练之初相当于什么都不做,不会干扰原有图像模型。
它凭什么做到:两个让视频「不抖」的技巧
伪 3D 卷积:把「空间」和「时间」拆开算
直接在视频上做三维卷积,计算量会随尺寸立方级增长。伪 3D 卷积把任务拆开:2D 卷积负责处理每一帧内部,1D 卷积负责处理帧与帧之间。
打个比方:砌墙不是整面墙一次浇筑,而是一块砖(一帧)一块砖铺平,再逐行(逐帧)对齐。每一步的工作量都小,总开销远低于一步到位。这也是它比纯 3D 方案更省算力的原因。
时间注意力:让每一帧「看见」其他帧
帧内内容靠空间注意力对齐,帧与帧之间却没有人管。时间注意力补的就是这个缺口:每一帧都能「看」其他帧,并据此调整自己的内容,动作才不会跳帧。
这套机制的投影初始化为零,训练开始时等效于直通。随着训练推进,帧与帧才逐渐「协调」起来。正因为如此,同一套代码可以先在图像上预训练,再无缝切换到视频训练。
另外,实现里支持 Flash Attention(一种省显存的快速注意力算法),进一步压低计算成本。
拿它能干什么
- 🎬你在自建文本到视频模型:不用从零设计时间建模。把
PseudoConv3d、SatioTemporalAttention或完整的SpaceTimeUnet嵌入你自己的 U-Net,先拿图像训练,再切到视频训练,一套代码走到底,省去最耗时的架构摸索阶段。 - 🔬你在研究视频时间建模:可以在自己的数据上直接对比伪 3D 卷积与时间注意力两种方案,并验证「恒等初始化」对训练稳定性的影响。
- 🖼️你只有图像数据也想复用:完整的
SpaceTimeUnet对图像和视频输入都不敏感,传入图像时时间卷积与时间注意力自动跳过,等于直接当一个 2D U-Net 用。
核心源码在 make_a_video_pytorch/,卷积、注意力、U-Net 各占独立文件。
三步上手
安装,一行命令即可:
pip install make-a-video-pytorch如果想看源码,克隆仓库:
git clone https://gitcode.com/gh_mirrors/ma/make-a-video-pytorch引入模块:三个主要组件是
PseudoConv3d(伪 3D 卷积)、SpatioTemporalAttention(时空注意力)、SpaceTimeUnet(完整 U-Net)。传入数据试跑:视频张量形状是 (batch, 特征, 帧数, 高, 宽),图像少一维帧数;直接传图像时,时间相关计算会自动跳过,无需额外处理。
亮点与边界
真实优势
- 图像预训练与视频训练无缝切换:恒等初始化让现成的图像模型能平滑升级为视频模型,不用推倒重来
- 计算成本低:伪 3D 卷积把三维计算拆成 2D + 1D,再叠加 Flash Attention,显存和耗时都明显可控
- 模块划分干净:每个组件独立,可以只取所需,混进你自己的架构
适用边界
- 它是核心模块库,不是开箱即用的视频生成器:没有预训练权重,也不包含完整的文本到视频推理流水线。想真正产出视频,需要自己搭配文本到图像模型并训练,README 本身也标注了 work in progress(持续完善中)
【免费下载链接】make-a-video-pytorchImplementation of Make-A-Video, new SOTA text to video generator from Meta AI, in Pytorch项目地址: https://gitcode.com/gh_mirrors/ma/make-a-video-pytorch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考