OpenPoseで好きなポーズの画像生成

OpenPoseで好きなポーズの画像生成 Stable Diffusion
OpenPoseで好きなポーズの画像生成

画像生成はランダム要素が高いものです。
画像生成ガチャを繰り返し、気に入った画像を保存しそれ以外はゴミ箱へ。

プロンプトだけでは思い通りの画像を作れないことも多いことでしょう。
画像生成には時間がかかりますので、なんとか無駄な画像は生成したくないところ。

そこである程度条件をつけて画像を生成するControlNetという機能があります。
こういう輪郭線、こういう位置関係、こういう構図という情報をAIに教えてあげます。
その中で、こういうポーズの人物を描いてくれと教えることができるのがOpenPoseです。
この記事ではそんなOpenPoseの使い方を紹介します。

プロンプト + 条件 → 画像
この条件を指定するのがControlNetです。


OpenPoseとは

ControlNetの一種で人の骨格(棒人間)を指定してあげることで、その骨格の人間画像を生成してくれるものです。
複数人を指定することもできるため、今までプロンプトで3girlsとかやっても上手く人を生成できなかった苦労がなくなります!
プロンプト(言葉)だけでは上手く伝えきれなかったポーズも、画像で伝えることでAIは正しく描写してくれるようになります。

3girls(3人の少女)、kneeling(ひざまずく)、spread legs(足を開く)、squatting(ヤンキー座り)、arms behind head(腕を頭の後ろに)、leaning forward(前屈み)、seiza(正座)、all fours(四つん這い)、hugging own legs(体育座り)、pigeon toed(内股立ち)、lying on back(後ろに寄りかかる)

このようなプロンプトを駆使しなくても、OpenPoseで正しく描写してくれます。
もちろんプロンプトにも指定してあげることで、より正しく描写させやすくできます。

プロンプト + ポーズ画像を入力することで、以下のような画像を出力することができます。

OpenPose1
ポーズ画像
OpenPose_OL
プロンプト(OL) + ポーズ画像で生成
OpenPose_マッチョ
プロンプト(マッチョ) + ポーズ画像で生成

OpenPoseの準備

ControlNetのインストール

OpenPoseを使うためには拡張機能であるControlNetをインストールする必要があります。
インストール方法は以下で説明しています。

OpenPoseのインストール

OpenPoseのモデルファイルは以下から入手してください。


OpenPoseのモデルファイルは以下に配置してください。

OpenPoseのモデルファイルの配置

stable-diffusion-webui/extensions/sd-webui-controlnet/models/

OpenPoseの使い方

1. お気に入りの画像から画像生成

お気に入り画像を使って、同じポーズの画像を生成します。
Stable Diffusion Web UIでの手順について説明します。

手順
  1. 画像生成ガチャ(text2imageで画像生成)
  2. 気に入った画像を保存
  3. ControlNetのEnableにチェックを入れる
  4. 気に入った画像をControlNetの画像に入力
  5. Preprocessorにopenpose_fullを選択
  6. Modelにcontrol_v11p_sd15_openpose_fp16を選択
  7. 画像生成(text2image)

Preprocessorでお気に入り画像からポーズ画像(棒人間)を抽出し、
Modelでポーズ画像から画像を生成します。
※openpose_full以外にも種類があるため、他のopenpose_faceとか試すとよいです。
※Modelの名称はsafetensorsのファイル名のため、変更している場合その名称になります。
※気に入った画像サイズと生成する画像サイズが異なっていても上手く生成してくれます!

<span class="fz-12px">2級AI画像生成士</span>
2級AI画像生成士

お気に入り画像は、画像生成ガチャで作らなくても、
ネットからダウンロード、元々持っている画像を使ってもよいですよ。

OpenPose2_yasu
お気に入り画像 (とにかく明るい安村氏)
OpenPose2
抽出したポーズ画像
OpenPose2_OL
生成した画像

2. ポーズ画像から画像生成

既にポーズ画像を持っている場合の方法です。

手順
  1. ControlNetのEnableにチェックを入れる
  2. ポーズ画像をControlNetの画像に入力
  3. Preprocessorにnoneを選択
  4. Modelにcontrol_v11p_sd15_openpose_fp16を選択
  5. 画像生成(text2image)
<span class="fz-12px">2級AI画像生成士</span>
2級AI画像生成士

既にポーズ画像は準備できているため、
PreprocessorはnoneでOKなわけです。

OpenPose3
ポーズ画像
OpenPose3_3D
生成した画像(3D)
OpenPose3_2D
生成した画像(2D)

ポーズの作り方

ポーズ画像さえ手に入れば、無限に好きなポーズの人物を生成できます。
ここではポーズ画像の入手方法について紹介します。

ガチャで取得

Stable Diffusion で画像生成し、Preprocessor(OpenPose)でポーズ画像を取得します。
OpenPoseの使い方1で紹介した方法です。

所持している画像から取得

所持している画像から、Preprocessor(OpenPose)でポーズ画像を取得します。
こちらもOpenPoseの使い方1で紹介した方法です。

Civitaiから取得

CivitaiはcheckpointやLoRAなどのモデルファイルが多くありますが、ポーズ画像もあります。
フィルタリングでPosesを指定すればポーズ画像を検索できます。

Civitai: The Home of Open-Source Generative AI
Explore thousands of high-quality Stable Diffusion models, share your AI-generated art, and engage with a vibrant community of creators

OpenPose Editorで生成

Stable Diffusion の拡張機能であるOpenPose Editorを使うと、ポーズ画像を自作できます。
所持しているポーズ画像を少し変えたいんだよなーという場面でも使えますので便利です。
こちらから入手することができます。

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

拡張方法はこちらを参考にしてください。

まとめ

OpenPoseを使うことで、好きなポーズの画像を生成することができました。
OpenPoseはControlNetの一種であり拡張機能です。つまり他の機能とも併用して使えるわけです。
例えばLoRAとOpenPoseを組み合わせることで、好きなキャラを好きなポーズで生成するということもできるわけです。
OpenPoseのようなControlNetは使い方が多くあるため、いろいろ試すとよいですよ♪

コメント

タイトルとURLをコピーしました