Otama's Playground

AIで遊んだ結果などをつらつら載せていきます。

【Stable Diffusion】ComfyUIを使って画像生成AIで遊んでみよう【InstantID編】

InstantIDはStable Diffusionを拡張する手法の一つであり、顔画像を入力することで出力される人物の顔を固定することができます。今回の記事ではこのInstantIDをComfyUIで使用する方法を解説します。

作業の流れ

1. ComfyUIの導入と最新版へのアップデート

以下のどちらかの方法でComfyUIを導入します。導入済の方もComfyUIを最新版にアップデートしてください。

方法1:ComfyUIを直接導入する

初めての方はこちらで良いと思います。 otama-playground.com

方法2:StabilityMatrix(統合環境)経由でインストールする

otama-playground.com

2. 拡張のインストール

以下の拡張をインストールします。

github.com

3. ライブラリの手動インストール

InstantIDに必要なpythonライブラリ(insightface)が一部エラーでインストールされないので、手動でインストールします。(毎度のことながらinsightface周りのあれこれは直して欲しいですね...)

下のリンクからinsightfaceのwheelをダウンロードしてから、pipでインストールコマンドを叩いてください。

Assets/Insightface at main · Gourieff/Assets · GitHub

python -m pip install (ダウンロードしたwhlのパス) onnxruntime onnxruntime-gpu

standalone版の場合はpythonコマンドをpythonの実行バイナリへのパスで置き換えます。以下あたりにpython.exeが配置されているはずです。

  • Comfyui-Standaloneの場合はpython-embeddedディレクトリ内
  • StabilityMatrixの場合はData/Packages/{パッケージ名}/venv/Scriptsディレクトリ内

4. モデルのダウンロードと配置

まずantelopev2をダウンロード+解凍してComfyUI/models/insightface/models/antelopev2に配置。↓のどちらかで入手できます。

次にInstantIDのメインモデルをComfyUI/models/instantidに配置。

最後にcontrolnetのモデルをcontrolnetのディレクトリに追加します。

5. ワークフローのインポート

exampleのワークフローがあるのでそれを使用します。

github.com

6. 生成する

モデルを先ほど配置したモデルに変更し、最後に顔画像とプロンプトを指定して生成します。

生成結果

モデルはAnimagine XLを使用しました。

入力した顔画像

生成結果

最後に

生成結果から、入力した顔画像に沿って画像が生成されることが感じられたと思います。InstantIDを使用することで、生成する顔をコントロールすることができるようになり、画像生成の幅が広がります。(肖像権には注意してください)

今回はInstantIDのみを使用しましたが、ControlNetと組み合わせることで、姿勢・構図なども制御可能になるらしいです。ここら辺は応用の話になるのでこの記事では触れませんが、気になる方は以下の記事とワークフローを参考にしながら組み合わせてみると良いと思います。

otama-playground.com

github.com