昨今熱いAI業界にて、Stable DiffusionのWebUIがあると聞いたので導入を試みてみたが、詰まったところがあったので記録
TL;DR
- 初手導入時にPythonバージョンが違うと、入れ直してもダメ
- Pythonインストール後に一から改めて、.bat(Macなら.sh)の実行をやり直す必要がある
導入に際して
基本に関してはググれば出てくるのが割愛
自分も見つけた数点の記事を参考に実行していった
やることとしては、基本的には
- Python3.10.6のインストール(済んでいればスキップ)
- 設置用ディレクトリを用意する
- stable-duffusion-webuiのGitLabから
git clone
する - cloneしたディレクトリのstable-diffusion-webuiディレクトリに入りwebui-user.bat(Macならwebui.sh)ファイルを実行
これだけで完了である(時間はある程度かかる)
ただ、自分がやった際には.batファイルの実行時に詰まってしまった
TypeErrorの発生
TypeError: __init__() got an unexpected keyword argument 'socket_options' Stable Diffusion
最後に吐かれるエラーとしてはこのようなメッセージが出てしまった
調べる感じでは、どうやら使用サービスのバージョン違いとかが起こってるものらしく、 package.json
調べてみたり、pip3調べてみたりしたが、「現状Python3.10.6が必要である」ということを思い出し、単純に「Pythonのバージョンがあってないのでは?」ということに思い当たった
とはいえ、必要になっているPython3.10.6はちゃんとインストールしたしな…と思いつつ python -V
してみると出てきた数字は↓
3.7.0
なんだこれは
自分はちゃんと3.10.6をインストールした覚えもあるしその時のインストーラもまだ残っている(「ゴミ箱を空にする」実行前)
なのにこんなでたらめなバージョン番号が出てくるはずはないと考え、再度3.10.6をインストール
でも python -V
で出てくる数字は「3.7.0」のまま
Python2と3との切り替えで困った経験はないこともないが、3内部の切り替えでも悩むとは…
とはいえ、単に今ある3.7.0が邪魔になってるだけなら、今後使う予定はない(自分には)のでアンインストールすればいいだけでは?と調べてるうちに思い至り、3.7.0のインストーラを落としてきて「Uninstall」実行した
あらためて python -V
してみると出てきた数字は↓
3.10.6
となり、これで正常にPython3.10.6が使えるようになった
さてこれで万事OKだわ、と改めてwebui-user.batを実行した、が…
まだまだバージョン番号違い
出てくるのはだいたい同じエラーメッセージ
確認のためにまた python -V
したが、やはり使われるバージョンは3.10.6で合ってるはず
まだ足りないものがあるのか、と改めてエラーメッセージを見返すと、その中に気になる文言が混じってる
This program is tested with 3.10.6 Python, but you have 3.8.5.
なんだこれは
やはり原因としてはPythonのバージョン違いであり、「3.10.6でないと動けへんねん。せやけど自分の持ってきてるPythonは3.8.5やないかーい」と答えてるようだ
だがこれはおかしい
このPCには一度たりともPython3.8を入れた覚えはない
3.7.0と同様、Python3.8.5のインストーラでアンインストールできるかと思い落としてきたが、「Uninstall」の項目はなく、やはりこのPCにはPython3.8.5は入っていない様子
だがStable Diffusion Web UIは「お前は3.8.5だ」と言ってくる
この不整合に対してはChatGPTが答えをくれた
このエラーメッセージは、StableDiffusionUIがPythonのバージョン3.10.6を要求しているにも関わらず、実際にはバージョン3.8.5がインストールされているために発生しています。
この問題を解決するためには、以下の手順を試してみてください:
Pythonの再インストール:
まず、Pythonをバージョン3.10.6にアップデートする必要があります。以下の手順で行います:
Python 3.10.6のダウンロードページから、最新のPython 3.10.6インストーラーをダウンロードし、実行します。
インストーラーの指示に従ってPython 3.10.6をインストールします。
WebUIディレクトリのクリーンアップ:
インストールが完了したら、StableDiffusionUIのディレクトリ内にある古いPythonの残骸やvenvフォルダを削除します。これによって、古いPythonの影響が排除されます。
再起動:
Pythonの再インストールが完了したら、コンピューターを再起動します。
StableDiffusionUIの実行:
再起動後、コマンドラインで .\webui-user.bat を実行してみてください。
これによって問題が解決するはずです。もしまだ問題が続く場合は、開発者やコミュニティに問題を報告するための方法を探すことをお勧めします。
「ぜんぶ燃やしてしまえばかたづく。」
なるほどですね
3.7.0が使われる状況(3.10.6もインストール済み)でwebui-user.bat実行しちゃったから変に設定されてるわけなので、3.10.6が使われる状況で.batの初回実行をし直しすれば、設定もうまくなされて解決すると
再起動は偉大
AI様の言う通りに、まずは git clone
したstable-diffusion-webuiディレクトリを削除、その上で改めて git clone
し直し、 python -V
するとちゃんと 3.10.6
と返ってくる状態であることを確認してからwebui-user.batを実行
今度はちゃんと成功した(Edgeで見ています)
今後やる人としては、ちゃんと python -V
するとちゃんと 3.10.6
と返ってくることを確認してから.bat(Macなら.sh)実行してくださいね、という話でした