Stable Diffusion WebUIで CheckpointやLoRAが読み込めない!?

Stable Diffusion

 

CheckpointsタブやLoRAタブ、Textual Inversionタブをクリックするとエラーが表示され、CheckpointやLoRA、embeddingsが読み込めずに困った経験はありませんか?

今回は、この CheckpointやLoRAが読み込めない エラーについて解説します。

 

1.CheckpointやLoRAが読み込めない エラー

Stable Diffusionを起動した際、CheckpointやLoRAが読み込めない現象がしばしば起こります。
ブラウザのWebUI画面上では、目立ったエラー表示はなく、画像生成もできてしまうので気づかないケースもあると思います。

「生成した画像にLoRAが適用されていない」などの場合、Textual Inversionタブ、Hypernetworksタブ、Checkpointsタブ、LoRAタブのいずれかを選択すると、エラーが表示されいます。

WebUI画面のエラー表示

 

この時、コマンドプロンプトやターミナル画面を開くと、以下のようなエラーが表示されています。

Stable Diffusion WebUIでCheckpointやLoRAが読み込めない 時のエラー画面(コマンドプロンプト)
コマンドプロンプト画面のエラー表示

 

一番下の行に、以下のエラーが表示されています。

RuntimeError: dictionary changed size during iteration

 

このエラーが発生すると、CheckpointやLoRA、embeddingsなどが読み込めなくなります。

 

目次に戻る

 

 

2.エラーの原因

このエラーは、WebUIをインストールしたフォルダの直下にある cache.json というjsonファイル関連のエラーです。

エラーの原因は特定されていないようですが、本家のAUTOMATIC1111氏によると、「古いLoRAが、cache.jsonの再インデックスに影響を与えているのではないか?」ということです。

Stable Diffusion WebUIを起動する際、WebUIをインストールしたフォルダの直下にある cache.json というファイルを読み込んでCheckpointやLoRA、拡張機能などの情報を取得します。

新しいCheckpointやLoRA、拡張機能などを追加すると、この cache.json が書き換えられます。

筆者の場合、拡張機能のMov2MovをONにすると必ずエラーになりました。

このエラーは、インストールしている拡張機能にも何らかの関連があるようです。

 

 

目次に戻る

 

3.対処法

残念ながら完全にエラーを解消する対処法はないようですが、比較的簡単にできる対処法をいくつかご紹介します。

(1)ブラウザを更新する。

大抵の場合、ブラウザの更新ボタンをクリックしてブラウザを更新(Windows:F5キー、Mac:Command キー+Rキー)するとCheckpointsタブ、LoRAタブ、Hypernetworksタブ、Textual Inversionタブのエラー表示はなくなり、通常通り使用できるようになります。
※WebUI画面下にある 「Reload UI」リンクではありません。

根本的な解決策ではないかもしれませんが、手っ取り早くエラーを回避するには一番だと思います。

 

(2)WebUIを再起動する。

コマンドプロンプト(ターミナル)を終了し、何回か再起動を繰り返すとエラーが回避される場合があります。

ブラウザのWebUIを閉じるだけでなく、必ずコマンドプロンプト(ターミナル)を終了してから再起動します。

 

(3)cache.jsonを再構築する①「CheckpointやLoRAを追加して再構築」

新しくCheckpointやLoRAをダウンロードして所定のフォルダに置いてからWebUIを起動すると、新しい cache.json が作成されます。これにより、エラーが回避される場合があります。

 

(4)cache.jsonを再構築する②「cache.jsonを削除して再構築」

WebUIをインストールしたフォルダの直下にある cache.json を削除してからWebUIを起動すると、新しい cache.json が作成されます。これにより、エラーが回避される場合があります。

 

(5)キャッシュを削除する(追記:2024/03/16)

以下のキャッシュが保存されているフォルダを削除する。
※ %USERNAME% は、ご自分のユーザー名に置き換えてください。

 

WebUIの起動時間があまりにも長かったために行った対処法ですが、CheckpointやLoRAの読み込みにも効果があったので追記します。

この方法に関しては、以下の記事で詳しく解説していますので、ぜひお読みください。

 

 

目次に戻る

 

 

4.筆者のケースの場合

筆者の場合、Mov2MovのON/OFFが原因でエラーになりました。
Mov2MovをOFFにしておけば全く問題ないのですが、エラーは出ない方が良いに決まっています。

そこで、ブラウザの更新以外に以下のような対処を行ってみました。

結論から言うと、WebUIをv1.6.0からv1.6.1にアップデートすることにより解決しました。

  1. Mov2Movを最新版にアップデート
    結果:効果なし(Mov2MovをONにするとエラー)

  2. Mov2Movを削除し、Mov2Movを再インストール
    結果:効果なし(Mov2MovをONにするとエラー)

  3. cache.jsonを再構築する①「CheckpointやLoRAを追加して再構築」
    結果:一時的に効果あり(Mov2MovをONにするとエラー)

  4. cache.jsonを再構築する②「cache.jsonを削除して再構築」
    結果:一時的に効果あり(Mov2MovをONにするとエラー)

  5. WebUIの再起動を繰り返す
    結果:効果なし(Mov2MovをONにするとエラー)

  6. WebUIをアップデート
    結果:効果あり

 

WebUIのアップデート方法については、以下の記事で解説していますので、参考にしてみてください。

 

ページトップへ

コメント

タイトルとURLをコピーしました