Google Colab で Stable Diffusion Web UI を使う

当ページのリンクには広告が含まれています。
注意

現在、Google Colab で Stable Diffusion Web UI を利用することは制限されているようです。

私の環境では「今後の Colab の利用を制限」とまでは記載されていませんが、以下の通り「許可されていないコードを実行している場合、警告なしでランタイムが終了する」との記載が出ています。

本記事をもとに Google Colab で Stable Diffusion Web UI を利用した結果、Google アカウント自体が制限されてしまう可能性もゼロではありませんので、ご利用は自己責任にてお願いします。

こんにちは、ふじみやです。

これまで、ローカル PC で Stable Diffusion を使って AI 画像を生成する方法についてご紹介をしてきましたが「家の PC にグラフィックボードなんてないよ」「古い PC を使ってるからスペックを満たさない」という方もいらっしゃると思います。

今回はそういった方向けに Google Colab という無料のオンラインサービスを使って Automatic1111版 Stale Diffusion Web UI(以下「Stable Diffusion Web UI」といいます。)を利用できるようにします。

目次

Google Colab とは

Google Colab(正式名称「Colaboratory」)はブラウザ上で Python を記述し、実行できるサービスです。

ブラウザ上で利用できますので、自宅に PC がない方でも iPad 等からアクセスすることで Python を動かすことができますし、自宅に PC があっても Python 環境を構築する必要がありませんので、お手軽に Python の学習等に利用可能です。

また、特筆すべきは GPU を料金なしで利用できるというサービスで、お持ちの PC にグラフィックボードが搭載されていなくても Colab を使えば GPU が必要な処理ができるようになるため、Stable Diffusion Web UI も利用できるというわけなのです。

Stable Diffusion Web UI のインストール

Stable Diffusion Web UI の GitHub 内にある README.md には以下の通り「スペックを満たさないのであれば(Google Colabのような)オンラインサービスを代わりに利用して」との記載があります。

Make sure the required dependencies are met and follow the instructions available for both NVidia (recommended) and AMD GPUs.

Alternatively, use online services (like Google Colab):

stable-diffusion-webui/README.md at master · AUTOMATIC1111/stable-diffusion-webui · GitHub

Google Colab で 新規ノートブックの作成

Google Colab にアクセスし「ファイル」より「ノートブックを新規作成」を選択してください。

新しいノートブックが開いたら「編集」より「ノートブックの設定」を選択し、ハードウェアアクセラレータは「GPU」を選択して「保存」をクリックしてください。これでこのノートブックで GPU を利用できるようになります。

なお、ノートブックの名前をクリックすると名前を変更することもできますので、必要であれば名前を変更しておきましょう。

Google Drive との接続

Google Colab のデータは Google Drive に保存することができます。ですので、まずは Google Drive と ノートブックを接続するようにしましょう。

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

入力後はCTRL + ENTERまたはセル左側の▶ボタンにて実行をすることができます。

実行をしてしばらく経つと Google Drive へのアクセス許可が求められるかと思いますので許可をしましょう。

Mounted at /content/gdriveと表示されたら実行完了です。

リポジトリのダウンロード

Google Drive との接続が完了したら、次はリポジトリをダウンロードしましょう。先頭の「!」は入力をしないとエラーとなりますので、消さないようにしてくださいね。

!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

リポジトリの入手が完了すると、ウィンドウ左側のフォルダマークをクリックしてみましょう。

以下のようにフォルダが沢山できているのが分かると思いますが、/contentというフォルダの中にstable-diffusion-webuiというフォルダができていれば OK です。

モデルのダウンロード

リポジトリのダウンロードが完了したら次はモデルを入手しましょう。

Hugging Face にて配布されているモデルのうちText-to-Imageでダウンロード数が比較的多い 「stabilityai/stable-diffusion-2-1」を今回はダウンロードします。

Hugging Face の該当ページに進んだら「Files」をクリックし、ダウンロードしたいモデル( .ckpt または .safetensors)をクリック。「download」を右クリックしリンクのコピーをしましょう。

そうしたら、次のコマンドを入力して実行。!wget以降のリンクは先ほどコピーしたリンクです。

%cd /content/stable-diffusion-webui/models/Stable-diffusion/
!wget https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors

