全球首发,国产开源「文本-视频生成」模型!免费在线体验,一键实现视频生成自由
新智元报道
新智元报道
【新智元导读】AIGC进军视频生成!
去年4月,OpenAI发布的DALL-E 2用更高的分辨率、更真实的图像生成以及更准确地理解自然描述,横扫整个AIGC领域。
不过图像生成真正进入全民化还要数Stable Diffusion的开源,仅在消费级的GPU上即可运行,用户可以在自己的数据集上进行微调,也不用忍受各大绘画网站为了「安全」设立的各种过滤词表,真正实现了「绘画自由」。
而在视频生成领域,目前各家大厂还是只敢拿demo出来演示,普通用户还无法使用。
最近阿里达摩院在ModelScope上首发开源了「基于文本的视频生成」的模型参数,一起实现「视频自由」!
模型链接:https://modelscope.cn/models/damo/text-to-video-synthesis/files
体验链接:https://huggingface.co/spaces/damo-vilab/modelscope-text-to-video-synthesis
只需要输入文本,即可返回符合文本描述的视频,并且该模型能够适用于「开放领域」的视频生成,能够基于文本描述进行推理,不过目前只支持英文输入。
比如说输入经典的「an astronaut riding a horse」,直接让宇航员动起来!
或者输入「a panda eating bamboo on a rock」,可以得到下面的视频。
也可以根据huggingface上提供的接口自行输入prompt,比如输入「a dog eating a cake」,就可以得到2秒钟的视频,不过由于计算资源不足,可能需要排队等待一会。
国内首发「文本-视频生成」
国内首发「文本-视频生成」
文本到视频生成扩散模型由「文本特征提取」、「文本特征到视频隐空间扩散模型」、「视频隐空间到视频视觉空间」三个子网络组成,整体模型参数约17亿。
多阶段文本到视频生成扩散模型采用Unet3D结构,通过从纯高斯噪声视频中迭代去噪的过程,实现视频生成的功能。
在实现上参考的相关论文主要有两篇。
高分辨率图像合成与潜扩散模型
通过将图像形成过程分解为自动编码器去噪的顺序应用,扩散模型实现了对图像数据和其他数据的最新合成结果,并且扩散模型的公式能够接受一个引导机制来控制图像生成过程,而不需要重新训练。
不过由于这些模型通常直接在像素空间中运行,因此对强大的扩散模型进行优化通常需要耗费数百 GPU 天的时间,并且由于顺序评估而导致推理成本高昂。
论文链接:https://arxiv.org/pdf/2112.10752.pdf
为了能够在有限的计算资源上进行扩散模型训练,同时保持其质量和灵活性,研究人员将其应用于强大的预训练自动编码器的潜空间。
与以往的工作相比,在这种表征上的训练扩散模型可以在降低复杂度和保持细节之间达到接近最佳的点,大大提高了视觉保真度。
通过在模型结构中引入交叉注意层,可以将扩散模型转化为功能强大且灵活的生成器,用于一般条件输入(如文本或边界框) ,并使得以卷积方式进行高分辨率合成成为可能。
文中提出的潜扩散模型(LDM)在图像修复和各种任务(包括无条件图像生成、语义场景合成和超分辨率)的高度竞争性性能方面取得了新的进展,同时与基于像素的潜在扩散模型相比,显著降低了计算需求。
VideoFusion:用于高质量视频生成的分解扩散模型
扩散概率模型(DPM)通过逐渐向数据点添加噪声来构造正向扩散过程,并学习反向去噪过程以生成新样本,已被证明能够处理复杂的数据分布。
尽管最近在图像合成方面取得了成功,但是由于视频的数据空间维度更高,将DPM应用于视频生成仍然具有挑战性。
以往的方法通常采用标准的扩散过程,即用独立的噪声破坏同一视频片段中的帧,忽略了内容冗余和时间相关性。
论文链接:https://arxiv.org/pdf/2303.08320v2.pdf
这篇论文提出了一种分解扩散过程,通过将每帧噪声分解为一个在所有帧之间共享的基本噪声和一个沿着时间轴变化的残余噪声;去噪pipeline采用两个联合学习的网络来相应地匹配噪声分解。
在不同数据集上的实验证实了文中的方法VideoFusion,在高质量视频生成方面优于基于GAN和基于扩散的替代方法。
实验中进一步表明,分解公式可以受益于预先训练的图像扩散模型和良好的支持文本条件下的视频生成。
使用方法
使用方法
在ModelScope框架下,通过调用简单的Pipeline即可使用当前模型,其中,输入需为字典格式,合法键值为'text',内容为一小段文本。
该模型暂仅支持在GPU上进行推理,模型需要硬件配置大约是 16GB 内存和 16GB GPU显存。
输入具体代码示例如下。
运行环境 (Python Package)
GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/modelscope/modelscope && cd modelscope && pip install -e .
pip install open_clip_torch
代码范例 (Demo Code)
from modelscope.pipelines import pipeline
from modelscope.outputs import OutputKeys
p = pipeline('text-to-video-synthesis', 'damo/text-to-video-synthesis')
test_text = {
'text': 'A panda eating bamboo on a rock.',
}
output_video_path = p(test_text,)[OutputKeys.OUTPUT_VIDEO]
print('output_video_path:', output_video_path)
查看结果 (View Results)
上述代码会展示输出视频的保存路径,目前编码格式采用VLC播放器可以正常播放。
模型的限制与偏见
模型基于Webvid等公开数据集进行训练,生成结果可能会存在与训练数据分布相关的偏差。
该模型无法实现完美的影视级生成。
该模型无法生成清晰的文本。
该模型主要是用英文语料训练的,暂不支持其他语言。
该模型在复杂的组合性生成任务上表现有待提升。
训练数据
训练数据包括 LAION5B、 ImageNet、 Webvid 等公共数据集。图像和视频滤波是经过美学评分、水印评分和重复数据删除等预训练后进行的。
微信扫码关注该文公众号作者