「RuntimeError: Cannot add middleware after an application has started」の対処法

検索からこの記事にたどり着いた人は、おそらく最後の1文を目にしているかと思いますので対処法だけ書いておきます。

To create a public link, set `share=True` in `launch()`. 
Traceback (most recent call last): 
  File "C:\DreamArtist-stable-diffusion\launch.py", line 252, in <module> start() 
  File "C:\DreamArtist-stable-diffusion\launch.py", line 247, in start webui.webui() 
  File "C:\DreamArtist-stable-diffusion\webui.py", line 173, in webui app.add_middleware(GZipMiddleware, minimum_size=1000) 
  File "C:\DreamArtist-stable-diffusion\venv\lib\site-packages\starlette\applications.py", line 139, in add_middleware 
raise RuntimeError("Cannot add middleware after an application has started") 
RuntimeError: Cannot add middleware after an application has started

対処法

コマンドプロンプトを開き、stable-diffusion-webui もしくは、DreamArtist-stable-diffusion をインストールしたディレクトリで、

.\venv\Scripts\activate

と入力、画面がいったんクリアされますが、続けて

pip install fastapi==0.90.1

と入力すればエラーの原因となっていた fastapi が指定バージョンにアップデートされます。

pipがアップデート可能だという表示が出ていますが、ちょっとしたバージョン違いですぐに動かなくなるPythonの世界では、自分が作ったものでもない限り、問題なく動いているものは基本触らないのが鉄則ですので気軽にアップデートしようなんて考えないように。

後はいつも通り webui-user.bat を実行すれば stable-diffusion-webuiなり、DreamArtist-stable-diffusion が立ち上がります。

コメント

  1. あああ より:

    めっちゃ助かりました。記事ありがとうございます

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