InstantID on Ubuntu — 1枚の顔写真から一貫したキャラクター画像を生成

AI/MLツール

この記事のポイント

  • 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 の実機環境で確認しながら解説します。

著者アイコン
著者アイコン

モデルのダウンロード量が合計 10 GB 前後あるので、ダウンロードが終わる前に ComfyUI を起動しても何も表示されません。先にファイルを揃えてから起動するのが無難です。

ComfyUI GitHub リポジトリ(comfyanonymous/ComfyUI)
ComfyUI GitHub リポジトリ(comfyanonymous/ComfyUI)

動作要件

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

InstantID 動作要件(illustrative)
InstantID 動作要件(illustrative)

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

環境確認コマンド実行結果(実測)
環境確認コマンド実行結果(実測)



ubuntu@linuxlab: ~
$ nvidia-smi –query-gpu=name,memory.total,driver_version –format=csv,noheader
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 で起動するとブラウザ上でワークフローを組めます。まずこれをインストールします。

InstantID GitHub ページ(InstantX-Team/InstantID)
InstantID GitHub ページ(InstantX-Team/InstantID)

①依存パッケージのインストール(PyTorch CUDA版)




ubuntu@linuxlab: ~
$ sudo apt-get update && sudo apt-get install -y git python3-pip python3-venv
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 の依存パッケージをインストール




ubuntu@linuxlab: ~/ComfyUI
$ pip install -r requirements.txt
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 GitHub(cubiq/ComfyUI_InstantID)
ComfyUI-InstantID GitHub(cubiq/ComfyUI_InstantID)

ComfyUI-InstantID は diffusers を使わず、ComfyUI のパイプラインに直接統合された実装です。インストールは custom_nodes ディレクトリへの git clone と pip インストールの2ステップです。

①カスタムノードをクローン




ubuntu@linuxlab: ~/ComfyUI
$ git clone https://github.com/cubiq/ComfyUI_InstantID custom_nodes/ComfyUI_InstantID
Cloning into ‘custom_nodes/ComfyUI_InstantID’…
Receiving objects: 100%, done.

②InsightFace と onnxruntime-gpu をインストール




ubuntu@linuxlab: ~/ComfyUI
$ pip install -r custom_nodes/ComfyUI_InstantID/requirements.txt
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 の中身は insightfaceonnxruntimeonnxruntime-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 ダウンロードします。

HuggingFace InstantX/InstantID モデルページ
HuggingFace InstantX/InstantID モデルページ
必要なモデルファイルと配置先(illustrative)
必要なモデルファイルと配置先(illustrative)

①InstantID 本体モデル(ip-adapter.bin + ControlNet)




ubuntu@linuxlab: ~/ComfyUI
# models ディレクトリを作成
$ 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 からダウンロードして解凍します。




ubuntu@linuxlab: ~/ComfyUI
# HuggingFace から antelopev2 を取得
$ 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 などのコミュニティモデルを使います。




ubuntu@linuxlab: ~/ComfyUI
# 公式 SDXL ベースモデルを取得
$ 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 ワークフローの読み込み

①起動




ubuntu@linuxlab: ~/ComfyUI
$ python main.py –listen 0.0.0.0
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 起動直後のノードエディタ画面(実測)
ComfyUI 起動直後のノードエディタ画面(実測)

②サンプルワークフローの読み込み

ComfyUI_InstantID/examples/ にサンプルワークフロー(.json)が入っています。ComfyUI の画面右側メニュー → 「Load」から instantid_basic_workflow.json を読み込むと、InstantID に必要なノードが一式配置されます。

ワークフローの主な構成要素:

  • InstantIDModelLoaderip-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 でない方)をサーバー環境に入れると表示系ライブラリが見つからずエラーになります。




ubuntu@linuxlab: ~
ImportError: libxcb.so.1: cannot open shared object file: No such file or directory

このエラーは opencv-python(通常版)が GUI ライブラリを要求するために起きます。サーバー環境では opencv-python-headless に切り替えることで解消できます。




ubuntu@linuxlab: ~
# 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 を使っている場合は先に終了させてください。




ubuntu@linuxlab: ~
$ nvidia-smi | grep -E “MiB|%”
| 0% 44C P8 9W / 450W | 585MiB / 24564MiB | 0% Default |

VRAM が足りない場合は python main.py --lowvram または --medvram で起動すると、モデルをオフロードして省メモリで動作します(速度は落ちます)。

④モデルが認識されない

ComfyUI が InstantID モデルを見つけられない場合は配置先を確認します。




ubuntu@linuxlab: ~/ComfyUI
$ ls models/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 サーバー初期設定ガイド

コメント

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