【Stablity Matrix】InferenceでControlNet(Openpose)を使う -Using ControlNet (Openpose) for Inference-
プロンプトでポーズをいろいろ試しましたが限界があります。
そこで使うのがControlNetのOpenposeという仕組みです。所謂、棒人間でポーズを決めてそのポーズに従い画像を生成してもらうものになります。
Inferenceからも使用できるので解説したいと思います。
手順
- ポーズを用意する
- ポーズを指定する
- 生成する
大まかにはこのような手順です。
1. ポーズを用意する
まずはポーズを用意しなければなりません。これはオンラインのエディタがいくつかあるのでそれを使うと良いでしょう。
Openpose Editor
https://huchenlei.github.io/sd-webui-openpose-editor
3D Openpose Editor
https://openposeai.com/
PoseMy.Art
https://posemy.art/
最初はシンプルにOpenpose Editorが良いと思います。使い方はそれぞれ別記事を起こそうと思います。
2. ポーズを指定する
簡単にポーズの指定の仕方を説明します。まずInferenceを開きます。幅と高さ指定の下に「アドオン」という項目があるのでクリックします。次のダイアログが表示されるはずです。

「ControlNet」をクリックします。
初期状態がオフなのでオンにして、「V」をクリックします。

各項目を簡単に説明します。
- Drag an image here or Browse:ポーズ画像を選択します。
- プリプロセッサ:画像からポーズを抽出したりします(今回は取り扱いません)
- モデル:適切にポーズを適用するには適切なモデルを選ぶ必要があります。
- 幅、高:ポーズ画像と出力画像はなるべく同一のサイズであることが好ましいです。
- Control Weight:どれだけの強度でポーズを強制するかを選択します。
- Control Steps:画像生成のどの段階でポーズを適用するかを設定します。
ポーズをアップロードして設定をしたのが以下の画像です。

もともと持っていた画像が768 x 1152と大きかったのですが、このまま使ってみます。
3. 生成する
通常の画像生成と同じように、モデルやサンプラーなどの設定をして生成します。この際、出力画像のサイズを先ほどのポーズのサイズと合わせてください。
今回はポーズを使うので、プロンプトにはポーズを指定するようなキーワードは入れません。
(masterpiece, best quality, ultra-detailed), 1girl, 21 y.o, bikini
<embedding:easynegative>, <embedding:badhandv4>, watermark, text, logo
使用したポーズ画像と出力された画像が以下です。
このような感じで、プロンプト指定では難しいポーズもControlNetのOpenposeを使えば実現できます。
プロンプトで実現が難しい場合は、ポーズを作成の上で生成したほうが最終的には早いかなと思います。





コメント