导读

8月16日,时间、空间可控的视频生成模型 VideoComposer  在魔搭社区开源。

https://live.csdn.net/v/322097

VideoComposer是由阿里巴巴研发的可控视频生成框架,其可以让用户更灵活地使用文本条件、空间条件和时序条件来生成视频,比如使用草图、深度图或运动向量等多个组合条件合成目标视频,极大地提高了视频灵活性和可控性。本项目相比于之前的开源项目主要增加了无水印数据训练,可使得生成的视频没有水印。此外,本项目目前只支持文本+深度图+Style方便体验。

 

模型介绍

VideoComposer采用组合式生成策略,旨在提升视频生成的可控性,包括两个部分:

  • 组合条件,首先将视频分解成三种重要的要素,即文本条件、空间条件和视频特有时序条件,分表表示视频的概要内容、空间布局和细节以及运动模式,以此重构该视频。在训练过程中,通过按照特定概率随机Mask部分条件,使得VideoComposer具有随机组合任意条件以控制视频生成

  • 时空条件编码器STC-encoder,由空间卷集提取空间特征,时序Transformer对输入条件做时序编码两部分构成,其作为统一接口策略可以编码多个条件以生成更高稳定的视频,并可以更容易地拓展到其他的条件

 

环境配置与安装

  1. 本文在1*A10的环境配置下运行 (显存要求22G)

  2. python>=3.8

实验环境准备 

选择ModelScope Notebook免费实例PAI-DSW。选择GPU环境,镜像如下(要选择torch1.11.0的镜像):

 

安装最新ModelScope

打开Notebook,在Terminal中运行代码:

pip install "modelscope" --upgrade -f https://pypi.org/project/modelscope/

 

安装依赖库

pip install motion-vector-extractor>=1.0.6
pip install scikit-video>=1.1.11
pip install pynvml>=11.5.0
pip install numpy==1.24.2
pip install bitsandbytes==0.38.1

 

模型链接及下载

VideoComposer 模型链接:

https://modelscope.cn/models/damo/VideoComposer/summary

 

模型weights下载

VideoComposerfrom modelscope.hub.snapshot_download import snapshot_download
model_dir = snapshot_download('damo/VideoComposer', cache_dir='model_weights/', revision='v1.0.4')

 

模型推理

环境配置完成后,打开Notebook:

import cv2
import sys
from modelscope.msdatasets import MsDataset
from modelscope.pipelines import pipeline
from modelscope.utils.constant import DownloadMode, Tasks
sys.argv = ['run.py']

 

导入pipeline:


pipe = pipeline(
    task=Tasks.text_to_video_synthesis,
    model='damo/VideoComposer',
    model_revision='v1.0.4',
    download_mode=DownloadMode.FORCE_REDOWNLOAD)

 

载入测试样例,输入由三个部分组成:

  • 视频,待编辑视频,建议主体目标显著,居中;

  • 风格图,选一张期望的风格图,风格显著时会,效果会好一些;

  • 文本,描述期望输出的视频对应的文本,VideoComposer可以做一定的目标转换;

ds = MsDataset.load(
    'buptwq/videocomposer-depths-style',
    split='train',
    download_mode=DownloadMode.FORCE_REDOWNLOAD)

 

推理:

inputs = next(iter(ds))
inputs.update({
    'text':
    'A glittering and translucent fish swimming in a small glass bowl with multicolored piece of stone, like a glass fish'
})
print('inputs: ', inputs)
output = pipe(inputs)

 

输出文件保存在outputs/rank.gif。

您也可以通过以下方式测试自己的数据:

image_in = '<image路径>'
video_in = '<video路径>'
text_in = '<文字描述>'

inputs = {'Image:FILE': image_in, 'Video:FILE': video_in, 'text':text_in}
print('inputs: ', inputs)
output = pipe(inputs)

关于模型更多的能力,可以将源码中的‘non_ema_228000.pth’替换成本项目中的‘non_ema_141000_no_watermark.pth’,即可体验无水印的运动迁移、草图生成视频、风格转换等其他多项能力,欢迎开发者的尝试和建议。

 

创空间体验

VideoComposer Demo创空间链接:

https://modelscope.cn/studios/damo/VideoComposer-Demo/summary

https://modelscope.cn/studios/damo/VideoComposer-Demo/summary

Logo
欢迎加入ModelScope魔搭中文开源社区

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐

  • · ModelScope联手OpenDataLab:直接调用7000+开源数据集,赋能AI模型加速研发
  • · 魔搭社区GGUF模型怎么玩!看这篇就够了
  • · Multi-Agent实践第9期: 多智能体的升级体验
cover

魔搭社区GGUF模型怎么玩!看这篇就够了

cover

Multi-Agent实践第9期: 多智能体的升级体验