WebUIには拡張機能の ADetailer が有りましたが、ComfyUIにもカスタムノードがあります。
使用するのは、下記の2つのカスタムノード
1.ComfyUI Impact Pack
URL: https://github.com/ltdrdata/ComfyUI-Impact-Pack
2.ComfyUI Impact Subpack
URL: https://github.com/ltdrdata/ComfyUI-Impact-Subpack
Impact Subpackからは、
UltralyticsDetectorProvider
を使います。
Impact Packは、組み方によって使うノードが異なります。
共通
SEGM Detector (SEGS)
パターン1
FaceDetailer
Detailer (SEGS)
パターン2
FaceDetailer (pipe) / FaceDetailer(どちらか)
Detailer (SEGS/pipe)
ToBasicPipe
BasicPipeToDetailerPipe & AnyPIPEToBasic / FromBasicPipe_v2(どちらか)
KSampler (pipe)(使わなくても可)
を使います。
1枚目の画像は、パターン1の組み方です。
茶色になっているノードがImpact Packのノードです。
Impact Packのノード部分を拡大したのが、2枚目の画像です。
接続自体は対応する接続点どうしを繋ぐだけなので、簡単ですねw
パターン1の接続の場合、線の数が多くなります。
この後Detailerを追加しようとすると接続が大変です。
この問題を解決するのが、3枚目の画像のパターン2の組み方です。
※上(画像4枚目)と下(画像5枚目)は使っているノードが違うだけで、同じ動作をします。
パターン2では、pipe という機能を使用します。
pipeには複数の情報線を一つに纏めて送る機能があり、パターン1で煩雑だった接続を簡単にしてくれます。
なお、Impact Packに含まれる KSampler (pipe) もpipe機能に対応しているため、標準のKSamplerも差し替えると効果的です(画像4枚目)
お好みで使いやすい方をお使いください。
ここでもう一つ大切な物があります。
それは、デティールアップさせる場所を検出させるためのモデルです。
UltralyticsDetectorProvider で読み込むのですが、Impact Packをインストールした際に一緒にインストールされるかどうか忘れてしまいましたw
なお、インストール先は、ComfyUIのインストールフォルダーの下記フォルダーに成ります。
\models\ultralytics\bbox
\models\ultralytics\segm
※bbox:正方形の範囲で検出します(主にFaceDetailerで使用)
segm:対象の部位で検出します。(hand など特定の部位のみ検出)
モデルが必要な場合は、ComfyUI ManagerのModel Manegerから"yolo"や"face"、"hand"などで検索するか↓で探してしてみてください。
https://huggingface.co/Anzhc/Anzhcs_YOLOs/tree/main
----------------------------------------------------------------------------------------------------------------
簡単に調整方法(詳しい内容を知っている訳では無いので、経験則です)
Detalerは範囲を指定して描き直しを行う作業です。
デフォルト値でも問題は少ないですが、画像が荒くなる、変なノイズが乗るなどの場合は、
cfg や denoise を低めに調整してみてください。
※一度描かれた画像データーなので、stepsもそれほど上げ無くても大丈夫です。
検出範囲が狭い場合は、
dilation を上げて下さい。
部位が検出されにくい場合は、
threshold を下げて下さい。
guide_size を大きくすると高精細に成る様です。
※max_size までの値にしておきます。
また、sampler、scheduler は、KSamplerと合わせた方が良いとの書き込みを見かけました。
※私も実践しています。
これ、一括で設定しようとすると、KSamplerからは出力できないので、別ノードから引っ張るんですが、落とし穴があります、対応するのに苦労しましたw
※最初は使えていたノードがComfyUIのアップデートで急に使えなくなったので、試行錯誤しました。
seed も統一した方が元の絵から離れるリスクが低いのでは無いかと思ってますが、どうなんでしょうね?
----------------------------------------------------------------------------------------------------------------
おまけ1
1枚目の画像の最後にあるノードについて。
カスタムノード名:rgthree-comfy
URL: https://github.com/rgthree/rgthree-comfy
ノード名:Image Comparer (rgthree)
image_a、image_b の画像を比較する事ができるノードです。
デティールアップ前後の画像を比較して、違いが確認できます。
おまけ2
ワークフローの画面を移動する際に、ドラッグしようとしてノードを動かしてしまう事ってありませんか?
私も最近知ったのですが、ノードを右クリックして表示されるコンテキストメニューの「ピン」を使うとノードがピン止めされて動かなくなります。
範囲指定で一括で指定もできます。
なお、範囲指定する際、ピン設定されているノードと設定されていないノードが混じっていると、ピン設定が反転するので、ご注意下さい。