PR

Stable Diffusion Web UIのアップデート方法は?注意点もしっかり解説!

Stable Diffusion Web UIのアップデート方法は?注意点も解説します
この記事は約11分で読めます。
らん
らん

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コマンドの裏で何が起こっているのかも見ていきましょうね

らん
らん

わかりやすくお願いします!

先に本記事のポイントをちらっとお見せしておきます。

この記事のポイント
  • アップデートの前に現在のWebUIのバックアップを忘れずに!
  • git pull」コマンドで最新版にアップデートできます
  • git reset」コマンドで以前のバージョンに戻せます
  • 「git checkout」でバージョンを戻すとちょっと面倒なことになります…

それではいってみましょう!

最新版へのアップデート方法

AUTOMATIC1111はダウンロードしたあとに自動的にアップデートされるわけではありません。特にアップデートの通知があるわけでもないので、放置しがちです。

ですが、アップデートによって機能追加されていたり、不具合が修正されているかもしれませんので、定期的にアップデートをチェックしておくことは大事です。

下のリンクからAUTOMATIC1111のリリース情報を確認できます。

るん
るん

ときどきチェックしてみましょう♪

Releases · AUTOMATIC1111/stable-diffusion-webui
Stable Diffusion web UI. Contribute to AUTOMATIC1111/stable-diffusion-webui development by creating an account on GitHub...

アップデートの前にやっておくこと

アップデートしてもモデルや生成画像、拡張機能はそのまま残ります。

ですが、念のためアップデート前の状態に戻せるようにしておいた方が安心です。
特に初めてアップデートするときは、アップデートの前に下記の準備をしておくことを強くオススメします。

①現在のWeb UIをバックアップする

現在使っているWeb UIのファイルをまるごとバックアップしておけば、いざというときに安心です。

バックアップ方法は簡単で「stable-diffusion-webui」のフォルダごとどこかにコピーしておくだけです。フォルダの名前は変えてもOKです。

Stable Diffusion Web UI(AUTOMATIC1111)をバックアップ

モデルなどがたくさん入っていると、フォルダのサイズが非常に大きいかもしれません(数十~数百GB)。

②現在のWeb UIの「コミットID」を確認する

るん
るん

いつでも元のバージョンに戻せるように「コミットID」を確認します

らん
らん

「コミットID」って何よ…?人生で初めて聞いた単語だわ

AUTOMATIC1111は「Git(ギット)」というファイル管理システムの仕組みを使ってファイルを更新します。

「Git」は簡単に言うと、ファイルのバージョン(履歴)を管理するための仕組みです。

Stable Diffusion Web UIは巨大なプログラムなので、たくさんのファイルがあります。そして、不具合修正や機能追加でどんどん更新されています。
なので、それぞれのファイルをいつ誰がどんな変更をしたのかを追跡できることがとても重要です。

Gitならファイルの変更がすべて記録できる
らん
らん

ふむふむ。この追跡システムがGitってことね💡

Gitではファイルの更新のことを「コミット」と言います。
ファイルがコミット(更新)されるたびに、そのコミットに対して「コミットID(コミットハッシュ)」という40桁の英数字が割り当てられます。

Gitではコミットのたびに「コミットID」が割り当てられる

コミットIDは重複しないようになっているので、コミットIDがわかればそのファイルの状態に巻き戻すことができるというわけです。

らん
らん

タイムマシンみたいだね😆

るん
るん

いつでも過去に戻れるってわけです✨

では、現在使っているWeb UIのファイルの「コミットID」を確認しましょう。

いつものように「webui-user.bat」をクリックしてWeb UIを起動させてみましょう。
コマンドプロンプト(黒い画面)にすごい勢いで文字が表示されていくと思いますが、最初の方を見てください。
Commit hash: 」の後に書かれている40桁の英数字が「コミットID」です。

[Stable Diffusion WebUI] コミットIDの確認
るん
るん

メモ帳などに「コピペ」して大切に保存しておきましょう

その1行上にWeb UIのバージョンも表示されているので、これも合わせてメモしておくと良いです。
なお、Web UIのバージョンはWeb UIの下の方にも表示されています。

[Stable Diffusion WebUI] バージョンの確認

①②の準備ができたら、いよいよアップデートしていきましょう!

アップデート(Windows11)

1.エクスプローラーでStable Diffusion Web UIのフォルダ(stable-diffusion-webui)を開きます。フォルダ内には「webui-user.bat」などさまざまなファイルやフォルダがあると思いますが、それら以外の余白部分を右クリックしてメニューを開き、「ターミナルで開く」をクリックします。

Stable Diffusion Web UIをアップデートするためターミナルを起動する

2.すると、このようなターミナル(PowerShell)が起動します。

Windowsのターミナル(PowerShell)

3.ここで次のコマンドを入力してEnterキーを押します。

git pull
Windowsのターミナル(PowerShell)でgit pullコマンドを実行

自動的に最新バージョンのファイルがダウンロードされます。これで更新完了です。

git pull は最新ファイルをダウンロードするGitコマンドです。

らん
らん

え?これだけなの

るん
るん

とっても楽チンですよね😊

あとはいつもどおりにwebui-user.batを起動するだけです。
最初の方にWeb UIのバージョンが表示されるので、ちゃんとバージョンアップされているか確認しましょう。

