秋葉原に住むIT技術者の単なる雑記帳

「NMKD Stable Diffusion GUI」で人物の全身画像を無理やり生成する方法

このところ、毎日のようにVAIO(ノートPC)をこき使って、「NMKD Stable Diffusion GUI」(画像生成AI「Stable Diffusion」のWindows向け実装)を用いて画像を生成しております。

 主に、自分の趣味全開の特定のコスチュームに身を包んだ美少女の画像を生成しております。

 自分が「Stable Diffusion」に触れ始めて以来、ずっと悩みの種だったことがあります。

 人物画像を生成すると、仮にプロンプト(AIに生成する画像を指示する文言。日本語圏では呪文とも言われている)に全身を示す言葉を入れても、なかなか全身画像を生成してくれません。大抵、首から上や足元の少なくとも一方は画面外にはみ出てしまいます。もちろん手を横に広げているような画像の場合は、手の指先も画面外に出てしまいます。

 これまで自分はそのような画像を泣く泣くボツにして、また一から画像錬成を始めるという非効率的なことをしておりましたが、写っている箇所がまともであればそれを素材として再利用できる方法があります。

 ネットのどこかでその方法が書かれていたような気がしたのですが、どこか失念してしまいましたので、後学および自分自身の備忘録のために、記録に残すことにします。


やりたいこと

 先述の通り、「Stable Diffusion」等を用いて生成したものの、全身画像にしたかったのに頭や足元などが欠けてしまった画像を元に、全身画像を生成してゆきたい。

 今回は次の画像を元に全身画像を生成する。

a full body portrait of a tall Japanese voluptuous short-haired intelligent beautiful girl opening legs in front and behind like running and bending waist at the dance hall, wearing dark green headband, white gymnastic knickers, dark green tank tops, white long boots, white long boots., CGI

This image is created by Stable Diffusion.

 いかにもせくすぃ~な美少女が写っていそうに見えるでしょ? でも顔が完全に隠れてしまっているし、足のつま先も欠けてしまっている。それらを補完してゆきたい。

用意するもの

まずもとの画像の情報の確認から

 先ほどの画像に顔や足のつま先を補完してゆきたいが、まずは元画像の情報を確認する。

 自分はあらかじめその画像を生成するときに使用したプロンプト(呪文)をメモしてある。それがこちら。

a full body portrait of a tall Japanese voluptuous short-haired intelligent beautiful girl opening legs in front and behind like running and bending waist at the dance hall, wearing dark green headband, white gymnastic knickers, dark green tank tops, white long boots, white long boots., CGI

 指示した呪文とぜんっぜん違う画像が生成されているのは、今回は気にしないこと。しかしこの呪文自体は後々使うために控えておく。

 「NMKD Stable Diffusion GUI」等で、画像ファイルのメタデータにプロンプトを埋め込む設定にしている場合は、別途テキストファイルなどにメモしていなくても埋め込んだプロンプトを呼び出すことができる。詳細については割愛するが、「NMKD Stable Diffusion GUI」の場合は画像をアプリケーションのウインドウにドラッグすることで確認することができる。

 あと、もとの画像ファイルのサイズ(幅と高さ)も確認しておく。今回用いる画像は、512×512。縦横比1:1の正方形である。

とりあえず頭と足のつま先が入るスペースを確保する。

 画像編集ソフトを使い、元画像を編集する。元画像を壊してしまわないように、コピーを取ってそのコピーを編集したほうがよいだろう。

 先述の通り、自分は「Krita」を使用する

編集元画像をKritaで読み込んだところ

 とりあえず、頭やつま先を補完でき、なおかつ少しスペースに余裕を持たせるために、画像の縦横比を維持したままサイズを拡大する。今回はとりあえず768×768にでもしておけばよいだろう。

 なお、「Krita」の場合、「アンカー」の右側にある赤枠を参考にオフセット値を決める。赤枠が元画像の位置、白い部分がキャンバス全体。とりあえず今回は、Xは初期値の128のままで、Yを192に変更してみる。

画像のサイズ変更とオフセット調整

 するといい感じにスペースが確保されるはず。

元画像の上下左右にスペース確保

