IP AdapterとStable Diffusion WebUIを使用してキャラクターを固定した画像を生成する

Kazuki Kyakuno
axinc
Published in
7 min readOct 6, 2023

IP AdapterとStable Diffusion WebUIを使用してキャラクターを固定した画像を生成する方法を解説します。

IP Adapterの概要

IP Adapterは、キャラクターなどを固定した画像を生成する新しい手法になります。2023年8月にTencentにより発表されました。画像を入力として、画像を表すPromptを内部的に生成することで、1枚の参照画像を入力して、Reference Onlyよりも忠実度の高い画像を出力することが可能です。

LoRAやReference Onlyとの違い

キャラクターを固定する方法として、従来、LoRAやReference Onlyが使用されていました。LoRAは少数の画像で再学習することで、キャラクターを固定します。Reference OnlyはControlNetに1枚の画像を与えることで、キャラクターを固定します。

CLIPのテキストプロンプトのEmbeddingがCross Attention LayerのKeyとValueに入力されるように、Stable Diffusionの画風はAttention LayerのKeyとValueにどのような値を入れるかで決まります。

Attention LayerのKeyとValueはテーブル参照のようなもので、QueryとKeyを内積したものにValueを乗算するので、QueryとKeyの距離が近いものに対応するValueが出力されます。これは、Queryを入力としてValueを出力するテーブル参照のようなものです。そのため、Valueを特定のキャラクターの画像の特徴ベクトルの集合のようなものにすれば、特定のキャラクターが生成されやすくなります。

LoRAはAttention LayerのKeyとValueを学習で書き換えることで、キャラクターを固定します。Reference Onlyは、入力画像を推論した際のSelf Attention LayerのKeyとValueを、ターゲットのSelf Attention LayerのKeyとValueを上書きすることで、キャラクターを固定します。

今回のIP Adapterは、従来、テキストのPromptを入力して、テキストをEmbeddingして、Cross Attention LayerのKeyとValueに与えていたところを、画像を入力して、画像をEmbeddingして、Cross Attention LayerのKeyとValueに変換する仕組みになっています。

IP Adapterの概要(出典:https://arxiv.org/abs/2308.06721

実体としては、画像に対応する正確なテキストのPromptを出力していることと等価になります。おそらく、IP AdapterのIはImageで、PはPromptを示しているものと思われます。IP AdapterとIP Adapter Plusの違いは、画像のEmbeddingのネットワークの違いになります。Plusの方が、より深いネットワークになっています。

Stable Diffusionにおいて、各モジュールがどのように作用するかについて、下記のBLOGが非常にまとまっています。

IP Adapterのインストール

StableDiffusionWebUIのExtensionを最新版にアップデートします。

https://github.com/Mikubill/sd-webui-controlnet
main
7a4805c8
Fri Sep 22 18:13:48 2023

モデルをダウンロードし、models/ControlNetフォルダに配置します。

ip-adapter_sd15.pth
ip-adapter_sd15_plus.pth

IP Adapterの利用

ControlNetでIP-Adapterを選択し、参照画像を設定します。

今回はimg2imgで生成します。

img2imgの入力画像です。

入力画像

IP Adapterの参照画像です。この画像からテキストPromptが内部的に生成されるイメージです。

参照画像となるUnityChan(© Unity Technologies Japan/UCL)

出力画像です。img2imgの入力画像の特徴を残しつつ、IP Adapterで指定したキャラクターが出力されます。

IP Adapterの出力画像

比較用にReferenceOnlyを使用した場合の出力画像です。ReferenceOnlyよりも、IP Adapterの方が忠実度が高いことがわかります。

Reference Onlyの出力画像

まとめ

IP Adapterを使用することで、Reference Onlyよりも高精度にキャラクターを固定できることを確認しました。

ax株式会社はAIを実用化する会社として、クロスプラットフォームでGPUを使用した高速な推論を行うことができるailia SDKを開発しています。ax株式会社ではコンサルティングからモデル作成、SDKの提供、AIを利用したアプリ・システム開発、サポートまで、 AIに関するトータルソリューションを提供していますのでお気軽にお問い合わせください。

--

--

Kazuki Kyakuno
axinc
Editor for

CTO — ax Inc. , Managing Director — AXELL