WebUI初回起動時にNo module named ‘encodings’
今回はStable DiffusionのWebUIであるAUTOMATIC1111、またはForgeのインストール中、初回起動のタイミングでModuleNotFoundError: No module named ‘encodings’というエラーになってしまった場合の対処法をご紹介します!
初回起動時かどうかの問題ではなく、設定をいじった後にこのエラーになることもあります。
エラー内容
WebUIを起動するためにwebui-user.batをダブルクリックで実行した時に、本来であれば黒い画面上で初回起動の準備が自動で行われるはずが、以下のような画面になってしまうという内容です。

stderr:
Fatal Python error: initfsencoding: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'
Current thread 0x00006e2c (most recent call first):
Launch unsuccessful. Exiting.
続行するには何かキーを押してください . . .
AUTOMATIC1111もForgeも原因は同じ
このエラーは、Phthonのパスが上手く設定されておらず、Stable DiffusionがPythonを使用できないみたいな状態になっていると発生します。
エラーの原因、対策方法共にAUTOMATIC1111もForgeも同じです。
通常であればAUTOMATIC1111もForgeもこんなエラーに起こらないので、インストール方法の解説にも載っていないことが多いので困っている方もいるのではないかと思います。
ここさえ乗り越えられればすぐにStable Diffusion使えるようになるので、ちゃちゃっと直しちゃいましょう!
エラーの回避方法
このエラーが発生したということは、PCがpythonの場所を正しく認識出来ていない状態です。
これは、pathにPython3.6.10の場所が正しく設定されていても起こる話です。
ここではpathの設定関係なくWebUIがPythonを使えるように設定しちゃいます!
webui-user.batをメモ帳などのテキストエディタで開き、あなたのPCのPythonの場所を書いてあげましょう。
まずはwebui-user.batを右クリック→編集でテキストエディタで開いてください!

上の方にPythonのパスを指定するための場所があるはずです。

No module named ‘encodings’のエラーが発生している場合、この部分が空欄か、値が間違っている(書いてある場所にpython.exeが存在しない)と思われます。
Pythonの場所を指定する
AUTOMATIC1111やForgeを使うためにインストール作業をしていたということはおそらくPython3.10.6がお使いのパソコンにインストールされているはずです。
Pythonは通常であれば以下の場所にあるはずなので、↓のテキストのユーザー名の部分をご自分のユーザー名に置き換えて指定してみましょう。
C:\Users\ユーザー名\AppData\Local\Programs\Python\Python310\python.exe
↑これをコピーしてwebui-user.batのPythonの場所を指定するところに貼り付けてください。
こんな形になるはずです。

貼り付けたら、一回上書き保存をして、webui-user.batをダブルクリックで起動してみてください!
No module named ‘encodings’にならずに文字がずらずらでてきたら成功です!
駄目だった場合はPythonのPathの確認!
これをやっても同じくNo module named ‘encodings’になってしまった場合、まだPythonの場所指定が間違っているようです。
こうなったら、PC上のPythonの場所をあらためて確認してみましょう。
Windowsの画面左下の検索ボックスに「cmd」と入力してエンターキーを押してください。

コマンドプロンプトという黒い画面が出てくるので、以下のコマンドをコピーして黒い画面に貼り付けてエンターキーを押してみてください。
echo %path:;=&echo.%

するとなんだかごちゃごちゃした文字がずらっと出てくると思います。
その中から、末尾がPython310\となっている行を探してください!(ちょっと大変ですが…)

見つけたら、その行を全てコピーしたいのですが、コマンドプロンプトはコピーの仕方がちょっと特殊です!
1行全て範囲選択してから1回右クリックするとコピーが出来ます。(操作のクセが強い)
うまくコピーできたら、先ほどメモ帳などで開いたwebui-user.batに貼り付けてください!

最後に、今貼り付けた行の末尾にpython.exeを追加してください!
python.exe

末尾にpython.exeを追加したら、ファイルを上書き保存をして、webui-user.batをダブルクリックで起動してみてください!
No module named ‘encodings’の原因
AUTOMATIC1111もForgeも通常であればwebui-user.batの内容を書き換えなくてもすぐに起動できるはずなんですが、↓に当てはまるPCではNo module named ‘encodings’が起こってしまう可能性があります。
- Pythonインストール時にAdd Python 3.10 to PATHにチェックを入れなかった
- お使いのPCに過去にPythonをインストールしたことがある
Pythonのパスの設定が足りていなかったり、Pythonインストール時の設定次第では、windowsがpythonコマンドを指示されても実行ができない状態になります。
Stable DiffusionのWebUIは、起動する時にpythonコマンドで色々やっているのですが、windowsからすると、そのpythonコマンドがどこにあるかわからない(存在しないと同義)なので、エラーになってしまっていたんですね。
まとめ
今回はAUTOMATIC1111やForge起動時にNo module named ‘encodings’エラーが発生したときの原因と対策について紹介しました。
私も初めてAUTOMATIC1111をインストールしたときはこのエラーで結構苦しめられました。
このエラーでつまずいてStable Diffusion諦めてしまう人が少しでも少なくなりますように!


コメント