本記事では、Stable Diffusion WebUI(AUTOMATIC1111)でInstant IDを使用する方法を紹介します。
Instant IDは、Stable Diffusionの拡張機能「ControlNet」の機能で、顔の特徴を維持して画像を生成できます。
今まで以上に参照画像と同じ顔を生成できるから、ぜひ最後までみてマスターしてね。
まだ実験段階だけど、これからはLoRAが不要になるかも・・・
- Instant IDのインストール方法
- Stable Diffusion WebUI(AUTOMATIC1111)でのInstant IDの使い方
Instant IDとは
「Instant ID」は、最先端の技術の一つで、
一枚の画像から人物の特徴を保持した画像を生成できる技術です。
従来は事前学習が必要でしたが、Instant IDはトレーニング不要な点が一番の特徴です。
Stable Diffusion WebUIのInstant IDは、ControlNetとIPアダプターを組み合わせて、顔の特徴を維持します。
簡単にいうと、一つの画像から似たような人物の画像を生成する技術だよ。
Instant IDのインストール方法
Stable Diffusion WebUIでInstant IDを使用するにはControlNetが必須になります。
まだControlNetをインストールしていない場合は、下記の記事を参考にインストールしましょう。
既にインストール済みの方は、ControlNetのバージョンに注意しましょう。
ControlNetのバージョンが古い場合には、以下の記事を参考に最新版にしておきましょう。
Instant IDのHugging FaceのページからIPアダプターモデルをダウンロードします。
ダウンロードしたファイルは「webuiフォルダ」→「models」→「ControlNet」フォルダに保存します。
さらにファイル名を「ip-adapter.bin」→「ip-adapter_instant_id_sdxl.bin」に変更します。
Instant IDのHugging FaceのページからControlNetモデル(DiffusionPytorchモデル)をダウンロードします。
ダウンロードしたファイルは「webuiフォルダ」→「models」→「ControlNet」フォルダに保存します。
さらにファイル名を「diffusion_pytorch_model.safetensors」→「control_instant_id_sdxl.safetensors」に変更します。
これで準備完了です。
Stable Diffusion WebUIでInstant IDを使う方法
現状のControlNetで、Instant IDを使用するには少し複雑な設定が必要です。
またSDXL専用のモデルとなっているので、SD1.5ベースモデルなどでは使用できません。
以降で、実際に画像生成するまでの手順を紹介します。
ControlNet Unit0に参照画像をドラッグ&ドロップするか、クリックしてロードします。
Unit0に設定した参照画像と同じような画像が生成されます。
次に以下項目をチェックします。
- Enable 有効化
- Pixel Perfect 解像度を画像から取得
- Control TypeからInstant_IDをチェック
次にPreprocessorとModelを選択します。
Preprocessorは「instant_id_face_embedding」を選択し、
Modelは「ip-adapter_instant_id_sdxl」を選択します。
ControlNet Unit1に参照画像をドラッグ&ドロップするか、クリックしてロードします。
Unit1の参照画像からは、顔のパーツ位置が読み出されます。
Unit0と同じ画像でも良いし、別の画像でも問題ありません。
次に以下項目をチェックします。
- Enable 有効化
- Pixel Perfect 解像度を画像から取得
- Control TypeからInstant_IDをチェック
次にPreprocessorとModelを選択します。
Preprocessorは「instant_id_face_keypoints」を選択し、
Modelは「control_instant_id_sdxl」を選択します。
プロンプト、解像度(SDXL用)、サンプラーなどは、いつもの感覚で問題ありません。
CFGスケールのみ4~5程度で、低めに設定します。
(CFGスケールの影響については後述します)
これで設定完了です。
後は画像生成するだけです。
サンプル画像
それではInstant IDで生成したサンプル画像を紹介していきます。
今回の参照画像はFuduki Mixで生成しています。
また、テストのために、Unit0,1で別々の画像を設定しました。
ControlNet Unit0,1の参照画像
画像生成に使用したモデルはJuggernaut XLです。
いかがでしょうか。
FaceIDも高精度でしたが、Instant IDは顔のパーツ位置まで再現するので、より一貫性の高い画像が生成されています。
参照画像と生成画像のモデルが違うのに、参照画像の人物とも似ているよね。
ただ、現時点では画質面で不満が残りますね。
解像感が落ちることと、彩度が低めの画像が生成されます。
このように画質面で不満が残りますが、実はLCM-LoRAとの相性が良いです。
LCM-LoRAを使用して生成した画像は以下の通りです。
如何でしょうか。
このくらいの画質なら十分使えるかと思います。
恐らくLCMサンプラーに対応しており、良い方向に振れたのだと考えられます。
LCM-LoRAについては以下の記事で紹介しています。
CFGスケールの影響を確認
先程、CFGスケールを低めに設定するようお伝えしましたが、画像にどのような影響があるのか確認してみます。
以下はCFGスケールを1~7まで振った画像です。
値が低くなるほど彩度が落ちて、ぼやっとした画像であることがわかります。
また、6以上は高すぎるのか少し潰れて見えますね。
以上のことから、バランス的に4~5程度がおすすめです。
モデルとの相性もあるので、最初は少しだけ落として様子を見てみましょう。
まとめ
今回はStable Diffusion WebUI(AUTOMATIC1111)でInstant IDを使用する方法を紹介しました。
Instant IDは設定が少し複雑ですが、一貫性のある画像を生成するにはうってつけの機能です。
これだけ少ない画像から、同じような人物が生成されるので、LoRAを使わなくなるかも・・・
まだ画質面で不満が残りますが、近い将来には不満も消し飛ぶでしょう!
Instant IDの使い方についてYouTube動画も投稿しています。
合わせてご参考ください。
コメント