Stable Diffusion web UIをきれいにアップデートする

  1. 🏷️
  2. Stable Diffusion
  3. AI生成
WinMergeによるStable Diffusion web UIの `webui-user.bat` の差分

Stable Diffusionをローカルで使う人は結構な割合の人がお世話になってる web UI 。 こいつの更新( v1.6.0 )が来てたので、アップデートしたい。

が、単にアップデートしちゃうと前Ver( v1.5.1 )の設定とかが悪さするかもしれない。 そこで、『きれいに』アップデートしようと思う。

1. バックアップ

何はともあれバックアップ。 cloneしたweb UIのフォルダ(ローカルrepo)をコピペするだけ。

web UIのフォルダ以外は使ってないんじゃないかなあ。 確認はしてないけど、GitHubで公開してるようなアプリだし、普通は内部で完結するのが流儀だよね。

2. ローカルrepoのクリーンアップ

ローカルrepoをcloneしたときの状態まで戻す。 つまり、 webui-user.bat を実行して落としてきたPython環境とか、 自分の設定とか、CheckPointとかLoraとかをまとめて全部吹っ飛ばす❗

(よくわからん人は git clone したほうが確実だし早い。)

まずは、どのファイルがふっとばされるのか確認する。 ↓のコマンドを実行。

$ git clean -nffdx
Would remove __pycache__/
...
Would remove models/***
Would remove models/***
Would remove models/***
...
Would remove venv/

Would remove *** って表示されるディレクトリとファイルが消去対象。

良さそうなら↓で消去実行。オプションから n を引っこ抜けば良い。

git clean -ffdx

これできれいになった。 つまり、 v1.5.1git clone してきたのと同じ状態になった。

余談: git clean -ffdx について

最初は git clean -fdx で良いと思い込んでたのですげーハマった。 入れ子になったGitレポジトリまでcleanするためには -ffdx にしないといけないようだ。

悔しかったので Qiitaに記事を書いた

3. ローカルrepoの更新

いよいよ更新。↓でOK。これで最新になる。

git pull

4. 何もいじらない(バニラ)状態でまずは動作確認

ここで拡張機能とかをいれるのは時期尚早。 まずは動作確認のためにバニラで動かす。

いつもどおり webui-user.bat を起動。

webui-user.bat

Python環境の構築を最初から始めるのでちょっと時間がかかる。 しばらくすると localhost:7860 にアクセスしろって言われるので、これでweb UIは準備OK。

バニラなので --listen オプションはついてない。 Macからはアクセスできないので、Windowsから localhost:7860 にアクセスする。

見慣れた画面になるので、適当に1枚生成してみて生成できるようならOK。 当然、CheckPointも何も入ってないので、素のStable Diffusion V1.5(なのか❓)しか選べないはず。 今は生成ができればOK。

5. WinMergeで旧環境から必要なものを探す

みんな大好き WinMergeくん 。 こいつを使えば、バニラの最新環境と旧環境のファイル差分がまるわかり。

こんな感じ↓。 更新時のスクリーンショットは取り忘れてたので現環境( v1.6.0 )と旧環境( v1.5.1 )の差分になっちゃってるので注意。

WinMergeによるStable Diffusion web UIのファイル差分

キャッシュとかDoc用のテキストファイル類は放置で良いかな。 大事なのは設定系と、自分で突っ込んだLoraとか。

試しに webui-user.bat を見ると↓。

WinMergeによるStable Diffusion web UIの webui-user.bat の差分

旧環境では --listen--no-half--xformers を指定してるね。 ここから必要なものだけピックアップして現環境に適応していけば良い。 (具体的な解説は後述。)

以降の記述は完全に私向けの設定をするための記述なので、参考程度に見てね。

6. style.csvnotification.mp3 のコピー

style.csv は自分で編集したスタイルが保存されているファイル。 試しにバニラ環境でスタイルをいじってみたが、 csvの中身の形式は v.1.5.1 のときと差がなかった。 互換性があると判断してコピペ。

(「なんでcsvなんだよ」っていう技術的なツッコミは置いておく。全体設定ファイルは config.json でJSONなのになぁ。)

notification.mp3 は画像生成が完了したときに鳴らす音声ファイル。 web UI側で設定とかは特になく、 ローカルrepoの直下に notification.mp3 というファイルがあれば自動で認識して鳴らしてくれる。 これもコピペで良い。

7. embeddings のコピー

↓を旧環境からコピペ。これは今も使うので。

  • easynegative.safetensors
  • ng_deepnegative_v1_75t.pt
  • verybadimagenegative_v1.3.pt

8. 拡張機能のインストール

↓を再インストール。アップデートも兼ねる。

  • a1111-sd-webui-tagcomplete
    • いわゆるDanbooruタグを自動で補間してくれる拡張
  • sd-webui-controlnet
    • 女の娘に指定のポーズを取らせる拡張(ControlNet)
  • sd-webui-regional-prompter
    • 領域ごとにプロンプトやLoraを指定する拡張(Regional Prompter)

↓は今は使わないのでインストールしない。こういう取捨選択ができるのもきれいにアップデートする利点だよね。

  • multidiffusion-upscaler-for-automatic1111
    • 画像分割してUpscaleすることで低VRAMでも超高解像度が実現できる拡張
    • 生成が重すぎて使ってない

ちなみに、起動オプションに --listen が指定されていると、拡張機能はインストールできないので注意。 まぁ、別PCからGitリポジトリをCloneさせれたらセキュリティ的にやばいので当然か。

9. CheckPointとLoraのコピー

コピペするだけ。

ここも、使わなくなったCheckPointとLoraはコピペしないようにしてダイエットしよう。

あと、一部のCheckPointはアップデートしてたりするので、それもここで対応。

10. 起動オプションをコピー

webui-user.bat にて COMMANDLINE_ARGS を必要に応じてコピペ。 先述の通り、↓をコピペ。

  • --listen
    • これで外部のPCからアクセスできるようになる。
    • https://PCのIP:7860 でアクセスできる。
    • 普段は、Windowsで webui-user.bat を実行しつつ、Macからアクセスして画像生成してる。
  • --xformers
    • 画像生成用のライブラリ、xformersを使えるようにする。
    • 画像生成がちょっと早くなって、VRAMの使用量をぐっと抑えれる。

↓のオプションは採用しないことに。

  • --no-half
    • 浮動小数点演算の精度に関連する...らしい❓
    • これをつけてないとエラーを吐くVAEがあった。
    • こういうよくわかってないものは使わないに限る。
    • v1.6.0 ではこれなしでもエラーを吐くVAEはない。自動で対応してくれるようになった❓

11. 生成先フォルダをDropboxへのシンボリックリンクに切り替える

生成結果は普段使い慣れてる画像ビュワーで見比べたい。 となると、生成結果をMacに自動で転送すれば良い。

そこで、生成先をDropboxのフォルダにする。 web UIの設定から変更しても良いけど、 ローカルrepoの外側を参照させることになるので、なんかイケテナイ。

ここはシンボリックリンクを貼ることにする。 コマンドは↓。

New-Item -ItemType SymbolicLink -Path "C:\Users\ユーザ名\repo\stable-diffusion-webui\outputs\" -Target "C:\Users\ユーザ名\Dropbox\stable-diffusion-outputs\"

勘違いしないのでほしいのは、Dropboxはシンボリックリンクを認識しないことね。 web UIは認識してくれる。 なので、Dropbox側を普通のフォルダにしておいて、 web UI側をシンボリックリンクにする。

このテクは別のクラウドサービスでも使えると思う。 BoxでもGoogle Driveでもお好きなものをどうぞ。

あ、ただし各サービスとも検閲が入るので、アブナイ画像を生成するときはお気をつけて。 NASがほしいなぁ❗

12. 全体設定を変える

web UIのSettingsを変更する。

全体設定は config.json に保存されるようだ。 これも旧環境からコピーしようかとも思ったがやめた。 自分が変更してない設定内容なんかも大量に記録されてて、新環境で悪さしそうだったので。

しかも、記載内容が順不同なんだよなぁ。なんでや💢 これのせいで、新環境と旧環境の差がWinMergeで分からない...。

12-1. 画像グリッドを保存しない

バッチ生成したときに画像グリッドができるが、 これがDropboxの容量を食うので保存しないようにする。

↓のチェックマークを外す。

  • 『Saving images/grids』
    • 『Always save all generated image grids』

12-2. Alt + ←→ によるプロンプトの移動を無効にする

Alt + ←Alt + → でプロンプトを移動できる。 が、これは邪魔。 Macだと同じコマンドにカーソルの単語移動がOSレベルで割当たってるので、バッティングしちゃうのよね。 ついでにいうとプロンプトも書く順序を決めてるので、移動したいってことないんだよなぁ。

↓のチェックマークを外す。

  • 『User interface』
    • 『Alt+left/right moves prompt elements』

12-3. Clip Skipを2にする

画質向上設定の一種。 AI画像生成は層ごとに画像を生成するが、 最後の層をスキップすると良い結果になる...という実験的な知見が得られているらしい。

Clip Skipは最後の層から何番目までをスキップするかの設定。 2 を設定すると最後の層だけスキップする。

↓を 2 にする。

  • 『Stable Diffusion』
    • 『Clip Skip』

12-4. CheckPointをRAMにキャッシュする

何も設定変更するところはない

一応↓の設定が存在するが、

  • 『Stable Diffusion』
    • 『Checkpoints to cache in RAM』

注釈に↓のように書いてある。

(obsolete; set to 0 and use the two settings above instead)

要はこの設定は廃止すると。

で、2つの設定っていうのが↓。

  1. 『Maximum number of checkpoints loaded at the same time』: デフォルトは 1
  2. 『Only keep one model on device』: デフォルトは有効

「ぶっちゃけよくわからんな...」と思ったが、後者のほうの注釈が↓。

(will keep models other than the currently used one in RAM rather than VRAM)

「今使ってるやつ以外のモデルはVRAMじゃなくてRAMに保存するようになる」って書いてある気がする。 裏を返せば、今使ってるモデルはVRAMに置いてくれてる(=高速化済み)ってことじゃね❓

まぁ、最終的によくわからんかったw 素人がパッといじって高速化できるようなものではないと判断。 何もいじらないようにしておく。

12-5. VAEをRAMにキャッシュする

こっちはVAEのほうのキャッシュ設定。キャッシュしたほうが早くなるのでしておく。

↓の設定を 1 にする。

  • 『VAE』
    • 『VAE Checkpoints to cache in RAM』

12-6. VAEの選択用プルダウンを表示

いつもの。

↓に sd_vae を追加。

  • 『User interface』
    • 『Quicksetting list』

あとがき

以上❗ なんか長くなっちゃった❗ 良きStable Diffusionライフを❗

本当は1、2週間前に書くつもりだったんだが、流行り病にかかったものでな...。 おかゆと飲み物は常備しとけマジで。あと龍角散。

Bio
Bio icon

tenpaMk2

🇯🇵インドアクソオタク。

Tag cloud
  1. AI生成
  2. ALTER
  3. ANIPLEX
  4. Astro
  5. AZT8-45
  6. A列車で行こう
  7. Borderline Toybox
  8. BROCCOLI
  9. Building Gadgets MOD
  10. Chart.js
  11. cocoen-js
  12. Create MOD
  13. DDDy
  14. Excalibur.js
  15. Fate
  16. Fate/Apocrypha
  17. Fate/EXTELLA
  18. Fate/EXTRA CCC
  19. Fate/stay night
  20. FGO
  21. FLARE
  22. FREEing
  23. GameDev
  24. Gatsby
  25. Gatsby Theme
  26. Git
  27. Google Analytics
  28. Hexo
  29. Hexo時代の記事
  30. HOBBY STOCK
  31. hololive
  32. homebrew
  33. JavaScript
  34. KDcolle
  35. KDColle
  36. Kon'D
  37. Lightroom
  38. Mac
  39. Markdown
  40. Minecraft
  41. MVStudio
  42. NEKOPARA
  43. NEKOYOME
  44. Node.js
  45. npm
  46. NSFW
  47. Phat!
  48. PLUM
  49. plusone
  50. POP UP PARADE
  51. PSO
  52. quesQ
  53. RAW現像
  54. Re:ゼロから始める異世界生活
  55. React
  56. RSS
  57. SAO
  58. spiritale
  59. SSG
  60. Stable Diffusion
  61. Tailwind CSS
  62. Thermal MOD
  63. To LOVEる
  64. Tony
  65. Twitter
  66. TypeScript
  67. Vite
  68. VOCALOID
  69. VSCode
  70. WebP
  71. Wonderful Works
  72. zsh
  73. ご注文はうさぎですか?
  74. はじまるA列車
  75. はにかみ、彼女は恋をする
  76. ひげを剃る。そして女子高生を拾う。
  77. りゅうおうのおしごと
  78. アクアマリン
  79. アストルフォ
  80. アズキ
  81. アズールレーン
  82. アトリエシリーズ
  83. アリスグリント
  84. アルトリア オルタ
  85. イリヤスフィール・フォン・アインツベルン
  86. イージーエイト
  87. ウイング
  88. エリス・ボレアス・グレイラット
  89. エルドール
  90. オーキッドシード
  91. キャスター
  92. クドわふたー
  93. クロエ・フォン・アインツベルン
  94. グッドスマイルカンパニー
  95. グリザイア:ファントムトリガー
  96. ゲーム
  97. ココナツ
  98. コトブキヤ
  99. ゴールデンヘッドプラス
  100. サキちゃん
  101. ショコラ
  102. ジェネ
  103. ジャベリン
  104. ジャンヌ・ダルク
  105. ステファニー・ドーラ
  106. ストロンガー
  107. ソフィーのアトリエ
  108. ソードアート・オンライン
  109. ダイキ工業
  110. チノ
  111. チノちゃん
  112. チョコメロ
  113. ティアーユ・ルナティーク
  114. ディ・モールト ベネ
  115. デート・ア・ライブ
  116. ドール
  117. ドールグッズ紹介
  118. ナナ・アスタ・デビルーク
  119. ネコぱら
  120. ネロ・クラウディウス
  121. ノーゲーム・ノーライフ
  122. バニラ
  123. バニー
  124. フィギュア
  125. フィギュアレビュー
  126. ブログ
  127. プラスワン
  128. プラフタ
  129. プリズマ☆イリヤ
  130. プログラミング
  131. マシュ・キリエライト
  132. マックスファクトリー
  133. マヤ
  134. ミーア
  135. ミーシャ・ネクロン
  136. メグ
  137. メディコス・エンタテインメント
  138. モモ・ベリア・デビルーク
  139. モンスター娘のいる日常
  140. ユニオンクリエイティブ
  141. ライザのアトリエ
  142. ライザリン・シュタウト
  143. ラブライブ
  144. ララ・サタリン・デビルーク
  145. リューノス
  146. レム
  147. レーシング
  148. 五島潤
  149. 冴えない彼女の育てかた
  150. 初音ミク
  151. 加藤恵
  152. 喵屋
  153. 天使の3P!
  154. 巡音ルカ
  155. 時崎狂三
  156. 東京フィギュア
  157. 水澄華実
  158. 氷堂美智留
  159. 深見玲奈
  160. 渡辺曜
  161. 無職転生
  162. 玉藻の前
  163. 画像比較スライダー
  164. 白銀ノエル
  165. 百瀬くるみ
  166. 空銀子
  167. 結城明日奈
  168. 結城美柑
  169. 美咲詩絵
  170. 美遊・エーデルフェルト
  171. 能美クドリャフカ
  172. 花偶堂
  173. 荻原沙優
  174. 西連寺春菜
  175. 遠坂凛
  176. 雛鶴あい
  177. 霞ヶ丘詩羽
  178. 魔王学院の不適合者
  179. 黒咲芽亜