
2024年1月10日のアップデートでControlNetに「IP-Adapter-FaceID」が追加されました。
従来のIP-Adapterと異なり、画像から顔のみを読み取って新しく画像生成ができるものです。
今回はこの「IP-Adapter-FaceID」の使い方についてご紹介します。
IP-Adapter-FaceIDとは?
IP-Adapter-FaceIDは、画像から顔のみを抽出して新しい画像を生成できる技術です。
従来のIP-Adapterは画像全体から類似画像を生成できましたが、こちらは顔に特化したものになります。
またLoRAを使用することで一貫性を持たせられるようになり、同一人物の画像が生成しやすくなりました。
IP-Adapter-FaceIDを使う前の準備
Stable Diffusion Web UIのインストール
まずは本体のStable Diffusion Web UIが必要です。以下の手順でインストールできます。
1.pythonとgitをインストール
2.インストールしたいパスでコマンドプロンプトを開く
3.git pullを実行
・git pullのコマンド
git pull https://github.com/Stable Diffusion Web UI/stable-diffusion-webui.git
これで「stable-diffusion-webui」のフォルダができるので、中の「webui-user.bat」を起動します。
そうすると必要なファイルがダウンロードされて、自動でUIが開けばインストールは完了です。
詳しい手順はこちらをご確認ください。
ControlNetのインストール
ControlNetは、画像から情報を抽出できるツールがまとまっている拡張機能です。
IP-Adapter-FaceIDはControlNetで使える機能なので、先にControlNetをインストールします。
Extensions→Install from URL→URL for~に以下のURLを入力して、Installボタンをクリックしてください。
https://github.com/Mikubill/sd-webui-controlnet.git

インストール後にリスタート、または再起動すればインストールは完了です。
insightfaceのインストール
もう1つ「insightface」というものが必要です。
私はなぜかインストール済みだったので、もしかしたら何らかの拡張機能を入れたときにインストールされている可能性があります。
まずは「insightface」がインストールされているか確認してみてください。
stable-diffusion-webuiのフォルダ空白部分で右クリック→ターミナルを開き、以下を実行します。
1行目が仮想環境にするもの、2行目がインストールされているか確認するものです。
まとめて実行すると仮想環境にした後一度止まるので、再度Enterを押してください。
それか1行ずつ実行してください。
venv\Scripts\activate
pip show insightface
以下のように表示されればインストールされています。

もし「not found: insightface」と出たら、以下を実行してインストールしてください。
既に仮想環境になっている場合は2行目だけでOKです。
venv\Scripts\activate
pip install insightface
IP-Adapter-FaceIDモデルのダウンロード
IP-Adapter-FaceIDを使うにはモデルとLoRAが必要です。
SD1.5で使用するなら無印、plus、plusv2、SDXLならSDXL用のモデルとLoRAをダウンロードします。
それぞれ対応しているモデルとLoRAは以下の通りです。
2024年1月24日に「plusv2_sdxl」が追加されました。
モデル | LoRA |
---|---|
ip-adapter-faceid_sd15.bin | ip-adapter-faceid_sd15_lora.safetensors |
ip-adapter-faceid-plus_sd15.bin | ip-adapter-faceid-plus_sd15_lora.safetensors |
ip-adapter-faceid-plusv2_sd15.bin | ip-adapter-faceid-plusv2_sd15_lora.safetensors |
ip-adapter-faceid_sdxl.bin | ip-adapter-faceid_sdxl_lora.safetensors |
ip-adapter-faceid-plusv2_sdxl.bin | ip-adapter-faceid-plusv2_sdxl_lora.safetensors |
下記リンクからダウンロードできます。
それぞれモデルとLoRAは対象のパスに移動させておいてください。
・モデルのパス
stable-diffusion-webui\models\ControlNet
・LoRAのパス
stable-diffusion-webui\models\Lora
IP-Adapter-FaceIDの使い方
基本はIP-Adapterと同じです。
1.読み取りたい顔の画像をセット
2.パラーメータの設定
3.LoRAをプロンプトに入力
4.画像生成
まずtxt2imgでControlNetのタブを開き、読み取りたい顔の画像をセットします。

今回こちらの画像をお借りしました。
Girl Model Portrait - Free photo on Pixabay - Pixabay
次にパラーメータを以下のように設定します。環境に合わせて調整してください。

Enable | チェック ※ControlNetの有効化 |
Low VRAM | グラボのVRAMが8GB以下ならチェック推奨 |
Control Type | IP-Adapterをチェック ※自動で対象のPreprocessor・modelを選択 |
Model | 対応するプリプロセッサーとモデルを選択 |
使用するIP-Adapter-FaceIDのモデルに合わせて、プロンプトにLoRAを入力します。

LoRAタブから使用したいものをクリックすれば自動で入力が可能です。

なお、githubのサンプルだとウェイトを0.6にしています。ウェイトは結果を見ながら調整してみてください。
顔以外に追加したいプロンプトがあればそちらも入力します。
今回は画質とネガティブプロンプトのみ入力しました。
これで画像生成すると。セットした画像の顔を生成画像に反映できます。

使用モデル:BracingEvoMix_v1
IP-Adapter-FaceIDのモデル比較
それぞれ無印、plus、plusv2,SDXLで生成した画像です。
SDXLはdreamshaperXL10を使用

顔をしっかり反映できているかでいうと、無印<plus<SDXLの順だと思います。
ただStable Diffusion Web UIだとSDXLは重いので、処理速度などを含めてバランスが取れているのはplusかplusv2という印象でした。
また使用モデルによってクオリティも異なるため、いろいろ試行錯誤してみてください。
IP-Adapter-FaceIDは商用利用不可
huggingfaceのページを見ると以下のような記載があり、商用利用としては使用できないため注意が必要です。
Non-commercial use
This model is released exclusively for research purposes and is not intended for commercial use.
非商用利用
本モデルは研究目的にのみ公開されるものであり、商業利用を目的としたものではありません。
h94/IP-Adapter-FaceID · Hugging Face
IP-Adapter-FaceIDの使い方まとめ
今回はStable Diffusion Web UIでIP-Adapter-FaceIDを使う方法についてご紹介しました。
IP-Adapter-FaceIDは顔を抽出して新しい画像が生成できる
一貫性を持たせるためにLoRAが必要
使用モデルによって結果が異なる
同じ人物でポーズを変えたり、ストーリー性のある画像を作ったりする場合は、非常に便利な機能です。
商用利用できないのでビジネスには活用できませんが、個人で同一人物のさまざまな画像を生成したい方はぜひIP-Adapter-FaceIDを使ってみてください。