【StableDiffusion】AIイラストでポーズを指定する方法【ControlNet】

AI
新人さん
新人さん

AIイラストを生成していると、いろんなポーズが出てくるけど、

ホーズを指定して描くことができるのかな

プロンプトでポーズを指定してもイメージ通りに生成されないよ

きのぴー
きのぴー

ポーズを指定する追加機能があります。

ControlNetのOpenPoseという追加機能です。

導入方法と使い方について説明しますね!

このページではAIイラストツール「StableDiffusion」での、ポーズの指定方法をご説明します。

ポーズや構図は絵のイメージに大きく影響します。背景や表情が良くても、ポーズがイメージと違いイラスト生成ガチャをしている方は是非参考にしてください

ネット上ではローカル環境での導入方法が良く記載されていますが、GoogleColaboratoryの場合についてもコードを交えてご説明します

ControlNetとOpenPoseとは

 ControlNetとは

 ControlNetとは、AIイラスト生成ツール「StableDiffusion」の様々な追加機能です。

 よく使う機能は以下3種類かと思います。必要性を感じたら適宜追加しましょう!

  • OpenPose
    … 任意のポーズを指定できます。イラストからポーズを抽出することもできます。
  • Depth
    … 深度学習です。私は手・指の修正で使いました。
  • Canny
    … イラストから線画を抽出します。人物を変更せずに、色や背景を変えたい場合に使用します。

 OpenPoseとは

棒人間を操作して、任意のポーズを作成します。その棒人間をイラスト生成時に指定することで、生成イラストのポーズを指定します。

逆に、イラストからポーズを抽出することも出来ます。良いポーズをAIが生成したらそのポーズを抽出&指定して別のイラストを生成することができます。

導入方法

OpenPoseを使用するには、以下2ステップで導入出来ます。

・ControlNetの導入

・OpenPoseモデルの導入

きのぴー
きのぴー

「ローカル環境(画面からのインストール)」の場合と、「GoogleColaboratory(プログラム記載)」の場合の両方について記載しますね

ローカル環境の場合

ローカル環境の場合、WebUIからインストールをすることができます。

まずは「Extensions」タブに移動し以下URLを入力し、「Install」をクリックします。

・ControlNet

https://github.com/Mikubill/sd-webui-controlnet

・OpenPoseEditor

https://github.com/fkunn1326/openpose-editor

すると、インストールが開始します。

インストールを行ったら、「Extensions」タブの「Installer」タブから「Apply and restart UI」をクリックし、インストールした機能を有効化します。

すると、メニュータブに「OpenPoseEditor」や、text2img画面左下に「ControlNet」が追加されていると思います。

次にポーズ用のモデルをダウンロードします。

FuggingFaceに移動し、ポーズのモデル「control_v11p_sd15_openpose_fp16.safetensors」をダウンロードします。

ダウンロードしたファイルは、Stable Diffusionを導入しているフォルダ内の、[stable-diffusion-webui] → [extensions] → [sd-webui-controlnet] → [models]に移動しましょう。

その後、WebUIを再起動すると、OpenPoseのモデルがコントロールネットに反映されます。

GoogleColaboratoryの場合

高性能PCが無いので、GoogleColaboratoryで実行している方も多いと思います。(私もです)

GoogleColaboratoryでローカル環境と同じで順で環境を整えるのは読み替えが必要だったりと、うまく反映されずに難易度が高いです。

無理に合せようとせず、ソースに直接以下記述を追加するだけで、2ステップで簡単に追加できます。

WebUIのダウンロード直後に以下2コマンドを追加しましょう!

# sd-webui-controlnet のダウンロード
!git clone https://github.com/Mikubill/sd-webui-controlnet /content/stable-diffusion-webui/extensions/sd-webui-controlnet
# openpose editor のダウンロード
!git clone https://github.com/fkunn1326/openpose-editor /content/stable-diffusion-webui/extensions/openpose-editor
きのぴー
きのぴー

どこか分からない人は最初の1行目でも大丈夫です。

分かりやすいようにイメージを張りますね

次にモデルをダウンロードしましょう。

以下コマンドを追加します。

#sd-webui-controlnet openposeモデルをダウンロード
!wget https://huggingface.co/lllyasviel/ControlNet/resolve/main/models/control_sd15_openpose.pth -O /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_sd15_openpose.pth
きのぴー
きのぴー

この記述はモデルを追加している場所の下に追記すると後々分かりやすいですね。

ちなみに「!wget」はネット上からダウンロードしてColaboratoryにコピーするという意味です

「!cp」は予め接続しているGoogleDriveからColaboratoryにコピーするという意味です

修正が終わったら、ランタイムを再実行してWebUIを再起動しましょう。

再度アクセスすると、メニュータブに「OpenPoseEditor」や、text2img画面左下に「ControlNet」が追加されていると思います。これで導入は完了です。

以上です!難しそうに見えますが、Colaboratory環境を準備できた貴方なら大丈夫です!

使い方

OpenPoseEditorでポーズを作成

メニューにOpenPoseEditorが追加されていると思うので、棒人間を操作します。

何か違和感がありますが、各接点と棒のイメージはここを参考にしてください。

適当にポーズを作ります。

ここで実現不可能なポーズをしていると、絵が崩れます。

顔っぽい部分のMの字は両端が耳、中心が鼻、Mの字の頂点が目になるそうです。

棒人間が描き終わったら、「Send To txt2img」をクリックします。

するとControlnetが選択できます。

Enableにチェックを付けて「OpenPose」を選択します。

次に、Preprocessorは「None」 モデルは「Control_sd15_openpose」を選択し、右上の「Ganarate」ボタンをクリックします。

すると、同じポーズのAIイラストが生成されます。
(ここでは生成スピードを優先させ、サンプリング*20の5枚同時作成にしています。)

OpenPoseの使い方は以上です。

AIイラストの生成に時間がかかる場合

AIイラストはどうしてもグラフィックメモリを大量に使用します。

スペックが不足していると、生成に時間がかかってしまいます。
なかなかいいと思えるイラストが生成されない経験はあると思います。

改善されたい場合は、グラフィックボードを購入するか、グラフィックボード搭載のノートPCの購入をご検討ください。

パワフルな大画面ゲーミングノートPC MSI エムエスアイ KATANA-GF76-11UD-671JP Core i7-11800H GeForce RTX 3050 Ti メモリ:16GB SSD:512GB 17.3インチ Windows 11 Home ゲーミングノートパソコン

価格:147,800円
(2023/6/13 01:01時点)
感想(0件)

Palit パリット / NE63060019K9-190AD / RTX3060 Dual 12G / [NE63060019K9-190AD] / グラフィックボード

価格:45,400円
(2023/6/13 00:42時点)
感想(2件)

CLIP STUDIO PAINT EX


完全無料で最短3週間でエンジニアへ エンジニアズゲート

コメント