問題の概要:ForgeとA1111の混同によるエラーと移行の壁
Stable DiffusionのWebUIとして長く親しまれてきた「Automatic1111 WebUI」(通称A1111)に代わり、新たな選択肢として「Stable Diffusion WebUI Forge」(通称Forge)が注目を集めています。多くのユーザーがパフォーマンス向上や新機能を求めてForgeへの移行を試みますが、両者の根本的な違いを理解していないために、以下のようなトラブルに直面することが頻発しています。
- モデルや拡張機能をそのままコピーしたのに「
ModuleNotFoundError: No module named 'xyz'」と表示されて起動できない - 「
Error loading model: model format not recognized」といったモデル読み込みエラー - 使い慣れた拡張機能のUIが表示されない、または動作しない
- 生成速度が思ったほど向上しない、または逆に遅くなる
- 「
OutOfMemoryError: CUDA out of memory.」エラーの発生頻度が変化する
これらの問題は、Forgeが単なるA1111の「アップデート版」ではなく、内部アーキテクチャから大きく設計し直された「別のソフトウェア」であることを理解していないことに起因します。本記事では、両者の違いを深掘りし、安全かつ効果的にA1111環境からForgeへ移行するための実践的な手順を解説します。
原因の解説:ForgeとA1111の根本的なアーキテクチャの違い
Forgeは、A1111のコードベースを「フォーク」(分岐)して開発されていますが、その目的はパフォーマンスの最適化とモジュール化にあります。この根本的な設計思想の違いが、互換性の問題を生み出す原因です。
1. コアエンジンの最適化と置き換え
A1111がそのままPyTorchやDiffusersライブラリの機能を使用しているのに対し、Forgeは推論(画像生成)のための核心部分を独自に最適化した「カスタムCUDAカーネル」や「オペレーター」で置き換えています。これにより、VRAM使用量の削減と生成速度の向上を実現していますが、その代償として、A1111用に書かれた一部のカスタムスクリプトや、内部APIに強く依存した拡張機能が動作しなくなる可能性があります。
2. モジュール化と依存関係の管理
A1111の環境は、長い開発の歴史の中で多くの拡張機能が複雑に絡み合い、「一枚岩」的な構造になりがちでした。Forgeはこれを解きほぐし、機能を明確に分離したモジュール式の設計を採用しています。この変化により、venvやpipで管理されるPythonパッケージの依存関係がA1111環境と完全に分離されます。したがって、A1111の環境で動いていたからといって、Forgeでも同じパッケージがインストールされている保証はありません。
3. モデルフォーマットとローダーの進化
Forgeは、最新のモデルフォーマット(例:Diffusers形式、Safetensors)への対応を強化し、より安全で効率的なモデル読み込みを目指しています。その過程で、古い形式のファイルや、特定のメタデータに依存したモデルの読み込みで問題が発生することがあります。
解決方法:安全な移行のためのステップバイステップガイド
「クリーンインストール」が最も確実な方法です。A1111環境を引き継ごうとせず、Forgeを新規環境として構築し、必要な要素のみを移行します。
ステップ1:Forgeの新規インストール
まず、A1111の環境とは完全に別のディレクトリにForgeをインストールします。
# 新しいディレクトリを作成し移動
cd /path/to/your/stable-diffusion-workspace
mkdir sd-webui-forge
cd sd-webui-forge
# Forgeのリポジトリをクローン
git clone https://github.com/lllyasviel/stable-diffusion-webui-forge.git .
# 必要に応じて特定のバージョン(タグ)をチェックアウト(例:最新安定版)
git checkout tags/v1.0.0 -b stable
ステップ2:モデルファイルの移行(シンボリックリンクの活用)
大容量のモデルファイルはコピーせず、シンボリックリンクを作成してディスク容量を節約し、管理を一元化します。
# A1111のモデルディレクトリを仮定
A1111_MODELS="/path/to/stable-diffusion-webui/models"
# Forgeのモデルディレクトリにリンクを作成
ln -s "$A1111_MODELS/Stable-diffusion" ./models/Stable-diffusion
ln -s "$A1111_MODELS/Lora" ./models/Lora
ln -s "$A1111_MODELS/VAE" ./models/VAE
# ControlNetなども同様に
ln -s "$A1111_MODELS/ControlNet" ./models/ControlNet
注意点: 非常に古いCKPT形式のモデルや、読み込みエラーが出るモデルは、Forge環境で動作しない可能性があります。その場合は、Safetensors形式に変換するか、代替モデルを探す必要があります。
ステップ3:拡張機能の慎重な再インストール
拡張機能はすべてForge用に再インストールします。A1111のextensionsフォルダをコピーする方法は非推奨です。
- Forgeの「Extensions」タブ → 「Install from URL」を開く。
- A1111で使用していた各拡張機能のGitリポジトリURLを、一つずつ入力してインストール。
- インストール後、必ず「Installed」タブで「Apply and restart UI」をクリック。
主要拡張機能の例:
- ControlNet:
https://github.com/Mikubill/sd-webui-controlnet.git - Regional Prompter:
https://github.com/hako-mikan/sd-webui-regional-prompter.git
拡張機能によっては、Forge専用のブランチや設定が必要な場合があります。インストール後も動作しない場合は、拡張機能のGitHubページでForge対応の情報を確認してください。
ステップ4:設定の移行と調整
ユーザーインターフェースの設定(ui-config.json)や、個々の拡張機能の設定ファイルは、A1111からForgeの対応するフォルダに手動でコピーして上書きすることで、ある程度引き継ぐことが可能です。ただし、設定項目がForgeで存在しない場合は無視されるため、エラーにはなりません。この方法は、キーボードショートカットやデフォルトサンプラー設定などを引き継ぎたい場合に有効です。
# 例: UI設定のコピー(ファイルが存在することを確認して実行)
cp /path/to/stable-diffusion-webui/ui-config.json ./sd-webui-forge/
ステップ5:起動オプションの見直し
A1111用にカスタマイズしていた起動コマンド(webui-user.bat や webui-user.sh)を見直します。Forgeでは、特にメモリ最適化に関するオプションが変更されている可能性があります。
# A1111でよく使われた例(一部はForgeでも有効)
set COMMANDLINE_ARGS=--xformers --medvram --opt-split-attention
# Forgeでは、以下のような新しいオプションが追加されている
# --disable-opt-split-attention : 最適化を無効化(互換性問題時に試す)
# --tensorrt : TensorRTエンジンの使用(NVIDIA GPU向け)
最初はオプションを最小限(--listen などネットワーク設定のみ)で起動し、問題がなければ必要に応じて追加していくのが安全です。
移行後の確認とトラブルシューティング
エラー「RuntimeError: Couldn’t load custom C++ ops」が出る場合
これは、ForgeのカスタムCUDAオペレーターのビルドに失敗したことを意味します。最も一般的な解決策は、Pythonのバージョンを3.10系にダウングレードし、クリーンな環境で再インストールすることです。
# 仮想環境を削除して再構築(Windowsの場合、venvフォルダを削除)
# その後、Forgeディレクトリで再実行
webui.bat
# インストーラーがPython 3.10.6などを提案してくれる場合があるので従う
特定のモデルやLoRAでエラーが出る場合
そのモデルファイルのみを一時的に別の場所に移動し、Forgeで他のモデルが正常に動作するか確認します。問題が特定のファイルにある場合は、CivitAIなどのサイトから再度Safetensors形式でダウンロードし直すことをお勧めします。
まとめ・補足情報
Stable Diffusion WebUI Forgeへの移行は、「環境の引越し」ではなく「新居の建設」と捉えるべきです。A1111との主な違いは、パフォーマンス重視の再設計されたエンジン、厳格化されたモジュール管理、そして最新フォーマットへの積極対応にあります。
移行の成功のカギは以下の3点です。
- クリーンインストールの原則:依存関係の汚染を避ける。
- モデルはリンク、拡張機能は再インストール:大容量データはリンクで管理し、機能はForge用を取得する。
- 段階的な確認:インストール後、まずはベーシックな機能(テキストto画像)から順番に動作確認を行う。
Forgeは、VRAMが少ない環境でも高解像度生成を可能にしたり、生成速度を大幅に向上させたりするメリットが大きいです。移行作業には多少の手間がかかりますが、新しい機能とパフォーマンスを手に入れるための投資と考え、本ガイドを参考に安全な移行を進めてください。問題が発生した場合は、ForgeのGitHubリポジトリのIssueや、関連するDiscordコミュニティで情報を探すことが有効です。