不要な背景を削ってゆく

 スペースを確保した元画像を編集し、不要な背景を削ってゆく。

 「Krita」の場合、「連続領域取得ツール」で不要な背景の部分を選択し(必要な人体の部分まで選択してしまったら除外し)、当該箇所を消してゆく。

不要な背景部分の除去

元画像の下にレイヤーを追加し、とりあえず単色で塗りつぶす

 背景を消しただけの状態だと、背景部分が透明になっている。

 この状態のまま「NMKD Stable Diffusion GUI」に画像をimg2imgの素材として読み込ませてしまうと、頭やつま先は補完されるかも知れないが背景が真っ黒の画像が生成されてしまうので、非常に都合が悪い。

 そこで、もとの画像の下にレイヤーを追加し、元画像と干渉しない色(グレーがよいだろう)で全面塗りつぶしてみる。

元画像の背景にレイヤーを追加し、グレーに塗りつぶす。

 え、これで本当に頭やつま先がない部分に補完されるのか? 先ほどメモしたプロンプトを正しく適用すればちゃんと補完される(はず)。

 では、この状態で画像を保存する。

img2imgによる錬成の元となる画像

 この画像を用いて、img2imgで錬成してみる。

錬成元画像の指定

 いよいよ、「NMKD Stable Diffusion GUI」を起動する。

 右側のスペースに錬成もとの画像をドラッグすると、ポップアップウインドウが開く。そこで「Use as Initialization Image」を選択すると、ドラッグした画像が錬成元として指定される。

Use as Initialization Image

 すると、「Load Image」と表示されていたボタンのラベルが「Clear Image」と表示され、その右側に先ほどの画像ファイルの名前(の一部)が表示されるはずだ。

 さらに右側のプロンプトを入力する欄に、最初に確認したプロンプトを入力する。

 ほか、必要な設定をおこない、画像の生成を始める。

 とりあえず今回は次のように設定しておくことにしよう。

「NMKD Stable Diffusion GUI」上の設定

 すべての設定が終わったら「Generate!」ボタンを押下して、しばらく気長に待とう。

う~ん。一応できたにはできたが…

 開始前に大口叩いておいてこんなことを言うのも何ですが…

画像を生成したフォルダの中身。しかし…

 結構思わしくない画像も生成されてしまいました。

 もとの顔がない状態から大して変わっていない絵とか、変な被り物をして結局顔が見えなくなっている絵とか…。もちろん、今回の元画像に関係なく発生する、指先がおかしかったり結局画像が拡大されて頭やつま先が隠れてしまったりする絵も生成されてしまいました。

 今回生成した画像の中で比較的マシなのは、このあたりでしょうか。

(錬成後比較的マシだったものその1)a full body portrait of a tall Japanese voluptuous short-haired intelligent beautiful girl opening legs in front and behind like running and bending waist at the dance hall, wearing dark green headband, white gymnastic knickers, dark green tank tops, white long boots, white long boots., CGI

(錬成後比較的マシだったものその2)a full body portrait of a tall Japanese voluptuous short-haired intelligent beautiful girl opening legs in front and behind like running and bending waist at the dance hall, wearing dark green headband, white gymnastic knickers, dark green tank tops, white long boots, white long boots., CGI

(錬成後比較的マシだったものその3)a full body portrait of a tall Japanese voluptuous short-haired intelligent beautiful girl opening legs in front and behind like running and bending waist at the dance hall, wearing dark green headband, white gymnastic knickers, dark green tank tops, white long boots, white long boots., CGI

These images are created by Stable Diffusion.

 言い訳しますと、事前に別の画像を元に同様の方法で画像を錬成したときには、まあまあうまくいっていたのです。そのときにはあまり変な画像は生成されていなかったものでして…。

 ただそれでも、全身画像を作りたいのに全身画像にならなかったときに、頭やつま先などが切れた画像を素材として再利用できることが判明しただけでも、大収穫でした。てゆうかこれをもっと早く知っていれば、毎晩毎晩画像生成をやり直す必要もなかったのに…。

#2022年 #2022年10月 #2022年10月22日 #StableDiffusion #NMKDStableDiffusionGUI #AI #PC #Windows #備忘録 #Krita #画像