画像生成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を始める方法など
画像生成AIを始める方法など、画像生成AI全般については以下ページにまとめて解説していますので、ご参考ください。
コメント