IP-Adapter|参照画像で雰囲気を伝える仕組み
- IP-Adapter って、何をしているの?
- 参考にしたい画像の雰囲気を、パースに移したい
- IP-Adapter と ControlNet の違いを知りたい
参考にしたい画像(参照画像)を画像生成AIに入れて、その雰囲気を伝える方法に IP-Adapter があります。しかし、参照画像から何が伝わるのかは、使ってみないと分かりにくい所です。
この記事では、IP-Adapter の仕組みと、参照画像から伝わるものを解説します。
文のプロンプトとの関係、強さの違い、ControlNet(線や深度の画像で形と配置を保つ仕組み)との組み合わせも作例で確かめられます。
IP-Adapter は、文のプロンプトに加えて画像も、画像生成AIに渡す手がかりにする仕組みです。
IP-Adapterとは

IP-Adapter(アイピー・アダプター)とは、参照画像を、文のプロンプトと一緒に条件として加える仕組みです。条件は、画像を作るときにモデルに渡す手がかりです。
プロンプトは、その手がかりのうち、画像を作るときに入れる文章を指します。
IP-Adapter が発表されたのは、2023年の論文です。題には、「IP-Adapter: Text Compatible Image Prompt Adapter」と付けられています。
画像もプロンプトとして使えるようにする、軽いアダプター(学習済みのモデルに足す小さな部品)です。
作例は、ComfyUI(画像生成AIを動かすソフト)と Stable Diffusion 1.5(画像生成AIのモデルの1つ)で1回ずつ作りました。
IP-Adapter は基本の版で、強さ(効き具合を決める値)は 0.5 です。
参照画像は、灰色のコンクリートの壁と黒い革のソファの部屋の画像で、これも Stable Diffusion 1.5 で作りました。文は、「photo of a living room(居間の写真)」だけです。
できた画像には、参照画像に似た、灰色の壁と黒い吊り下げの照明がある部屋が写りました。
画像用の小さな層を足す仕組み

IP-Adapter の仕組みは、文と画像で取り込む層を分け、画像用の層を新しく足すことです。層はモデルの中の計算の段で、文や画像を取り込む層はクロスアテンションと呼ばれます。
文の特徴(文を、モデルが計算に使える数値にしたもの)を取り込むのは、学習済みのモデルにある層で、この層は変えないままです。画像の特徴は、新しく足した画像用の層で取り込みます。
学習で調整するのは足した部分だけで、その学習は開発元が済ませています。作例でも、配布されている学習済みのファイルを読み込んで使いました。
論文では、学ぶ値は、画像の特徴を変換する小さな部分と足した層を合わせて約2,200万です。Stable Diffusion 1.4/1.5 のモデルの約8億6,000万と比べると、ずっと小さな数になります。
雰囲気だけでなく写っている物も伝わる

IP-Adapter では、参照画像から雰囲気や様式(画風や作り方の特徴)だけでなく、写っている物も伝わります。論文は、画像の特徴が中身と様式の両方を表せると書いています。
写真の被写体や様式に合わせる使い方を説明しているのは、Diffusers(画像生成AIを動かす Python の道具)も同じです。
作例では、文だけで作ると、テレビと赤いカーテンのある明るい居間になりました。参照画像を加えると、灰色の壁の前の横長のソファと黒い照明という、参照画像にあった物が出てきました。
一方、照明の位置やテーブルの有無など、参照画像の配置はそのままにはなりませんでした。改良版の IP-Adapter-plus では構図もかなり忠実になる、とする解説もあります。
文のプロンプトと一緒に使う

IP-Adapter は、参照画像を入れても、文のプロンプトが効くように作られています。論文の題の「Text Compatible」は、文と両立するという意味です。
論文には、画像のプロンプトは文のプロンプトとも一緒に働くと書かれています。文と画像の両方から、1枚の画像を作れるということです。
作例では、同じ参照画像のまま、文に「大きな窓・明るい昼の光」の語を足しました。右にカーテンの付いた窓が現れましたが、部屋は暗いままで、壁とソファも参照画像に近いままでした。
IP-Adapterの強さ

IP-Adapter は、強さ(効き具合を決める値)で、文と画像のつり合いを変えられます。Diffusers は、強さ 1.0 でアダプターが全部効き、0.5 が文と画像のつり合いを取りやすいと説明しています。
作例では、ComfyUI の IP-Adapter のノードで、強さを 0.2・0.5・1.0 にしました。
0.2 では、文だけで作ったときに近い、テレビとカーテンのある居間のまま、壁やソファが灰色に、クッションが黒になっています。
0.5 と 1.0 は、どちらも参照画像に大きく寄り、部屋の作りまで変わりました。この作例では、0.2 と 0.5 のあいだで、文と画像のどちらに寄るかが大きく変わっています。
参照画像の物まで出したくないときは、強さを下げて作り比べてください。配置を保ちたいときは、次の ControlNet との組み合わせが使えます。
ControlNetとの組み合わせ

IP-Adapter は、ControlNet と組み合わせられます。論文も、ControlNet などのアダプターと一緒に使えると書いています。
作例では、Blender で作った部屋のレンダリング(3DCG で計算した画像)から深度(カメラからの奥行き)を取り、参照画像と組み合わせました。
IP-Adapter の強さは 0.8、深度の ControlNet の強さは 1.0 です。
窓・ソファ・テーブルの配置はレンダリングのままで、壁は灰色に、ソファは黒い革のような見た目になりました。解説の記事にも、2つを組み合わせると構図はそのままに雰囲気だけを変えられるとするものがあります。
IP-Adapterで参照画像の雰囲気をパースに取り込もう

IP-Adapter は、画像用の小さな層を足して、画像も指示として使えるようにする仕組みです。この記事で解説したことは、次の6つです。
- 参照画像を、文のプロンプトと一緒に条件として加える軽いアダプター
- 文と画像で取り込む層を分け、画像用の層を足す。学習で調整するのは約2,200万の値
- 参照画像からは、雰囲気や様式だけでなく、写っている物も伝わる
- 参照画像を入れても文のプロンプトは効き、文で足した物も出てくる
- 強さで文と画像のつり合いが変わり、作例では 0.2 で文の部屋、0.5 以上で参照画像の部屋に寄った
- ControlNet と組むと、配置はレンダリング、雰囲気は参照画像と分けて伝えられる
自分のパースで試すときは、レンダリングの深度を ControlNet に、参照画像を IP-Adapter に入れて作ってみてください。
あわせて読みたい
- ControlNet|線・深度・姿勢の画像で形と配置を寄せる仕組み — 配置を保つ ControlNet の仕組みを知りたいとき
- AI建築パースのプロンプトの書き方|建物・素材・光・視点とテキストエンコーダの仕組み — 文のプロンプトが画像に伝わる仕組みを知りたいとき
- 「画像編集モデル|指示文と元の画像から直した画像を作る仕組み」(準備中) — 文で指示して画像を直す方法を知りたいとき
- ComfyUIのIPAdapter|参照画像のスタイル・ComfyUI_IPAdapter_plus — ComfyUI で IP-Adapter を使う操作を知りたいとき
会員登録(無料)
記事やテーマのお気に入り・学習履歴・フォローが使えます。
この記事について
PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。