今日はControlNetという手法を使って、登場する人のポーズを指定してみようと思います。プロンプトに加えて、人物の姿勢(特徴点やらセグメンテーションやら画像やら)を入力として加えることで、登場人物の姿勢を制御することが可能になります。具体的な手法は以下の記事をご覧ください。
今回の記事では、実際にComfyUIでControlNetを使って画像を生成しようと思います。
作業の流れ
1. ComfyUIのインストール
こちらの記事を参照ください。
2. ControlNetのモデルをダウンロード
好きな場所からダウンロードして、ComfyUI/models/controlnet
に置いておきます。
自分は↓から持ってきました。
ファイル名を見るとcanny, openpose, lineartなど見慣れない文字列がありますが、これらは学習するときにControlNetの入力画像の生成にpreprocessorの名前です。長くなるので記事では触れませんが、controlnetへの入力としては、それらに対応するものを使用する必要があります。
この記事の方はPreprocessorをリスト化して説明してくれてるので、参考にしてみるといいかもしれません。 sae-chan.net
3. ワークフローの作成
デフォルトのワークフローから自分で作成します。
Load Default
して、ワークフローをデフォルトに戻しますLoad ControlNet Model(diff)
,Load Image
,Apply ControlNet
ノードを作成します。- 下の図のようにつなげます(黄色が追加したノードです)
追加したLoad Image
ノードがControlNetへの入力を表し、ここに姿勢の情報を含めます(openposeや線画など)
4. 画像を生成する
Load ControlNet Model(diff)
ノードで先ほどダウンロードしてきたモデルを選択Load Image
ノードで姿勢を表す画像(モデルに対応するpreprocessorのもの)を選択する- 他のパラメータを好きにいじり、
Queue Prompt
を押す
生成結果
生成結果と使用した姿勢データを見比べていただけるとわかりやすいと思いますが、ほぼ指定した通りに生成されていることがわかると思います。
最後に
今回の記事では、ControlNetを使用してComfyUIで画像生成を行う方法を紹介しました。指定した姿勢通りに画像が生成される様子を見て、ControlNetの強力な制御機能を実感できたのではないでしょうか。これにより、より自由度の高い画像生成が可能になります。
画像生成に関連する他のテクニックを試したい方は下記のリンク集をぜひご活用ください。