Stable Diffusionでキャラを描くと手足が異常な造形になることがありますよね。
手がありえない角度を向いていたり、指がおかしかったり…
それ以外素晴らしくても、そのちょっとした違和感で素晴らしい絵が台無しになることも。
今回はそんな人のために、手を綺麗に生成するための方法について紹介します。
結果
・手の修正は可能だが、初めに手の画像を出すときにある程度精度を出した方が良い
・設定値を変えながら、違和感ない画像を生成する必要はある(1発で出力されることは少ない)
・他機能と合わせるといい感じの絵が出力される
この記事を読むと
手を綺麗に修正する方法の詳細が分かります。
※記事内に広告が含まれています。
「Depth map library and poser」とは?
「Depth map library and poser」はControlNetを使用した拡張機能の一つです。
ControlNetは、StableDiffusion でより精密で構想に近い絵を描きだすための拡張機能のことです。
今回はその中のdepthと呼ばれる機能を併用して、その部分に後付けでライブラリにある手足の絵を埋め込むことで、その部分だけを修正する機能です。
「Depth map library and poser」のインストール
「Depth map library and poser」Ver1.1以上での機能なので、自身のVerが1.1以上であることを確認してください。
1.「Extensions」タブからInstall from URLを開きます。
2.URL for extension’s git repositoryに下記のアドレスを張り付けて、Installボタンをクリックしてます。
https://github.com/jexom/sd-webui-depth-lib.git
3.Installedで「Apply and restart UI」 ボタンをクリックして適用して再起動します。
4.念のためStable Diffusion web UI自体を再起動させて下さい。
「Depth Library」というタブが追加されていれば、正常にインストールされた証拠です。
【検証】手の形を変更してみた
実際に「Depth map library and poser」を使用して、手を綺麗に修正してみます。
足もできますが、少しの崩れで圧倒的に手の方が違和感が出るので、手の修正を行います。
「Depth map library and poser」準備
手順としては、変更したい画像に合わせて「手」だけの画像を生成します。
その後、変更前の画像とimg2imgで合成して、絵を完成させます。
プロンプト
(best quality, masterpiece, 16k, ultra detailed)
,anime
,front shot
,(standing:1.1)
,(upper body shot:1.5)
,hand up
,solo, (1 girl:1.5), 28 years old
,(focus:1.5)
,sleeping in bed
,(looking at viewer:1.1)
,upright
,simple background
,(white background:1.2)
ネガティブプロンプト
,bad anatomy,
,worst quality
,low quality
,ugly
,disfigured
今回は分かりやすいように、手が大きく映るような画像にしてあります。
「正面からの画像」に追加して、「ベッドで寝ている」を追加するといい感じに正面の画像が出力されるのでおススメです。
右手の造形がおかしいですね。
この画像の右手を編集していきます。
「Depth Library」びタブから「Add background image」をクリックして上記の女の子の画像を選択します。
この時のWidthとHeightは元画像と同じサイズに設定します。
次にHandsタブから任意の手の画像を選びます。
選択すると、中央のSelected画面に選んだ手の画像が表示されるので、Addボタンをクリックしてください。
選択する手を間違った場合は、Addの隣にある「RemoveSelected」で削除できます。
またHandタブには基本左手しかありませんが、右手に変更したい場合は、手の画像の青点をドラッグしながら、反対側までもっていってください。手が右手に変更されます。
手の配置が完了したら、画像下にある「Save PNG」で手の画像を保存します。
暗闇に手だけ浮いているような画像が出来たら準備完了です(この手だけの画像を見るとホラー画像に見えるのは私だけでしょうか…)
この処理を変更したい場所の数行います。
また生成した画像の情報がimg2imgに残っていればそのまま活用しますが、残っていなければ「PNG Info」で画像の情報を読み取り活用します。
この時に使用モデルやSamplingmethod、Seed値などが変更されるとうまく反映されないので注意が必要です。
出力結果
img2imgに元画像の情報を取り込んだら、ControlNetを設定していきます。
「Enable」、「Pixel Perfect」、「Upload independent control image」にチェックを入れ、「Single Image」に先ほど出力した手の画像を取り込みます。
「Control Weight」はControlNETの寄与度を決める値なのですが、1のままだと今回選択した「手」の画像にリソースを割きすぎてしまい、他が上手く描かれない可能性があります。
0.5ぐらいから初めて徐々に上げてみると良いでしょう。
「Control Type」は「Depth」を選択します。
生成してみて「手」の寄与度が低ければControl Modeを「ControlNet is more important」に変更してみましょう。
またプロンプトに「手」に関する記述があるか確認しましょう。
全て準備できたら「generate」ボタンで画像を生成します。
右手が良い感じにグーになりました。
変更前
変更後
若干髪の色や着物の帯が変更されてしまいましたが、そこまで違和感ないのではないでしょうか?
完全に蛇足
他記事でInpaintを用いた画像の修正を行いました。
今回はそれを使用して、表情を変更してみたいと思います。
(他意はない…他意はない…)
Inpaintで顔を隠して、プロンプトに表情分を追加します。
追加したプロンプト
,An angry face with raised eyebrows
,embarrassed face
(他意はない…他意はない…癖ではない…癖ではない…)
少し照れつつも怒った感じの絵になりました。
このタイミングでオッドアイのプロンプトの効果が出たのが不思議ですね…
手は感情を表すとも言いますので、手の造形に合わせて表情も変更してみるとより良い絵になると思いますのでぜひ試してみてください。
反省点
成功した点
1.元画像から大きく変化なく、画像変更できた
変更したい場所のみ変更できたのは良かったです。
2.他機能との併用が出来た
色んな機能を併用することで、より自分構想に近い画像が生成できるようになりました。
失敗した点
1.初めの右手の画像が微妙
もう少し形や向きを合わせた方が良かったかな?という画像が多く出力されました。
まとめ
今回は『Depth map library and poser』を使用して、手を修正する方法について紹介しました。
改めて3行でまとめると…
・手の修正は可能だが、初めに手の画像を出すときにある程度精度を出した方が良い
・設定値を変えながら、違和感ない画像を生成する必要はある(1発で出力されることは少ない)
・他機能と合わせるといい感じの絵が出力される
Stable Diffusionで手を綺麗に出力するのは至難の業ですよね。
今回はそんな人のために、後付けで手を修正する方法について紹介しました。
是非の『Depth map library and poser』の機能をつかって素敵な絵をたくさん描いてみてください!
StableDiffusionにお勧めのグラボ
ここまでの記事を読んでStableDiffusionを始めてみたいと思ったけど、どれを買ったか良いか分からない人向けに私の使っているグラボを紹介します。
私が使用しているグラボはNVIDIA GeForce RTX3060 搭載 グラフィックボード GDDR6 12GBになります。
StableDiffusionで絵を生成するときは、PCのCPUやメモリよりもグラボの性能が重要です。
StableDiffusionではVRAMが12GB以上であることが推奨されていますが、普通のゲーム用のグラボでは8GBのものが多いです。
経験上、一回のプロンプトで一発で望みの絵が出ることは少なく、10枚ぐらい出力してそこから近づけていく作業をします。
しかしVRAMが低いと1枚を生成する時間が長くなってしまいます(完全にVRAM依存ではないですが)
1枚の生成する時間が長いと、最終的なゴールまでの時間も多くかかってしまうので、推奨要領である12GBのグラボを買うことをお勧めします。
VRAMが低い=一度に計算できる数が少ない=生成速度が遅い
そのため解像度の高い絵を生成するのに時間がかかるだけでなく、生成できない可能性もあります(2GBや4GBなど)
Controlnet等、拡張機能を複数使用する場合やLora等の学習を行う場合は、より顕著にVRAMの差が出ます。
そのため単純にAIで出力してみたい。というだけでなく、その一歩先で色々やってみたい方は是非12GB以上を購入してみてください。
ちょっと試すだけなら、下記のような無料AI画像生成サービスを使うのも良いです。
コメント
I don’t even know how I stopped up here, however I
assumed this publish was once good. I do not recognize who you are however certainly you’re going to a famous blogger should
you aren’t already. Cheers!
This paragraph will assist the internet users for building up new blog or even a
weblog from start to end.