MarkdownとBullet Journal

いわゆるプログラマーのつぶやき

【エラー対策】Stable Diffusion web UI (AUTOMATIC1111)をGoogle colabで使う

AUTOMATIC1111のGigHubサイトにある例

2022.11.26追記

この記事の代わりに、よりシンプルでエラーも出ないcolabノートに対応した下の記事を推奨

programmingforever.hatenablog.com

2022.10.3追記

AUTOMATIC1111がVer1.2になり手順が変更されたため内容を修正。変更点としてweb UI(生成画面)が立ち上がった時にユーザー名とパスワードを聞かれるので、オリジナルコードのままならユーザー名:me、パスワード:qwerty で使える。

Stable Diffusion web UI (AUTOMATIC1111)とは

Stable Diffusion web UIは、MidJourneyやDreamStudioの様にweb上のユーザーインターフェースで画像作成や加工が操作できるアプリ。自分だけがアクセス出来るサーバーをローカルに立ち上げて利用する。

AUTOMATIC1111はweb UIの一種。Stable Diffusionの人気フォークであり、Google ColabやWindowsに導入できる。

想定する読者

  • 初心者
  • AUTOMATIC1111 の機能を試したい
  • Google colabで使いたい
  • インストールがうまく行かず悩んでいる

次の記事紹介

起動の高速化やAUTOMATIC1111でWaifu Diffusion、DreamBoostで作ったオリジナルモデルなどを使う方法をまとめている。今回の内容をクリアされた方向けにまとめている。

programmingforever.hatenablog.com

AUTOMATIC1111 の豊富な機能一覧

色々と便利に使える機能が揃っている。

  • オリジナルの txt2img および img2img モードを用意
  • ワンクリックでスクリプトをインストールして実行
  • Outpainting:画像の外部拡張機能
  • Inpainting:画像内の加工機能
  • Prompt matrix:プロンプトの差がわかる比較画像生成機能
  • Stable Diffusion upscale:RealESRGANを適用する「txt2imghd」機能
  • Attention:プロンプトの強調部を()、抑制部[]で指定できる
  • Loopback:「img2img」の繰り返しを自動実行する機能
  • X/Y plot:パラメーター数値変更による比較画像生成機能
  • Textual Inversion:自分の学習データを基にする画像生成機能
  • エクストラタブ:
  • アスペクト比オプションのサイズ変更
  • サンプリング方法の選択
  • いつでも処理を中断
  • 4GBビデオカードのサポート
  • バッチのシードの修正
  • プロンプトの長さ検証
  • PNG にテキストとして追加された生成パラメーター
  • 既存の図の生成パラメーターを表示するためのタブ
  • 設定ページ:NSFWフィルターのON/OFFなど多彩な設定項目
  • UI からのカスタム コード実行
  • UI 要素のマウスオーバーヒント
  • テキスト設定を介してUI要素のデフォルト/ミックス/最大/ステップ値を変更可能
  • ランダムアーティストボタン
  • タイリングサポート:テクスチャのようにタイル化できる画像を作成
  • プログレスバーとライブ画像生成プレビュー
  • Negative prompt
  • Styles
  • Variations
  • Seed resizing
  • CLIP interrogator
  • Prompt Editing
  • Batch Processing
  • Img2img Alternative
  • Highres Fix
  • LDSR Upscaling

優れたパフォーマンス

インストール時間は10分もかからない程度で済み、画像生成も2回目以降は512x512なら5秒程度で生成する速さで申し分ない(20STEP、colab無料版)。速さは力であり、無料で美しい絵を連続生成していると実に楽しい。

インストールのエラー回避

以下、Google colabにAUTOMATIC1111をインストール方法を解説する。

しかしながらGitHub上のコードは日々変化しているし、元々インストール中にエラーが多発するなど開発者用バージョンに近いレベルで提供されているので落とし穴も多い。もちろん慣れた方や環境によってはすんなりインストールできるだろうし、あるいは相当な試行錯誤を繰り返す可能性もある

そこでインストール時に発生するエラーの対応を記載したが、あくまで参考程度としてほしい。※最後に不具合対策をまとめて記載する

※2022/10/4時点でインストールできるAUTOMATIC1111のバージョンはStableDiffusionUI-Voldemort V1.2.ipynb

 

Google colabを触ったことがない方

初心者向けにStable DiffusionをGoogle colabで動かす手順を以前に記載した。30分程度で体験出来ると思うので、Google colabが初めての方は慣れる意味で先にこちらの実践をお勧めする。経験のある方はスキップ。

programmingforever.hatenablog.com

 

AUTOMATIC1111のcolabへの導入手順

ではインストール手順を順に説明する。

現在のバージョンはV1.2。StableDiffusionUI-Voldemort V1.2.ipynb

①web UIのサイトにアクセス

github.com

Readme.mdの中の「Installation and Running」の中に、「 Colab, maintained by Akaibu」、があるのでクリックすると Google colabのノートブックが現れる。

Google Colabの初期画面

②導入ステップ

  • 編集ダブで「ノートブックの設定」を選び、GPUにする(デフォルトでGPUになっているが念の為)
  • Hugging Faceのアクセストークンの入力欄が中程の右側にあるのでコピペする

  • 1番上のセルの左にある白い矢印ボタンをクリック。Googleが作ったものではない警告が出るがそのまま了承

  • ここでいきなりエラーが出るが、無視して問題ない
  • 2番のセルを実行

3番のセルを実行する前に、モデルの承認と、Hugging Faceのアクセストークン入力(画面右側)を済ませる。

モデルの承認に関しては、「Normal 1.4 model」のコードを確認する。

#@title Normal 1.4 model
# get a token from https://huggingface.co/settings/tokens
user_token = "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" #@param {type:"string"}
user_header = f"\"Authorization: Bearer {user_token}\""
!wget --header={user_header} https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt -O /content/stable-diffusion-webui/model.ckpt

コードを確認すると、ここで使用するモデルは"stable-diffusion-v-1-4-original"となっており、"stable-diffusion-v-1-4"とは別モデルなので、記載されているURLのモデル名までをコピペしてHugging FaceサイトにアクセスしてAccept Repositoryボタンをクリックして承認を済ませる(承認済みの場合は承認ボタンが表示されない)。あるいは使用するモデルを変更する。

※例えば今回の場合の承認を行うURL先は、`https://huggingface.co/CompVis/stable-diffusion-v-1-4-original'

  • 上記の対応を行なった上でセルを実行
  • 続いて最後のセルまで順番に実行する

すると出力画面に`https://*****.gradio.app'のURLが現れるのでクリックするとweb UIが起動する。

Ver.1.2から新しくweb UI起動時にユーザー名とパスワードを入力するようになったので(ページ公開を想定したものと思われる)、最後のセルの中で記載されている通り、ユーザー名:me、パスワード:qwerty を入力すると使える。このユーザー名とパスワードは自由に編集できる。

③web UI画面

起動したweb UIの画面を示す。

txt2imgの例:プロンプト:cat and dog

ここではプロンプト指定で猫と犬の絵を出した。

※異様に動作が遅い場合は不具合なので後述の解決ポイントを参照

不具合時の解決ポイントのまとめ

以下にチェックポイントを列記する。一度コツをつかんだら難なくかわせると思う。

  • エラーに関してはcolabの無料版とcolab proの差は無い。proにしたら治るという訳ではない
  • Google colabのタブが複数存在していたら不要分を消す
  • Hugging Faceのアクセストークンがなぜか使えないこともあるので作り直してコピペする
  • 使用するモデルを確認して許諾を得る(特別なモデルを使用している場合がある)
  • エラーが発生したら一からやり直す。 やり直しはクラウド側の「ランタイムを接続解除して再起動」を最初に行った上で一からセルを実行する。
  • それでもおかしい場合はPCのブラウザの再起動を行なった上で最初からやり直す

起動したweb UIが異常に遅い時

  • Night Eyeの様なダークモードに画面書き換えを行うブラウザの拡張機能をOFFにする
  • ブラウザやPCの再起動などからやり直す