ローカル版更新

Last-modified: 2024-03-02 (土) 16:54:24

すでにローカル版1111を導入している状態で、他のバージョンへ更新する方法の解説。

 

更新情報

https://github.com/AUTOMATIC1111/stable-diffusion-webui/commits/master

予備知識

更新する上で最低限必要なPythonGitHubの知識です。

ローカルリポジトリリモートリポジトリ

下記の用語を覚えておきましょう。クリックで解説ページにジャンプします。

「更新する」とは?

リモートリポジトリのデータを、ローカルリポジトリに移植する。
もし、ローカルリポジトリ内に最新バージョンが存在している場合は、それを選択して更新することもできる。

使用するgitコマンド

クリックで解説ページにジャンプします。

Stable Diffusion web UI(AUTOMATIC1111)の更新

安定動作版であるmasterブランチか、それ以外のブランチのどれに更新するかで、手順が少し異なる。

 

ブランチ一覧。
master以外にも、いくつかのブランチが存在している。

githubページのブランチリストの例.png
引用:https://github.com/AUTOMATIC1111/stable-diffusion-webui/tree/master

最新版へ更新する

ローカル版1111を更新する方法

  1. 「stable-diffusion-webui」のフォルダを開き、空いているところで右クリックして「Git bash here」を押す。*1
     または、空いているところでShiftキーを押しながら右クリックして「PowerShell ウィンドウをここで開く」を押す。
  2. 下記を入力してEnterを押す。
    git pull
  3. すぐに更新が完了する。

git pullコマンドで更新(GitHubと同期)できるのは、現在選択中のブランチのみです。
すでに他のブランチを使用している場合は、先にブランチの切り替えを行いましょう(後述)

※※※注意※※※
AUTOMATIC1111のwebuiは頻繁に更新されるが、バグが新しく入ることもある。
更新時は調べてから慎重に行うか、別のディレクトリに2つインストールしておいていつでも前の環境に戻せるようにしておくと良い。

最新版以外へ変更する

ブランチ版、または旧バージョンに戻す方法です。

任意のバージョンに戻す方法

git reset --hard [Commit hash]
ってやるとその時のソースに戻せる
例えばこう

git reset --hard d5ce044bcdd9593751d7e0ba28087247ff0b7926
  1. 「stable-diffusion-webui」のフォルダを開き、空いているところで右クリックして「Git bash here」を押す。
  2. 下記を入力してEnterを押す。
    git log
  3. 今インストールされているバージョンのCommit hashを筆頭に直近4件程度のバージョンのCommit hashが表示される。
  4. Enterを長押しするとインストールされているバージョンからさかのぼる形で次々に過去バージョンのCommit hashが出てくる。
    Commit hashの横に(tag: v1.5.0)と表示されてるものがあれば、そのCommit hashをコピペしてv1.5.0に戻せる。
    根気よくさかのぼればv1.0.0-preまでさかのぼれるらしい・・・?
    ちなみにRC版のCommit hashも表示される。過去バージョンのRC版を入れるメリットなど皆無なので無視するようにしてください。
  5. お目当てのバージョンのCommit hashが見つかったらコピー。
  6. いったんGit bashを閉じて、もう一度Git bash hereを押し、
    git reset --hard [コピペしたCommit hash]
    を実行。適用されたらGit bashを閉じてwebui-user.batを起動。これで狙った旧バージョンになってるはず。

補足

git reset --hardするとwebui-user.batとか自分でいじった変更は消えちゃうから
その前にstashしておくといいね
というかGit慣れてない人はsourcetreeとかGUIのツール使ったほうがいいよ

日本語にも対応してるTortoiseGit使ってる
Windowsならフォルダ右クリックしてgit pullできて楽

メモ: git reset --hard するなら念のため事前にこの辺のバックアップを取っておく?

メモ: git reset --hard するなら念のため事前にこの辺のバックアップを取っておく?

  • webui-user.bat
  • config.json
  • ui-config.json
  • params.txt
  • styles.csv
  • user.css

手持ちの1111のCommit hash値を調べる方法

1111を起動した時に

Commit hash: d5ce044bcdd9593751d7e0ba28087247ff0b7926

みたいな感じで出てくる。
1111を更新する前にメモしておくといいかも。git logでさかのぼってログを探す手間が省けて楽になる。

ブランチ版を指定してgit cloneする方法

  • master*2よりも最新の機能が含まれているが、未知のバグに遭遇する可能性がある。
    例えば「release_candidate」や「dev」ブランチが「master」にmergeされる前に、一足早く試したいよという人柱あき向けの情報。
    トラブル防止のため、もちろん新規ディレクトリへのgit clone推奨。
