問題の概要:Extensionインストール時のgitエラー
Stable Diffusion WebUI(以下、SD WebUI)を使用している際、Extensionsタブから新しい拡張機能をインストールしようとすると、以下のようなgit関連のエラーメッセージが表示され、インストールに失敗することがあります。
Error: Couldn't install from 'https://github.com/example-user/example-extension.git'.
Exit code: 128
Command output:
fatal: unable to access 'https://github.com/example-user/example-extension.git/': Failed to connect to github.com port 443 after 75007 ms: Couldn't connect to server
あるいは、別のパターンとして、以下のエラーも頻繁に発生します。
Error: Couldn't install from 'https://github.com/example-user/example-extension.git'.
Exit code: 1
Command output:
git: 'clone' is not a git command. See 'git --help'.
これらのエラーは、SD WebUIが内部で使用している`git`コマンドが正しく実行できないために発生します。結果として、ControlNet、Dynamic Prompts、Taggerなどの便利な拡張機能がインストールできず、SD WebUIの機能を最大限に活用できないという課題が生じます。
原因の解説
この問題の根本的な原因は、主に以下の3つに分類されます。
1. Gitがシステムにインストールされていない、またはパスが通っていない
SD WebUIは、拡張機能をGitHubリポジトリからクローン(ダウンロード)するために、システムにインストールされた`git`コマンドを内部的に呼び出します。しかし、ユーザーが手動でGitをインストールしていない場合や、インストール後にシステムの環境変数`PATH`にgitの実行パスが追加されていない場合、SD WebUIは`git`コマンドを見つけることができません。これが「’clone’ is not a git command」というエラーの主な原因です。
2. ネットワーク接続の問題(プロキシ、ファイアウォール、DNS)
GitHub(`github.com`)への接続がプロキシサーバーやファイアウォールによってブロックされている可能性があります。特に企業内ネットワークや学術ネットワーク、あるいは特定の国や地域では、443ポート(HTTPS通信の標準ポート)への外部接続が制限されていることがあります。エラーメッセージの「Failed to connect to github.com port 443」は、このネットワーク接続の失敗を示しています。
3. SD WebUIのインストール環境に依存する問題
Windows環境で「One-Click Installer」を使用した場合、バンドルされているPython環境やスクリプトの設定に問題があるケースや、仮想環境(venv)が正しくアクティベートされていないケースがあります。また、MacやLinuxでは、パッケージマネージャー(brew, apt等)でインストールしたGitとSD WebUI内のPython環境との相性問題が発生することもあります。
解決方法(ステップバイステップ)
以下の手順を順番に試して、問題を解決してください。
ステップ1: Gitのインストール確認と再インストール
まず、システムにGitが正しくインストールされているかを確認します。
# コマンドプロンプト(Windows)またはターミナル(Mac/Linux)で実行
git --version
バージョン情報(例: `git version 2.40.1`)が表示されればインストール済みです。エラーが出る場合は、以下の公式サイトからGitをダウンロード・インストールしてください。
- Windows/Mac: https://git-scm.com/downloads
- Linux (Ubuntu/Debian): `sudo apt update && sudo apt install git`
インストール後、必ずPCを再起動して環境変数の変更を反映させます。
ステップ2: SD WebUIの起動方法の変更(管理者権限/仮想環境)
Windowsでは、SD WebUIを管理者権限で実行すると、ファイル書き込み権限の問題が解決されることがあります。`webui-user.bat`ファイルを右クリックし、「管理者として実行」を選択してください。
また、手動で仮想環境をアクティベートしてから起動する方法も有効です。
# SD WebUIのインストールディレクトリに移動(例)
cd C:stable-diffusion-webui
# 仮想環境をアクティベート(Windows)
venvScriptsactivate
# 仮想環境をアクティベート(Mac/Linux)
source venv/bin/activate
# その後、通常通りWebUIを起動
python launch.py
ステップ3: ネットワーク設定の確認とプロキシ設定
Gitのプロキシ設定を確認・変更します。企業内ネットワーク等でプロキシを使用している場合は、以下のコマンドで設定が必要です。
# プロキシを設定する(例:プロキシサーバーがproxy.example.com:8080の場合)
git config --global http.proxy http://proxy.example.com:8080
git config --global https.proxy https://proxy.example.com:8080
# 設定を確認する
git config --global --get http.proxy
git config --global --get https.proxy
# プロキシ設定を解除する(必要ない場合や設定後もダメな場合)
git config --global --unset http.proxy
git config --global --unset https.proxy
プロキシを使用していない一般的な家庭内ネットワークで接続エラーが出る場合は、DNSの問題が考えられます。一時的にDNSサーバーをGoogle Public DNS(8.8.8.8)などに変更してみるか、ホストファイルを確認してください。
ステップ4: SD WebUIの設定ファイルを直接編集する
上記で解決しない場合、SD WebUIが使用するgitコマンドのパスを明示的に指定します。SD WebUIのインストールディレクトリにある`launch.py`ファイルをテキストエディタで開き、以下の部分を探します。
# launch.py内の該当部分(例)
def prepare_environment():
...
# git = os.environ.get('GIT', "git")
この行を編集して、システムのgitへのフルパスを指定します。
# Windowsの例(Gitのインストールパスを確認して指定)
git = os.environ.get('GIT', "C:\Program Files\Git\cmd\git.exe")
# Macの例
git = os.environ.get('GIT', "/usr/bin/git")
# Linuxの例
git = os.environ.get('GIT', "/usr/bin/git")
変更を保存した後、SD WebUIを再起動します。
ステップ5: 手動でのExtensionインストール(最終手段)
WebUI経由でのインストールがどうしても成功しない場合、拡張機能を手動でインストールする方法があります。
- 拡張機能のGitHubリポジトリページ(例: `https://github.com/Mikubill/sd-webui-controlnet`)にアクセスします。
- 「Code」ボタンから「Download ZIP」をクリックし、ファイルをダウンロードします。
- ダウンロードしたZIPファイルを解凍し、フォルダ名を確認します(通常、リポジトリ名と同じです)。
- SD WebUIのインストールディレクトリ内の`extensions`フォルダに、解凍したフォルダをそのまま移動します。
- SD WebUIを再起動すると、「Installed」タブに拡張機能が表示され、使用できるようになります。
# ディレクトリ構造の例
stable-diffusion-webui/
├── extensions/
│ ├── sd-webui-controlnet/ # ここに手動で配置
│ ├── sd-dynamic-prompts/
│ └── ...
└── launch.py
コード例・コマンド例
問題の切り分けに役立つコマンド例をまとめます。
# Gitのインストール状態とバージョンを詳細に確認
where git # Windows
which git # Mac/Linux
git --version
# Gitのグローバル設定を一覧表示
git config --global --list
# 特定のGitリポジトリに対して、手動でcloneを試みる(ネットワークテスト)
# (SD WebUIのextensionsディレクトリ外で実行)
git clone https://github.com/Mikubill/sd-webui-controlnet.git test-clone
# SD WebUIのPython環境でGitモジュールが認識されているか確認
# launch.pyを実行する同じ環境(コマンドプロンプト/ターミナル)で実行
python -c "import subprocess; subprocess.run(['git', '--version'], check=True)"
まとめ・補足情報
SD WebUIのExtensionインストールエラーは、一見すると複雑に見えますが、その原因は「Gitコマンドの実行環境」にほぼ集約されます。本記事で紹介したステップの多くは、この実行環境を整えるための作業です。最初に`git –version`で基本的なインストールを確認し、その後ネットワークや詳細なパス設定を見直すという流れが効率的です。
補足情報:
- Windows Defenderやサードパーティ製のアンチウイルスソフトがgitの通信をブロックしている場合があります。一時的に無効化して試すことも検討してください(セキュリティリスクに注意)。
- SD WebUIの開発は活発で、`launch.py`の構造はバージョンによって変化します。設定を編集する前に、元のファイルのバックアップを取ることを強くお勧めします。
- 「手動インストール」は確実な方法ですが、拡張機能の更新時には再度手動でZIPをダウンロードして上書きする必要がある点に注意してください。WebUI内の「Check for updates」ボタンは機能しません。
- コミュニティでは、これらの問題を緩和するためのカスタムインストーラーやラッパースクリプトも開発されています。根本的な解決に難航する場合は、それらの利用も検討してみてください。
これらの解決策を適用することで、ほとんどのgitエラーは解消し、豊富なExtensionを使ってStable Diffusionの創作の幅を大きく広げることができるでしょう。