オープンソースの画像生成AIをセットアップから使い方まで解説する『Stable Diffusion AI画像生成ガイドブック』(ソシム刊)発売中(→本のサポートページ

Stable Diffusion WebUI(1111)をGoogle Colabで使うノートブック【画像も設定も自動保存】

いきなり追記(4月22日)

Google Colaboratoryの無料プランではSD/WebUIを使えなくなったようです。以下の記事をご覧ください。

(追記は以上)

パソコンにGPUがない人向けに、AUTOMATIC1111版Stable Diffusion WebUI(以下SD/WebUI)をGoogle Colaboratoryで使うノートブックを作りました。下のGithubからどうぞ。

この種のノートブックはいろいろあるのですが、自分が考える仕様を満たすものがなかったため自分で作った次第です。

特徴は、生成した画像やSD/WebUIの設定がGoogleドライブに保存されることと、Googleドライブの容量をなるべく圧迫しないよう、プログラム本体や学習モデルのファイルは起動するたびにダウンロード、インストールすることです。

生成される画像や設定ファイルはGoogleドライブにありますので、GPU時間がなくなったりランタイムと接続解除されたりしても消えませんし、次回起動時に設定し直す必要もありません。

引き換えに、起動には7分から10分ほどかかります。

読み込む学習モデルは公式学習モデル(v2.1)でりだモデルです。

ほかの学習モデルを使ってみたい方は、ノートブックを自分のGoogleドライブにコピーしてソースコードを編集してください。「# でりだモデルのダウンロード」のあたりの行を複製して、ダウンロードしたい学習モデルのURL、ダウンロードして保存するときのファイル名を書き替えればよいでしょう。学習モデルに対応するVAEは「学習モデルのファイル名.vae.pt」というファイル名でダウンロードします。

SD/WebUIの日本語化についてです。このノートブックでは日本語化の拡張機能はインストール済みですので、以下のように操作します。

  1. 「Settings」タブをクリック
  2. 左ペインの「User Interface」をクリック
  3. 一番下の「Localization(requires restart)」を「ja_JP」にする
  4. ページ上部の「Apply Settings」をクリックする(忘れがち!)
  5. 「Reload UI」をクリック

日本語化のちょっと詳しい話は以下をご覧ください。

SD/WebUIの起動時間を短くするために、Stable DiffusionをGoogleドライブにインストールしてしまう方法もあります。そうすれば本体だけで5GBほど容量を食いますが起動はずっと早くなります。そういうノートブックも作りたい。Google Colaboratoryはダウンロードがとても早いので、学習モデルを毎回ダウンロードする方式でも待ち時間はそう長くならないでしょう。

Google Colaboratoryの基礎と使うときのポイント

Google Colaboratoryは機械学習の研究用にGoogleが提供しているPythonの実行環境です。無料でGPUも使えるなんてすごい、でもいいの? みたいな人向けのFAQがあります。「話がうますぎるように思えます。」のフレーズが最高です。

SD/WebUIのノートブックを開くと4つの枠があります。うち[SD/WebUIの起動/停止]、[設定のバックアップ]、[再起動]は「コードセル」といい、●に囲まれた▶がついています。一番下の「このノートブックについて」はテキストを書く専用の「テキストセル」です。

コードセルにある(▶)をクリックするとランタイム(仮想マシン)に接続します。このノートブックの場合GPU込みのランタイムで、無料ユーザーの場合のべ3時間ほど使うことができます。この時間を過ぎると下のようなダイアログボックスが出ます。

こうなると、次にGPUを使えるようになるまで12~24時間ほど待たなければなりません。SD/WebUIの実行にはGPUが必須ですのでなにもできなくなります。

(リソースがなくなるまでの時間や回復するまでの時間は非公開かつ不定です)

GPUリソースをなるべく長持ちさせるには、こまめにランタイムへの接続を解除(仮想マシンを停止)します。SD/WebUIのノートブックでは[SD/WebUIの起動/停止]の(▶)をもう一度クリックしてSD/WebUIを停止し、その次のコードセル[設定のバックアップ]を実行してください。

その上で「ランタイム」メニューの「ランタイムを接続解除」を選ぶと、ランタイムやGPUのリソース消費が止まります。

次にもう一度SD/WebUIを使いたいときは[SD/WebUIの起動/停止]のコードセルを実行します。ランタイムへの接続を解除すると、インストールしてあったSD/WebUIのプログラムやダウンロードした学習モデルはすべて消えるため、再接続してSD/WebUIを起動するとダウンロードするところからやり直しになり、また7分から10分ほど待つことになります。

そのほか、基本的な使い方はGoogle Colaboratoryのトップページ(https://colab.research.google.com/)へアクセスすると出てくる「ようこそ」のノートブックでもわかります。

つい先日公開されたPC Watchの記事も参考になるでしょう。

以下は、この次の記事(Stable Diffusion WebUIのインストールがとても簡単になっていた【令和最新版】)に書いた「画像を生成してみましょう」です。こちらにも載せておきます。

ちょっと画像を生成してみましょう

SD/WebUIが起動したので、せっかくだから画像を生成する方法を。

プロンプト欄に「beach」(砂浜)と入力して、「生成」ボタンを押してみると、下のような砂浜の画像が生成される。

(生成される画像は人それぞれ。出力された画像は「sd.webui」-「webui」-「outputs」-「txt2img-image」に保存されている)

「beach」を「sunset beach」(夕方の砂浜)にした作例。ちゃんと夕方になった。

さらに「sunset beach couple silhouette」(夕方の砂浜、カップルのシルエット)にした作例。これもその通りになった。

とまあ、こんな感じで入力した言葉に対してそれらしい画像が生成されるのだった。

楽しい!

Google Colaboratoryの場合、画像はGoogleドライブの「Colab Notebook」-「Stable Diffusion」-「outputs」に保存されます。

ところで我が家のパソコンにはRTX3060が入っています。ビデオカードとしてはミッドレンジながらVRAMが12GBあり、Stable Diffusionのような画像生成AIによいとされているモデルです。それならわざわざ時間制限があるGoogle Colaboratoryを使わなくてもいいのでは。はいその通りで、我が家では好きなときに好きなだけ画像を生成しています。ではなぜこういうノートブックを用意しているのか。それはまた今度記事にします。

追記(3月23日)

「また今度」の記事を書きました。SD/WebUIの解説本が出ます。よろしくお願いします。

書籍のサポートページ
『Stable Diffusion AI画像生成ガイドブック』(ソシム刊)サポートページ