git clone -b <ブランチ名> <URL> [<ディレクトリ>]

(例)

git clone -b release_candidate https://github.com/AUTOMATIC1111/stable-diffusion-webui.git D:\1111_v1.8-RC

「master」↔ 他のブランチへの切り替え

git switchで、切り替え対象を入力して実行する。

git switch master

これでmasterブランチに切り替わる。

現在動作しているブランチを確認したい。

git branchを使うと、ローカルリポジトリ内に存在するブランチ一覧が表示される。

git branch

出力結果の一例として、下記が出てくる。
この場合、*がついている「master」が使用可能であることがわかる。

既存データを残しつつ、任意ディレクトリで新規構築する

旧環境を残しつつ、別のディレクトリに構築する方法です。
安定して動作する旧環境(旧版の本体+旧版の拡張機能)を温存するので安全。

下記の例では、現在公開されている最新版の1111本体を、『D:\1111_v1.8』にクローンする。

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git D:\1111_v1.8

その後、ユーザー設定ファイルを旧環境から移植してもいいし、しなくてもいい。お好みでどうぞ。

モデルフォルダやLoRAフォルダの共有は、シンボリックリンクを利用すると捗るよ。
 誘導→モデルについて#シンボリックリンクの作成方法

なお1111の起動時にモデルが1つも存在してない場合には、下記のモデルが自動的にダウンロードされるので注意。
そうならないように、手動でモデルを入れておくこと。
https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors

  • 美少女を出力するのが少々面倒なモデルなので、としあき達にはちょっとおすすめしづらい
  • 4GBあるのでダウンロードに5~10分程度かかる

編集中

もっと見る

https://www.sejuku.net/blog/category/development-environment/git

git rev-parse HEAD

をまず使い現在のCommit hashを取得する。要はバージョンみたいなもの?
更新のとこ( https://github.com/AUTOMATIC1111/stable-diffusion-webui/commits/master )の右側にある7桁のやつ
例として2022/10/10 15:09現在の最新バージョンで実行すると

$ git rev-parse HEAD
8acc901ba3a252dc6ab4fabcb41644cf64d1774c

と返してくれる。 Newer versions of PyTorch use TypedStorage instead に書いてある「8acc901」と一致していることがわかる。
これをアプデ前に行う。
アプデ後もしエラーが出た場合には

git reset 8acc901ba3a252dc6ab4fabcb41644cf64d1774c

とすることで前のバージョンに戻ることが出来る(らしい) ※試してない

git pull
git tag "yourowntag"
git checkout "yourowntag"

※※※※※※※※

安定版?hash (v1.1以前の情報)

現在の1111には「v1.x.x」といったバージョン数字が与えられ、大変わかりやすくなっているが、2023/4以前はCommit hashのみで管理されていた。

古い情報なので折り畳み
  • だいぶ古いけど不具合なく動いてるSDPAは使えないかも?
    3e0f9a75438fa815429b5530261bcf7d80f3f101
  • 3/11 Detection Detailer動いてる版
    58b5b7c2f1d3b843803c1fc7a0aae8b1d6be5763
  • 3/14 安定してるかも版
    a9fed7c364061ae6efb37f797b6b522cb3cf7aa2
  • 3/24 大規模更新直前版(Composable LoRAの動作を確認済)
    a9eab236d7e8afa4d6205127904a385b2c43bb24
    ただしComposable LoRAをONにしつつ、Batch sizeを2以上にすると、
    Composable LoRAくんが「IndexError: list index out of range」エラーを吐く。
    なのでComposable LoRA使用時はBatch size=1で運用することをオススメ。

拡張機能の更新方法

誘導→Extensions#拡張機能の更新方法

指摘・更新するべき箇所や助言など

  • 安定版候補のコミットハッシュ値書いてくれた人ありがとう。良い情報だ…。 -- 2023-04-09 (日) 17:06:29
  • 機能拡張のエラーと戦ってて本当に安定してるかは検証できてないんだすまない -- 2023-04-10 (月) 01:54:56
  • 2ディレクトリ目に新規git cloneして、そいつを「3/24 大規模更新直前版」にまで戻すことで、Composable LoRAの動作確認を取れたぜ。この旨を追記しておいた。コミットハッシュと日付の情報ありがとう! -- 2023-04-11 (火) 20:06:04

短縮URL生成

https://wikiwiki.jp/sd_toshiaki/-s/26575c82

*1 Windows 11だと「その他のオプション」⇒「Git bash here」かも。また、空いているところで右クリックしても出ない時は、「stable-diffusion-webui」のフォルダ自体を右クリックすると出てくる。
*2 特に意識していなければこちらをインストールしているはず