4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Stable Video Diffusionのvideo_sampling.pyセットアップ手順(Linux)

Last updated at Posted at 2023-11-22

概要

stability.aiから発表があった Stable Video Diffusion (SVD) のデモ用プログラム video_sampling.py を Linux 上で動かす手順です。

ドキュメントがまとまっていなかったようなので、自分の備忘録として書き残します。

設定がうまくいくと、このような UI が立ち上がります。画像を投げると、動画(mp4)に変換してくれます。細かなパラメータを調整できます。ただし、現時点ではテキスト to ビデオの機能は無いようです(参照)。

image.png

前提条件

  • 動作確認は Ubuntu 22.04.3 LTS で行いました
  • Python のバージョンは 3.10.12 です(3.10 以外のバージョンでは失敗するかもしれないという情報もあります)
  • NVIDIA の GPU が必要です。コマ数を増やそうとすると VRAM が結構必要になりそうです(参考)
  • NVIDIA の GPU ドライバ等 ( CUDA や nvidia-utils などは別途必要です。Ubuntu であれば、次のが参考になるかもしれません)
  • モデルのファイルは1つで約10GB近くありますので、ストレージ容量が必要です

手順

手順前半は、公式 Readme.md の Installation: セクションにある手順と同じです。

※本環境は《さくらのクラウド》を利用しましたが、基本的に GPU の積んだ環境であれば、同様の作業で入ると思います(Ubuntu Server 22.04.1 LTS 64bit を apt get update apt get upgrade しています)。

ますはじめに、 Stability-AI の generative-models リポジトリをクローンします。

$ git clone https://github.com/Stability-AI/generative-models.git
$ cd generative-models

以降のコマンド実行は、すべてこのディレクトリ内を基準とします。

次に python3.10-venv が入っていなければ、入れます。

$ sudo apt install python3.10-venv

PyTorch 2.0 等を入れます。

$ python3 -m venv .pt2
$ source .pt2/bin/activate
$ pip3 install -r requirements/pt2.txt
$ pip3 install .

ファイル scripts/demo/streamlit_helpers.py を編集します。 61行目lowvram_mode = False (少VRAMモード)が False になっていますが、これを True にします。※かなり VRAM が潤沢であれば不要かもしれません。

lowvram_mode = True

次はモデルを格納するディレクトリを作ります。

$ mkdir checkpoints

この中に Hugging Face で公開されているモデルをダウンロードします。

svd.safetensors svd_image_decoder.safetensors
https://huggingface.co/stabilityai/stable-video-diffusion-img2vid/tree/main

svd_xt.safetensors svd_xt_image_decoder.safetensors
https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt/tree/main

これらは大きいので、 wget <URL> -O 出力先 'ダウンロードするモデルのURL' のように実行すると楽でしょう。

例: svd.safetensors の場合

$ wget -O ./checkpoints/svd.safetensors 'https://huggingface.co/stabilityai/stable-video-diffusion-img2vid/resolve/main/svd.safetensors?download=true'

必要なモデルのダウンロードが終われば、あとはデモスクリプトを実行します。

$ PYTHONPATH=. ./.pt2/bin/streamlit run scripts/demo/video_sampling.py

インストールが正常であれば、次のような出力が出ます。

Collecting usage statistics. To deactivate, set browser.gatherUsageStats to False.


  You can now view your Streamlit app in your browser.

  Network URL: http://<IP_ADDR>:8501
  External URL: http://<IP_ADDR>:8501

画面の指示に従って、ブラウザで http://<IPアドレス>:8501/ を開きます。

あとはしばらく待つと、次のような画面に変わります。

Untitled.png

Model Version で使いたいモデルを選択します。ダウンロードしていないモデル名も出ますが、使いたいものしか選べません(エラーになります)。

それから Load Model をクリックするとモデルが読み込めます。

あとは画面の指示に従って画像をアップロードします。

image.png

ページ一番下に「Sample」ボタンがあるので、押すと生成が始まります。

もし VRAM のメモリ不足になるようであれば途中で止まります。 Decode t frames at a time の数値を小さくすると、メモリの使用量が減ります。コマンド watch -n 1 nvidia-smi などで状況をモニタリングしながら調整すると良さそうです。

作成された動画等は ./outputs/demo/vid/svd/samples/ ディレクトリ以下に出力されます。

Docker の入っている環境であれば

$ sudo docker run -p 80:80 -v ./outputs/demo/vid/svd/samples:/usr/local/apache2/htdocs -d httpd

このようにして一時的にディレクトリを作れば、ファイルの転送も都度しなくてよいので楽でしょう。ブラウザからファイル群を確認できます。

image.png

この .mp4 をダウンロードすると動画化されたファイルを確認できます。

Enjoy!

参考

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?