search
  1. IP-Adapter|参照画像で雰囲気を伝える仕組み

IP-Adapter|参照画像で雰囲気を伝える仕組み

編集部 読了 約8分

  • IP-Adapter って、何をしているの?
  • 参考にしたい画像の雰囲気を、パースに移したい
  • IP-Adapter と ControlNet の違いを知りたい

参考にしたい画像(参照画像)を画像生成AIに入れて、その雰囲気を伝える方法に IP-Adapter があります。しかし、参照画像から何が伝わるのかは、使ってみないと分かりにくい所です。

この記事では、IP-Adapter の仕組みと、参照画像から伝わるものを解説します。

文のプロンプトとの関係、強さの違い、ControlNet(線や深度の画像で形と配置を保つ仕組み)との組み合わせも作例で確かめられます。

IP-Adapter は、文のプロンプトに加えて画像も、画像生成AIに渡す手がかりにする仕組みです。

IP-Adapterとは

暗い部屋の参照画像と文のプロンプトを加えて、参照画像に似た雰囲気の画像を作った図
参照画像と短い文から作ると、参照画像に似た、灰色の壁と黒い照明の部屋になった(Stable Diffusion 1.5・強さ 0.5)

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(居間の写真)」だけです。

できた画像には、参照画像に似た、灰色の壁と黒い吊り下げの照明がある部屋が写りました。

画像用の小さな層を足す仕組み

文の特徴は学習済みのモデルの層で、画像の特徴は新しく足した層で取り込み、2つを合わせる仕組みの図
IP-Adapter は文と画像で取り込む層を分け、画像用の層を新しく足す

IP-Adapter の仕組みは、文と画像で取り込む層を分け、画像用の層を新しく足すことです。層はモデルの中の計算の段で、文や画像を取り込む層はクロスアテンションと呼ばれます。

文の特徴(文を、モデルが計算に使える数値にしたもの)を取り込むのは、学習済みのモデルにある層で、この層は変えないままです。画像の特徴は、新しく足した画像用の層で取り込みます。

学習で調整するのは足した部分だけで、その学習は開発元が済ませています。作例でも、配布されている学習済みのファイルを読み込んで使いました。

論文では、学ぶ値は、画像の特徴を変換する小さな部分と足した層を合わせて約2,200万です。Stable Diffusion 1.4/1.5 のモデルの約8億6,000万と比べると、ずっと小さな数になります。

雰囲気だけでなく写っている物も伝わる

参照画像、文だけで作った画像、IP-Adapter を加えて作った画像の3枚
参照画像を加えると、雰囲気だけでなく横長のソファや黒い照明など、写っている物も伝わった

IP-Adapter では、参照画像から雰囲気や様式(画風や作り方の特徴)だけでなく、写っている物も伝わります。論文は、画像の特徴が中身と様式の両方を表せると書いています。

写真の被写体や様式に合わせる使い方を説明しているのは、Diffusers(画像生成AIを動かす Python の道具)も同じです。

作例では、文だけで作ると、テレビと赤いカーテンのある明るい居間になりました。参照画像を加えると、灰色の壁の前の横長のソファと黒い照明という、参照画像にあった物が出てきました。

一方、照明の位置やテーブルの有無など、参照画像の配置はそのままにはなりませんでした。改良版の IP-Adapter-plus では構図もかなり忠実になる、とする解説もあります。

文のプロンプトと一緒に使う

同じ参照画像を入れたまま、文に窓と昼の光の語を足して作った画像と、足す前の画像の2枚
文に窓と昼の光の語を足すと窓は現れたが、部屋は暗いままで、壁とソファも参照画像に近かった

IP-Adapter は、参照画像を入れても、文のプロンプトが効くように作られています。論文の題の「Text Compatible」は、文と両立するという意味です。

論文には、画像のプロンプトは文のプロンプトとも一緒に働くと書かれています。文と画像の両方から、1枚の画像を作れるということです。

作例では、同じ参照画像のまま、文に「大きな窓・明るい昼の光」の語を足しました。右にカーテンの付いた窓が現れましたが、部屋は暗いままで、壁とソファも参照画像に近いままでした。

IP-Adapterの強さ

同じ参照画像と文で、IP-Adapter の強さを 0.2・0.5・1.0 にして作った3枚
強さ 0.2 では文の居間のまま色が灰色と黒になり、0.5 と 1.0 では参照画像の部屋に大きく寄った

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 と組むと、配置は元のレンダリング、雰囲気は参照画像になった

IP-Adapter は、ControlNet と組み合わせられます。論文も、ControlNet などのアダプターと一緒に使えると書いています。

作例では、Blender で作った部屋のレンダリング(3DCG で計算した画像)から深度(カメラからの奥行き)を取り、参照画像と組み合わせました。

IP-Adapter の強さは 0.8、深度の ControlNet の強さは 1.0 です。

窓・ソファ・テーブルの配置はレンダリングのままで、壁は灰色に、ソファは黒い革のような見た目になりました。解説の記事にも、2つを組み合わせると構図はそのままに雰囲気だけを変えられるとするものがあります。

IP-Adapterで参照画像の雰囲気をパースに取り込もう

IP-Adapter の意味・仕組み・伝わるもの・文との関係・強さ・ControlNet との組み合わせの6つを、1つずつ並べた表
IP-Adapter の意味・仕組み・伝わるもの・文との関係・強さ・ControlNet との組み合わせのまとめ

IP-Adapter は、画像用の小さな層を足して、画像も指示として使えるようにする仕組みです。この記事で解説したことは、次の6つです。

  • 参照画像を、文のプロンプトと一緒に条件として加える軽いアダプター
  • 文と画像で取り込む層を分け、画像用の層を足す。学習で調整するのは約2,200万の値
  • 参照画像からは、雰囲気や様式だけでなく、写っている物も伝わる
  • 参照画像を入れても文のプロンプトは効き、文で足した物も出てくる
  • 強さで文と画像のつり合いが変わり、作例では 0.2 で文の部屋、0.5 以上で参照画像の部屋に寄った
  • ControlNet と組むと、配置はレンダリング、雰囲気は参照画像と分けて伝えられる

自分のパースで試すときは、レンダリングの深度を ControlNet に、参照画像を IP-Adapter に入れて作ってみてください。

あわせて読みたい

会員登録(無料)

記事やテーマのお気に入り・学習履歴・フォローが使えます。

この記事について

PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。