Google ColabでStable Diffusion WEB UI Forgeを起動するコードについて

今回は、いよいよGoogle ColabのノートブックでStable Diffusion Web UI Forgeを起動し、実際に画像生成を行う手順を説明します。
この方法を使えば、Google Driveと連携して生成結果を自動保存しながら、強力なクラウド環境を使った画像生成をスマホで実行できます。

Pythonコードを順に説明していきます。

1. Google Driveのマウント

まず、生成した画像やモデルを保存するためにGoogle DriveをColabにマウントします。Google Driveは、生成した画像ファイルやモデルを存する場所として使用されます。

```
#google driveに接続 /content/drive/MyDrive/がpathになる

from google.colab import drive
drive.mount('/content/drive')
```

- マウントが実行されるとColab上で、Google Driveと接続され、フォルダ使うことができるようになります。
これにより生成した画像ファイルを保存したり、GoogleDriveに置いているファイル(チェックポイントやLoRA)を読み込むことができるようになります。
※接続はコード実行中の一時的なもので、毎回起動時に接続することになります。

2. Stable Diffusion Web UI (Forge)のインストール

次に、以下のコードでStable DiffusionのWeb UI ForgeをGitHubからクローンし、必要なフォルダに移動します。

```
!git clone https://github.com/lllyasviel/stable-diffusion-webui-forge.git
%cd /content/stable-diffusion-webui-forge
```

ポイント:

- Web UI Forgeは、Stable DiffusionをGUIで操作できるインターフェースです。

- クローン実行後、作業ディレクトリをクローンしたフォルダに移動しています。

3. 実行時の引数設定

Web UIの実行時に使う引数を設定しておきます。

```
cmd_args = "--share --xformers --theme dark"
```

ポイント:

- `--share`: 外部からアクセス可能なリンクを生成します。

- `--xformers`: メモリの最適化を行い、生成処理を高速化します。

- `--theme dark`: Web UIのテーマをダークモードにします。

4. 拡張機能の導入

次に、いくつかの重要な拡張機能をインストールします。これにより、生成画像の品質UPや、プロンプトの入力補完など、柔軟な生成が可能になります。adetailerだけは必須です。

```
!git clone https://github.com/Bing-su/adetailer.git /content/stable-diffusion-webui-forge/extensions/adetailer
!git clone https://github.com/DominikDoom/a1111-sd-webui-tagcomplete /content/stable-diffusion-webui-forge/extensions/a1111-sd-webui-tagcomplete
!git clone https://github.com/adieyal/sd-dynamic-prompts /content/stable-diffusion-webui-forge/extensions/sd-dynamic-prompts
```

ポイント: 拡張機能は大量に公開されていますが、最低限この3つがあれば十分効率的にに生成することができます。

- `adetailer`: 高精度な顔や手などのディテール補完ツール。SD1.5では必須

- `tagcomplete`: プロンプト補完ツールで、プロンプト入力をサポートします。

- `dynamic-prompts`: プロンプト入力により、ある程度ランダムな生成を可能にします。


5. 必要なフォルダの作成

Stable Diffusionに必要なフォルダ(モデルやLoRAの保存先)を作成します。

```python
import os
dir_path = "/content/stable-diffusion-webui-forge/models/Stable-diffusion/"
os.makedirs(dir_path, exist_ok=True)
dir_path = "/content/stable-diffusion-webui-forge/models/Lora/"
os.makedirs(dir_path, exist_ok=True)
```

ポイント:

- モデルやLoRAを配置するためのフォルダを事前に用意しておきます。

- これにより、必要なファイルを適切な場所に保存し、Web UIから読み込めるようにします。

6. Google Driveとの連携


Google Driveにある設定ファイルやモデルを、Colabのランタイムにシンボリックリンクで接続します。

```python
sdpath = "/content/drive/MyDrive/Notebooks/Stable Diffusion/"
outputspath = sdpath + "outputs"
modelpath = sdpath + "model"

if not os.path.exists(outputspath):
   !mkdir -p -v "{outputspath}"

link_path = "/content/stable-diffusion-webui-forge/outputs"
if not os.path.exists(link_path) and not os.path.islink(link_path):
    !ln -s -v "{outputspath}" "{link_path}"

if not os.path.exists(modelpath):
   !mkdir -p -v "{modelpath}"
!ln -s -v "{modelpath}" "/content/stable-diffusion-webui-forge/models/Stable-diffusion"
```

ポイント:

- `outputspath` は生成された画像の保存場所です。Google Drive上に保存することで、後からアクセスできます。

- `modelpath` はGoogle Driveに配置したモデルのパスです。これにより、生成時に使用するモデルをDrive上から読み込めるようになります。

7. Web UIの起動


設定が完了したらWeb UIを起動します。

```python
!python launch.py {cmd_args}
```

ポイント:

- `launch.py`を実行すると、Web UIが立ち上がり、画像生成が可能になります。

- `--share`オプションによって、Colabの外部リンクが発行されるため、そちらからアクセスしてUIを操作できます。

まとめ

この手順で、Google Colab上にStable Diffusion Web UI Forgeをセットアップし、Google Driveと連携した効率的な画像生成環境を構築できます。  

- Google Driveを利用することで、生成画像やモデルファイルをクラウドに保存・管理。

- Web UI Forgeを使うことで、大量生成や柔軟なプロンプト設定が可能。

- After DetailerやTagcompleteなどの拡張機能で、生成をさらに効率化、高品質化できます。

この方法を使うと、パソコンのリソースに依存せず、Googleの強力なクラウド環境で高品質な画像生成を楽しむことができます。

いいなと思ったら応援しよう!