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から動かす用になってます。(名前が似ててややこしい😭
そのため、ざっくりした全体の流れは以下のようになっています。
Paperspace GradientのNotebookの作成と起動
Stable Diffusion web UI用のJupyter Notebookの起動と設定
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にします。
ONにすると色々な項目が表示されるので、Contianerという項目を探してください。
みつけたら、その中にあるContainer Nameに以下の内容を入力します。
cyberes/gradient-base-py3.10:latest
これでNotebookを起動する準備が整いました!🥳
Notebookの起動
「START NOTEBOOK」を押して、Notebookを起動してみましょう。
画面が切り替わって、以下のような画面になれば成功です!🙌
赤く囲んだ分が「Running」になっていることを確認してください。
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を起動してみましょう。
まずは「Terminals」から「Files」に戻りファイル一覧をリロードします。
以下の画像を参考にファイル一覧のリロードまでしてみてください。
サイドメニューから「Files」に移動し(1の矢印)、次にファイル一覧のリロードボタンを押します(2の矢印)。
リロードがうまくいくと、以下のようにダウンロードした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」に変更してください。
ここまで設定できたら、いま編集した設定を反映させましょう。
今まで編集してたブロックの上まで戻り、「Run」の左側にあるボタンを押します。
実行できた場合はブロックの下に以下のような表示がでます。
Stable Diffusion web UIのダウンロード
次にStable Diffusion web UIをダウンロードします。
「Clone the WebUI repository」を実行すればOKです。
実行方法は先ほどと同じく、「Run」の左側のボタンを押してください。
実行中の表示が消えてブロックの下側が以下のようになっていればダウンロード完了です。
次にStable Diffusion web UIの実行に必要なライブラリなどをインストールしします。ここで実行するのは「Install requirements and download repositories」の内容です。
この処理は今までと違って大分時間がかかるので、のんびり終わるのを待ちましょう。🍵
「Run」ブロックの下の部分に以下のような「Done!」という表示がでればインストール完了です。
modelのアップロード
ここまでの処理が終わった状態で「Files」のファイル一覧をリロードすると、以下のようになっているはずです。
新たに「models」フォルダが増えており、ここに利用するモデルを置くことになります。Stable Diffusion用のモデルは「models」フォルダの直下におきます。LoRAを利用したい場合は「models」フォルダの直下に「Lora」(Lは大文字)フォルダを作り、その中にファイルを置きます。
Jupyter Notebookにはインターネット上から有名どころのモデルをダウンロードする処理が書かれているので、ここでは手元のパソコンから直接アップロードする方法を解説しておきます。
「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の実行は今までの「Run」ブロックの実行と違い、自分で止めるまではずっと動きっぱなしになります。ブラウザからのアクセスを受け取るためのサーバが起動し続けるためです。
そのため、実行後は以下のようにずっとくるくるした状態になるのが正しい姿です。
手元のブラウザからアクセスするためのURLは、「Run」ブロックの下の方に表示されています。public URLとして表示されている「https://xxxxxxxxxxxx.gradio.live/」という形式のものです。
この表示の上の方にlocal URLとして「http://127.0.0.1:7860」というURLも表示されますが、こちらは使えないため注意してください。
public URLにアクセスするとweb UIが表示されるはずです!🥳
web UIの停止
画像を生成し終わったり、生成した画像をまとめてダウンロードしたい場合はweb UIを停止しましょう。
web UIの停止は「Stop」を押すことで止めることができます。
止めた場合はブロックの下の方に「Interrupted with signal 2…」といった表示がでます。
生成した画像のダウンロード
画像はPaperspace GradientのNotebookの中に保存されているため、それをダウンロードできるようにします。
このJupyter Notebookにはそのためのコードも入ってるのでそれを利用します。
「Export Generations」がそれで、これを実行することで生成した画像を7zのアーカイブにまとめてエクスポートしてくれます。
また、エクスポートした時点でoutputsフォルダからは対象ファイルが無くなるようになっています。
エクスポートに成功した場合、ブロックの下の方に「Everithing is Ok」と表示されているはずです。
この状態で「Files」のファイル一覧をリロードすると、新たに「exports」フォルダが作られていてその中に7zのアーカイブが入っています。
「Files」のファイルは右クリックすることで上記画像のようなメニューを表示させることができ、そこからダウンロードを行えます。
この7zファイルの中に生成した画像やログが入っています。
outputsフォルダのファイル削除
エクスポートせずにただ単にoutputsフォルダのファイルを消したい場合は「Delete old output folder」を実行すればOKです。
これでoutputsフォルダの今日分のデータが削除されます。
不要になったexportsフォルダのファイル削除
ダウンロードが済んだexportsフォルダのファイルもストレージを圧迫するだけなので、不要になったら削除しちゃいましょう。
こちらの処理はJupyter Notebookになさそうなので、ターミナルから消すのが楽ちんです。「Files」から右クリックで消す方法もあるのですが、フォルダが空じゃ無いと失敗したりします。
まずはターミナルを開き直しましょう。
ターミナルが開いたら以下のコマンドで消せます。
フォルダ名やファイル名を間違うと悲しいことになるので注意してくださいね。
cd /notebooks/exports/
rm -r 消したいフォルダ名
rm 消したいファイル名
Paperspace GradientのNotebookを再起動した場合にやること
Paperspace GradientのNotebookを再起動した際は、今まで説明した一部の手順をもう一度実行する必要があります。
ここまで作業してきた方ならもう感覚を掴んでると思うので、ここでは実行すべき項目のみを並べておきます。
Notebookを起動させる
Jupyter Notebookを開く
「Installation and Setup」を実行する
「Clone the WebUI repository」を実行する
「Install requirements and download repositories」を実行する
「Clean up and restart the kernel」を実行する
「Launch the WebUI」を実行する
この流れでまたブラウザからweb UIにアクセスして画像生成を行えるようになります。
おわりに
勢いで書き始めたのですが、なかなかな分量になってしまいました。
なるべく画像を使って図解したのでそんなに詰まる部分は無いと思うのですが、もしよく分からない箇所や改善案などあればTwitterに一声頂けると嬉しいです!
みなさんがよい生成AIライフを送れますように!🥳
この記事が気に入ったらサポートをしてみませんか?