見出し画像

ControlNeXt-SVDで遊ぶメモ

このメモを読むと

・ControlNeXt-SVDを試せる
・img2videoをお手軽に試せる

検証環境

・OS : Windows11
・Mem : 64GB
・GPU : GeForce RTX™ 4090
・ローカル(pyenv+venv)
・python 3.10.11
・2024/7/B時点


ControlNeXt-SVD

一枚絵とopenposeのモーション動画を入力することで、
画像へ動きを付与することができます。

試してみましょう!

事前準備

下記モデルを用いるため、hugging faceへログインし利用認証を得ましょう。

環境構築

とても簡単です!

1. リポジトリをインストールし、ディレクトリ移動

https://github.com/dvlab-research/ControlNeXt.git
cd ControlNeXt/ControlNeXt-SVD

2. 仮想環境を作成し、環境切替

python -m venv .venv
.venv\scripts\activate

3. 追加パッケージのインストール

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install pip install einops decord
pip install -r ../requirements.txt

4. 重み格納用ディレクトリを作成

mkdir pretrained

5. こちらから重みをDLし、./pretrained直下へ格納

6. プロンプト上でhugging-faceへログイン
 トークンを入力

huggingface-cli login
    _|    _|  _|    _|    _|_|_|    _|_|_|  _|_|_|  _|      _|    _|_|_|      _|_|_|_|    _|_|      _|_|_|  _|_|_|_|
    _|    _|  _|    _|  _|        _|          _|    _|_|    _|  _|            _|        _|    _|  _|        _|
    _|_|_|_|  _|    _|  _|  _|_|  _|  _|_|    _|    _|  _|  _|  _|  _|_|      _|_|_|    _|_|_|_|  _|        _|_|_|
    _|    _|  _|    _|  _|    _|  _|    _|    _|    _|    _|_|  _|    _|      _|        _|    _|  _|        _|
    _|    _|    _|_|      _|_|_|    _|_|_|  _|_|_|  _|      _|    _|_|_|      _|        _|    _|    _|_|_|  _|_|_|_|

    To login, `huggingface_hub` requires a token generated from https://huggingface.co/settings/tokens .
Token can be pasted using 'Right-Click'.
Enter your token (input will not be visible): [ ここにトークンを入力 ]

完了です!

ControlNeXt-SVDを試してみる

一枚絵を動かしてみましょう。

入力データをそろえる
 ./examples/pose へ モーション動画を、
 ./examples/ref_imgs へ 一枚絵を格納
 今回、モーション動画は元から用意されているものを使い
 一枚絵は以下を oji.jpg として用意しました。

oji.jpg ( https://pixabay.com/ja/ )

実行
 プロンプトから下記コマンドを実行します。

python run_controlnext.py \
  --pretrained_model_name_or_path stabilityai/stable-video-diffusion-img2vid-xt-1-1 \
  --validation_control_video_path examples/pose/pose.mp4 \
  --output_dir outputs/dance \
  --controlnext_path pretrained/controlnet.bin \
  --unet_path pretrained/unet_fp16.bin \
  --ref_image_path examples/ref_imgs/oji.jpg

結果
 ./outputs/dance へ成果物が格納されます。

VRAM使用量は10GB弱でした

おわり

img2videoで絵を動かせた。
VRAM使用量が少ないため、手軽に試しやすいのも良いですね。
どうやらLoraも利用可能なようです。
デモくらいキレイに変換できなかったで、もう少し模索してみます。

おしょうしな

参考にさせていただきました。ありがとうございました。

いいなと思ったら応援しよう!