「MasaCtrl」機能の導入・使い方を分かりやすく解説ー人物そのままポーズ変更【Steable Diffusion】
今回は「Stable Diffusion」で生成した人物を記録して、ポーズを変更したりできる「MasaCtrl(Masa Control)」機能についてです。
ちなみに「Stable Diffusion」はさまざまな拡張機能があり、いろいろやろうとすると「ControlNET」だけではカバーしきれなくなってきたので、「ControlNET講座」を改め「ControlNET&拡張機能講座」とします。今回は「ControlNET&拡張機能講座」の第7回目ですね。
こちらはプロンプトを直接記憶するので、画像を用意しなくてもいいぶん、お手軽さはあります。
インストールと使い方をさくっと説明していきます。
「MasaCtrl」のインストール
そもそも「Stable Diffusion」をインストールしていないという方は、以下の記事からさくっとインストールしてください。
「Stable Diffusion」を起動させ、「Extensions」タブ→「Install from URL」タブに移動し、「URL for extension’s git repository」に、
https://github.com/ashen-sensored/sd_webui_masactrl.git
を貼り付け、「Install」ボタンをクリックします。しばらく待つと「Install」ボタンの下の方にいろいろ文字が出てきてインストール終了。
つぎに「Extensions」タブ→「Installed」タブで「Apply and restart UI」 ボタンをクリックして再起動します。これでインストール完了です。
「MasaCtrl」の使用方法
まず「Txt2img」で適当な画像を作ります(シード固定)。これをもとにして、「MasaCtrl」機能を使います。
人物の記録(LOGGING)
「Txt2img」の下にある「Masa Control」を開きます。初期状態は「IDLE」(停止)なので、これを「LOGGING」(記録する)にします。
次に「Foreground Indexes」ですが、プロンプト内の「1girl」が出現する位置の数字を書きます。英単語も「,」も1つと数えて、何番目に来るかですね。これは数える必要はなく、プロンプトを記入する欄の右上に「14/72」とか書いてるので、この数字(ここでは14)をそのまま記入します。
「1girl」のうしろの単語をすべて切り取って、先ほどと同じように右上の「〇/72」の数字を見ればいいでしょう。そのあとにまた戻せばいいだけです。
数字を記入したら、いつものように「Generate」ボタンを押します。これで少女の状態が記憶されます。
記録した人物を利用(RECON)
次に「Masa Control」のトグルを、さきほどの「LOGGING」から「RECON」に変更。
プロンプトには「hands up」とでも付け加えておきましょう。
結果がこちら。
それではトグルを「IDLE」にして機能を切り、普通に生成してみましょう。
こうなりますね。
つぎは「Masa Control」を使って、「peace sign」「closed eyes」させた画像がこちら。
さすがにまったくおなじは難しいところがありますね。
シード値を固定しなかった場合は、こんなのが出てきました。
何度かガチャを繰り返せば、それっぽいのも出てきますけどね。根気が必要になるとは思います。
服装も固定されるので、衣装変更はなかなかうまくいきませんね。背景も同様です。それがしたければ、「reference_only」か「instruct pix2pix(ip2p)」をつかったほうがいいかもしれません。
あと「OpenPose」との併用もしてみましたが、相性がよくないのかクリーチャーが生み出されまくりました。
まとめとわかったこと
そんなわけでわかったこととしては、
・「Masa Control」は顔・衣装・背景を強めに覚えていてくれる。
・そのため、ポーズの変更はできても、衣装・背景変更などは難しい感じ。
・「OpenPose」との相性もあまりよろしくない(いまのところ)。
・目を閉じたりとかはできるけど、表情変更になるとあまり言うことを聞いてくれない。
・シード値を固定しないと違う人物が生成されることもあるため、ガチャをしばらくやることになる。
知識や慣れの問題もありますが、いまのところ「openpose」「reference_only」を組み合わせたほうが良い結果が出やすいかなという感じでした。
また何かわかったら記事で報告します。
次回の講座は「「LLuL」機能をわかりやすく解説ー画像の一部を高解像度化」です。以下のリンクから。
↓「reference_only」で人物そのまま衣装変更
↓「openpose」「reference_only」の合わせ技で人物固定でポーズ変更。