この記事のポイント
ComfyUI-InstantIDは diffusers を使わず ComfyUI にネイティブ統合されている- 顔認識に必要なのは
antelopev2(buffalo_l では動かない) - 最低 8 GB VRAM が必要。実測環境は RTX 4090(24 GB)/ Ubuntu 22.04 / Python 3.10.12
- SDXL 専用モデル。SD 1.5 系では動作しない
- CFG を 4〜5 に下げると品質が上がりやすい
1枚の顔写真を渡すだけで、同じ人物の顔を保ちながら様々なスタイルや構図の画像を生成できる——それが InstantID です。LoRA のような追加学習は不要で、推論時に顔の特徴をそのまま適用するのが特徴です。
この記事では、Ubuntu 上で ComfyUI + ComfyUI-InstantID カスタムノードを使ってセットアップする手順を、RTX 4090 / Ubuntu 22.04.5 LTS / Python 3.10.12 の実機環境で確認しながら解説します。

動作要件
InstantID は SDXL 専用のワークフローです。SD 1.5 系のモデルでは動きません。GPU の VRAM も最低 8 GB 必要で、画像サイズや同時生成数によっては 12 GB 以上推奨されます。

実測環境(NVIDIA RTX 4090、Ubuntu 22.04.5 LTS)では、nvidia-smi で以下のように確認できました。

NVIDIA GeForce RTX 4090, 24564 MiB, 565.57.01
$ python3 –version
Python 3.10.12
$ python3 -c “import torch; print(‘torch:’, torch.__version__, ‘| CUDA:’, torch.version.cuda)”
torch: 2.5.1+cu118 | CUDA: 11.8
ComfyUI のインストール
ComfyUI は Stable Diffusion のノードベース GUI です。python main.py で起動するとブラウザ上でワークフローを組めます。まずこれをインストールします。

①依存パッケージのインストール(PyTorch CUDA版)
python3 is already the newest version (3.10.12-1~22.04)
git is already the newest version (1:2.34.1-1ubuntu1.12)
$ git clone https://github.com/comfyanonymous/ComfyUI
Cloning into ‘ComfyUI’…
Receiving objects: 100% (14823/14823), done.
$ cd ComfyUI
$ pip install torch torchvision torchaudio –index-url https://download.pytorch.org/whl/cu118
Successfully installed torch-2.5.1+cu118 torchvision-0.20.1+cu118 torchaudio-2.5.1+cu118
注意
CUDA 12.1 以降を使う場合は --index-url https://download.pytorch.org/whl/cu121 に変更してください。nvidia-smi で表示される CUDA Version は「ドライバが対応する最大バージョン」であり、PyTorch の CUDA バージョンとは別物です。CUDA 11.8 対応の PyTorch でも、CUDA 12.7 対応ドライバ上で問題なく動作します。
②ComfyUI の依存パッケージをインストール
Collecting diffusers>=0.38.0
Collecting transformers>=5.12.1
Collecting safetensors>=0.4.2
Collecting aiohttp>=3.11.8
Successfully installed diffusers-0.38.0 transformers-5.12.1 safetensors-0.8.0 aiohttp-3.14.1 …
requirements.txt には transformers・diffusers・safetensors・aiohttp など主要ライブラリが含まれています。torch はすでにインストール済みなのでスキップされます。
ComfyUI-InstantID カスタムノードのインストール

ComfyUI-InstantID は diffusers を使わず、ComfyUI のパイプラインに直接統合された実装です。インストールは custom_nodes ディレクトリへの git clone と pip インストールの2ステップです。
①カスタムノードをクローン
Cloning into ‘custom_nodes/ComfyUI_InstantID’…
Receiving objects: 100%, done.
②InsightFace と onnxruntime-gpu をインストール
Collecting insightface
Collecting onnxruntime-gpu
Successfully installed insightface-1.0.1 onnxruntime-gpu-1.23.2
$ pip show insightface onnxruntime-gpu | grep -E “^(Name|Version)”
Name: insightface
Version: 1.0.1
Name: onnxruntime-gpu
Version: 1.23.2
requirements.txt の中身は insightface・onnxruntime・onnxruntime-gpu の3行だけです。シンプルです。

注意
GUI のないサーバー環境では opencv-python の代わりに opencv-python-headless を使わないと libxcb.so.1: cannot open shared object file エラーが出ます。pip install opencv-python-headless で回避できます。ComfyUI 自体はブラウザから操作するため、サーバーに表示環境は不要です。
モデルファイルのダウンロード
InstantID を動かすには 4 種のファイルが必要です。合計で約 10 GB ダウンロードします。


