画像生成はランダム要素が高いものです。
画像生成ガチャを繰り返し、気に入った画像を保存しそれ以外はゴミ箱へ。
プロンプトだけでは思い通りの画像を作れないことも多いことでしょう。
画像生成には時間がかかりますので、なんとか無駄な画像は生成したくないところ。
そこである程度条件をつけて画像を生成する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で正しく描写してくれます。
もちろんプロンプトにも指定してあげることで、より正しく描写させやすくできます。
プロンプト + ポーズ画像を入力することで、以下のような画像を出力することができます。
OpenPoseの準備
ControlNetのインストール
OpenPoseを使うためには拡張機能であるControlNetをインストールする必要があります。
インストール方法は以下で説明しています。
OpenPoseのインストール
OpenPoseのモデルファイルは以下から入手してください。
OpenPoseのモデルファイルは以下に配置してください。
OpenPoseの使い方
1. お気に入りの画像から画像生成
お気に入り画像を使って、同じポーズの画像を生成します。
Stable Diffusion Web UIでの手順について説明します。
Preprocessorでお気に入り画像からポーズ画像(棒人間)を抽出し、
Modelでポーズ画像から画像を生成します。
※openpose_full以外にも種類があるため、他のopenpose_faceとか試すとよいです。
※Modelの名称はsafetensorsのファイル名のため、変更している場合その名称になります。
※気に入った画像サイズと生成する画像サイズが異なっていても上手く生成してくれます!
お気に入り画像は、画像生成ガチャで作らなくても、
ネットからダウンロード、元々持っている画像を使ってもよいですよ。
2. ポーズ画像から画像生成
既にポーズ画像を持っている場合の方法です。
既にポーズ画像は準備できているため、
PreprocessorはnoneでOKなわけです。
ポーズの作り方
ポーズ画像さえ手に入れば、無限に好きなポーズの人物を生成できます。
ここではポーズ画像の入手方法について紹介します。
ガチャで取得
Stable Diffusion で画像生成し、Preprocessor(OpenPose)でポーズ画像を取得します。
OpenPoseの使い方1で紹介した方法です。
所持している画像から取得
所持している画像から、Preprocessor(OpenPose)でポーズ画像を取得します。
こちらもOpenPoseの使い方1で紹介した方法です。
Civitaiから取得
CivitaiはcheckpointやLoRAなどのモデルファイルが多くありますが、ポーズ画像もあります。
フィルタリングでPosesを指定すればポーズ画像を検索できます。
OpenPose Editorで生成
Stable Diffusion の拡張機能であるOpenPose Editorを使うと、ポーズ画像を自作できます。
所持しているポーズ画像を少し変えたいんだよなーという場面でも使えますので便利です。
こちらから入手することができます。
https://github.com/fkunn1326/openpose-editor.git
拡張方法はこちらを参考にしてください。
まとめ
OpenPoseを使うことで、好きなポーズの画像を生成することができました。
OpenPoseはControlNetの一種であり拡張機能です。つまり他の機能とも併用して使えるわけです。
例えばLoRAとOpenPoseを組み合わせることで、好きなキャラを好きなポーズで生成するということもできるわけです。
OpenPoseのようなControlNetは使い方が多くあるため、いろいろ試すとよいですよ♪
コメント