Japanese Stable CLIP を試してみた

Stable Video Diffusion を試してみた


Stability AI より、動画の生成が可能な Stable Video Diffusion が公開されました。
なお、動画といえども生成できる動画は 14 フレームまたは 25 フレームのみ。FPS を変更できますが、生成できる動画は長くても 3,4 秒ほどです。

要約

  • GeForce 2070 (VRAM 8GB) ではメモリ不足で生成不可
  • FP16 のモデルを使用することで、ぎりぎり生成可能
  • 1 回生成するのに 1 時間程かかる

準備

いつもの Docker イメージで起動します。
docker run -it --gpus=all --rm -v /work:/work nvidia/cuda:11.8.0-base-ubuntu22.04 /bin/bash

必要なツールをインストールします。
apt update
apt install -y git git-lfs python3-pip libgl1-mesa-dev libglib2.0-0 ffmpeg

コードをクローンし、必要なライブラリをインストールします。
git clone git@github.com:Stability-AI/generative-models.git
cd generative-models/
pip install -r ./requirements/pt2.txt

モデルをダウンロードします。VRAM が十分であれば stable-video-diffusion-img2vid を、より VRAM 使用量を減らせる FP16 のモデルであれば stable-video-diffusion-img2vid-fp16 を使います。今回は FP16 のモデルを利用しました。
git lfs install
( git clone https://huggingface.co/stabilityai/stable-video-diffusion-img2vid )
git clone https://huggingface.co/becausecurious/stable-video-diffusion-img2vid-fp16/

モデルを保存するディレクトリを作成し、そこにダウンロードしたモデルを配置する。
※ファイル名を「svd.safetensors」にする必要があります。
mkdir checkpoints
cp xxx/svd.safetensors checkpoints/

生成

WebUI を起動します。
PYTHONPATH=. streamlit run scripts/demo/video_sampling.py --server.port 7860

WebUI が起動します。「Load model」をクリックするとモデルをロードします。

エラーがでますが、一応モデルのロードはできています。エラーはFP16 のモデルを使用しているからかもしれません。
ここで「Input」に画像を読み込みます。

手元にあった Stable Diffusion で生成した画像を読み込ませてみます。下へスクロールすると、いくつかパラメータを入力する欄があるので、一部修正します。

変更するのは2点。Decode t frames at a time と seed です。

Decode t frames at a time は「4」にします。補足にあるとおり、VRAM が少ない場合は値を小さくする必要があります。実際、6 ぐらいだと VRAM 不足でエラーになります。

seed は 0 にしてみました。

これで「Sample」ボタンをクリックすると、生成が始まります。が、冒頭伝えた通り、1時間は待つことになります。

生成が終わると、outputs/demo/vid/svd/samples/ ディレクトリ以下に .mp4 ファイルが生成されます。(この時、ffmpeg がないとエラーになります)

一応、生成できましたが、少し使いどころを工夫しないと難しい気がしますが、そもそも生成に時間がかかりすぎる・・・

コメント