Stable DiffusionのWeb UI立ち上げで発生したエラー

Stable Diffusion
スポンサーリンク

こんにちは。カルークです。今日はStable DiffusionのWeb UIを立ち上げようとした時にエラーが発生したので、その解決策について備忘録を残します。

スポンサーリンク

実行環境

サービス:Paperspace

Paperspaceは、クラウドベースのコンピューティングサービスを提供するプラットフォームです。

マシンスペック: Free-P5000 (有料8ドル/月のプラン以上が必要)

Web UI立ち上げ用のスクリプトテンプレート

javacommonsさんの、こちらのテンプレートを使わせて頂きました。(2024.05.22時点でのスクリプトを利用)

エラー内容

エラーは(3)のWeb UI起動(以下のスクリプト)の実行時に起こりました。

#(3) WebUI起動
!apt update
!apt -y install python3.10
!apt -y install libpython3.10-dev
!apt -y install build-essential
!apt -y install ffmpeg
!curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
!python3.10 -m pip install setuptools==69.5.1 -U
!python3.10 -m pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 torchdata==0.7.1 torchtext==0.16.2+cpu xformers==0.0.23.post1 --index-url https://download.pytorch.org/whl/cu121 -U
!python3.10 -m pip install httpx==0.24.1
#!python3.10 -m pip install insightface -U
!python3.10 -m pip install matplotlib -U
!python3.10 -m pip install ipython -U
from IPython import get_ipython
get_ipython().run_line_magic('matplotlib', 'inline')
%cd /notebooks/stable-diffusion-webui
!python3.10 launch.py --xformers --enable-insecure-extension-access --share --gradio-queue

エラーは以下の通り。(エラー箇所を抜粋)

WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
/notebooks/stable-diffusion-webui
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0]
Version: v1.9.3
Commit hash: 2c1a0c4c26a78c12195edc7f8ak02f5c03fca8c0
Launching Web UI with arguments: --xformers --enable-insecure-extension-access --share --gradio-queue
reading metadata for /notebooks/stable-diffusion-webui/models/Stable-diffusion/anything-v3-fp16-pruned.safetensors: AssertionError
Traceback (most recent call last):
  File "/notebooks/stable-diffusion-webui/modules/sd_models.py", line 75, in __init__
    self.metadata = cache.cached_data_for_file('safetensors-metadata', "checkpoint/" + name, filename, read_metadata)
  File "/notebooks/stable-diffusion-webui/modules/cache.py", line 114, in cached_data_for_file
    value = func()
  File "/notebooks/stable-diffusion-webui/modules/sd_models.py", line 67, in read_metadata
    metadata = read_metadata_from_safetensors(filename)
  File "/notebooks/stable-diffusion-webui/modules/sd_models.py", line 282, in read_metadata_from_safetensors
    assert metadata_len > 2 and json_start in (b'{"', b"{'"), f"{filename} is not a safetensors file"
AssertionError: /notebooks/stable-diffusion-webui/models/Stable-diffusion/anything-v3-fp16-pruned.safetensors is not a safetensors file

Loading weights [e3b0c44298] from /notebooks/stable-diffusion-webui/models/Stable-diffusion/anything-v3-fp16-pruned.safetensors
loading stable diffusion model: SafetensorError
Traceback (most recent call last):
  File "/usr/lib/python3.10/threading.py", line 973, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.10/threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "/notebooks/stable-diffusion-webui/modules/initialize.py", line 149, in load_model
    shared.sd_model  # noqa: B018
  File "/notebooks/stable-diffusion-webui/modules/shared_items.py", line 175, in sd_model
    return modules.sd_models.model_data.get_sd_model()
  File "/notebooks/stable-diffusion-webui/modules/sd_models.py", line 620, in get_sd_model
    load_model()
  File "/notebooks/stable-diffusion-webui/modules/sd_models.py", line 705, in load_model
    state_dict = get_checkpoint_state_dict(checkpoint_info, timer)
  File "/notebooks/stable-diffusion-webui/modules/sd_models.py", line 330, in get_checkpoint_state_dict
    res = read_state_dict(checkpoint_info.filename)
  File "/notebooks/stable-diffusion-webui/modules/sd_models.py", line 304, in read_state_dict
    pl_sd = safetensors.torch.load_file(checkpoint_file, device=device)
  File "/usr/local/lib/python3.10/dist-packages/safetensors/torch.py", line 308, in load_file
    with safe_open(filename, framework="pt", device=device) as f:
safetensors_rust.SafetensorError: Error while deserializing header: HeaderTooSmall

原因と解決策

Launching Web UIの直後、

reading metadata for /notebooks/stable-diffusion-webui/models/Stable-diffusion/anything-v3-fp16-pruned.safetensors: AssertionError

のAssertion Errorが起きています。つまり、”anything-v3-fp16-pruned.safetensors”がちゃんと読み込めていないように思いました。(通信エラーに起因?)

ということで、一旦、このファイルを削除してからもう一度実行してみます。

画面左にある”Terminals”をクリックすると画面下部にターミナルが出現するので、コマンド入力できるようになります。

ターミナルに以下のコマンドコピペし、エンターキーで実行します。

rm /notebooks/stable-diffusion-webui/models/Stable-diffusion/anything-v3-fp16-pruned.safetensors

もう一度、「(3) WebUI起動」のスクリプトをRUNします。

出力結果は以下です。

(以上、省略)
Requirement already satisfied: pure-eval in /usr/local/lib/python3.10/dist-packages (from stack-data->ipython) (0.2.2)
Requirement already satisfied: six>=1.12.0 in /usr/lib/python3/dist-packages (from asttokens>=2.1.0->stack-data->ipython) (1.16.0)
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
/notebooks/stable-diffusion-webui
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0]
Version: v1.9.3
Commit hash: 4d0aac4c2tf7ac42095abc7f8af82f5c04faa8c0
Launching Web UI with arguments: --xformers --enable-insecure-extension-access --share --gradio-queue
Calculating sha256 for /notebooks/stable-diffusion-webui/models/Stable-diffusion/braBeautifulRealistic_brav5.safetensors: Running on local URL:  http://127.0.0.1:7860
Running on public URL: https://xxxxxxxxxxxxx.gradio.live # URLリンクは伏せ字にしました
(以下、省略)

Running on public URLが表示されました。解決!

まとめ

今回は、Stable DiffusionのWeb UIを立ち上げる時に発生したエラーとその解決策についてまとめました。原因は、”anything-v3-fp16-pruned.safetensors”が読み込めていないことに起因しするように思いました。一旦、関連するディレクトリを削除してから再実行したら解決しました。

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