ダウンロードが完了すると/content/stable-diffusion-webui/models/Stable-diffusion/内に .safetensors または .ckpt ファイルがダウンロードされていることが確認できます。

(参考)Google Drive を利用したモデルファイルのコピー

何らかの理由でwgetコマンドで指定する URL が使えない場合もあります。そういった場合に対応するため、上記の代わりにモデルファイルなどは Google Drive に保存しておいて、Colab を使う際にコピーするようにしてみてもいいかもしれません。

!cp /content/gdrive/MyDrive/Stable_Diffusion_Models/* /content/stable-diffusion-webui/models/Stable-diffusion

Stable Diffusion Web UI の起動

ここまでできたらもうすぐです。次のコマンドを入力・実行してください。

%cd /content/stable-diffusion-webui/
!python launch.py --share --xformers --enable-insecure-extension-access --medvram

すると、何やら処理がはじまりますのでしばらく放置。以下が表示されたら URL をクリックしましょう。

Running on public URL: https://・・・.gradio.live 

すると新しくタブが立ち上がり、Stable Diffusion Web UI が利用できるようになります。

追記

Stable Diffusion Web UI を起動しようとした際に次のようなエラーが出ることがあります。

RuntimeError: Detected that PyTorch and torchvision were compiled with different CUDA versions. PyTorch has CUDA Version=11.7 and torchvision has CUDA Version=11.8. Please reinstall the torchvision that matches your PyTorch install.

PyTorch という機械学習用のライブラリのバージョンと torchvision というデータセットのバージョンが異なっているためにエラーが発生しているとのこと。

エラーに対処するための方法は以下で記事にしていますので、問題が発生した方は試してみてください。

Stable Diffusion Web UI を試してみる

早速試してみました。結構処理速度がはやくて驚いています。

生成画像の保存先

生成した画像は/content/stable-diffusion-webui/outputs/txt2img-imagesの中に保存されます。

ランタイム接続が切れるとデータは全て消去されてしまいますので、残しておきたい画像はローカルにダウンロードするか、次のコマンドを入力して Google Drive にコピーしておきましょう。

!cp -r /content/stable-diffusion-webui/outputs/* /content/gdrive/MyDrive/

一度上記を実行したらコードをちょっとだけ修正(txt2img-imagesの追記)。これでtxt2img-images内の全ディレクトリ・ファイルのみコピーするようになります。

!cp -r /content/stable-diffusion-webui/outputs/txt2img-images/* /content/gdrive/MyDrive/txt2img-images/

ランタイム接続が切れた後の再実行

ノートブックにコードは残ったままになっているかと思いますので、上から順に1つずつ実行させていくことで Stable Diffusion Web UI が再度利用できるようになります。

コードの全体像

上記ではセルごとにご説明をしてきましたので、最後に私のノートブックの構成をまとめておきます。

# Google Drive をマウント
from google.colab import drive
drive.mount('/content/gdrive')

# Stable Diffusion Web UI を入手
!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

# モデルデータを Google Drive からコピー
!cp /content/gdrive/MyDrive/Stable_Diffusion_Models/* /content/stable-diffusion-webui/models/Stable-diffusion

# Stable Diffusion Web UI を実行
%cd /content/stable-diffusion-webui/
!python launch.py --share --xformers --enable-insecure-extension-access --medvram

# 生成した画像を Google Drive にコピー
!cp -r /content/stable-diffusion-webui/outputs/txt2img-images/* /content/gdrive/MyDrive/txt2img-images/

まとめ

Google Colab で Stable Diffusion が使えるというのは知っていましたが、実際に試してみて画像生成速度がそんなに遅くないと分かり非常に驚きました。

無料版ではずっと接続をしておくことはできませんが、それでもエントリークラスのゲーミング PC と同等程度の能力は持っているのではないかと思いますので「これで無料なの??なんで??」というレベルです。

初心者の方だと「コード」という単語でハードルが高そうに思えるかもしれませんが、基本的にはコピー&ペーストで対応できるかと思いますし、上記でご紹介したモデル以外にも応用が可能ですので皆さんもぜひ試してみてください。

それではまた。

この記事が気に入ったら
フォローしてね!

目次