見出し画像

XLに移行しつつ1.5モデルで顔だけ調整

3日ほど前にComfyUI使い始めました。
で、わりとVRAM不足が緩和されたのでXLでの生成に本腰入れてこうと思ったんですが、いかんせん眼鏡っ娘が可愛く出ない。(どのモデルも野暮ったい眼鏡しか学習されてない?)
まぁまた自分で追加学習やれって話なんですが、やはりVRAMが足りないので……

というわけで、どうにかXL生成の絵に1.5系モデルの眼鏡っ娘を乗っけられないかと試みてみたのがこちらです。1024×1024でXLモデルと1.5モデル併用して一発出ししてます。

どや

やってる事としては以下のような感じで……
FaceDetailerで顔を検出して、顔だけ1.5モデルで可愛い眼鏡っ娘に描き直してる感じです。

ConfyUIのワークフロー

ワークフローの解説

Face Detailer は下のようなノードで、latentとvae繋ぐと顔の部分を検出してMASK出してくれます。(実際にこのノード自体がdetail処理してくれるわけじゃないです)
LATENTには顔部分だけdenoisingされてない奴が出てくるんですが今回は使いません。

よく見たらmask_blurって項目あるやん!

ここはマスクをぼかしてる処理なんですが……
マスクをぼかすノードが無いので一度画像に変換してます。
(しかもFace Detailerでぼかせるっぽいので要らない)

無駄な処理

顔用(1.5モデル側)の生成処理なんですが、LATENTではなくIMAGE形式で受け取って再度VAE Encodeしてから突っ込んでます。ベースモデルが違うのでこうしないと盛大にぶっ壊れます。
だいたいdenoize=0.5~0.8くらい、適度に顔が変わるくらいの強さで生成します。(i2iやるくらいの感覚でOKです)

要はi2iなのでstepこんなに不要かも?

最後にマスクを使ってXLモデルが生成したベース画像に1.5モデルが生成した画像の顔部分だけを合成します。(マスクをぼかしてあれば、良い感じに境目が分からなくなってます)
これ、LATENTのまま合成するのが本来のFace Detailerの使い方だと思うんですが、今回は別モデルなのでそれぞれ画像にしてから合成します。

がちゃんこ

今後の課題

こんな感じに背景に境目が見えちゃうので、マスクのぼかし範囲を広げるとか、Face Detailerのマスク生成をboxじゃなくてfaceにするとか、色々調整の余地はあります。(ここからアプスケi2iすれば、馴染んでしまいそうな気もする)

追記

今はImpactPackに入ってるFace Detailerを使ってて、顔の形にマスクが切られるので上記の課題も解決されてます。オススメ。


この記事が気に入ったらサポートをしてみませんか?