【Diffusers】Text-to-Video synthesis(テキストからビデオ合成)、たったの9行でした

最終更新日:2023年6月30日

はじめに

テキストからショート動画が作れるとのことでさっそく試してみました。

環境

CUDA 11.8とPyTorch 2.0を使うためにWSL2を使用しました。

Ubuntu 22.04 on WSL2
CUDA 11.8.0



WSL2ではOS環境をいくらでも複製できるので新しい環境を試すにはうってつけです。
laboradian.com

Python環境構築

pip install torch --index-url https://download.pytorch.org/whl/cu118
pip install git+https://github.com/huggingface/diffusers.git
pip install transformers accelerate safetensors opencv-python

Pythonスクリプト

import torch
from diffusers import DiffusionPipeline
from diffusers.utils import export_to_video

pipe = DiffusionPipeline.from_pretrained("damo-vilab/text-to-video-ms-1.7b", torch_dtype=torch.float16, variant="fp16")
pipe.enable_model_cpu_offload()
pipe.enable_vae_slicing()

prompt = "Darth Vader surfing a wave"
video_frames = pipe(prompt, num_frames=64).frames
export_to_video(video_frames, output_video_path='result.mp4')



たったのこれだけです。

事前のモデルダウンロードも不要です。実行の初回に自動でダウンロードされます。


「Tune-A-Video」との違い

以前「Tune-A-Video」に関する記事を書きました。
touch-sp.hatenablog.com


「Tune-A-Video」はStable Diffusionあるいはその派生モデルを使用します。好きなモデルが使えます。動画を生成するためには参照動画が必要です。

今回のものは専用に学習されたモデルを使用します。好きなモデルが使えるわけではありません。参照動画は必要ありません。

VRAM使用

自分の環境では最大8.2GBのVRAM使用でした。

つづき

「zeroscope_v2_576w」というモデルを使った記事を書きました。
touch-sp.hatenablog.com




このエントリーをはてなブックマークに追加