AI活用

ComfyUIでIP-Adapterを使う方法|構図・人物・画風を参照画像から制御する

IP-Adapterは参照画像をCLIP特徴量に変えてmodelに渡す「画像で書いたprompt」です。ComfyUI_IPAdapter_plusの最小接続、同じseedでweightを4段階比較する手順、ControlNet・LoRAとの役割分担、参照画像の権利確認まで整理します。

この記事の目次
  1. 結論:IP-Adapterは「画像で書いたprompt」として扱う
  2. IP-Adapterは参照画像の何を見ているのか
  3. 最小構成で参照画像を入れる
  4. 依存関係を図で確認する
  5. weightを変えると何が変わるのか
  6. 同じseedで4段階を比較する
  7. weight_typeとstart_at・end_atの意味
  8. ControlNet・LoRAとの違い
  9. 複数の制御を重ねる順番
  10. 参照画像の権利と再現性
  11. よくある質問
  12. 参照画像を入れても絵が変わりません
  13. 参照画像に似すぎて、promptの変更が効きません
  14. FaceID系のpresetが動きません
  15. まとめ

IP-Adapterは、参照画像をCLIP Visionで特徴量に変換し、テキストpromptと並ぶ「画像の条件」としてmodelに渡す仕組みです。ComfyUIでは、Load Checkpoint → IPAdapter Unified Loader → IPAdapter Advanced → KSamplerの順にMODELをつなぎ、同じseedでweightだけを変えて効き方を確かめます。

情報確認日:2026年8月22日(日本時間)

結論:IP-Adapterは「画像で書いたprompt」として扱う

責任範囲

  • IP-Adapterが参照画像の何を使い、何を使わないかを説明する
  • ComfyUI_IPAdapter_plusを使った最小接続と、model fileの置き場所を示す
  • 同じseedでweightを4段階比較する手順と記録表を用意する
  • ControlNet・LoRAとの役割の違いと、重ねるときの順番を整理する
  • ControlNetの基本操作とLoRAの導入手順は既存記事に任せる

node名はcustom node「ComfyUI_IPAdapter_plus」(2026年8月時点)のものです。本体同梱ではないため、導入前にrepositoryの状態を確認してください。

スポンサーリンク

IP-Adapterは参照画像の何を見ているのか

IP-Adapterは参照画像を「見本」としてそのまま貼り付けるのではなく、CLIP Vision encoderで画像を特徴量に変換し、その特徴量をattention層に追加で注入します。テキストpromptがCLIP Text Encodeを通って条件になるのと同じ位置づけで、画像もまた条件になる、と捉えると理解しやすくなります。

したがって、参照画像から拾われるのは「被写体の特徴・色味・質感・雰囲気」のような、CLIPが捉えられる意味の情報です。線の位置や関節の座標のような幾何情報は直接渡りません。構図が似て見えても、それは全体の印象が反映された結果で、ピクセル位置が固定されるわけではありません。

参照画像の要素 IP-Adapterで反映されやすいか 理由
被写体の種類・服装・色 反映されやすい CLIPが意味として捉える情報
画風・質感・光の雰囲気 反映されやすい style系のweight_typeで強調できる
顔の同一性 専用model次第 PLUS FACEやFaceID系が別途用意されている
ポーズの関節位置・輪郭の座標 反映されにくい 幾何情報はControlNetの領域
文字・ロゴの正確な形 反映されにくい 特徴量に圧縮される段階で失われる

最小構成で参照画像を入れる

必要なのは、checkpoint、IP-Adapter model、CLIP Vision model、参照画像の4つです。ComfyUI_IPAdapter_plusのREADMEは、IP-Adapter modelをComfyUI/models/ipadapter(無ければ作成)に、CLIP Vision modelをComfyUI/models/clip_visionに置くよう案内しています。extra_model_paths.yamlipadapterのentryを追加すれば別の場所も指定できます。

依存関係を図で確認する

Load Checkpoint
  MODEL ──→ IPAdapter Unified Loader ──→ IPAdapter Advanced ──→ KSampler
              (preset を選ぶ)          ↑ model / ipadapter
                                         ↑ image ← Load Image(参照画像)
  CLIP  ──→ CLIP Text Encode(positive / negative)──→ KSampler
  VAE   ──→ VAE Decode

