Stable Diffusion WebUIの最新版が欲しいんだけど
簡単にアップデートできますが注意点もあります!
「AUTOMATIC1111」はとても使いやすいStable Diffusion Web UIのひとつですよね。
私も1年近く愛用しています。
でも、もしかするとそのWeb UIのバージョン、古くなっていませんか?
かくいう私もWeb UIのアップデートを気にしていなかったので、いつのまにかバージョンが「v1.3.2」から「v1.7.0」に上がってました…😅
最新版にアップデートしたら、いくつかの点で使いやすくなっていたので、やはりアップデートは大切だと身にしみているところです。
本記事ではStable Diffusion Web UI(AUTOMATIC1111)のアップデート方法や元のバージョンに戻す方法を、注意点も合わせてわかりやすく解説します。
Web UIのアップデートには「Git」という仕組みを使いますので、プログラミングにあまり馴染みのない人にはわかりにくいかもしれません。
本記事では、初心者の人にもわかりやすいように図解も交えながら丁寧に解説していきますので安心してくださいね。
Gitコマンドの裏で何が起こっているのかも見ていきましょうね
わかりやすくお願いします!
先に本記事のポイントをちらっとお見せしておきます。
それではいってみましょう!
最新版へのアップデート方法
AUTOMATIC1111はダウンロードしたあとに自動的にアップデートされるわけではありません。特にアップデートの通知があるわけでもないので、放置しがちです。
ですが、アップデートによって機能追加されていたり、不具合が修正されているかもしれませんので、定期的にアップデートをチェックしておくことは大事です。
下のリンクからAUTOMATIC1111のリリース情報を確認できます。
ときどきチェックしてみましょう♪
アップデートの前にやっておくこと
アップデートしてもモデルや生成画像、拡張機能はそのまま残ります。
ですが、念のためアップデート前の状態に戻せるようにしておいた方が安心です。
特に初めてアップデートするときは、アップデートの前に下記の準備をしておくことを強くオススメします。
①現在のWeb UIをバックアップする
現在使っているWeb UIのファイルをまるごとバックアップしておけば、いざというときに安心です。
バックアップ方法は簡単で「stable-diffusion-webui」のフォルダごとどこかにコピーしておくだけです。フォルダの名前は変えてもOKです。
②現在のWeb UIの「コミットID」を確認する
いつでも元のバージョンに戻せるように「コミットID」を確認します
「コミットID」って何よ…?人生で初めて聞いた単語だわ
AUTOMATIC1111は「Git(ギット)」というファイル管理システムの仕組みを使ってファイルを更新します。
「Git」は簡単に言うと、ファイルのバージョン(履歴)を管理するための仕組みです。
Stable Diffusion Web UIは巨大なプログラムなので、たくさんのファイルがあります。そして、不具合修正や機能追加でどんどん更新されています。
なので、それぞれのファイルをいつ誰がどんな変更をしたのかを追跡できることがとても重要です。
ふむふむ。この追跡システムがGitってことね💡
Gitではファイルの更新のことを「コミット」と言います。
ファイルがコミット(更新)されるたびに、そのコミットに対して「コミットID(コミットハッシュ)」という40桁の英数字が割り当てられます。
コミットIDは重複しないようになっているので、コミットIDがわかればそのファイルの状態に巻き戻すことができるというわけです。
タイムマシンみたいだね😆
いつでも過去に戻れるってわけです✨
では、現在使っているWeb UIのファイルの「コミットID」を確認しましょう。
いつものように「webui-user.bat」をクリックしてWeb UIを起動させてみましょう。
コマンドプロンプト(黒い画面)にすごい勢いで文字が表示されていくと思いますが、最初の方を見てください。
「Commit hash: 」の後に書かれている40桁の英数字が「コミットID」です。
メモ帳などに「コピペ」して大切に保存しておきましょう
その1行上にWeb UIのバージョンも表示されているので、これも合わせてメモしておくと良いです。
なお、Web UIのバージョンはWeb UIの下の方にも表示されています。
①②の準備ができたら、いよいよアップデートしていきましょう!
アップデート(Windows11)
1.エクスプローラーでStable Diffusion Web UIのフォルダ(stable-diffusion-webui)を開きます。フォルダ内には「webui-user.bat」などさまざまなファイルやフォルダがあると思いますが、それら以外の余白部分を右クリックしてメニューを開き、「ターミナルで開く」をクリックします。
2.すると、このようなターミナル(PowerShell)が起動します。
3.ここで次のコマンドを入力してEnterキーを押します。
git pull
自動的に最新バージョンのファイルがダウンロードされます。これで更新完了です。
え?これだけなの
とっても楽チンですよね😊
あとはいつもどおりにwebui-user.batを起動するだけです。
最初の方にWeb UIのバージョンが表示されるので、ちゃんとバージョンアップされているか確認しましょう。
「git pull」の裏では何が起こっているのでしょうか?
まずは、Gitで大切な「リポジトリ」という概念を理解しておきましょう。
「リポジトリ」というのは「貯蔵庫」という意味です。ファイルやフォルダの貯蔵庫が「リポジトリ」です。
AUTOMATIC1111ではGithubというサーバーでファイルが管理されています。ここを「リモートリポジトリ」と言います。
遠く離れた(リモート)ところにあるから「リモートリポジトリ」
最初にAUTOMATIC1111をダウンロードしたときのことを思い出してください。
「git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git」というコマンドでダウンロードしましたよね。
この「https://github.com/AUTOMATIC1111/stable-diffusion-webui.git」が「リモートリポジトリ」なのです。
そして、このgit cloneコマンドは「リモートリポジトリ」を自分のパソコンに完全コピーするという操作です。
こうしてできた自分のパソコン内のリポジトリのことを「ローカルリポジトリ」といいます。
そして時が流れ、AUTOMATIC1111の開発が進んでいくと「リモートリポジトリ」のファイルは更新されていきますが、「ローカルリポジトリ」はそのままです。
つまり、「リモートリポジトリ」と「ローカルリポジトリ」に差分が生じます。
git pullとは、「リモートリポジトリ」のファイルを「ローカルリモートリポジトリ」にコピーして、この差分を解消するためのコマンドなのです。
pullは引っ張ってくるという意味です
「リモートリポジトリ」からファイルを引っ張ってくるイメージね💡
git pull に失敗してしまうときは
git pull したときに、こんなメッセージが表示されてしまうことはありませんか?
PS C:\Users\xxx\StableDiffusion\git_test\stable-diffusion-webui> git pull
You are not currently on a branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
「git checkout」で過去のバージョンに戻したことがあると、このような現象が起きます。
解消方法は、以下のコマンドを実行してください。
そのあとで、git pull すれば成功するはずです。
git switch master
Gitには「ブランチ」という概念があります。
「ブランチ」は「枝」という意味です。
Gitでのファイルの更新は、実は一直線に行われるものではありません。
「不具合修正」や「機能追加」などは平行して行われていくので、ファイルも平行して更新されていくのが普通です。
なので、ファイルの更新は複数に枝分かれして行われていきます。この「枝」のことを「ブランチ」といいます。
コミット(ファイル更新)はこの「ブランチ(枝)」についている「葉っぱ」のようなものだとイメージしてください。
AUTOMATIC1111を初めてダウンロードしたとき、つまり「git clone」したときには、ローカルリモートリポジトリは「master」というブランチひとつだけの状態です。
git pull することで、このmasterブランチという枝を伸ばして新たな「葉っぱ(コミット)」を手に入れます。
過去のバージョンに戻したいケースを想像しましょう。
これはブランチに生えている「あの葉っぱ(コミット)が欲しい」という状態ですね。
git checkoutで「コミットID」を指定して以前のバージョンに戻すことは、「リポートリポジトリ」からその葉っぱをちぎって持ってくるというイメージなのです。
ローカルリポジトリはこんな状態になってます…
切り離された葉っぱの上にいる状態です。
ここからgit pullしても枝(ブランチ)をたどることができませんよね。孤立した状態なので。
つまり、枝を伸ばしようがないわけです。そのため、エラーになってしまうのです。
ではどうすればいいかというと、元のmasterブランチに戻ればいいのですよね。
ブランチを切り替えるには「git switch ブランチ名」です。次のコマンドでmasterブランチに戻れるというわけです。
git switch master
masterに戻ったらこっちのもんね!
あとは、git pullで枝を伸ばして最新のコミットを持ってこれます✨
元のバージョンに戻す方法
更新したバージョンに不具合があるなどの理由で、元のバージョンに戻したい場合もあると思います。
その手順を説明します。
まず、ターミナルを立ち上げます。
過去のバージョンに戻すには git reset というコマンドを使います。
あらかじめメモしておいた「コミットID」を指定することで、そのコミットIDに対応するバージョンのファイルに戻せます。
git reset --hard コミットID
たとえば、私が以前使っていた「v1.3.2」のコミットIDは「baf6946e06249c5af9851c60171692c44ef633e0」なので、ターミナルで以下のコマンドを実行します。これで、v1.3.2のバージョンに戻せます。
git reset --hard baf6946e06249c5af9851c60171692c44ef633e0
任意のバージョンに戻す
「コミットID」さえわかればどのバージョンにも更新することができます。
なので、AUTOMATIC1111のリリースバージョンとコミットIDの対応関係がわかればいいわけです。
Gitのコミットには任意の「タグ」を付けることができ、AUTOMATIC1111では各リリースバージョンの「タグ」が付けられています。
ターミナルから以下のコマンドでAUTOMATIC1111の過去のリリースバージョンを確認します。
git tag
タグの一覧が表示されるので、戻したいバージョンを見つけます。そして、以下のコマンドでタグの詳細を確認します。
git show タグ
たとえば、v1.5.0なら次のようになります。
git show v1.5.0
これでコミットIDが表示されます。あとは「元のバージョンに戻す方法」と同じ手順です。
まとめ
- アップデートの前に現在のWebUIのバックアップを忘れずに!
- 「git pull」コマンドで最新版にアップデートできます
- 「git reset」コマンドで以前のバージョンに戻せます
- 「git checkout」でバージョンを戻すとちょっと面倒なことになるのでオススメしません
コメント