今回はPaperspaceでStable DiffusionのWebUIであるAUTOMATIC1111を使用する手順を解説します。
PaperspaceはGoogle Colabのようなクラウドコンピューティングサービスで、機械学習などの用途でよく利用されますが、毎月の定額制で高性能GPU使い放題のプランが用意されており、Stable Diffusionなどを使ったAIイラストレーターにも人気のサービスです。
Paperspaceの登録方法から、実際に仮想マシン上でAUTOMATIC1111を動かすための手順、Jupyter Notebookについて解説します。無料でも使用できるプランもありますので、是非イラスト生成に活用してみてください。
また当ブログのStable Diffusionに関する記事を以下のページでまとめていますので、あわせてご覧ください。
Paperspaceの登録方法
クラウドコンピューティングサービスPaperspaceの登録方法については、以下のページで解説しています。
本ページのPaperspaceの使い方を試すのは無料プランで問題ありませんので、登録を済ませておいてください。
また、高性能なGPUが使える有料プランに移行する手順についても以下のページで解説していますので、あわせてご覧ください。
Stable Diffusionとは
Stable Diffusion(ステーブル・ディフュージョン)は2022年8月に無償公開された描画AIです。ユーザーがテキストでキーワードを指定することで、それに応じた画像が自動生成される仕組みとなっています。
NVIDIAのGPUを搭載していれば、ユーザ自身でStable Diffusionをインストールし、ローカル環境で実行することも可能です。
(出典:wikipedia)
WebUI AUTOMATIC1111
AUTOMATIC1111はStable Diffusionをブラウザから利用するためのWebアプリケーションです。AUTOMATIC1111を使用することで、プログラミングを一切必要とせずにStable Diffusionで画像生成を行うことが可能になります。
AUTOMATIC1111の公式リポジトリは以下となります。
Jupyter Notebookを実行する準備(仮想マシンを起動する)
AUTOMATIC1111をインストール、起動するためのJupiter Notebookを動作させる仮想マシンを準備します。
まず、先ほど紹介した「Paperspaceの登録方法の解説」のページに沿って登録を行うと、以下の画面が表示されます。「CREATE」をクリックします。
ランタイムを選択する画面に移りますので、右下の点線の四角が表示されている「Start from Scratch」を選択します。
続いて使用するマシンを選択します。AUTOMATIC1111を使って画像生成する際にはGPUを使用しますので、今回はFree-GPUを選択します。(鍵マークがついているユニットは有償プランの場合に使用できます)
プランは後からアップデートできますので、まずは無料で利用できるGPUを試しましょう。
続いてマシンを連続使用する時間を設定します。無料プランの場合は最大6時間まで設定できます。今回はとりあえず4時間を選択しました。
選択したら左下の「START NOTEBOOK」をクリックします。
マシンの起動に成功すると、以下の画面が表示されます。
AUTOMATIC1111のJupyter Notebookを実行するため、画面左端のメニューのJupyter Labのアイコンをクリックします。
Jupyter Labが起動し以下の画面が出たら準備完了です。
以下のメッセージが出て起動できない場合
仮想マシン起動時に以下のようなエラーメッセージが表示され、起動できない場合があります。この場合は、サーバーが混みあっていてマシンが空いてない状態ですので、少し時間をおいてから再度試してみてください。
PaperspaceでAUTOMATIC1111を実行するJupyter Notebook
ここからは、実際にPaperspaceのサーバー上でAUTOMATIC1111をインストール、実行するためJupyter Notebook(Pythonファイル)について解説します。
PaperspaceでAUTOMATIC1111の環境構築をするにあたり、既存のJupyter Notebookで良いものが見当たらなかなったため、私が作成しました。
初心者の方にもわかりやすいように、最小限のコードで実行できるように作成しました。
ノートブックのダウンロード
Jupyter Notebookは以下のGitHubリポジトリからダウンロードできます。
GitHubのリポジトリにアクセスしたら右上の「<> Code」というボタンをクリックします。
メニューから「Download ZIP」をクリックし、ファイルをダウンロードします。
ダウンロードしたZIPファイルを展開すると、「murasanlab-paperspace-automatic1111v1.ipynb」というJupyter Notebookのファイルがあります。このファイルをPaperspaceの仮想マシンで実行するだけで、AUTOMATIC1111のWebUIを起動することができます。
コード解説
ここからは、先ほどダウンロードした「murasanlab-paperspace-automatic1111v1.ipynb」の内容について解説します。とりあえず使うだけであれば、内容がわからなくても実行するだけでWebUIが動作しますので、流し読みでOKです。
AUTOMATIC1111本体のGitHubリポジトリをPaperspaceの仮想マシンにダウンロードします。Google Colabと異なり、ダウンロードしたAUTOMATIC1111のディレクトリは仮想マシン内に残りますので、初回だけ実行すればOKです。
#AUTOMATIC1111のダウンロード
%cd /notebooks
!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
%cd /notebooks/stable-diffusion-webui
続いてAUTOMATIC1111のアップデートを行います。こちらはAUTOMATIC1111の新しいバージョンがリリースされ、アップデートした時だけ実行すればOKです。
#AUTOMATIC1111アップデート(アップデートが必要な時のみ実行)
%cd /notebooks/stable-diffusion-webui
!git checkout master
!git pull
Stable Diffusionで使用したいモデルとVAEをダウンロードします。今回のノートブックでは、Vすき焼きさんのSukiyakiMixV1をダウンロードするコードが記述してあります。
他のモデルを使いたい場合は、下にwgetコマンドでモデルパスを追加してください。(Paperspaceはストレージが少ないのでご注意ください)
モデル、VAEについても一度ダウンロードすると、仮想マシン内のディレクトリに残りますので1度だけでOKです。
#モデルのダウンロード(ここにダウンロードしたいモデルを追加)
%cd /notebooks/stable-diffusion-webui/models/Stable-diffusion
!wget https://huggingface.co/Vsukiyaki/SukiyakiMix-v1.0/resolve/main/SukiyakiMix-v1.0-fp16.safetensors
#VAEのダウンロード(ここにダウンロードしたいVAEを追加)
%cd /notebooks/stable-diffusion-webui/models/VAE/
!wget https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt
%cd /notebooks/stable-diffusion-webui
最後にAUTOMATIC1111のWebUIを起動します。初期パスワードはユーザー名:me, パスワード:qwertyとなっています。変更したい場合は最後の行の「me:qwerty」の個所を変更してください。
#WebUI起動(ユーザー名:me, パスワード:qwerty)
%cd /notebooks/stable-diffusion-webui
!python launch.py --share --gradio-auth me:qwerty
AUTOMATIC1111 WebUIを起動
ここからたJupyter Notebook「murasanlab-paperspace-automatic1111v1.ipynb」を使って、実際にPaperspaceの仮想マシンにAUTOMATIC1111をインストールし、起動する手順を解説します。
ブラウザのJupyter Lab画面の左の赤枠部分が仮想マシンのディレクトリになります。
まずは先ほど「murasanlab-paperspace-automatic1111v1.ipynb」のファイルを赤枠の中にドラッグ&ドロップして、仮想マシンにアップロードします。
アップロードが完了すると、「murasanlab-paperspace-automatic1111v1.ipynb」のファイル名が表示されますのでダブルクリックして開きます。
(私の場合は一度実行してしまっているのでwebuiのフォルダがありますが、初回の場合は表示されません)
ファイルを開くと右側のエディタエリアにコードが表示されます。
このコードのセルを上から順番に実行していきます。
セルをマウスで選択すると青い枠で囲まれますので、この状態で画面上部のメニューの実行ボタン(▶)をクリックすると、そのセルの処理が実行されます。
初回は全てのセルを上から順番に実行してください。
4番目のセルまで実行したらWebUIが起動しますのでしばらく待ってください。
起動が完了すると、以下の画面のようにリンクが表示されますので、「Running on public URL:」の方のリンクをクリックしてください。
リンクをクリックすると以下のログイン画面が表示されます。
ユーザー名とパスワードを入力して「Login」をクリックします。(初期はUser:me、Pass:qwerty)
ログインできれば画像生成の準備が完了しました。
画像を生成する
ログインに成功すると、以下の画面が表示されます。
赤枠の入力欄にプロンプトを入力します。(今回はテストで「a girl」とだけ入力しました)
「Generate」ボタンをクリックすると画像生成が始まりますので、完了するまで待ってください。
画像生成が完了すると、赤枠の部分に生成された画像が表示されます、
AUTOMATIC1111のWebUIの使い方は以下のページで詳しく解説していますので、参考にしてください。(ローカル環境、Google Colabと使い方は同じです)
また、自然言語処理モデルGPT-3を使って呪文を生成する方法についても以下のページで解説していますので、あわせてご覧ください。
仮想マシンを停止する
画像生成を終えたら、Paperspaceの仮想マシンを停止させましょう。
仮想マシンを停止させるには、Jupyter Labの左上のメニューで「File」→「Shut Down」をクリックします。
確認のダイアログが表示されますので、「Shut Down」をクリックします。
以下のメッセージが表示されたら、仮想マシンのシャットダウン処理が完了しましたので、ブラウザを閉じて終了です。
AUTOMATIC1111実行時に発生するエラー対策
Extensions(機能拡張)使用時のエラー
Extensionsタブで拡張機能をインストールする際、以下のようなエラーが発生する場合があります。
発生するエラー
「Install」をクリックすると以下のようなエラーが発生します。
AssertionError: extension access disabled because of command line flags
対策方法
先ほど紹介したPaperspaceのJupyter Notebookの最後のセルの起動コマンドを以下のように修正してください。
修正前
#WebUI起動(ユーザー名:me, パスワード:qwerty)
%cd /notebooks/stable-diffusion-webui
!python launch.py --share --gradio-auth me:qwerty
修正後
「launch.py」実行時にオプションで「–enable-insecure-extension-access」を指定します。
#WebUI起動(ユーザー名:me, パスワード:qwerty)
%cd /notebooks/stable-diffusion-webui
!python launch.py --share --gradio-auth me:qwerty --enable-insecure-extension-access
これでインストール時のエラーを回避できます。
GitHubのコードも後日修正します。
WebUI起動時のエラー
WebUI起動時に「RuntimeError: Cannot add middleware after an application has started」というエラーが発生する場合の対処法です。
発生するエラー
起動コマンド「!python launch.py –share –gradio-auth me:qwerty –enable-insecure-extension-access」を実行すると以下のようなエラーが発生します。
This share link expires in 72 hours. For free permanent hosting and GPU upgrades (NEW!), check out Spaces: https://huggingface.co/spaces
Traceback (most recent call last):
File "/notebooks/stable-diffusion-webui/launch.py", line 295, in <module>
start()
File "/notebooks/stable-diffusion-webui/launch.py", line 290, in start
webui.webui()
File "/notebooks/stable-diffusion-webui/webui.py", line 163, in webui
app.add_middleware(GZipMiddleware, minimum_size=1000)
File "/usr/local/lib/python3.9/dist-packages/starlette/applications.py", line 139, in add_middleware
raise RuntimeError("Cannot add middleware after an application has started")
RuntimeError: Cannot add middleware after an application has started
対策方法
以下のコマンドを実行するセルを追加してください。
WebUIを起動するセルを実行する前に、こちらのセルを実行します。
%cd /notebooks/stable-diffusion-webui
!pip install fastapi==0.90.1
フォルダ削除時のエラー(フォルダ内のファイルもまとめて削除)
Paperspaceではブラウザ上のファイルエクスプローラーでファイルを追加したり削除することがきますが、フォルダ内にファイルが残っていると削除することができません。
また、フォルダ内のファイルをすべて削除しているにもかかわらず、フォルダを削除しようとするとエラーが発生する場合があります。
このような時は、Jupyter Notebookのスクリプトでrmコマンドを使用することで、フォルダと中のファイルをまとめて削除できます。
#削除したいディレクトリに移動
%cd /notebooks/stable-diffusion-webui/extensions/
#削除コマンドを実行
%rm -r sd-webui-train-tools-delete
Paperspaceログイン時のエラー
ログインしようとすると以下のようなエラーが発生する場合があります。
このエラーが発生する場合は、一度ログアウトして、ログインしなおしてください。
その際、間違ってサインインページからIDとパスを入力するとエラーとなりますので、一度Paperspaceのトップページから入りなおすことをお勧めします。
構図やキャラクターのポーズを指定して生成する
これまで解説してきた手順で、プロンプトから画像を生成できるようになりました。しかし、プロンプトだけでは、どのようなポーズのキャラクターが出力されるかはガチャ的な要素であり、かなり試行回数を踏まなければ理想的なイラストは出力できません。
そこで、AUTOMATIC1111の拡張機能でControlNetというツールを使用することで、イラストの構図やキャラクターのポーズを指定して生成できるようになります。
ControlNetを使った生成方法は以下のページで解説しています。
AUTOMATIC1111の拡張機能として使用できるOpenPose Editorがリリースされ、AUTOMATIC1111のUI内でポーズデータの作成から画像生成までを一貫して実行できるようになりました。
Stable Diffusionのテクニックを効率よく学ぶには?
Stable Diffusionを使ってみたいけど、ネットで調べた情報を試してもうまくいかない…
そんな時は、操作方法の説明が動画で見られるUdemyがおすすめだよ!
動画学習プラットフォームUdemyでは、画像生成AIで高品質なイラストを生成する方法や、AIの内部で使われているアルゴリズムについて学べる講座が用意されています。
Udemyは講座単体で購入できるため安価で(セール時1500円くらいから購入できます)、PCが無くてもスマホでいつでもどこでも手軽に学習できます。
Stable Diffusionに特化して学ぶ
Stable Diffusionに特化し、クラウドコンピューティングサービスPaperspaceでの環境構築方法から、モデルのマージ方法、ControlNetを使った構図のコントロールなど、中級者以上のレベルを目指したい方に最適な講座です。
画像生成AIの仕組みを学ぶ
画像生成AIの仕組みについて学びたい方には、以下の講座がおすすめです。
画像生成AIで使用される変分オートエンコーダやGANのアーキテクチャを理解することで、よりクオリティの高いイラストを生成することができます。
まとめ
今回はPaperspaceの使い方について解説しました。PaperspaceはStable Diffusionなどの生成AIを使っているAIイラストレータにも人気のクラウドコンピューティングサービスですので、ぜひ活用してみてください。
また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。
スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。
それでは、また次の記事でお会いしましょう。
コメント
コメント一覧 (4件)
いつも拝見させて頂いております。
インストール後、2回目の入り方が分からず毎回
https://murasan-net.com/index.php/2023/03/02/paperspace-automatic1111-howto/
上記の4番目のセルを実行しWebUIが起動させて
「Running on public URL:」の方のリンクをクリックして入るのですが、入るたびにストレージ
が増えて行って課金していてもすぐに容量が満タンになってしまいます。
どうしよもないのでしょうか?
大変お忙しいと思いますが教えて頂けると幸いです。
コメントありがとうございます。
ローカルのPCで実行するのと同じように、基本的に毎回仮想マシンを起動したら、4番目のセルを実行してWebUIを起動のが正しい手順となります。
容量については生成した画像がそのままサーバーに残ってしまっているのではないでしょうか?
またモデルやLoRA、拡張機能の追加でもどんどんデータは増えていきますので、生成した画像を削除しても足りない場合は課金を検討されるのが良いかと思います。(私も全く足りず課金していました)
そうなんですね。
忙しい中、返答頂きありがとうございます。
murasanのおかげで子供と一緒に楽しく画像を作って遊ぶことが出来てます(^^
課金して使用してみます。
色んな記事がありますが、murasanのがとてもわかりやすいです!
本当にいつも素敵な記事をありがとうございます。
返信が遅くなりまして申し訳ございませんでした。
こちらこそいいを読んでいただきありがとうございます。
GoogleColaboratoryはかなり大容量のストレージを利用できたともいますので、
ストレージ使用料が厳しいようでしたらそちらを検討するのもありかな?と思います。
ただGoogleは毎回インストールやモデルの読み込みが必要なので私は利便性から
Paperspace派です(^^;