Project Icon

videocomposer

灵活可控的视频合成与运动模式生成工具

VideoComposer是一个开源的视频合成模型,能够同时控制生成视频的空间和时间特征。它支持文本、草图、参考视频等多种输入形式,为用户提供灵活的创作方式。项目包含预训练模型和用户界面,便于研究人员和开发者进行视频合成实验。

VideoComposer

VideoComposer: 具有运动可控性的组合式视频合成的官方代码库

更多示例请查看项目主页

我们正在寻找有才华、有动力和富有想象力的研究人员加入我们的团队。如果您感兴趣,请随时发送您的简历至邮箱yingya.zyy@alibaba-inc.com

图1

VideoComposer是一个可控的视频扩散模型,允许用户灵活地同时控制合成视频中的空间和时间模式,可以通过各种形式进行控制,如文本描述、草图序列、参考视频,甚至简单的手工制作动作和手绘图。

🔥新闻!!!

  • [2023.10] 我们发布了高质量的I2VGen-XL模型,请参考网页
  • [2023.08] 我们在ModelScope上发布了Gradio用户界面
  • [2023.07] 我们发布了无水印的预训练模型,请参考模型卡片

待办事项

  • 发布我们的技术论文和网页。
  • 发布代码和预训练模型。
  • ModelScope和Hugging Face上发布Gradio用户界面。
  • ModelScope上发布可生成8秒无水印视频的预训练模型

方法

方法

自行运行

1. 安装

要求:

  • Python==3.8
  • ffmpeg(用于运动矢量提取)
  • torch==1.12.0+cu113
  • torchvision==0.13.0+cu113
  • open-clip-torch==2.0.2
  • transformers==4.18.0
  • flash-attn==0.2
  • xformers==0.0.13
  • motion-vector-extractor==1.0.6(用于运动矢量提取)

您也可以使用以下命令创建与我们相同的环境:

conda env create -f environment.yaml

2. 下载模型权重

通过以下命令下载所有模型权重

!pip install modelscope
from modelscope.hub.snapshot_download import snapshot_download
model_dir = snapshot_download('damo/VideoComposer', cache_dir='model_weights/', revision='v1.0.0')

接下来,按照下面显示的文件结构将这些模型放在model_weights文件夹中。

|--model_weights/
|    |--non_ema_228000.pth
|    |--midas_v3_dpt_large.pth 
|    |--open_clip_pytorch_model.bin
|    |--sketch_simplification_gan.pth
|    |--table5_pidinet.pth
|    |--v2-1_512-ema-pruned.ckpt

您也可以从它们的原始项目中下载其中一些:

  • "midas_v3_dpt_large.pth"在MiDaS
  • "open_clip_pytorch_model.bin"在Open Clip
  • "sketch_simplification_gan.pth"和"table5_pidinet.pth"在Pidinet
  • "v2-1_512-ema-pruned.ckpt"在Stable Diffusion

为方便起见,我们在本仓库中提供了下载链接。

3. 运行

在这个项目中,我们提供了两种实现方式,可以帮助您更好地理解我们的方法。

3.1 使用自定义输入进行推理

您可以使用以下命令运行代码:

python run_net.py\
    --cfg configs/exp02_motion_transfer.yaml\
    --seed 9999\
    --input_video "demo_video/motion_transfer.mp4"\
    --image_path "demo_video/moon_on_water.jpg"\
    --input_text_desc "A beautiful big moon on the water at night"

结果保存在outputs/exp02_motion_transfer-S09999文件夹中:

案例1 案例2

在某些情况下,如果您注意到颜色差异有显著变化,可以使用风格条件来调整颜色分布,使用以下命令。这在某些情况下可能会有帮助。

python run_net.py\
    --cfg configs/exp02_motion_transfer_vs_style.yaml\
    --seed 9999\
    --input_video "demo_video/motion_transfer.mp4"\
    --image_path "demo_video/moon_on_water.jpg"\
    --style_image "demo_video/moon_on_water.jpg"\
    --input_text_desc "A beautiful big moon on the water at night"
python run_net.py\
    --cfg configs/exp03_sketch2video_style.yaml\
    --seed 8888\
    --sketch_path "demo_video/src_single_sketch.png"\
    --style_image "demo_video/style/qibaishi_01.png"\
    --input_text_desc "Red-backed Shrike lanius collurio"

案例2

python run_net.py\
    --cfg configs/exp04_sketch2video_wo_style.yaml\
    --seed 144\
    --sketch_path "demo_video/src_single_sketch.png"\
    --input_text_desc "枝头上有一只红背伯劳(lanius collurio)"

案例2 案例2

python run_net.py\
    --cfg configs/exp05_text_depths_wo_style.yaml\
    --seed 9999\
    --input_video demo_video/video_8800.mp4\
    --input_text_desc "一条闪闪发光的半透明鱼在一个小玻璃碗里游泳,碗里有多彩的石头,这条鱼看起来像玻璃做的"

案例2 案例2

python run_net.py\
    --cfg configs/exp06_text_depths_vs_style.yaml\
    --seed 9999\
    --input_video demo_video/video_8800.mp4\
    --style_image "demo_video/style/qibaishi_01.png"\
    --input_text_desc "一条闪闪发光的半透明鱼在一个小玻璃碗里游泳,碗里有多彩的石头,这条鱼看起来像玻璃做的"

案例2 案例2

3.2 对视频进行推理

你可以使用以下命令运行代码:

python run_net.py \
    --cfg configs/exp01_vidcomposer_full.yaml \
    --input_video "demo_video/blackswan.mp4" \
    --input_text_desc "一只黑天鹅在水中游泳" \
    --seed 9999

这个命令将提取输入视频的不同条件,如深度、草图和运动向量,用于后续的视频生成,这些条件会保存在"outputs"文件夹中。任务列表在inference_multi.py中预定义。

除了上述用例,你还可以使用这个代码和模型探索更多可能性。请注意,由于扩散模型生成的样本具有多样性,你可以尝试不同的种子来生成更好的结果。

我们希望你喜欢使用它!😀

BibTeX

如果这个仓库对你有用,请引用我们的技术论文。

@article{2023videocomposer,
  title={VideoComposer: Compositional Video Synthesis with Motion Controllability},
  author={Wang, Xiang* and Yuan, Hangjie* and Zhang, Shiwei* and Chen, Dayou* and Wang, Jiuniu, and Zhang, Yingya, and Shen, Yujun, and Zhao, Deli and Zhou, Jingren},
  booktitle={arXiv preprint arXiv:2306.02018},
  year={2023}
}

致谢

我们要感谢几个先前工作对VideoComposer开发的贡献。这包括但不限于ComposerModelScopeT2VStable DiffusionOpenCLIPWebVid-10MLAION-400MPidinetMiDaS。我们致力于在尊重这些原始贡献的基础上进行进一步的发展。

免责声明

这个开源模型是在WebVid-10MLAION-400M数据集上训练的,仅用于研究/非商业用途。我们还使用内部视频数据训练了更强大的模型,这些模型可能在未来使用。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号