はじめに
色々なサイトですでに紹介されているが,Papserspace Gradient上のAUTOMATIC1111にControlNetを導入する.Google Colab上に導入するのと大して変わらなかった.
環境
・Win10 PC
・Paperspace Gradient Pro
・Google Chrome
ControlNetの導入と実行
ControlNetのインストール
1.いつものようにAUTOMATIC1111を起動した後,「Extensions」タブ→「Install from URL」を選択.
2.「URL for extension’s repository」の入力欄に,AUTOMATIC1111用ControlNetのGithubリポジトリのURL(https://github.com/Mikubill/sd-webui-controlnet)を入力した後,「Install」ボタンを押しイントールする.
私はなぜか素直にインストールできたが,恐らくgradioのユーザーIDとパスワードを設定していたからである.WebUIの最初のセルにgradioの設定があるので,設定した方が良い.デフォルトでは,gradio_authはFalseになってるので,gradio_auth=”me:password”とすることでgradioのIDとパスワードが設定できる(meには任意のID,passwordには任意のパスワードを設定する).もしくは,insecure_extension_accessをTrueにすれば良いと思う(Google Colabにインストールした際は,このオプションが必要だった).
3.「sd-webui-controlnet」が追加されていることを確認した後,「Apply and restart UI」をクリックし,WebUIをリスタートする.
4.再起動後,ControlNetがインストールされていることを確認する(以下の画像の赤丸の箇所のようにオプションが表示されているはず).赤丸の箇所のタブをクリックするとControlNetのメニューが開く.
学習済みモデルの追加
1.このサイトから学習済みモデル(例えば,control_canny-fp16.safetensors)をダウンロードした後,フォルダにアップロードする.場所は「stable-diffusion-webui/extensions/sd-webui-controlnet/models」フォルダである.
※もしかしたら,tmpに学習済みモデルを置いてシンボリックリンクを作成すれば,persistent storageを使用する必要ないかも→学習済みモデルのシンボリックリンンクの作成方法.
勉強する気がないので,学習済みモデルの種類によって何が異なるのかの詳細は不明だが,恐らくこのサイト(https://huggingface.co/lllyasviel/ControlNet)に書いてあるように学習に使用している特徴量が異なるのだと思われる.
色々ごちゃごちゃ理論が書いてあるGitHubのページを見ると,ControlNet with Human Pose(恐らく学習済みモデルはファイル名に”openpose”という文字が入ってるやつ)ではボーンを抽出していて,ControlNet with Semantic Segmentation(恐らく学習済みモデルはファイル名に”seg”という文字が入ってるやつ)ではセグメンテーションを抽出していたりと,学習済みモデルの種類によって着目する特徴量が異なるようである.自分が生成したい画像に合わせて好きな学習済みモデルを選ぶと良いかと.
2.ControlNetのメニューの設定を行う.まずEnableにチェックを入れる.Preprocessorには先ほどアップロードしたモデルである「canny」を選択する.
ちなみに,選択したPreprocessorに応じて,抽出する特徴量が変わる.例えば,「openose」を選択するとボーンが抽出されるみたい.
3.Modelの項目に着目.「models」フォルダにモデルがアップロードされる前は,ModelはNoneと表示される.
4.アップロードが終了していると,Modelにアップロードしたファイルが追加される.アップロードが終了しているのに表示されない場合は,下の画像の赤丸の箇所のアイコンをクリックすると更新される.モデル(今回はcontrol_canny-fp16)を選択する.
実行
1.画像をアップロードするエリアに,任意の画像をドラッグアンドドロップする.画像は適当に【ControlNetで使えるかも】人体モデルのポーズ関連のサイト集にあるサイトから持ってくれば良い.
2.あとはいつも通りにpromptを入力したりパラメータを設定した後,実行すると画像が生成される.
Persistent Storageの空き容量の確認
今回は,デフォルト設定のフォルダにControlNetの学習済みモデルをアップロードしたので,Persistent Storageの領域を使った.容量オーバーすると嫌なので,念のため空き容量を確認しておく.
下の画像の緑丸の箇所のアイコンをクリックし,表示されるメニューから「Team settings」もしくは「Billing」を選択する.その後表示される画面(以下の画像)で,「Storage」タブをクリックすると,ストレージの残り容量が分かる.
ストレージの容量オーバーに関しては,クレジットカード決済の前に削除していればOKという記事を見かけたので調べてみたが,公式サイトによると時間で割られて請求されるらしい(以下).無料版でオーバーした場合は,ノートブックごと消されるのかな?
まとめ
Paperspace Gradient上のAUTOMATIC1111にControlNetを導入した.ControlNetのモデルの場所がデフォルトだとPersistent Storage領域になるので,容量オーバーには気を付けたい.
コメント
超過分が時間当たりに課金されるのはBucket storageであって、Volume storageの超過分は月末課金なので、大きいモデルとかは月末に消せば問題ないですよ〜
koi様
ご指摘いただき,ありがとうございます.
Volume storage billingの項目(以下のURL)にも,「These charges are accrued hourly at the current usage of the bucket. For example, if a user with a free subscription, goes over the 5GB limit for 3 days then the account will only be charged for the 3 days of usage over the free limit.」という記載がありますが,リアルタイムで容量オーバーをチェックしているわけではなく,月末に容量オーバーしていた場合に超過分を日割りで請求されるシステムなのでしょうか?
https://docs.paperspace.com/gradient/notebooks/notebook-storage/#volume-storage-billing