見出し画像

PaperspaceでStableDiffusion web UI公式のJupyter Notebookを動かす方法

みなさん、こんにちはこんばんは!
Stable Diffusionのすごさに魅了されて色々と勉強中のAyleenです。

このノートでは、クラウド環境であるPaperspace GradientでAUTOMATIC1111版のStable Diffusion web UIを動かす方法を解説します。
公式で紹介されているインストール手順を図解&日本語化した物なので、Paperspaceに詳しい方や英語が読める方は公式のドキュメントを見るのが一番速いかもしれません。

また、このノートはLinuxの基本的な操作とPaperspace Gradientの事を多少は知ってる人向けの内容になっているので、「Paperspace Gradientって何?」と思った方は以下の参考記事を見て頂くとスムーズかもしれません。

はじめに

Paperspace Gradient用のStable Diffusion web UIは、Google Colabなどでも利用されているJupyter Notebookで動かすようになっています。そしてJupyter NotebookはPaperspace GradientのNotebookから動かす用になってます。(名前が似ててややこしい😭

そのため、ざっくりした全体の流れは以下のようになっています。

  1. Paperspace GradientのNotebookの作成と起動

  2. Stable Diffusion web UI用のJupyter Notebookの起動と設定

  3. Stable Diffusion web UIの起動と設定

このノートを読むことで、Paperspace Gradient上でStable Diffusion web UI公式のJupyter Notebookを利用して画像を生成し、それを手元のパソコンにダウンロードするところまでの全てがまかなえるようになっています!

盛りだくさんの内容ですが、ぜひ最後まで読んでみて頂けると嬉しいです。

Paperspace GradientのNotebookでやること

まずは全ての土台になるNotebookから作っていきます。
PaperspaceにおけるNotebookとは仮想マシンそのものなので、スペックの選択なども同時に行います。

Notebookの作成

始めに好きなプロジェクトの中に新しいNotebookを作成しましょう。
プロジェクトにNotebookが一つも無い場合は以下のような表示になってると思うので、「CREATE」ボタンを押してください。

プロジェクトの初期画面

すると以下のようなランタイムの選択画面になります。
ここでは「SHOW MORE」を押します。

ランタイム選択画面

すると今まで表示されていなかった様々なランタイムが表示されます。
その中から「Start from Scratch」を探し出して選択します。

ランタイムがたくさん表示された選択画面

ランタイムを選択したら、マシンの選択と自動シャットダウンまでの時間設定が出てくるまで画面を下にスクロールしてください。

マシンの選択と自動シャットダウンの設定

マシンは「Free」で選択できる中で一番スペックの高い物を選び、シャットダウンまでの時間は「6 Hours」にします。
次に「Advanced Options」をONにします。

Advanced optionsの設定

ONにすると色々な項目が表示されるので、Contianerという項目を探してください。
みつけたら、その中にあるContainer Nameに以下の内容を入力します。

cyberes/gradient-base-py3.10:latest
マシンのアドバンス設定

これでNotebookを起動する準備が整いました!🥳

Notebookの起動

「START NOTEBOOK」を押して、Notebookを起動してみましょう。

Notebookの起動ボタン

画面が切り替わって、以下のような画面になれば成功です!🙌
赤く囲んだ分が「Running」になっていることを確認してください。

Notebookが動いてる画面

Stable Diffusion web UI用のJupyter Notebookでやること

次に、いま起動したNotebook上でJupyter Notebookを動かしていきます。
Jupyter Notebookはipynbという形式のファイルとしてまとまっているので、それをダウンロードしてから起動させます。

Jupyter Notebookのダウンロード

ダウンロードを行うために、以下の画像を参考にサイドメニューから「Terminals」を開きましょう。

ターミナルを開くためのサイドメニュー

次に「+」ボタンを押すことでターミナルを起動することができます。

ターミナルの起動ボタン

無事にターミナルが起動すると、以下のように右下に表示されます。
ちなみにですが、ターミナルは同時に複数うごかせます。

ターミナルが起動したところ

次にターミナルにフォーカスを合わせて以下の内容を入力してください。
コピペが使えるので、クリップボードにコピーしてから貼り付けると楽ちんです。

wget https://raw.githubusercontent.com/Engineer-of-Stuff/stable-diffusion-paperspace/master/StableDiffusionUI_Voldemort_paperspace.ipynb

貼り付けたらエンターを押して実行してみてください。
以下の画像のように「‘StableDiffusionUI_Voldemort_paperspace.ipynb’ saved」と表示されればダウンロード完了です。

Jupyter Notebookのダウンロードの様子

Jupyter Notebookの起動

ダウンロードが終わったので早速Jupyter Notebookを起動してみましょう。
まずは「Terminals」から「Files」に戻りファイル一覧をリロードします。

以下の画像を参考にファイル一覧のリロードまでしてみてください。
サイドメニューから「Files」に移動し(1の矢印)、次にファイル一覧のリロードボタンを押します(2の矢印)。

ファイル一覧のリロード

リロードがうまくいくと、以下のようにダウンロードしたJupyter Notebookが表示されます。

ダウンロードしたJupyter Notebook

ファイル名の左側にあるオレンジ色のアイコンをクリックするとJupyter Notebookを起動できます。
起動すると右側が以下のような表示になります。

Jupyter Notebookが起動した様子

右下に表示されてるTerminalは「×」ボタンで隠すことができます。
Terminalを隠すと上記の画像のように右側を広々と使えます。
隠したターミナルはサイドメニューの「Terminals」に行けばまた表示することができるので、気軽に隠してしまってOKです。

Jupyter Notebookの設定

Stable Diffusion web UIを起動するために、事前にいくつかの設定が必要になります。Paperspaceを無料プランで利用しているかどうかによって設定を変える必要があるため、注意してくださいね。

ここでは必要最低限の設定の解説だけしますので、より詳しい内容が知りたい場合はJupyter Notebookの中に書いてある説明を読んでみてください。
英語が苦手な場合はDeeplを使って翻訳するのがおすすめです。

設定が必要なものは「Installation and Setup」にまとまっています。
以下の画像と同じ箇所を探し出して、ご利用のPaperspaceのプランに合わせて「Free Tier(無料)」「Paid Tier(有料)」のどちらかの設定を有効にしてください。

プランに合わせて設定を変更する必要のある箇所

有料プランを利用している場合、以下の画像のようになります。
行頭の「#」を消してコメントではなくしています。

有料プランを使ってる場合

あともう一カ所だけ設定をいじります。
以下の画像に出てくる「install_pip_xformers」という項目を、「False」から「True」に変更してください。

install_pip_xformersの設定項目

ここまで設定できたら、いま編集した設定を反映させましょう。
今まで編集してたブロックの上まで戻り、「Run」の左側にあるボタンを押します。

設定の実行ボタン

実行できた場合はブロックの下に以下のような表示がでます。

設定が反映された場合

Stable Diffusion web UIのダウンロード

次にStable Diffusion web UIをダウンロードします。
「Clone the WebUI repository」を実行すればOKです。
実行方法は先ほどと同じく、「Run」の左側のボタンを押してください。

ダウンロードの実行

実行中の表示が消えてブロックの下側が以下のようになっていればダウンロード完了です。

Web UIのダウンロード完了

次にStable Diffusion web UIの実行に必要なライブラリなどをインストールしします。ここで実行するのは「Install requirements and download repositories」の内容です。
この処理は今までと違って大分時間がかかるので、のんびり終わるのを待ちましょう。🍵

ライブラリなどのインストール

「Run」ブロックの下の部分に以下のような「Done!」という表示がでればインストール完了です。

インストールが完了した場合

modelのアップロード

ここまでの処理が終わった状態で「Files」のファイル一覧をリロードすると、以下のようになっているはずです。

Filesの一覧

新たに「models」フォルダが増えており、ここに利用するモデルを置くことになります。Stable Diffusion用のモデルは「models」フォルダの直下におきます。LoRAを利用したい場合は「models」フォルダの直下に「Lora」(Lは大文字)フォルダを作り、その中にファイルを置きます。

Jupyter Notebookにはインターネット上から有名どころのモデルをダウンロードする処理が書かれているので、ここでは手元のパソコンから直接アップロードする方法を解説しておきます。

「Files」には新規ファイルやフォルダの作成、ファイルのアップロードなどを行うためのツールバーが付いています。

Filesのツールバー

青色で選択状態になってるフォルダに対してツールバーの内容の操作が行えるので、ここで手元のマシンからPaperspaceに向けてファイルをアップロードすることができます。

アップロードは速度がそんなに出ないため時間がかかりますが、必要なモデル達はここでアップロードしてしまいましょう。

終わったら「Clean up and restart the kernel」を実行します。

クリーンアップと再起動

実行すると以下のようなモーダルが突然表示されますが大丈夫です!
OKを押しちゃってください。

再起動中のお知らせ

次に「Link the models directory」を実行します。

モデルフォルダのシンボリックリンク作成

実行がおわってブロックの下部の表示が以下のようになっていればOKです。

シンボリックリンクの作成完了

Stable Diffusion web UIでやること

ついに下準備が全ておわりました!🎉
web UIを起動してみましょう。

web UIの起動

web UIを起動するためには「Launch the WebUI」を実行します。
英語で色々と書いてあるのは、うまく起動しない場合のトラブルシューティングになっています。

web UIの起動

web UIの実行は今までの「Run」ブロックの実行と違い、自分で止めるまではずっと動きっぱなしになります。ブラウザからのアクセスを受け取るためのサーバが起動し続けるためです。
そのため、実行後は以下のようにずっとくるくるした状態になるのが正しい姿です。

web UI実行中

手元のブラウザからアクセスするためのURLは、「Run」ブロックの下の方に表示されています。public URLとして表示されている「https://xxxxxxxxxxxx.gradio.live/」という形式のものです。

ブラウザからアクセスするためのURL

この表示の上の方にlocal URLとして「http://127.0.0.1:7860」というURLも表示されますが、こちらは使えないため注意してください。

public URLにアクセスするとweb UIが表示されるはずです!🥳

web UIの画面

web UIの停止

画像を生成し終わったり、生成した画像をまとめてダウンロードしたい場合はweb UIを停止しましょう。
web UIの停止は「Stop」を押すことで止めることができます。

web UIの止め方

止めた場合はブロックの下の方に「Interrupted with signal 2…」といった表示がでます。

web UIを止めた場合

生成した画像のダウンロード

画像はPaperspace GradientのNotebookの中に保存されているため、それをダウンロードできるようにします。
このJupyter Notebookにはそのためのコードも入ってるのでそれを利用します。

「Export Generations」がそれで、これを実行することで生成した画像を7zのアーカイブにまとめてエクスポートしてくれます。
また、エクスポートした時点でoutputsフォルダからは対象ファイルが無くなるようになっています。

生成した画像のエクスポート

エクスポートに成功した場合、ブロックの下の方に「Everithing is Ok」と表示されているはずです。

エクスポート成功

この状態で「Files」のファイル一覧をリロードすると、新たに「exports」フォルダが作られていてその中に7zのアーカイブが入っています。

exportsフォルダ

「Files」のファイルは右クリックすることで上記画像のようなメニューを表示させることができ、そこからダウンロードを行えます。

この7zファイルの中に生成した画像やログが入っています。

outputsフォルダのファイル削除

エクスポートせずにただ単にoutputsフォルダのファイルを消したい場合は「Delete old output folder」を実行すればOKです。

古いoutputsフォルダの削除

これでoutputsフォルダの今日分のデータが削除されます。

不要になったexportsフォルダのファイル削除

ダウンロードが済んだexportsフォルダのファイルもストレージを圧迫するだけなので、不要になったら削除しちゃいましょう。
こちらの処理はJupyter Notebookになさそうなので、ターミナルから消すのが楽ちんです。「Files」から右クリックで消す方法もあるのですが、フォルダが空じゃ無いと失敗したりします。

まずはターミナルを開き直しましょう。

Terminalsの画面

ターミナルが開いたら以下のコマンドで消せます。
フォルダ名やファイル名を間違うと悲しいことになるので注意してくださいね。

cd /notebooks/exports/
rm -r 消したいフォルダ名
rm 消したいファイル名

Paperspace GradientのNotebookを再起動した場合にやること

Paperspace GradientのNotebookを再起動した際は、今まで説明した一部の手順をもう一度実行する必要があります。
ここまで作業してきた方ならもう感覚を掴んでると思うので、ここでは実行すべき項目のみを並べておきます。

  1. Notebookを起動させる

  2. Jupyter Notebookを開く

  3. 「Installation and Setup」を実行する

  4. 「Clone the WebUI repository」を実行する

  5. 「Install requirements and download repositories」を実行する

  6. 「Clean up and restart the kernel」を実行する

  7. 「Launch the WebUI」を実行する

この流れでまたブラウザからweb UIにアクセスして画像生成を行えるようになります。

おわりに

勢いで書き始めたのですが、なかなかな分量になってしまいました。
なるべく画像を使って図解したのでそんなに詰まる部分は無いと思うのですが、もしよく分からない箇所や改善案などあればTwitterに一声頂けると嬉しいです!

みなさんがよい生成AIライフを送れますように!🥳

この記事が気に入ったらサポートをしてみませんか?