こんにちは、ice_soiです!
フリーランスエンジニアをしています。
最近、画像生成AIに興味があって使ってみようと思い、Stable DiffusionやMidjourneyなどを調べていました。そこで、せっかくなので自分のローカルに環境を作ってみようと思い、StableDiffusionを試すことにしました!
今回は、備忘もかねて環境構築の記録を残していこうと思います!
PCのスペック
僕のPCのスペックは下記です
- Windows10
- Rythen 5 3600
- GTX1650
- DDR4 32GB
正直画像生成AIを使うには貧弱だと思います・・・。
単純に画像生成AIを使うならMidjourneyを使うとかクラウド環境で使うとか他にも選択肢はありますが、やってみたかったので今回はローカルでの構築することにしました!
環境の構成
個人的にやりたくなかったことが、環境が汚れるのでそのままローカルにインストールするということでした。
VM環境でできないかなと思って調べてみるとdocker環境があるようなのでこちらを利用することにしました!
https://github.com/AbdBarho/stable-diffusion-webui-docker
せっかくなのでvirtualbox + vagrant + dockerの構成にして完全にVM環境で収まるようにしようと思いました!
環境構築
下記の手順で環境を構築しました。
- vagrant環境を作る
- docker、docker-composeをインストール
- gitからdocker環境を持ってくる
- StableDiffusionの設定、起動
Pythonいれたりとかそういったものがないので、思ったよりはやることは少なかったです。
環境構築などでは下記の記事を参考にしました!
https://zenn.dev/karaage0703/articles/bf86fe4946417b
1.vagrant環境を作る
サクッとVMを作ります。
今回はubuntu22.04で作ります。
まずは初期化して
vagrant init bento/ubuntu-22.04
初回起動して
vagrant up --provision
立ち上がったらSSHでVMの中に入ります
vagrant ssh
※vagrantの起動時にSSH auth method : private keyで止まることがありました。
調べたら同じ現象が発生している人がいたようで、下記の記事を参考にしました。
https://bunsugi.com/vagrant-up-timeout-trouble-shooting/
2.docker、docker-composeをインストール
dockerとdocker-composeを使うのでインストールしていきます
dockerのインストールの手順は下記の記事を参考にしました。
https://www.kagoya.jp/howto/cloud/container/dockerubuntu/
docker-composeはcurlでインストールして
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
docker-composeコマンドを使えるようにしています
sudo chmod +x /usr/local/bin/docker-compose
3.gitからdocker環境を持ってくる
gitは最初から入っているので下記のコマンドでcloneします
git clone https://github.com/AbdBarho/stable-diffusion-webui-docker.git
4.StableDiffusionの設定、起動
Wikiに設定の仕方などが書いてありました。
https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki
最初に下記をしてから
docker compose --profile download up --build
任意のUIを指定して起動すればよいようです
docker compose --profile [ui] up --build
VMのGPUの設定はしていないのでGPUを使わないでdockerを起動してみます。
docker compose --profile auto-cpu up --build
ブラウザからVMのIP:7860にアクセスしてみると・・・
StableDiffusionが開けました!!
プロンプトを入れて画像生成もできました!
まとめ
一旦今回はGPUを使わないで動くところまでできました!