AWS EC2 に stable-diffusion-webuiをインストール方法です。
AMIの選択
CUDAの実行にNVIDIAのドライバーのインストールなどが必要です。素のAmazonLinux2を使うとセットアップが非常に面倒くさいので、ドライバーインストール済みのAMIを使います。
「Deep Learning AMI GPU PyTorch 1.13.1 (Amazon Linux 2) 20230201」 を選択します。
インスタンス
動作確認では g5.2xlarge を使ってます。GPUが搭載されたインスタンスを選択してください。
GPUが搭載されたインスタンスは非常に料金が高いので料金をよく確認して選択してください。
なお、安いインスタンスで環境を作ってから後で良いGPUを積んだインスタンスタイプに変更した方が経済的です。
起動後の確認
nvidia-smi
コマンドを実行してGPUを確認する。
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.65.01 Driver Version: 515.65.01 CUDA Version: 11.7 |
|-------------------------------+----------------------+----------------------+
| 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 A10G On | 00000000:00:1E.0 Off | 0 |
| 0% 35C P0 62W / 300W | 3505MiB / 23028MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 5897 C python3 3503MiB |
+-----------------------------------------------------------------------------+
python3.8のインストール
デフォルトではPython3.7がインストールされているが、stable-diffusion-webuiにはPython3.7では動かない依存があるため、Python3.8をインストールする。
sudo yum remove python3
sudo amazon-linux-extras enable python3.8
sudo yum install python38
cd /usr/bin/
sudo ln -s python3.8 python3
zlib1.2.9のインストール (非常に危険な作業です)
zlib1.2.9が要求されるのでインストールする。
失敗するとサーバーがまるごと壊れて復旧不可能になる 超危険 な作業です。壊れたら困る環境では実施しないでください。
curl -L -O https://sourceforge.net/projects/libpng/files/zlib/1.2.9/zlib-1.2.9.tar.gz/download
tar zxf download
cd zlib-1.2.9/
./configure
make
sudo mv libz.so.1.2.9 /lib64/
cd /lib64/
sudo ln -s -f libz.so.1.2.9 libz.so.1
stable-diffusion-webuiのインストール
stable-diffusion-webuiのインストールと実行
bash <(wget -qO- https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh)
下記のようなエラーが出た場合は、モデルデータをダウンロードして models/Stable-diffusion
ディレクトリに保存する。
No checkpoints found. When searching for checkpoints, looked at:
StableDiffusion1.5のモデルデータのダウンロード。完了後に webui.sh を再度実行する。
cd /home/$(whoami)/stable-diffusion-webui/models/Stable-diffusion
wget -L https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.safetensors
外部から接続する場合は、下記の環境変数を指定してから webui.sh を実行します。ただし、0.0.0.0にバインドされるので、7860ポートを外部に公開していると誰でもアクセスできしまうので注意が必要です。
export COMMANDLINE_ARGS="--listen"
Apple Silliconと比べた速度
Apple M1 MaxのMacBook Proではtxt2imgで20stepの時に10秒くらいかかるのが、g5.2xlargeでは2秒強くらいで完了します。さすが早いです。