「Stable Diffuison web ui」は定期的にバージョンアップが行われています。バージョンが上がるにつれて、UIや機能面で使い勝手が良くなっていきます。そして、画像生成も捗るのでアップデートは重要になってきます。
今回は「Stable Diffusion web ui」のアップデート方法について解説しています。
でも、やみくもにアップデートすると、めんどくさいバグに悩まされる事もしばしばありますので、不慣れな方はこの記事を読んで、しっかりとした準備をしてください。
※「Stable Diffusion」の立ち上げ方や使い方については、以下の記事を参考にしてください。
※拡張機能の更新方法については、以下の記事で詳しく解説しています。
【2023年10月時点】Stable Diffusionの最新バージョン
2023年9月1日に最新バージョン「v1.6.0」が公開されました。
新しいSampling method(サンプラー)が追加されるなど大きな変更がされています。
詳しくは、以下の公式ページをご覧ください。
Stable Diffusionを更新する前に気を付けること
これはすごく大事なことです!
”Commit hash”については後ほど説明していきます。
本記事を読んで頂ければ必要な手順は全て覚えられますので、是非参考にしてください!
「AUTOMATIC1111」のGitHubを確認する
アップデートの内容はStable Diffusionが公開されているGitHubから確認できます。
以下のリンク先、「AUTOMATIC1111」氏のページに詳細があります。
先日、大きなアップデートがありました。機能も色々と増えていますし、UIにも変更があったようです。
でもその前に、しっかりと準備をすることが重要です!
アップデートの時にバグがあるのは当然です。(だって無料で使えるツールですもの)
あるいは拡張機能が使えなくなる事もよくあります。多少のバグがあっても公開して、ユーザーに使ってもらいながら修正していきます。
これによって、技術的な発展のスピードが上がるのです。ただし大規模なアップデートの時には思いもよらないバグがあったりもします。
自分の画像生成環境は自分でしっかり守る。そういった意識が大切です。
「モデル」や「Lora」などの学習データをバックアップしておく
基本的には学習データの「モデル」や「Lora」はすでに別ファイルで保存されているため、破損のリスクは少ないです。ただし、アップデート後のバグにどんなのが来るかはわかりません。
また、不具合で色々なファイルをダウンロードし直すこともありえます。その際に間違って自分で消してしまうリスクは存在します。
今では手に入らない「モデル」や「Lora」もあるので、そのような希少なものは常日頃から別途保存をしておくほうが安全でしょう。
※Stable Diffusionの「モデル」について詳しく知りたい方は、以下の記事を参考にしてください。
※Stable Diffusionの「Lora」について詳しく知りたい方は、以下の記事を参考にしてください。
しっかり動作する「Commit hash」を保存しておく
アップデート後うまく動作しない時に、バージョンを戻す方法があります。
「Commit hash」(コミットハッシュ)があると簡単に戻せます。今使用している環境の物をターミナル画面からひかえておきましょう。
過去の「Commit hash」の確認方法
ターミナル画面から過去の更新履歴を確認することができます。
ターミナルを開いてstable-diffusion-webuiのディレクトリ行きましょう。ターミナル上で
cd ~/stable-diffusion-webui
コピペして「enter」を押すと、stable-diffusion-webuiのディレクトリが表示されます。ファイルを探して右クリック経由で表示するよりも早いので、知らなかった方は覚えておくと便利ですよ。
次に
git log
コピペして「enterキー」を押すと、いくつか過去のコミットハッシュが出てきます。さらに「enterキー」を長押しすると遡って過去のコミットハッシュが流れていきます。
今後特定のバージョンでしか機能しない拡張機能などがあった際に、使う事があるかもしれませんので覚えておくと便利です!
不具合のために備えておく
コミットハッシュ以外にも”python”や”torch”のバージョンも残しておくと良いでしょう。これらを更新することでエラーが収まる事もあります。
ターミナルからそれらを確認する方法もありますが、今使っているstable diffusionの画面の一番下に各バージョンの記載がありますので、スクショをとっておくのが簡単です。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい
Stable Diffusionの更新(アップデート)方法
準備が整ったところで、バージョンアップしてみましょう。
①現在のバージョンを確認する
まずは、ご自身のStable Diffusionの環境が最新バージョンなのか否か確認しておきましょう。
●ローカル版をお使いの方
「webui-user.bat」のファイルを実行して、下記画像のようにコマンド画面が開いたら、最初の方に“version: ○○”と記載してあります。
●AUTOMATIC1111をお使いの方
こちらから、AUTOMATIC1111のGitHubを開いてください。
画面右下の方に「Release情報」が記載されていますので、ここから確認してください!
バージョンが古い場合は、これから説明する方法でStable Diffusionをアップデートしましょう!
②Stable Diffusionをアップデートする
ターミナルを開いてstable-diffusion-webuiのディレクトリ行きましょう。ターミナル上で
cd ~/stable-diffusion-webui
コピペして、enterキーでOKです。stable-diffusion-webuiのディレクトリに着いたら
git pull
これもコピペして、enterキーでOKです。たったこれだけで更新作業が始まります。
③Stable Diffusionを起動する
ターミナルを開いてstable-diffusion-webuiのディレクトリにいきましょう。操作は先ほどと全く同じです。
ターミナル上で
cd ~/stable-diffusion-webui
enterしてください。もうそこにいる場合は飛ばしてください。
次に
./webui.sh
enterで起動します。
新しいバージョンがどんな感じなのかとても気になります。イシューを見る限りかなりバグが多そうですね。
とりあえず何か描かせてみましょう。
ちなみに私が「V1.6.0」へバージョンアップした時は問題なく作動しました。
UIが今までとは変わっています。loraの場所がいつもの場所に無くて探せませんでした。そしてやっと見つけてloraを入れたら、今度はそれを閉じられません。
なんとかできましたが、慣れるまで苦労しそうです。
最後はSettingsタグも確認しておきましょう!
Stable Diffusionを更新する際にエラーが出る時の対処法
バージョンアップしてみて、
「あ〜、なんだか動かなくなっちゃった〜」
そんな時はまず、エラーの内容を確認しましょう。ターミナル画面を見るとどんなエラーかが表示されていますので、メモしておきましょう。
上記はバリューエラーが起きています。“An event handler (on_generate_click)” が、必要な入力値(37個)を受け取るべきなのに、実際には35個しか受け取らなかったことが原因であることを示しています。
このエラーはリロードする事で解決できましたが、普段pythonや他のプログラミングをしない人にとってはちょっと難しいかもしれません。
そんな時にはエラーメッセージをコピーしてネットで検索するか、チャットGPTに聞いてみると、どんなエラーが起きているのか教えてくれます。
その上で、もし問題を解決したいなら
- イシューを確認して、同様のトラブルの解決方法を探す
上記のgithub上に多くのバグ事例が上がっていますので、ここから類似の物を探してください。でも必ず解決できるわけではありません。
そんなに時間はかけられないあなた
- バージョンを元に戻しましょう
バージョンアップが簡単だったように、ダウングレードも簡単です。
stable-diffusion-webuiのディレクトリ行きましょう。ターミナル上で
cd ~/stable-diffusion-webui
enterキーを押します。
git checkout [コミットハッシュ]
[コミットハッシュ]のところに先ほど控えておいた元の使用環境のコミットハッシュを入れてenterキーを押してください。
これで元のバージョンに戻ります。少し時間がかかるので、バグの解決策が提示されるのを待ちましょう。
あるいはバージョンアップがあってもすぐには導入せずに、イシューや他のユーザーと情報交換をしながら時期を見定める、という案もありますのでご自身に合った方法を試してみてください!
また、バージョンアップして問題がない時も、それまで使っていた拡張機能(ControlNetなど)がちゃんと動作しない事もあります。
その時は、拡張機能のイシューを探して解決可能かどうかを考慮し、無理そうな時はバージョンのダウングレードをして解決策が出るまで待ちましょう。
“git pull” 時にエラーが表示されるときの対処法
バージョンアップ時に使用した“git pull”というコマンドは、Gitバージョン管理システムのコマンドの1つで、リモートリポジトリから最新の変更を取得し、それを現在のブランチにマージまたは統合するために使用されるコマンドです。
もしその時にエラーが起きたら、先ほどと同じくエラーメッセージを確認し、そのエラーがどういった内容か検索したり、チャットGPTに聞いてみてください。
エラーの解決は個別事情毎に様々ですが、大概の問題は解決策が見つかります。
Stable Diffusionをダウングレードする方法
最後に、Stable Diffusionをダウングレードする方法についてご紹介します。
下記コードを実行することでダウングレードが可能になります!
git checkout ダウングレードしたいバージョン(例:v1.3.0)
ここで注意が必要なのですが、ダウングレードは以前に「git pull」でバージョンアップしたことがあるという場合のみ実行できます!
ダウングレードした後にアップグレードする方法
旧バージョンにダウングレードしたけど、やっぱり最新バージョンにアップグレードしたい!というときは、以下のコードを実行すると最新バージョンに変更できます。
git checkout master
まとめ
いかがでしたでしょうか?
Stable Diffusionのアップデート方法!についてご紹介してきました。
今回のポイントをまとめると、以下のようになります。
- 準備が必要です。アップデートの前には必ず元のコミットハッシュを記録しよう
- アップデートは { git pull } 、元に戻すなら { git checkout [コミットハッシュ] }
- エラーがあっても落ち着いて、ターミナル画面を確認しよう
Stable Diffusionは日々進化を続けています。
今後どんな機能が実装されるかとても楽しみです。
皆さんもバージョンアップしたStable Diffusionで制作を楽しんでくださいね。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい