見出し画像

インスタントにGCPでStableDiffusionWebUIを動かす

きっかけ

最近画像生成AIをいじることが多くなってきた。
モデルを動かすにあたって簡易にパラメータをいじりながら画像生成できることから、webuiを重宝している。
ローカル環境で環境構築をしていたが、gpuのスペックがもう少し欲しいだとか、環境をリモートからも動かしたいだとか様々な理由からwebuiをgcp上で実行できるようにすることにした。

手順

まずはGCP上にGCEのVMを作成する。GPUなどの設定に関してはおまかせするが、今回のケースでは以下の環境で実行することができた。

  • zone: us-central1-a

  • machine-type: n1-standard-16

  • GPU-type: nvidia-tesla-t4

  • image: Debian 10 based Deep Learning VM with M102

  • disc-size:100GB

  • vm-provisioning: spot

計算能力やディスクのサイズは用途によって変更することを推奨する。ディスクサイズに関してはVMを止めていても課金が発生するので注意が必要である。また、請求額を減らすためにspotインスタンスを選択している。

このスペックで月間大体$200

VMが立ち上がるのを待ったらsshでvmに入り、webuiを設定する。
VM上で簡単に実行できることから、こちらのdockerイメージを使わせていただくことにする。

sudo apt-get update
sudo apt-get install docker-compose-plugin=2.14.1~debian-buster

git clone https://github.com/AbdBarho/stable-diffusion-webui-docker
cd stable-diffusion-webui-docker
docker compose --profile download up --build
docker compose --profile auto up --build

これだけで終了、webuiを使うことができる。

gcloudを使ったportforward例:

gcloud compute ssh --zone "<zone_name>" "<vm_name>" --tunnel-through-iap --project "<proj_name>" -- -N -L 7860:localhost:7860

--tunnel-through-iapしているのは外部IPを設定していないためであるが、外部IPありの場合必要ない(はず)

おまけ: StableDiffusion v2を使う
v2のモデルを使いたい場合以下のように設定する。
同様の方法で他のcheckpointも利用できる(はず)
ダウンロード後、768-v-emaをwebuiで選択。

sudo wget https://huggingface.co/stabilityai/stable-diffusion-2/resolve/main/768-v-ema.ckpt -O data/StableDiffusion/768-v-ema.ckpt
sudo wget https://raw.githubusercontent.com/Stability-AI/stablediffusion/main/configs/stable-diffusion/v2-inference-v.yaml -O data/StableDiffusion/768-v-ema.yaml

終わりに

あけましておめでとうございました!

年賀イラスト2023 by WaifuDiffusion & me

関連


この記事が気に入ったらサポートをしてみませんか?