trinart_stable_diffusion_v2 をローカル環境のUbuntu と RTX 3090で実行する
前回に続いてローカルのコンシューマー用GPUで
どこまで画像生成AIが利用出来るか試してみようシリーズ
環境は引き続き下記のローカル環境を使用していきます。
OS:Ubuntu20.04
GPU:RTX 3090
VRAM:24GB
RAM:16GB
$ nvidia-smi
Mon Sep 12 10:03:47 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.103.01 Driver Version: 470.103.01 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:09:00.0 On | N/A |
| 0% 43C P8 31W / 350W | 493MiB / 24265MiB | 4% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1389 G /usr/lib/xorg/Xorg 53MiB |
| 0 N/A N/A 3051 G /usr/lib/xorg/Xorg 130MiB |
| 0 N/A N/A 3267 G /usr/bin/gnome-shell 117MiB |
| 0 N/A N/A 3854 G ...RendererForSitePerProcess 13MiB |
| 0 N/A N/A 4098 G ...958599967803028497,131072 159MiB |
+-----------------------------------------------------------------------------+
1 使用させていただくモデル
https://twitter.com/trinsama) で使用しているSDのファインチューン済モデルとのことでキャラクター特化モデルとはまた別とのこと
学習のステップ数に応じたmodel.ckptファイルがgit形式で配布されているようです。
2 オリジナルのStableDiffusionのリポジトリをクローンしておき、環境を整えておきます
stable diffusion のgihub上の手順通りにanacondaでldmの環境を構築しておきます。
※Fork版やファインチューンモデルを扱う際にオリジナルのstable-diffusionの環境がベースとなる可能性が高いのでオリジナル環境の構築は確実に出来た方が良さそう
stable-diffusion オリジナルリポジトリのクローン
git clone https://github.com/CompVis/stable-diffusion.git
cd stable-diffusion
anacondaでldm環境を作成しactivateして環境に入る
~/git/stable-diffusion$conda env create -f environment.yaml
~/git/stable-diffusion$conda activate ldm
pytorch torchvision などのanaconda環境へのインストール
pipで必要なパッケージのインストールと更新
~/git/stable-diffusion$conda install pytorch torchvision -c pytorch
~/git/stable-diffusion$pip install transformers==4.19.2 diffusers invisible-watermark
~/git/stable-diffusion$pip install -e .
画像出力先のディレクトリ作成
~/git/stable-diffusion$mkdir outputs
3 使用するモデルをstable-diffusionディレクトリにクローンします
~/git/stable-diffusion$git clone https://huggingface.co/naclbit/trinart_stable_diffusion_v2
3つのckptのチェックポイントモデルが手元にクローンされてきますね
~/git/stable-diffusion$ ls trinart_stable_diffusion_v2
README.md trinart2_step115000.ckpt trinart2_step60000.ckpt trinart2_step95000.ckpt
4 promptに呪文を入れてコマンドを実行
--ckpt オプションでモデルのパスを指定して
今回のテストは"cute cats fox ear"で実行させてみます。
~/git/stable-diffusion$python scripts/txt2img.py \
> --plms \
> --ckpt ./trinart_stable_diffusion_v2/trinart2_step115000.ckpt \
> --skip_grid \
> --n_samples 1 \
> --n_iter 1 \
> --outdir outputs \
> --ddim_steps 100 \
> --prompt "cute cats fox ear"
5 outputs/samples
ちょっと意図したものと狐耳の猫ではなくかわいい狐になりました。
時間があったらいろいろ実験したものを追記します。
prompt:"cute cats fox ear"
実験結果
prompt:"cute girl blue hair"
prompt:"cute cat ear maid"
補足
vramは最大10GBくらい使っているのでローカル環境で動かすなら
VRAM 12GB以上のGPUを載せてないとvram不足で動かないかも知れません
Discussion