-
Stable DiffusionはGPUメモリを大量に消費するモデルのため、実行する際には12GB以上のGPUメモリを持つデバイスを使用してください
-
2023年9月時点での動作を確認していますが、
huggingface/diffusers
の今後の更新によってはセットアップに失敗する可能性があります。 -
huggingface/diffusers
をgit pullする際はdocker/diffusers-pytorch-cuda/Dockerfile
に書き込んだユーザー情報を削除してください -
Anacondaで環境構築する際はStable DiffusionをAnacondaで実行するを確認してください
以下の環境で動作済み
- Ubuntu 20.04
- Git 2.25.1
- Docker 24.0.2
- CUDA Drive (nvidia driver) 515.76
-
サーバー(PC)にGit, Docker, docker-compose, CUDAをインストール
-
サーバーのホームディレクトリ上に
huggingface/diffusers
をclonegit clone https://github.com/huggingface/diffusers.git
-
diffusersディレクトリが作成されるので、cdコマンドでそのディレクトリに移動する
cd diffusers
-
diffusersディレクトリ上にstable_diffusion_setupをclone
git clone https://github.com/w034ff/stable_diffusion_setup.git
-
stable_diffusion_setupディレクトリが作成されるので、cdコマンドでそのディレクトリに移動する
cd stable_diffusion_setup
-
現在ログイン中のIDなどを
.env
に書き込む注意:
.env
ファイルは隠しファイルとなっているので注意してください-
以下のコマンドでuser_name, uid, gidを調べる
id
出力例
uid=9999(user_name) gid=9999(group_name) groups=9999(group_name)
-
.env
に先ほど調べたuser_name, uid, gidを記述USER_NAME=user_name USER_UID=9999 USER_GID=9999
注意:
.env
にuser_name, uid, gidを正確に記入しなければ、コンテナの外部からファイル削除などの操作が難しくなります -
-
ユーザー情報を
../docker/diffusers-pytorch-cuda/Dockerfile
に書き込むpython add_Dockerfile.py
上記の方法でビルドできない場合は
../docker/diffusers-pytorch-cuda/Dockerfile
の最後の行に、以下の内容を直接書き込んでください``` ARG USER_NAME=${USER_NAME} ARG USER_UID=${USER_UID} ARG USER_GID=${USER_GID} WORKDIR /workspace RUN groupadd --gid $USER_GID $USER_NAME && \\ useradd --uid $USER_UID --gid $USER_GID -m $USER_NAME USER $USER_NAME ```
-
以下のコマンドでDockerのコンテナをビルドする
docker compose up -d --build
-
以下のコマンドでDockerのコンテナ環境に入る
docker exec -it diffusers bash
-
venvで仮想環境を作成する(作成する際は仮想環境名を日付にすることをオススメします)
python3 -m venv [yyyy_mm_dd]
-
仮想環境をActivateする
source [yyyy_mm_dd]/bin/activate
-
Stable Diffusionの実行に必要なモジュールをインストールする
pip install . && pip install wandb xformers bitsandbytes scipy
-
このリポジトリではText-to-ImageとDreamBoothの実行方法について解説します。 詳しくはText-to-Imageで画像を生成する、DreamBoothで画像を生成するを確認してください
-
その他のStable Diffusionのモデルについては、各々実行方法を調べてください