メモ
Colab用のノートブックでは、「ngrok」というプログラムが使用されることがありますが、Paperspaceのマシンでngrokを実行すると、即座にBANされます。ただし、問い合わせれば復旧可能です。ngrokは、ローカルで動作しているサーバーにインターネットからアクセスできるようにするツールですが、過去に悪用されたことがあるため、自動的にBANされる仕組みになっています。Web UIのGradioも同様のことを行っていますが、とりあえずngrokさえ使用しなければ、BANされるようなことは起こらないようです。
2022/11/26 情報
ここが今後更新される可能性は低い(適度に修正は入ります)
PCのスペックが低い。GPUがNvidiaでは無い。等スレのとしと同じような設定が使える場所で戦いたい!という人向け?
Google Colabの仕様が変わって、使用制限が厳しくなったりでPaperspaceの方で試してみたい人用
- アカウント登録(googleアカウントやgithubアカウントでも可)が必要
- 1日の使用時間制限はないが、一度立ち上げた環境は最長6時間で自動シャットダウン
- 自動シャットダウンされた場合も、永続ストレージのデータは保持される
- 無料で借りられるGPUはQuadro M4000 8GB(GTX970相当)だから学習にはちょっと辛いかも(TI/HNぐらいならワンチャン?)
- 無料コースでもメモリがcolabの2倍あるので大きなモデルを読み込んだり、colabでは不可能なモデルマージも可能
- 利用規約的には明らかな違法行為での使用は禁止されている(一般的なクラウドの規約と大差ない)のでまあ常識の範囲で使用しようね
英語だけどここ読むといいよ。「馬鹿たれのためのPaperspaceガイド」ですって。
https://github.com/Engineer-of-Stuff/stable-diffusion-paperspace/blob/master/docs/Paperspace%20Guide%20for%20Idiots.md
colabとpaperspaceどっちがいいの
・即応性のcolab、量産のpaperspace
paperspaceには追加料金のかからないGPUが用意されていますがcolabは完全従量課金性です。
colabで一番良いGPUに接続すると1000円強支払っても6時間半しか接続できないためcolabで画像を量産しようとするとローカル環境を構築できてしまえるくらいのお金がかかります。
しかしpaperspaceのfree GPUは空きがなければ接続できないのでピークタイムにはなかなか繋がりません。時間の都合の融通がきくのはcolabといえるでしょう。
寝る前や仕事に行く前に無料GPUをツモってgenerate foreverするならpaperspace、思い立ったらいつでもすぐ使えるのはcolabとなります。
またcolabは生成AI目的の利用を追い出したいらしくstable diffusionの使用に様々な妨害を行っており、その対策を各自で行う必要があります。
paperspaceは有料プランでも永続ストレージが15GBと狭い上にうっかり容量超過していまうと追加料金を取られてしまいます。
google drive(2500円/年で100GB)をモデルの保存場所として用いgdownで必要なファイルをpaperspaceに適宜転送して使うなどハイブリッドな利用も検討してみましょう。
導入
マシンスペック
基本的にその時空いているマシンを最長6時間借りられる。課金コースによって借りられるマシンの最高性能が変わってくる
- 無料コース
GPU Quadro M4000 8GB(GTX970相当、運が悪いと埋まってるのでその時はまた来ようね)
メモリ 30GB
ディスク(永続ストレージ) 5GB - $8コース
GPU NVIDIA A4000 16GB(RTX3070相当。埋まってたら下位のGPUを選ぼう。大概は空いてるけど)
メモリ 45GB
ディスク(永続ストレージ) 15GB - $40コース
GPU NVIDIA A6000 48GB(RTX3090相当。運が良ければ最強GPUのA100 80GBが空いてることも)
メモリ 45GB
ディスク(永続ストレージ) 50GB
40ドルコースにして、最強GPUのA100 80GBを数日使用してみた。速い気がするが、8ドルコースの A4000とそこまで速度差がない印象…。
額を考えたら8ドルのもので十分な気がした。
ちなみにストレージについては、月またぎで料金発生が決まるという話。月末までにストレージ削除しておけば追加料金は取られない、とのこと
サブスクリプションごとの制限を超えるストレージには、$0.29/GB/月が課金されます。これらの料金は、バケットの現在の使用量で時間ごとに発生します。
Storage and datasets | Paperspace
月末までにファイルを削除して整理すればいいのかと思っていたら、しっかり請求されたので注意してね(2023年7月1日付の請求からそうなってる?)。
(追記)2023年5月以降は、コースに付属する(月額料金を払えば追加料金がかからない)GPUを確保するのが大変困難になった。従量課金の金を払ってGPUを借りるつもりでいたほうがいいかもしれない。
Paperspaceアカウント作成
https://www.paperspace.com/ から「SIGN UP FREE」を選択。メアドで登録するかgoogleかgithubアカウントでも可
携帯認証が必要なので携帯番号を入れる。国を日本にして、頭の0を抜いた番号(090-1234-5678なら9012345678)を入れてね
SMSが飛んでくるから番号を入れてアカウント作成完了
Project/Notebook作成
アカウントを作って最初の画面(プロジェクト一覧)の右上にある赤い「CREATE PROJECT」をクリック
適当な名前をつけてプロジェクト作成
プロジェクトが出来たらまた右上にある赤い「CREATE」をクリックしてノートを作成
「Select a Runtime」にテンプレートがずらっと並んでるけど、ここは右下の「Start from Scrach」を選択
次に下のプルダウンからGPU選択。頭に「Free」がついている奴を選ばないと従量課金が発生するので注意
無料版であれば「Free GPU(Quadro M4000)」しか選べないはず(P5000選べたかもしれないが忘れた)
課金コースであればその時空いてる一番いいFree GPUを選択
Auto Shutdown Timeは「6 hours」にすること(デフォルトだと1hourでシャットダウンされる)
最後に左下の「START NOTEBOOK」を押して開始
スタートするとノートブック画面に遷移し、マシンが起動するので、左サイドバーの一番下のオレンジのわっかのようなボタンをクリックして実際のノート画面に移動する
Terminalの起動とノートのコピー
ノート画面に遷移するとランチャー画面になるので、「Others」の「Terminal」をクリック
Linuxのshell(コマンドプロンプトのようなもの)が出るので、以下のコマンドを実行
wget https://raw.githubusercontent.com/Engineer-of-Stuff/stable-diffusion-paperspace/main/StableDiffusionUI_Voldemort_paperspace.ipynb -O /notebooks/StableDiffusionUI_Voldemort_paperspace.ipynb
notebookがダウンロードされて、左側のファイルビューに出てくるはずなので、ファイルビューからダウンロードされたノートをダブルクリック
2回目以降はダウンロードは不要。永続ストレージにノートが残っているからそれをダブルクリックするだけでおk。
環境設定(初回)
まず初回はモデルや生成物の置き場所を設定する必要がある
最初のセルにある
# Free tier
# symlink_to_notebooks = True # Enables the creation of symlinks back to /notebooks/
# model_storage_dir = '/tmp/stable-diffusion/models' # Where the models will be downloaded to.
# repo_storage_dir = '/notebooks' # Where the repository will be downloaded to.
# Paid Tier
# symlink_to_notebooks = False
# model_storage_dir = '/storage/models'
# repo_storage_dir = '/notebooks'
の部分を、無料版($8コースもモデルたくさん使う気ならこっちがいいかも)なら
# Free tier
symlink_to_notebooks = True # Enables the creation of symlinks back to /notebooks/
model_storage_dir = '/tmp/stable-diffusion/models' # Where the models will be downloaded to.
repo_storage_dir = '/notebooks' # Where the repository will be downloaded to.
# Paid Tier
# symlink_to_notebooks = False
# model_storage_dir = '/storage/models'
# repo_storage_dir = '/notebooks'
有料版なら
# Free tier
# symlink_to_notebooks = True # Enables the creation of symlinks back to /notebooks/
# model_storage_dir = '/tmp/stable-diffusion/models' # Where the models will be downloaded to.
# repo_storage_dir = '/notebooks' # Where the repository will be downloaded to.
# Paid Tier
symlink_to_notebooks = False
model_storage_dir = '/storage/models'
repo_storage_dir = '/notebooks'
というようにコメントアウトをはずす
これはモデルを永続ストレージに置くか、マシン終了時に消える一時領域に置くかを決めている
無料版は特にストレージが少ないので一時領域に置かないと厳しい
書き換えたら該当セルを実行(notebook一番上の三角ボタンをクリック)。
続いて、「Clone the central repository」と「Install requirements and download repositories」のセルを実行
(こちらは特に書き換え不要)
モデルのダウンロード
各種モデルのダウンロード用セルがあるので必要なものを選んで実行
永続ストレージに保存する設定にしてある場合、調子に乗ってモデルをダウンロードしすぎないよう注意
wd1.2等のtorrent上のモデルもダウンロードしてくれる
モデルの保存先を永続ストレージにした場合は一度ダウンロードしたら二回目以降はダウンロード不要
オリジナルのnotebookには縁等最近のモデルがないので、必要であればhuggingfaceにある奴(縁やHD、エイミーちゃん等)であれば
trinart 60000あたりのセルを複製して以下のように変更して実行
縁pruned
%store -r symlink_to_notebooks model_storage_dir repo_storage_dir
!wget https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/Anything-V3.0-pruned.ckpt -O "{model_storage_dir}/Anything-V3.0-pruned.ckpt"
縁full
%store -r symlink_to_notebooks model_storage_dir repo_storage_dir
!wget https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/Anything-V3.0.ckpt -O "{model_storage_dir}/Anything-V3.0.ckpt"
縁vae
%store -r symlink_to_notebooks model_storage_dir repo_storage_dir
!wget https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/Anything-V3.0.vae.pt -O "{model_storage_dir}/Anything-V3.0.vae.pt"
EimisAnimeDiffusion
%store -r symlink_to_notebooks model_storage_dir repo_storage_dir
!wget https://huggingface.co/eimiss/EimisAnimeDiffusion_1.0v/resolve/main/EimisAnimeDiffusion_1-0v.ckpt -O "{model_storage_dir}/EimisAnimeDiffusion_1-0v.ckpt"
EimisSemiRealistic
%store -r symlink_to_notebooks model_storage_dir repo_storage_dir
!wget https://huggingface.co/eimiss/EimisSemiRealistic/resolve/main/EimisSemiRealistic_1-0v.ckpt -O "{model_storage_dir}/EimisSemiRealistic_1-0v.ckpt"
HD17
%store -r symlink_to_notebooks model_storage_dir repo_storage_dir
!wget https://huggingface.co/Deltaadams/HentaiDiffusion/resolve/main/HD-17.ckpt -O "{model_storage_dir}/HD-17.ckpt"
カーネルのリセット
モデルのダウンロードまで終わったら、「Clean up and restart the kernel」のセルを実行してカーネルを再起動
シンボリックリンク生成
「Link the models directory」のセルを実行して、永続もしくは一時ストレージにダウンロードしたモデルをWebUI内の適切なディレクトリにリンクする
永続ストレージにモデルを置いた場合は原則初回のみの実行でおk
(新しくモデルをダウンロードした場合に限り再実行)
WebUIの起動
「Launch the WebUI」のセルを実行して1111を起動
起動が終わると「ほにゃららgradio.appにアクセスしてや」と出るのでリンクを開いてWebUI起動
Extentionの追加
1111のExtentionから必要なExtentionをインストールする
インストール後は一度WebUIのセルを■ボタンで停止して、セルを再実行させる必要がある
出力結果の保存
WebUIを止めてから、「Export Generations」のセルを実行すると1111の出力結果を現在の日時フォルダに移動した上で7zに固めてくれるので、
左側のファイルビューから7zファイルを右クリックからダウンロードする
ダウンロードし終わったら下のセルのコメントアウトを外して日付フォルダを削除
7zファイルはファイルビューから右クリックで削除すればおk
notebookの終了
1111とnotebookの画面を閉じた上で、paperspaceに再度ログインし、notebookの一覧からshutdown instanceを選ぶのが一番確実
まあ放って置いたら設定時間で勝手に止まるけど次の人のためにちゃんとマシンを開放してあげようね
二回目以降の起動
二回目以降にnotebookを開始して、START MACHINEする前にGPUプルダウンを確認して、その時空いている一番いいGPUを選んでからSTART
二回目以降にnotebookを立ち上げた場合は「環境設定(初回)」にある項目を再度実行する必要がある
ただ二回目以降はリポジトリ情報が残っているのでわりとすぐ終わるはず
モデルを一時領域に置いている場合はモデルのダウンロードとリンク作成を再度行う。永続ストレージに置いてあるならこの工程は不要
実行後にカーネルリセットを実行した後にWebUIを起動すれば前回導入したExtensions等は有効な状態で1111が起動する
過去バージョンの利用
アップデートなどでまともに動かなくなった場合の対処法
ここでは例としてgradio3.23になる前まで戻す方法を書く
gradio3.16.2
- まず↑の導入でWEBUIが起動できる直前までセットアップする
- ノートブック「Launch the WebUI」のセルより更に下、Toolsのセルまで移動し、
その中にある「Reset Repository」を開く - そのセルの最後の行が
!git reset --hard <commit>
となっているので、<commit>部分を以下に書き換える!git reset --hard a9eab236d7e8afa4d6205127904a385b2c43bb24
- 書き換えたらセルを実行する
これでGradioが3.16.2だった頃のWEBUIが起動できるようになる
gradio3.9(先にgradio3.16.2以前の環境にしておく)
一旦gradio3.16.2にするのはgradio3.23以降とではファイル構成が一部異なっており
直接3.9をインストールするとそのままだと起動できないため
- ngrokが使えない(使うと強制BANされる)paperspaceではこれが特に安定しており
数枚生成すると固まる問題も解決する - URLがgradio.liveではなくgradio.appになる
- ただし生成こそ安定してるが、WEBUI側が古くて一部拡張が動作しなかったりする
- 上記のgradio3.16.2にしてから適当なセルを作成し以下をペーストして実行する
!pip uninstall -y gradio !pip install gradio==3.9
- これで現在のgradioをアンインストールしてgradio3.9をインストールできる
- ちなみに逆に最新のgradioをインストールしたい場合は ==3.9 部分だけ削れば良い
好きなバージョンのWEBUIに戻す
- https://github.com/AUTOMATIC1111/stable-diffusion-webui/commits/master
- ↑ここを見ればAUTOMATIC1111のWEBUIがどういう変更を行ったか見れる
- 例えば2023年3月25日にgradio3.23に変更されたので、それ以前に戻したい場合はその直前のSHAを取得する
- これは変更時点を特定するための履歴番号みたいなもの
- 例として上記画像の部分をコピーすると以下の羅列がコピーされる
a9eab236d7e8afa4d6205127904a385b2c43bb24
- あとはgradio3.16.2で行った時のように<commit>部分をコピーしたSHAに書き換えて実行すればコピーしたSHAのバージョンまで戻せる
xformers 0.0.16
※ここは動いているならそのままの方が良い
xformersを導入するとエラーが出る人向け
- このノートブックではxformersを導入する場合、下記の様に常に最新をインストールするようになっている
!pip install xformers
- ただ編集時点でインストールされるxformers0.0.17だとtorchの依存先が2.0.0になっているため、このままだと動作しない可能性がある
- 以前のバージョンのxformersをインストールしたい場合はそのままバージョン指定すると良い
!pip install xformers==0.0.16
コメントとか
(Tips)
- 質問をする前にここを見て!
- 既存コメントの先頭にあるラジオボタンをONにすると、そのコメントの下にぶら下げ返信する形になる(ツリー構造)。
- コメントの文中で↵ボタン(下の画像参照)を押すと「&br;」の文字列が挿入される。これは送信後に改行として機能するので、文章の整形に役立つ。
xformersは起動前にToolsのbuild and installで再構築。
最新版だとモデルの切り替えがうまくいかず、プログレスバーが出なくなった。おそらくgradioとの相性が悪いせいなのでバージョン戻し。
webUIは8月初頭のものに(SHA=31a9966b9d76cb9a2dd7c09c47e236fae33836e2)でgradioは3.36.0。まだ花札アイコンがあったころのバージョン。特に細かく検証したわけではなく「たしかこのぐらいの時期で一回やめたんだったな~」ぐらいの記憶から適当に組み合わせた。 -- 2023-11-04 (土) 06:00:03
GPUメモリが16GBあるのでXL環境だとかなり有能。ハイスペックマシンでも学習はかなりメモリを食って何もできなくなってしまうので学習をpaperspaceに任せるといろいろ都合がいい。
hakomikan氏のTrainTrainがあればWebUI上で簡単に学習できるのでpaperspaceでうまく環境作れなかった人も今ならハードルが低いと思う。 -- 2024-02-01 (木) 21:11:33