Otama's Playground

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

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

今日はControlNetという手法を使って、登場する人のポーズを指定してみようと思います。プロンプトに加えて、人物の姿勢(特徴点やらセグメンテーションやら画像やら)を入力として加えることで、登場人物の姿勢を制御することが可能になります。具体的な手法は以下の記事をご覧ください。

otama-playground.com

今回の記事では、実際にComfyUIでControlNetを使って画像を生成しようと思います。

作業の流れ

1. ComfyUIのインストール

こちらの記事を参照ください。

otama-playground.com

2. ControlNetのモデルをダウンロード

好きな場所からダウンロードして、ComfyUI/models/controlnetに置いておきます。 自分は↓から持ってきました。

huggingface.co

ファイル名を見るとcanny, openpose, lineartなど見慣れない文字列がありますが、これらは学習するときにControlNetの入力画像の生成にpreprocessorの名前です。長くなるので記事では触れませんが、controlnetへの入力としては、それらに対応するものを使用する必要があります。

この記事の方はPreprocessorをリスト化して説明してくれてるので、参考にしてみるといいかもしれません。 sae-chan.net

3. ワークフローの作成

デフォルトのワークフローから自分で作成します。

  1. Load Defaultして、ワークフローをデフォルトに戻します
  2. Load ControlNet Model(diff), Load Image, Apply ControlNetノードを作成します。
  3. 下の図のようにつなげます(黄色が追加したノードです)

ワークフロー

追加したLoad ImageノードがControlNetへの入力を表し、ここに姿勢の情報を含めます(openposeや線画など)

4. 画像を生成する

  1. Load ControlNet Model(diff)ノードで先ほどダウンロードしてきたモデルを選択
  2. Load Imageノードで姿勢を表す画像(モデルに対応するpreprocessorのもの)を選択する
  3. 他のパラメータを好きにいじり、Queue Promptを押す

生成結果

使用した姿勢データ(derived from: https://civitai.com/models/195165/openpose-praying)

生成画像

生成結果と使用した姿勢データを見比べていただけるとわかりやすいと思いますが、ほぼ指定した通りに生成されていることがわかると思います。

最後に

今回の記事では、ControlNetを使用してComfyUIで画像生成を行う方法を紹介しました。指定した姿勢通りに画像が生成される様子を見て、ControlNetの強力な制御機能を実感できたのではないでしょうか。これにより、より自由度の高い画像生成が可能になります。

画像生成に関連する他のテクニックを試したい方は下記のリンク集をぜひご活用ください。

otama-playground.com