【Stable Diffusion】ControlNetをインストールして複雑な構図・ポーズを入力画像から作成する方法

画像生成AI(Stable Diffusion Web UI)にControlNetをインストールし、複雑な構図・ポーズを入力画像から作成する方法を紹介します。

ControlNetとは

ControlNetは、画像生成をより柔軟に制御可能にする技術です。
例えば、以下のように入力画像と同じポーズを生成画像に取らせることができます。
これを使うことで、複雑なポーズもプロンプトなしで作ることができるようになります。

ControlNetの論文は「https://arxiv.org/abs/2302.05543」で公開されています。

ControlNetを利用するには、「学習済みモデル」と「プラグイン(拡張機能)」の2点が必要です。

プラグイン「sd-webui-controlnet」のインストール

まず、ControlNetを使用するためのプラグイン「sd-webui-controlnet」を以下の手順でインストールします。

Stable Diffusion Web UIの[Extensions]を開き、[Install from URL]に「https://github.com/Mikubill/sd-webui-controlnet.git」を入力し、[Install]をクリックします。

インストールが完了したら、[Extensions] > [Installed]に「sd-webui-controlnet」が追加されていることを確認し、「Apply and restart UI」をクリックします。

学習済みモデルのインストール

ControlNetには、以下の学習済みモデルが用意されています。

モデル名 説明
canny Canny edge detection」と呼ばれる輪郭検出アルゴリズムで元画像から線画を生成し、線画から新たに画像生成するモデル。輪郭ベースなので、ポーズだけでなく服装や体格の形状なども再現される。
hed 「Holistically-Nested Edge Detection」と呼ばれる輪郭検出アルゴリズムで元画像から線画を生成し、線画から新たに画像生成するモデル。cannyよりも大まかな輪郭を抽出する。
depth 元画像を深度マップ(奥行き画像)に変換し、深度マップから画像を生成するモデル。奥行きが重要な構図の画像生成でよく利用される。
mlsd 直線検出アルゴリズムで元画像から線画を生成し、線画から新たに画像生成するモデル。直線的なビル群などの背景や構図によく利用される。
normal 元画像を法線マップに変換し、法線マップから画像生成するモデル。
openpose 元画像から骨格(ポーズのみ)を検出し、新たに画像生成するモデル。元画像のポーズだけを再現させたい場合に用いられます。
scribble 手書き画像から画像生成するモデル。
seg 元画像を分類し、分類結果から画像生成するモデル。

huggingface(https://huggingface.co/lllyasviel/ControlNet/tree/main)からControlNetの学習済みモデルをダウンロードします。
例えば、「canny」を入手したい場合は、「control_sd15_canny.pth」の右にあるダウンロードボタンをクリックします。

「./stable-diffusion-webui/extensions/sd-webui-controlnet/models」配下にダウンロードした学習済みモデルのファイルを格納します。

Stable Diffusion Web UIの更新ボタンをクリックすると、「Model」にControlNetが表示されます。

ControlNetの使い方

無料素材写真(https://www.pakutaso.com/20230301067post-45708.html)をお借りし、フリー画像と同じポーズを生成した画像に取らせてみます。
今回利用するモデルは「OpenPose」です。

「txt2img」を開くと、Seedの下に「ControlNet v〇〇」と表示されています。

「◀」ボタンをクリックすると「ControlNet」の操作画面が表示されます。

入力画像(無料素材写真)をファイル入力欄にドラッグ&ドロップし、「Enable」にチェックを入れます。
「Preprocessor」と「Model」をOpenPoseに設定します。

通常の画像生成と同様に「Generate」をクリックして画像を生成します。
最初はOpenPoseモデルの初期設定で処理に時間がかかりますが、その後は通常と同じくらいのスピードで画像生成されていきます。
ただし、ポーズが複雑になるほど、通常の画像生成よりも破綻したものが生成されやすいです。

なお、ControlNetを使わないときは、「Enable」のチェックを外します

ControlNetの実行例(OpenPose)

上記実行例で使用したプロンプトは以下のとおりです。

((masterpiece,best quality)), illustration, 1girl,uniform, pink wavy hair, smile, breasts, looking at viewer, face focus, front view, in the park

Negative prompt: EasyNegative, bad-hands-5, signature, watermark, username, blush, plush toy, torii, bad finger, few fingers, bad hands

Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 1399894330, Size: 512x512

Time taken: 56.6 sec.

より細かくカスタマイズするには

構図や目の色、表情など、より細かく自分好みにするためのプロンプト(呪文)は以下ページにまとめて解説していますので、ご参考ください。

画像生成AIでよく使うプロンプト・呪文集
Stable Diffusion Web UI、にじジャーニーなどの画像生成AIでよく使うプロンプト(呪文)をまとめました。

画像生成AIを始める方法など

画像生成AIを始める方法など、画像生成AI全般については以下ページにまとめて解説していますので、ご参考ください。

画像生成AIとは?初心者向け解説
画像生成AIとは?イラストや実写真の作り方など、基本的な使い方から応用例についてに初心者向けにまとめました。

コメント