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の強力な制御機能を実感できたのではないでしょうか。これにより、より自由度の高い画像生成が可能になります。