[Stable Diffusion WebUI] バージョンの確認

「git pull」の裏では何が起こっているのでしょうか?
まずは、Gitで大切な「リポジトリ」という概念を理解しておきましょう。

「リポジトリ」というのは「貯蔵庫」という意味です。ファイルやフォルダの貯蔵庫が「リポジトリ」です。

AUTOMATIC1111ではGithubというサーバーでファイルが管理されています。ここを「リモートリポジトリ」と言います。

Gitのリモートリポジトリ
るん
るん

遠く離れた(リモート)ところにあるから「リモートリポジトリ」

最初にAUTOMATIC1111をダウンロードしたときのことを思い出してください。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git」というコマンドでダウンロードしましたよね。

この「https://github.com/AUTOMATIC1111/stable-diffusion-webui.git」が「リモートリポジトリ」なのです。

そして、このgit cloneコマンドは「リモートリポジトリ」を自分のパソコンに完全コピーするという操作です。

こうしてできた自分のパソコン内のリポジトリのことを「ローカルリポジトリ」といいます。

git cloneでリモートリポジトリを完全コピー

そして時が流れ、AUTOMATIC1111の開発が進んでいくと「リモートリポジトリ」のファイルは更新されていきますが、「ローカルリポジトリ」はそのままです。

つまり、「リモートリポジトリ」と「ローカルリポジトリ」に差分が生じます。

git pullとは、「リモートリポジトリ」のファイルを「ローカルリモートリポジトリ」にコピーして、この差分を解消するためのコマンドなのです。

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でのファイルの更新は、実は一直線に行われるものではありません。

「不具合修正」や「機能追加」などは平行して行われていくので、ファイルも平行して更新されていくのが普通です。

なので、ファイルの更新は複数に枝分かれして行われていきます。この「枝」のことを「ブランチ」といいます。

コミット(ファイル更新)はこの「ブランチ(枝)」についている「葉っぱ」のようなものだとイメージしてください。

Gitのブランチのイメージ

AUTOMATIC1111を初めてダウンロードしたとき、つまり「git clone」したときには、ローカルリモートリポジトリは「master」というブランチひとつだけの状態です。

masterブランチのイメージ

git pull することで、このmasterブランチという枝を伸ばして新たな「葉っぱ(コミット)」を手に入れます。

masterブランチでのgit pullのイメージ

過去のバージョンに戻したいケースを想像しましょう。
これはブランチに生えている「あの葉っぱ(コミット)が欲しい」という状態ですね。

Gitで過去のコミットに戻したいイメージ

git checkoutで「コミットID」を指定して以前のバージョンに戻すことは、「リポートリポジトリ」からその葉っぱをちぎって持ってくるというイメージなのです。

るん
るん

ローカルリポジトリはこんな状態になってます…

git checkoutのイメージ

切り離された葉っぱの上にいる状態です。
ここからgit pullしても枝(ブランチ)をたどることができませんよね。孤立した状態なので。
つまり、枝を伸ばしようがないわけです。そのため、エラーになってしまうのです。

切り離されたコミット(detached HEAD)の状態だとgit pullできない

ではどうすればいいかというと、元のmasterブランチに戻ればいいのですよね。
ブランチを切り替えるには「git switch ブランチ名」です。次のコマンドでmasterブランチに戻れるというわけです。

git switch master
git switchで元のブランチに戻る
らん
らん

masterに戻ったらこっちのもんね!

あとは、git pullで枝を伸ばして最新のコミットを持ってこれます✨

元のバージョンに戻す方法

更新したバージョンに不具合があるなどの理由で、元のバージョンに戻したい場合もあると思います。
その手順を説明します。

まず、ターミナルを立ち上げます。

Stable Diffusion Web UIをアップデートするためターミナルを起動する

過去のバージョンに戻すには git reset というコマンドを使います。

モデル、拡張機能、生成画像はそのまま残りますが、webui-user.batを変更していた場合、その変更は消えてしまうことに注意です。

あらかじめメモしておいた「コミット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
[Stable Diffusion WebUI] タグ一覧を確認する

タグの一覧が表示されるので、戻したいバージョンを見つけます。そして、以下のコマンドでタグの詳細を確認します。

git show タグ

たとえば、v1.5.0なら次のようになります。

git show v1.5.0

これでコミットIDが表示されます。あとは「元のバージョンに戻す方法」と同じ手順です。

[Stable Diffusion WebUI] タグのコミットIDを確認する

まとめ

  • アップデートの前に現在のWebUIのバックアップを忘れずに!
  • git pull」コマンドで最新版にアップデートできます
  • git reset」コマンドで以前のバージョンに戻せます
  • 「git checkout」でバージョンを戻すとちょっと面倒なことになるのでオススメしません
プロフィール
この記事を書いた人
千鳥 るん | Chidori Run

画像生成AIで思い通りのイラストを描くためのノウハウを試行錯誤で模索しています。IT企業でAI戦略に関わっていたこともあるAIエンジニアです。大学生の頃から趣味でイラストを描いていましたが、仕事が忙しくなり一旦筆を置きました。最近、NovelAIと出会ってまたお絵描きへの情熱を取り戻しています。

千鳥るんをフォローする
Stable Diffusion
スポンサーリンク
シェアする
千鳥るんをフォローする
るんるんスケッチ

コメント