IP-Adapterとは
IP-Adapter(Image Prompt Adapter)は、参照画像をプロンプトのように使用してStable Diffusionの生成を制御する技術です。テキストプロンプトでは表現が難しいスタイル、構図、キャラクターの外見を画像から直接反映できます。
技術的背景
IP-Adapterは、Tencent ARC Labが開発したアダプターモデルです。
動作原理
1. 画像エンコーダー(CLIP): 参照画像を特徴ベクトルに変換
2. Cross-Attention: 特徴ベクトルをU-Netのattention層に注入
3. プロンプトとの融合: テキストと画像の両方で生成を制御
4. モデル非依存: 既存のSDXL/SD1.5モデルに追加可能(LoRAのように)
従来手法(DreamBooth/LoRA)との違い
| 手法 | 学習必要 | 速度 | 柔軟性 | 用途 |
|---|---|---|---|---|
| DreamBooth | ✓(数時間) | 遅い | 低 | 特定キャラ学習 |
| LoRA | ✓(30分-2時間) | 中速 | 中 | スタイル学習 |
| IP-Adapter | ✗ | 高速 | 高 | 即座にスタイル/顔転写 |
IP-Adapterのバリエーション
1. IP-Adapter(標準版)
スタイル全体を転写します。
特徴
– 色調、構図、雰囲気を反映
– 複数画像の組み合わせ可能
– 重み調整(0.0-1.5)でテキストプロンプトとのバランス調整
用途
– イラストのスタイル模倣
– 写真の雰囲気転写
– カラーパレット適用
2. IP-Adapter Plus
より詳細なディテールを保持します。
特徴
– CLIP ViT-H/14エンコーダー使用(標準版より高精度)
– 小物、テクスチャまで反映
– 重みを高くしても破綻しにくい
用途
– ファッションのディテール再現
– 背景の細部転写
– 複雑な構図の模倣
3. IP-Adapter Face ID
顔の特徴に特化したバリエーションです。
特徴
– 顔認識モデル(InsightFace)統合
– 性別、年齢、顔の構造を高精度で維持
– 複数人物の顔を個別に制御可能
用途
– キャラクター一貫性の維持
– ポートレート生成
– 顔交換
4. IP-Adapter Plus Face
Face IDとPlusの融合版。顔特化+全体スタイル反映。
用途
– 「この人物を別のスタイルで描画」
– 衣装・背景変更+顔維持
比較表
| モデル | スタイル | 顔 | ディテール | 重み範囲 | 適用例 |
|---|---|---|---|---|---|
| IP-Adapter | ◎ | △ | ○ | 0.5-1.0 | アートスタイル転写 |
| IP-Adapter Plus | ◎ | ○ | ◎ | 0.5-1.5 | 詳細な模倣 |
| IP-Adapter Face ID | △ | ◎ | △ | 0.3-1.0 | キャラクター一貫性 |
| IP-Adapter Plus Face | ◎ | ◎ | ◎ | 0.5-1.5 | 総合的制御 |
導入方法
AUTOMATIC1111 WebUIでの設定
1. 拡張機能のインストール
cd stable-diffusion-webui/extensions/
git clone https://github.com/tencent-ailab/IP-Adapter.git
2. モデルのダウンロード
cd stable-diffusion-webui/models/
mkdir IP-Adapter
cd IP-Adapter
# SDXL用
wget https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl.safetensors
wget https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus_sdxl_vit-h.safetensors
wget https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus-face_sdxl_vit-h.safetensors
# 画像エンコーダー
cd ../CLIP
wget https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/model.safetensors
3. 基本使用方法
- txt2img/img2img タブを開く
- IP-Adapter セクションを展開
- Enable IP-Adapter にチェック
- 参照画像をアップロード
- Model: “ip-adapter_sdxl.safetensors” を選択
- Weight: 0.7 に設定
- Generate
ComfyUIでの使用
ComfyUIでは詳細な制御が可能です。
基本ワークフロー
Load Checkpoint (SDXL)
↓
Load IP-Adapter Model
↓
Load Image (参照画像)
↓
CLIP Vision Encode (画像エンコード)
↓
Apply IP-Adapter
- weight: 0.7
- start_at: 0.0
- end_at: 1.0
↓
CLIP Text Encode (プロンプト)
↓
KSampler
↓
Save Image
詳細なワークフローはComfyUIワークフローライブラリを参照してください。
実践的な使い方
1. スタイル転写(IP-Adapter)
参照画像のアートスタイルを新しい構図に適用します。
設定例
– 参照画像: ゴッホ風の風景画
– プロンプト: “a modern city street at sunset”
– IP-Adapter weight: 0.8
– Model: ip-adapter-plus_sdxl
結果: 現代都市の風景がゴッホ風の筆致で描画される
コツ
– 参照画像は明確なスタイル(水彩、油絵、アニメ等)が効果的
– 重みが高すぎると構図まで引きずられる(0.6-0.8推奨)
– 複数の参照画像を混ぜる場合、重みを合計1.0以下に
2. 顔の一貫性維持(IP-Adapter Face ID)
同じキャラクターを異なるシーンで生成します。
設定例
– 参照画像: キャラクターの正面顔
– プロンプト: “a portrait of a woman in a red dress, outdoor garden”
– Model: ip-adapter-plus-face_sdxl
– Weight: 0.9
連続生成
1. 同じ参照画像を使用
2. プロンプトで状況変更(”in a cafe”, “running in the park”)
3. Seedを変えて複数バリエーション
トラブルシューティング
– 顔が崩れる → Weightを1.0に上げる、After Detailerを併用
– 他の要素が固定される → Start atを0.2に設定(初期ステップは無視)
3. ControlNetとの併用
IP-Adapterでスタイル、ControlNetで構図を同時制御します。
ワークフロー
1. ControlNet OpenPose: ポーズ指定
2. IP-Adapter: スタイル指定
3. プロンプト: ディテール補完
例
– ControlNet入力: 人物のポーズ骨格
– IP-Adapter参照: アニメキャラ顔
– プロンプト: “magical girl outfit, starry background”
設定
– ControlNet Weight: 0.8
– IP-Adapter Weight: 0.7
– Control Mode: Balanced
4. 複数画像の組み合わせ
異なる参照画像を組み合わせてハイブリッドスタイルを作成します。
ComfyUIの場合
Apply IP-Adapter (画像1: 顔)
- weight: 0.8
↓
Apply IP-Adapter (画像2: スタイル)
- weight: 0.6
↓
KSampler
WebUIの場合
– IP-Adapter 1: Face ID(顔)、Weight 0.8
– IP-Adapter 2: Plus(背景スタイル)、Weight 0.5
高度なテクニック
1. 段階的適用(start_at / end_at)
生成プロセスの特定段階でのみIP-Adapterを適用します。
| start_at | end_at | 効果 |
|---|---|---|
| 0.0 | 0.5 | 初期構図のみ参照 |
| 0.0 | 1.0 | 全体に適用(標準) |
| 0.2 | 0.8 | 中間段階のみ(バランス型) |
| 0.5 | 1.0 | ディテールのみ参照 |
用途
– 0.0-0.5: 構図は参照、ディテールはプロンプトに従う
– 0.5-1.0: 構図はプロンプト、テクスチャのみ参照
2. Regional IP-Adapter(領域指定)
画像の特定領域にのみIP-Adapterを適用します(ComfyUI専用機能)。
ワークフロー
Load Image → Mask Editor(顔部分をマスク)
↓
Regional IP-Adapter
- region: face_mask
- weight: 1.0
用途
– 顔だけ別画像、体は別スタイル
– 背景と前景で異なる参照画像
3. IP-Adapter + LoRAの併用
適用順序:
1. LoRA(ベーススタイル)
2. IP-Adapter(細部調整)
例
– LoRA: アニメスタイル全般
– IP-Adapter: 特定キャラの顔・髪型
4. 動画生成への応用
AnimateDiffやStable Video DiffusionでIP-Adapterを使い、動画全体で一貫したキャラクター/スタイルを維持します。
ComfyUIワークフロー
AnimateDiff Loader
↓
IP-Adapter (キャラクター顔)
↓
ControlNet Temporal (動きの指定)
↓
Video Output
トラブルシューティング
参照画像が全く反映されない
原因: Weightが低すぎる、モデルの不一致
対策
– Weightを0.8-1.0に上げる
– SD1.5モデルに SDXL用IP-Adapterを適用していないか確認
– CLIP Vision Encoderが正しくロードされているか確認
構図まで同じになってしまう
原因: Weightが高すぎる、IP-Adapter Plusを使用
対策
– Weightを0.5-0.6に下げる
– 標準版IP-Adapterに変更
– start_atを0.2-0.3に設定(初期段階を無視)
顔が崩れる(Face ID使用時)
原因: 参照画像の顔が小さい/複数人物
対策
– 参照画像を顔中心にトリミング
– 正面顔の画像を使用
– After Detailerで顔部分のみ再生成
色調が過剰に反映される
原因: 参照画像の色が強い
対策
– 参照画像を白黒に変換(構図のみ反映)
– Negative promptに “oversaturated” を追加
– IP-Adapter Weightを0.5以下に
商用利用の注意点
IP-Adapter本体のライセンス
– Apache 2.0(商用可能)
参照画像の権利
– 他人の写真・イラストを参照画像にする場合、著作権確認必須
– スタイル模倣は「アイデア」であり著作権侵害にならない場合が多いが、グレーゾーン
– 特定のアーティストのスタイルを商用利用する場合は事前相談推奨
生成画像の権利
– ベースモデル(SD/SDXL)のライセンスに準拠
– 参照画像の権利を継承する可能性あり
FAQ
Q1. IP-AdapterとLoRA、どちらを使うべきですか?
頻繁にスタイルを変える、学習データが少ない場合はIP-Adapterが適しています。特定のキャラクター/スタイルを大量生成する場合はLoRAを学習した方が効率的です。両方を併用することも可能です。
Q2. 複数人物の顔をそれぞれ別画像から適用できますか?
ComfyUIのRegional IP-Adapterを使えば可能です。顔ごとにマスクを作成し、別々の参照画像を適用します。WebUIでは複数IP-Adapterを重ねることで近い効果を得られますが、精度は劣ります。
Q3. アニメイラストにIP-Adapterを使うと実写に近づいてしまいます
CLIP Image Encoderが実写学習寄りのため発生します。対策として、ベースモデルをアニメ特化モデル(AnythingV5、Counterfeit等)に変更し、プロンプトに “anime style, illustration” を強調してください。IP-Adapter Weightを0.5-0.6に抑えることも有効です。
Q4. 参照画像のどの要素が反映されるかを制御できますか?
start_at/end_atパラメータである程度制御可能です。より詳細な制御にはControlNet併用(構図はControlNet、スタイルはIP-Adapter)、またはRegional IP-Adapter(領域分割)を使用してください。


コメント