IPAdapter Unified Loaderは、選んだpresetに合わせてIP-Adapter modelとCLIP Vision modelを自動で組み合わせ、modelipadapterの2本を出力します。presetには「LIGHT – SD1.5 only (low strength)」「STANDARD (medium strength)」「VIT-G (medium strength)」「PLUS (high strength)」「PLUS FACE (portraits)」「FULL FACE – SD1.5 only (portraits stronger)」があります。名前にSD1.5 onlyと付くものをSDXLのcheckpointに使うと、modelが見つからないか効果が出ません。

IPAdapter Advancedは、modelipadapterimageを受け取り、weight(既定1.0、-1〜5)、weight_typecombine_embedsstart_atend_at(0.0〜1.0)、embeds_scalingを持ちます。シンプル版の「IPAdapter」nodeはweight_typeが「standard」「prompt is more important」「style transfer」の3つに絞られるため、比較実験はAdvancedの方が記録しやすくなります。

IPAdapter Advancedの出力MODELをKSamplerにつなぎ、Unified Loaderの手前のMODELを使わないよう注意してください。Load CheckpointのMODELを直接KSamplerにつないだままだと、参照画像は一切反映されません。

接続後は、presetをcheckpointの系統に合わせ、weight 1.0・weight_type linear・start_at 0.0・end_at 1.0のまま1枚生成し、IP-Adapterを通らない同じseedの画像と見比べます。参照画像はPrep Image For ClipVisionで正方形に整えておくと結果が安定しやすくなります。

weightを変えると何が変わるのか

weightは、参照画像の特徴量がattentionに加わる強さです。低いとpromptが主導し、高いと参照画像に寄ります。READMEには「weightを0.8程度まで下げ、stepsを増やすのがたいてい良い」という趣旨の案内がありますが、これは作者の経験則で、modelや画像によって変わります。自分の環境では次の手順で確かめてください。

同じseedで4段階を比較する

固定するもの
- checkpoint・VAE・preset
- prompt・negative prompt
- seed(KSamplerのcontrol_after_generateをfixedにする)
- sampler・scheduler・steps・CFG・width・height
- LoRA・ControlNetは外す

変えるもの
- IPAdapter Advanced の weight だけ(例: 0.3 / 0.6 / 0.9 / 1.2)

seedを固定する方法と、固定しても完全一致しない理由はComfyUIのseedの仕組みで説明しています。比較前にfixedになっているかを必ず確認してください。

weight 参照の反映(1〜5) promptの反映(1〜5) 破綻・artifact 判定
0.3
0.6
0.9
1.2

見るべき点は2つの失敗の間です。低すぎれば参照画像がほとんど残らず「効いていない」ように見え、高すぎれば参照画像の構図や背景まで引きずって、promptで指定した要素(季節や服装の変更など)が無視されます。両端が見えたら、その間を0.1刻みで詰めます。

weight_typeとstart_at・end_atの意味

weight_typeは、どの層・どの時間帯にweightを配分するかの形です。「linear」は全層に均一、「ease in」「ease out」は適用の立ち上がり方を変え、「style transfer」「composition」「strong style transfer」「style and composition」は画風と構図のどちらを拾うかに寄せます。SDXL向けにはPrecise Style Transfer / Precise Compositionのnodeも用意されています。

start_at・end_atはdenoisingのどの割合で効かせるかの範囲で、ControlNetのstart・end percentと同じ考え方です。傾向はmodelで差が出るため、weightを決めてから1つずつ動かします。

ControlNet・LoRAとの違い

3つとも「promptだけでは決まらない部分を決める」道具ですが、渡している情報の種類が違います。混同すると、ポーズを固定したいのにIP-Adapterのweightを上げ続ける、というような遠回りになります。

項目 IP-Adapter ControlNet LoRA
渡すもの 参照画像のCLIP特徴量 前処理したpose・edge・depth map 追加学習した重み
得意なこと 被写体・画風・雰囲気の参照 位置・形・奥行きの固定 特定のcharacter・style・概念の再現
準備 画像1枚とmodel 画像1枚・preprocessor・model 学習済みfile(自作なら学習)
接続先 MODEL CONDITIONING MODELとCLIP
強さの設定 weight / weight_type / 範囲 strength / start・end strength_model / strength_clip

