Stable Diffusionで画像を作りたいのに「ImportError: cannot import name ‘analytics’ from partially initialized module ‘gradio’」というエラーが表示されて先に進むことができない!
何が原因でエラーが発生しているのかがよくわからない!
Stable Diffusion web UI(AUTOMATIC1111版)が使えなくて困ってんだけど!
そんなあなたの悩みを解決するお手伝いをさせていただきます。
他にもStable Diffusionのエラー解決系の記事を書いていますので、別のトラブルでも困ったらそちらもご覧ください。
それではいってみましょー!
ImportError: cannot import name ‘analytics’ from partially initialized module ‘gradio’ってそもそもなに?
結論、「gradio」というモジュールが初期化プロセスを開始したけど、「analytics」というオブジェクトを見つけられなくてエラーになってますよということです。
エラーメッセージ内の「部分的に初期化されたモジュール」という用語は、「gradio」モジュールが初期化プロセスを開始したが、まだ完了していないことを示します。これは、モジュールがまだ循環的に他の場所にインポートされている途中であるため、インタープリターがモジュールを完全に初期化し、必要な「analytics」オブジェクトをインポートできない場合に発生した可能性があります。
エラーを読み解く1つとしては「ImportError」というワードを覚えておくと今後エラーが出たときに推測が立てられるので便利ですよ。
ImportErrorはプログラムが特定の要素を見つけられなかった場合に発生するエラーの1つです。
主に、以下の3つの理由で多く発生します。
- インポートしようとしているファイルまたはモジュールは存在しません。
- ファイルまたはモジュールは存在しますが、Pythonが調べていない別の場所にあります。
- インポートしようとしているファイルまたはモジュールに、構文エラーや循環インポートなどの問題があります。
上記の内容を理解しておくと今回のようなエラーが起きても対応が早くなるので、覚えておいて損はないと思います。
上記の内容に当てはめてエラーメッセージを読み解くと何が原因なのかがわかってきます。
じゃあ!今回のエラーの原因は?
今回のImportErrorは、おそらく循環インポートが原因で、「gradio」モジュールが部分的にしか初期化されていないため、Pythonが「gradio」モジュールで「analytics」オブジェクトを見つけることができないことが理由でエラーが発生しています。
すんごいザックリいうと、特定のプログラムに必要なプログラムが見つけられませんよ!だから直してね!という内容が「ImportError: cannot import name ‘analytics’ from partially initialized module ‘gradio’」になります。
実際に解決した方法を紹介
結論、新しくノートブックを開いて更新されたコードを読み込めば「Stable Diffusion web UI(AUTOMATIC1111版)」を使えるようになります。
実際に、どうやったのか私の場合で解説していきたいと思います。
私は、Google Colaboratoryを使用しているので、Google Colaboratoryの画面を使って説明していきたいと思います。
まずは、https://github.com/TheLastBen/fast-stable-diffusionを立ち上げてください。
そして、Google Colaboratoryも開いておいてください。
- Githubの「https://github.com/TheLastBen/fast-stable-diffusion」にアクセスする。
- 「< > code」を押す。
- HTTPSのURLをコピーする。
- Google Colaboratory(https://colab.research.google.com/)を開く。
- 「GitHub」を押す。
- GitHubからコピーしたURLを検索欄に貼り付ける。
- レポジトリを開き「TheLastBen/fast-stable-diffusion」を選択する。
- 「fast_stable_diffusion_AUTOMATIC1111.ipynb」を選択する。
- 「ドライブにコピーを保存」を押してコードをGoogleドライブに保存する。
- あとはコードを実行すればOKです。
解決方法って他にもあるの?
もし、私が解決方法であなたが解決できない場合に備えて別の解決方法も記載しておきますね。
- リポジトリを更新する。
- コードのリファクタリングをする。
- モデルとノートブックを確認する。
上記の内容で解決できなければ、記事一番下からコメントを下さい。できる限りお手伝いさせていただきます。
1つ1つ解説していきます。
リポジトリを更新する
リポジトリのバージョンが古いと、コードがうまく実行できない場合があります。
使用している「fast-stable-diffusion」リポジトリのバージョンが古いことがエラーの原因となっている可能性がありますので、GitHubから最新の変更を取得してください。
コードのリファクタリングをする
リファクタリングとは、ソフトウェアの挙動を変えることなく、その内部構造を整理することです。
慣れている方であればエラーが発生している場所を特定して訂正をすることができると思います。コードの構造を変更したり、循環依存関係が存在しないようにインポートステートメントを調整したりすることが必要になる場合があります。
モデルとノートブックを確認する
モデルまたはノートブックの設定が正しくないことが原因でエラーが発生している可能性があります。設定が正しくないと、ImportErrorが発生する可能性があります。
モデルを確認し、正しい設定が使用されていることを確認してください。
また、リポジトリ所有者が推奨する最新のノートブックを使用していることを確認してください。
例として、古い「sd」フォルダーがある場合は、その名前を「sd_old」に変更することが解決する場合があります。
まとめ
今後も同じような不具合が発生する可能性はあります。その場合はまず元データやコードがアップデートされているかどうかを確認しましょう。
画像生成AIのStable Diffisionは自由度も高く、かなり多くのユーザーに人気のツールになっています。
しかし、仕様変更や内容変更が頻繁に起こっているので、ちょっとしたエラーで使えなくなってしまうなんてこともあります。
発展途上の分野なので、臨機応変に対応していくことが大切ですね。
では、最後に本記事の内容を簡単にまとめましょう。
簡単まとめ
- 2023年6月28日ごろからImportError: cannot import name ‘analytics’ from partially initialized module ‘gradio’というエラーが発生してStable Diffusion web UI(AUTOMATIC1111版)が使えない!事象が発生した。
- Githubで更新されたコードから実行すれば解決すると思います。
- 解決しない人は記事一番下のコメント欄からご連絡お願い致します。
この記事を気に入っていただけたら、コメントやシェアをしていただけるととても励みになります!これからも、生成系AI「Stable Diffusion」の情報を発信していきますので、たまにサイトをチェックしていただけると、とっても嬉しいです(‘ω’)ノ。
SNSのフォローボタンを、ポチってくれるとめっちゃ嬉しいです👍
ではでは、最後までご覧いただきありがとうございました。
Twitter:@Uriuri_writer
Follow @Uriuri_writer
Instagram:@uriuri_writer
Instagram
コメント