LayerDiffuseでキャラの切り抜きと背景固定方法
Stable diffusionで背景固定と調べるとinpaintなどがでますが、そういった手間は不要で、ワンクリックぐらいの勢いで背景固定ができないかを調べているとLayerDiffuseで背景固定とキャラの透過処理を簡単にできるようになりました。
LayerDiffuse
透過画像またはレイヤー構造を保った画像が生成できるStable diffusionで使える拡張機能です。
下記簡単に導入できるEasySdxWebUiからforgeを起動することで初めからあります。
LayerDiffuseがない方は、「Extensions」タブ内の「Install from URL」に以下のURLを張り付けて、installボタンで導入してください。
https://github.com/layerdiffusion/sd-forge-layerdiffuse
checkPointによって透過処理できる等があります。
下記参考にしてください。
LayerDiffuseで使用するベースのキャラ
早く連載再開してほしいハンターハンターのキルア君です。
プロンプトを入れた際に上記画像が生成されるので彼をベースでLayerDiffuseを使用していきます。
LayerDiffuseの設定パラメータについて
Method:SDXL用とSD用があります。
Only Generate Transparent Image(Attention Injection)-画像透過処理
Only Generate Transparent Image (Conv Injection)-画像透過処理
From Foreground to Blending-キャラ固定でプロンプトで背景等設定
From Background to Blending-背景固定でプロンプトでキャラ等設定
Weight
デフォルトは1だが、内容によっては、ベースが改変されるケースがある。
低すぎると透過処理が中途半端になります。
Stop At
デフォルトは、1で0だと中途半端な透過処理で、0.5で完全な透過処理ができればできなかったりで、1だと完璧な透過処理を実施。
低すぎると透過処理が中途半端になります。
生成が2枚でます
生成後に2つの画像がでます。
グレーとホワイトグレーの四角が多数あるものと完全透過処理されているものが生成されます。
outputに保存されるのが、四角が多数あるものです。
透過処理のは、まだフォルダーに保存されないので、必ず生成した際に手動で保存しましょう。
最悪忘れてしまった場合でも下記になります。
ただプログラムやツールが実行されると、一時ファイルはセッション終了時やツールの終了時に削除されることもありますので必要なものは忘れず保存しましょう。
Method:Only Generate Transparent Image (Attention Injection)
Only Generate Transparent Image(Attention Injection)は、画像生成のプロセスで、背景や指定された部分が完全に透明な画像のみを作成することを意味します。
Weight:1で実施。
ん??ベースと違ったキャラでなおかつ顔だけだったものが全身映ってます。
Weightを1から0.5に実施。
近づきましたが、ちょっとかっこよくなっている気がするので画像を比較してみます。
LayerDiffuseの方がかっこいい!?影や色彩の影響・・・・かな。
Weight:0.4で実施。
いい感じで近い。
Weight:0.6で実施。
変な文字と顔ちょい違いますね。
Only Generate Transparent Image (Conv Injection)
「Conv Injection」は「Convolutional Injection」の略で、畳み込み層の注入を指します。
畳み込み層を使うことで、画像生成モデルがより詳細で精密な画像を生成できるようにします。
特に、画像の一部が透明である場合、その透明部分のエッジや質感を正確に処理するために用いられるとのことです。
Weight1で実施。
全然違う・・・だれ?
Weight0.5で実施。
変なテキストと顔だけでないので、Only Generate Transparent Image(Attention Injection)と勝手が違います。
Weight:0.25で実施。
やっとでました。
ベースとの比較。
ベースよりキルアっぽいので、割とありがたい。
From Foreground to Blending
ベース画像は下記透過処理のキャラ画像を使用します。
キャラの記載していたプロンプトを削除し、hotelのみ入れて実施。
Weight:1 Stop as:1
Weight:0.9
Weight:0.8
背景はっきりでましたが、Weightを減らすごとになぜ照れていくキルア君。
パラメータや入れるキャラによって出来が違います。
結構ガチャ要素がありますが、使う事はあまりないかなーと思っていますが、アイデア次第。
五条悟先生で手がおかしいのですが同じように実施。
まあいい感じ。
From Background to Blending 背景固定
ベース画像は下記画像を使用します。
私自身が求めていた背景固定の部分です。
Weight:1 Stop as:1
キャラ変わりすぎだけどかっこよくなりすぎです。
あとなぜ横を向く・・・・SEED値によって変化しそう。
Weight:0.9
結構近いのと結構かっこいい。
多分背景の度合いによっておかしくならないようキャラが背景に合うように生成されていると推察。
Weight:0.8
また横を向くのか・・・・。
Weight:0.7
full bodyの指示は与えていませんが・・・。
Weight:0.6
Weightが低くなると背景とキャラの度合いが薄くなります。
現状0.9がいいのかなーですが、ケースバイケースかと思います。
Weight:1.5
1以上価値がないのかもしれません。
Bach Count:10で生成した結果。
原型のベースモデルのプロンプトと同じやつ出ないですね・・・。
背景固定はあってますが、背景固定かつキャラ固定ではない感じですが、別のキャラでやるとそのままのキャラが出たりでなかったりなのでcheckPointにLoRAを使う使わないで変化するかと推察します。
From Background and Blending to Foreground
上記などで生成された画像と背景の画像を使って背景を削除して透過画像を生成します。
使う画像は下記になります。
Backgroundに下記画像を入れます。
Blendingに下記画像を入れます。
実施の結果が下記です。
これをどう活用するかわかり次第追記します。
だから何って感じなのが印象です。
LayerDiffuseでキャラの切り抜きと背景固定方法の結論
背景固定ができますが、その背景によせてキャラが生成されると思います。
さらにcheckPointやLoRAの有無によってかなり変化しますが、LoRAでキャラ設定している場合は割とキャラが固定されやすいです。
サポートしていただけると飛び跳ねて喜びます。