ControlNetの種類の選び方と接続はComfyUIでControlNetを使う方法、LoRAの配置と強度比較はComfyUIでLoRAを使う方法で扱っています。「1枚の画像からすぐ試したい」ならIP-Adapter、「同じcharacterを何十枚も安定して出したい」なら学習済みLoRAの方が再現性が高い、という使い分けが出発点です。

複数の制御を重ねる順番

併用でまず守りたいのは「単独で効くことを確かめてから重ねる」順序です。効かない原因が接続ミスか他の制御との打ち消し合いかを、重ねた状態で切り分けるのは難しいからです。

  1. promptだけで基準画像を作り、seedを固定する
  2. IP-Adapterだけを足し、weightを決める
  3. IP-Adapterを外し、ControlNetだけを足してstrengthを決める
  4. 両方を入れて同じseedで生成し、どちらが負けているかを見る
  5. 負けている側を上げるのではなく、勝ちすぎている側を下げる

接続は、MODEL系統がLoad Checkpoint → Load LoRA → IPAdapter Unified Loader → IPAdapter Advanced → KSampler、CONDITIONING系統がCLIP Text Encode → Apply ControlNet → KSamplerと経路が分かれます。IP-Adapterはmodel側、ControlNetはconditioning側に入るため、同じ線を奪い合いません。

複数のControlNetを同時に重ねる場合の強度配分と衝突の見つけ方は、別記事で扱います。

参照画像の権利と再現性

IP-Adapterは「画像を1枚入れるだけ」で動く分、その1枚の出どころが結果の公開可否を決めます。確認するのは、参照画像・IP-Adapter model・CLIP Vision model・checkpointの4つそれぞれのlicenseです。

  • 参照画像を自分が利用してよいか(自作・許諾済み・利用条件の明記)
  • 実在人物の写真なら、本人の同意と用途(特にFaceID系を使う場合)
  • IP-Adapter model・CLIP Vision modelのModel Cardに商用条件が書かれているか
  • checkpoint側のlicenseと矛盾しないか
  • 参照画像のfile名・hash・weight・presetを生成記録に残したか

特定の作家の画風を参照し、その作家名を添えて公開する使い方は、技術的に可能でも権利・信用の問題になります。他人の顔写真を本人の同意なく使うことも同様です。迷う画像は使わないのが、後から説明できる唯一の選択です。

再現性の面では、参照画像を少しトリミングするだけで特徴量が変わり、結果も変わります。切り抜き位置まで記録しないと同じ画像は出せません。また、ComfyUI_IPAdapter_plusの作者はrepositoryを「maintenance only」モードにすると表明しています。本体の更新で動かなくなる可能性があるため、動作するcommitとComfyUI versionの組を記録しておいてください。

よくある質問

参照画像を入れても絵が変わりません

Load CheckpointのMODELを直接KSamplerにつないでいないか確認してください。次に、presetとcheckpointの系統(SD1.5 / SDXL)が合っているか、weightが0になっていないかを見ます。

参照画像に似すぎて、promptの変更が効きません

weightを下げるか、weight_typeを「ease out」や「prompt is more important」(シンプル版)に変えると、promptの比重が戻りやすくなります。画風だけ欲しい場合は「style transfer」を試し、構図まで引きずる場合はend_atを短くします。

FaceID系のpresetが動きません

FaceID系は別途insightfaceのinstallが必要で、IPAdapter Unified Loader FaceIDという別のloaderを使います。依存packageの導入方法は環境(portable / venv / Desktop)で異なるため、repositoryのREADMEで最新の手順を確認してください。

まとめ

IP-Adapterは、参照画像をCLIP特徴量に変えてmodelに渡す「画像で書いたprompt」です。被写体・画風・雰囲気の参照が得意で、位置や形の固定はControlNet、特定対象の高い再現性はLoRAに任せます。

最初はIPAdapter Unified LoaderとIPAdapter Advancedの2つだけで接続し、同じseedでweightを4段階比較して、効かない側と似すぎる側の両端を自分の環境で見つけてください。参照画像のlicenseと、動作したcommitの記録が、公開と再現の両方を守ります。

スポンサーリンク