【Stable Diffusion】SD3/SD3.5モデルのローカル環境構築手順と「No module named ‘safetensors’」エラー解決法

問題の概要:SD3/SD3.5モデルをローカルで実行する際の環境構築の壁

Stable Diffusion 3 (SD3) および SD3.5 は、テキスト理解力と画像品質が大幅に向上した次世代画像生成モデルです。しかし、従来のSD1.5やSDXL用の環境でそのまま実行しようとすると、様々なエラーに直面します。特に、新モデルが依存する新しいライブラリや特定バージョンのPyTorch、そして専用の推論スクリプトが必要となるため、単純なpip installでは動作しません。本記事では、ComfyUIを利用したSD3/SD3.5のローカル環境構築手順と、その過程で発生する典型的なエラー「ModuleNotFoundError: No module named ‘safetensors’」や「AssertionError: The diffusers version …」の解決方法を詳しく解説します。

原因の解説:なぜ従来の環境では動かないのか?

SD3/3.5モデルは、そのアーキテクチャ(MMDiT)と実装に以下の点で従来モデルと異なるため、専用の環境設定が必要です。

1. 新たな依存ライブラリ

モデルの重みファイルの形式や高速読み込みのためにsafetensorsライブラリが必須となっています。また、diffusersライブラリもSD3をサポートする比較的新しいバージョン(0.27.0以上)が必要です。

2. トランスフォーマーライブラリのバージョン互換性

transformersライブラリもSD3の新しいトークナイザーとテキストエンコーダをサポートするバージョンが要求されます。古いバージョンでは関連モジュールが見つからずエラーとなります。

3. PyTorchとCUDAのバージョン

最新の最適化を利用するため、推奨されるPyTorch 2.0以上および対応するCUDAバージョンが必要です。環境によっては「CUDA out of memory」以外の、互換性に起因する実行時エラーが発生する可能性があります。

解決方法:ComfyUIを用いたステップバイステップ環境構築

ここでは、拡張性が高く人気のあるGUI環境「ComfyUI」を使用する方法を紹介します。コマンドライン操作が中心となりますが、各ステップで確認すべきポイントを説明します。

ステップ1:ComfyUIの本体とマネージャーをインストール

まず、ComfyUIのリポジトリをクローンし、必須のマネージャーをインストールします。

# ComfyUI本体のクローン
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI

# 依存Pythonパッケージのインストール(仮想環境推奨)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt

# ComfyUIマネージャーのインストール(拡張機能管理に必須)
cd custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git

ステップ2:SD3/3.5専用カスタムノードのインストール

ComfyUI自体はSD3をネイティブサポートしていないため、コミュニティ開発の専用ノードをインストールする必要があります。現在、ComfyUI-DiffusersStableDiffusion3が一般的です。

# カスタムノードのインストール(ComfyUI直下で実行)
cd custom_nodes
git clone https://github.com/city96/ComfyUI-DiffusersStableDiffusion3.git
cd ComfyUI-DiffusersStableDiffusion3
pip install -r requirements.txt

このrequirements.txtをインストールする過程で、適切なバージョンのdiffusers, transformers, safetensorsなどがインストールされます。

ステップ3:モデルファイルのダウンロードと配置

Hugging FaceなどからSD3/3.5のモデル重み(safetensors形式)をダウンロードします。例えば、Stability AIの公式ページからsd3_medium.safetensorsをダウンロードし、ComfyUIのモデルフォルダに配置します。

# モデル配置ディレクトリの例(構造はカスタムノードの指示に従ってください)
ComfyUI/
├── models/
│   ├── checkpoints/
│   │   └── sd3_medium.safetensors  # ここに配置する場合もあれば
│   └── diffusers/                   # または、diffusersサブディレクトリに配置する場合もあります

重要: 使用するカスタムノードのREADMEを確認し、指定された正確なパスにモデルファイルを配置してください。パスが間違っていると「Unable to load weights from …」エラーが発生します。

ステップ4:ComfyUIの起動とワークフローの読み込み

環境が整ったら、ComfyUIを起動し、専用ノードが提供するサンプルワークフロー(JSONファイル)を読み込みます。

# ComfyUIの起動(ComfyUIディレクトリ直下で)
python main.py

ブラウザでhttp://127.0.0.1:8188にアクセスします。画面右上の「Load」ボタンから、ComfyUI-DiffusersStableDiffusion3ノードに同梱されているexample_workflow.jsonなどを読み込みます。これでSD3用のノードが配置されたワークフローが表示されます。

コード例・コマンド例:主要エラーとその解決策

エラー1: ModuleNotFoundError: No module named ‘safetensors’

これはsafetensorsライブラリがインストールされていない場合に発生します。専用ノードのrequirements.txtをインストールしていても、環境によっては漏れることがあります。

# 解決策: safetensorsを明示的にインストール
pip install safetensors

エラー2: AssertionError: The diffusers version (0.19.3) is too old…

diffusersライブラリのバージョンが古すぎます。SD3には0.27.0以上が推奨されます。

# 解決策: diffusersをアップグレード
pip install --upgrade diffusers
# 必要に応じて特定バージョンを指定
pip install diffusers==0.27.2

エラー3: ValueError: Tokenizer class … does not exist or is not currently imported.

transformersライブラリのバージョンがSD3の新しいトークナイザーに対応していません。

# 解決策: transformersをアップグレード
pip install --upgrade transformers
# バージョン指定が安定する場合
pip install transformers==4.40.0

エラー4: OutOfMemoryError: CUDA out of memory.

SD3モデルはVRAMを多く消費します。メモリ不足の場合は、ComfyUIのワークフロー内で以下の対策を講じられます。

  • 「Load Checkpoint」ノードでfp8fp16などの低精度モデルを読み込む(モデルファイルが対応している場合)。
  • 「KSampler」ノードの「steps」を減らす、または「cfg」を下げる。
  • 生成画像サイズを小さくする(例: 512×512)。
  • ComfyUI起動時に--lowvramオプションを試す(python main.py --lowvram)。

まとめ・補足情報

SD3/SD3.5をローカル環境で動作させるには、単にモデルをダウンロードするだけでなく、それを実行するための専用の「環境」と「インターフェース(カスタムノード)」を整備する必要があります。ComfyUIと専用カスタムノードを利用する方法は、比較的トラブルが少なく、視覚的なワークフロー操作が可能なためお勧めです。

構築時のポイントをまとめます:

  1. 仮想環境の使用: PyTorchのバージョン競合を防ぐため、venvやcondaで専用のPython仮想環境を作成しましょう。
  2. 公式情報の確認: 使用するカスタムノードのGitHubリポジトリのREADMEは必ず確認し、インストール手順とモデル配置方法に従ってください。
  3. 段階的なトラブルシューティング: エラーが発生したら、メッセージをよく読み、まずは不足モジュールのインストールやバージョンアップグレードから試します。エラーログはComfyUIのターミナル出力に詳細が表示されます。
  4. モデルの選択: SD3.5はSD3よりもさらに改善されていますが、モデルサイズが大きいためVRAM要件も高くなります。まずは小さなモデル(Medium)から試すのが無難です。

この環境が整えば、オープンソースでありながら非常に強力な最新のテキスト画像生成モデルを、自分のマシンで自由に試すことができるようになります。技術の進歩は速いですが、コミュニティの力を借りて、これらの最新モデルにアクセスするハードルは確実に下がっています。

この記事は役に立ちましたか?