StreamingSVD 是一种先进的自回归技术,用于文本到视频和图像到视频的生成,生成具有丰富运动动态的高质量长视频,将 SVD 变成长视频生成器。我们的方法确保整个视频的时间一致性,与输入文本/图像紧密对齐,并保持高帧级图像质量。我们的演示包括高达 200 帧、时长 8 秒的成功视频示例,并且可以延长更长的持续时间。
底层自回归方法的有效性并不限于所使用的特定基本模型,这表明基本模型的改进可以产生更高质量的视频。 StreamingSVD 是 StreamingT2V 系列的一部分。另一个成功的实现是 StreamingModelscope,它将 Modelscope 转变为长视频生成器。这种方法可以生成长达2分钟的视频,具有运动量大、无停滞的特点。
详细结果可以在项目页面中找到。
我们的代码在默认设置下需要 60 GB VRAM(生成 200 帧时)。尝试减少帧数或激活随机混合以减少内存占用。我们的代码在 Linux 上使用 Python 3.9 和 CUDA 11.7 进行了测试。
git clone https://github.com/Picsart-AI-Research/StreamingT2V.git
cd StreamingT2V/
virtualenv -p python3.9 venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
要运行由图像到视频、视频增强(包括我们的随机混合)和视频帧插值组成的整个管道,请从StreamingT2V
文件夹中运行:
cd code
python inference_i2v.py --input $INPUT --output $OUTPUT
$INPUT
必须是图像文件或包含图像的文件夹的路径。每张图像的长宽比预计为 16:9。
$OUTPUT
必须是存储结果的文件夹的路径。
将--num_frames $FRAMES
添加到调用中以定义要生成的帧数。默认值: $FRAMES=200
将--use_randomized_blending $RB
添加到调用中以定义是否使用随机混合。默认值: $RB=False
。使用随机混合时, chunk_size
和overlap_size
参数的推荐值分别为--chunk_size 38
和--overlap_size 12
。请注意,随机混合会减慢生成过程,因此如果您有足够的 GPU 内存,请尽量避免使用它。
将--out_fps $FPS
添加到调用中以定义输出视频的 FPS。默认值: $FPS=24
此处提供了我们提出的运动感知扭曲误差(请参阅我们的论文)。
如我们论文中所述,现在可以在此处找到基于 Modelscope 的 StreamingT2V 模型的代码。
我们的代码和模型是在 MIT 许可下发布的。
我们包括 SVD、EMA-VFI 和 I2VGen-XL 的代码和模型权重。有关其代码和重量,请参阅其原始许可证。由于这些依赖性,StreamingSVD 只能用于非商业、研究目的。
如果您在研究中使用我们的工作,请引用我们的出版物:
@article{henschel2024streamingt2v,
title={StreamingT2V: Consistent, Dynamic, and Extendable Long Video Generation from Text},
author={Henschel, Roberto and Khachatryan, Levon and Hayrapetyan, Daniil and Poghosyan, Hayk and Tadevosyan, Vahram and Wang, Zhangyang and Navasardyan, Shant and Shi, Humphrey},
journal={arXiv preprint arXiv:2403.14773},
year={2024}
}