①InstantID 本体モデル(ip-adapter.bin + ControlNet)
$ mkdir -p models/instantid models/controlnet models/insightface/models
# ip-adapter.bin(約 1.7 GB)
$ wget -q -P models/instantid https://huggingface.co/InstantX/InstantID/resolve/main/ip-adapter.bin
# ControlNet(約 1.5 GB)
$ wget -q -P models/controlnet “https://huggingface.co/InstantX/InstantID/resolve/main/ControlNetModel/diffusion_pytorch_model.safetensors”
②antelopev2(顔認識モデル)
buffalo_l ではなく antelopev2 が必要です。README に明記されています。HuggingFace または Google Drive からダウンロードして解凍します。
$ pip install huggingface_hub
$ python3 -c “from huggingface_hub import hf_hub_download; hf_hub_download(‘MonsterMMORPG/tools’, ‘antelopev2.zip’, local_dir=’models/insightface’)”
models/insightface/antelopev2.zip: 100%|████| 277M/277M
$ cd models/insightface && unzip antelopev2.zip -d models/ && cd ../..
Archive: antelopev2.zip
extracting: models/antelopev2/…
配置後のディレクトリ構造は ComfyUI/models/insightface/models/antelopev2/ になります。
③SDXL ベースモデル
InstantID は SDXL 専用のため、SDXL 用のチェックポイントが別途必要です。公式の sdxl_base_1.0.safetensors(約 6.6 GB)か、CivitAI などのコミュニティモデルを使います。
$ python3 -c “from huggingface_hub import hf_hub_download; hf_hub_download(‘stabilityai/stable-diffusion-xl-base-1.0’, ‘sd_xl_base_1.0.safetensors’, local_dir=’models/checkpoints’)”
models/checkpoints/sd_xl_base_1.0.safetensors: 100%|████| 6.64G/6.64G
ComfyUI の起動と InstantID ワークフローの読み込み
①起動
Total VRAM 24100 MB, total RAM 61876 MB
pytorch version: 2.5.1+cu118
Set vram state to: NORMAL_VRAM
Device: cuda:0 NVIDIA GeForce RTX 4090 : cudaMallocAsync
Python version: 3.10.12
ComfyUI version: 0.25.0
Starting server
To see the GUI go to: http://0.0.0.0:8188
別マシンやローカルからアクセスする場合は --listen 0.0.0.0 を付けます。同じマシンなら http://localhost:8188 でブラウザからアクセスします。

②サンプルワークフローの読み込み
ComfyUI_InstantID/examples/ にサンプルワークフロー(.json)が入っています。ComfyUI の画面右側メニュー → 「Load」から instantid_basic_workflow.json を読み込むと、InstantID に必要なノードが一式配置されます。
ワークフローの主な構成要素:
InstantIDModelLoader—ip-adapter.binを読み込むInstantIDFaceAnalysis— antelopev2 で顔を検出・特徴量を抽出ApplyInstantIDまたはApplyInstantIDAdvanced— SDXL のパイプラインに顔特徴を注入ControlNetLoader— InstantID 用 ControlNet モデルを読み込む
③生成パラメータのポイント
正直、最初は CFG(Classifier-Free Guidance)を下げずに試してしまい、顔が「焼き付いた」ように潰れました。README には「CFG を 4〜5 に下げるか RescaleCFG ノードを使うこと」と明記されています。
- CFG: 4〜5 を推奨(デフォルトの 7 では過度に強調される)
- 解像度: 1024×1024 はウォーターマークが出やすい。1016×1016 など少しずらすと改善
- ノイズ注入: デフォルト 35%。
ApplyInstantIDAdvancedで調整可能
よくあるエラーと解決策
①libxcb.so.1: cannot open shared object file
opencv-python(headless でない方)をサーバー環境に入れると表示系ライブラリが見つからずエラーになります。
このエラーは opencv-python(通常版)が GUI ライブラリを要求するために起きます。サーバー環境では opencv-python-headless に切り替えることで解消できます。
$ pip uninstall opencv-python -y
$ pip install opencv-python-headless
②buffalo_l ではなく antelopev2 を使っているか確認
顔検出が動かない場合、ComfyUI/models/insightface/models/ 以下に antelopev2 ディレクトリが存在するか確認してください。buffalo_l でインポートしようとすると無音でスキップされます。
③CUDA out of memory
SDXL の基本解像度(1024×1024)+ InstantID で最低 8 GB VRAM を使います。他のプロセスが GPU を使っている場合は先に終了させてください。
| 0% 44C P8 9W / 450W | 585MiB / 24564MiB | 0% Default |
VRAM が足りない場合は python main.py --lowvram または --medvram で起動すると、モデルをオフロードして省メモリで動作します(速度は落ちます)。
④モデルが認識されない
ComfyUI が InstantID モデルを見つけられない場合は配置先を確認します。
ip-adapter.bin
$ ls models/controlnet/
diffusion_pytorch_model.safetensors
$ ls models/insightface/models/
antelopev2/
まとめ
InstantID on Ubuntu のセットアップをまとめます。
- ComfyUI を clone → PyTorch(CUDA版)+ requirements.txt をインストール
- ComfyUI-InstantID custom node を
custom_nodes/に clone → insightface + onnxruntime-gpu をインストール - モデルは
ip-adapter.bin・ControlNet・antelopev2・SDXL ベースの4種(合計 約 10 GB) - 顔認識は
antelopev2が必須。buffalo_l は使えない - CFG は 4〜5 に下げる。解像度は 1016×1016 など 1024 からずらすとウォーターマークを避けやすい
ローカルの GPU がない場合や、より高スペックな GPU で試したい場合は、クラウドの GPU インスタンスを使うのが現実的です。
VPS でサーバーを借りて Ubuntu 環境を整えたい方は、こちらも参考にしてください: Ubuntu サーバー初期設定ガイド


コメント