【Impact Pack #3】部分的に修正!Detailer系いろいろ紹介【ComfyUI】
ComfyUIにて特定の部位だけ書き換えるDetailer系(Impact Pack)。種類が色々あるので深掘りする。インペイントとの違いなど。
- 【Impact Pack #1】SEGSとは何か【ComfyUI】
- 【Impact Pack #2】顔を再描画!Face Detailerの使い方【ComfyUI】
- 【Impact Pack #3】部分的に修正!Detailer系いろいろ紹介【ComfyUI】
- 【Impact Pack #4】線をまとめて見やすく!Pipeの使い方!【ComfyUI】
この記事はComfyUIの Impact Pack に含まれるノードを紹介していくシリーズ。
前回は Face Detailer に絞って「とりあえず使えれば良い人向け」に書いた。
今回はDetailerにどんな種類があるのかを見ていくが、把握しきれていないためメモ書き程度のものも多い
Detailerとは Inpaintと何が違うのか Inpaintのメリットマスク外も1度再描画が走ることがそのままメリットで、AIはマスクの外を見てからマスクの内側を書き込むのでInpaintされた箇所が馴染みやすい感覚がある。
Inpaintのデメリット Detailerのメリット一方でDetailerはマスクが塗られた周辺だけを切り取って処理するため、処理が早く軽い。(Inpaintのように全体は見ていない)
Detailerのデメリット Detailer (SEGS) - DetailerForEachまずは何もないところダブルクリックで検索 > detailer で調べると.
既に DetailerForEach 系で4種類もある。
一番上の DetailerForEach が基本となるのでコレを出す。ノード表記は Detailer (SEGS) に変わる。
入力:model ~ negativeまでまずは model ~ negative までのピンは言わなくてもわかると思う。
これは通常画像を生成する上で必要な KSampler に挿すものと同じだ。
厳密には KSampler には VAE や clip のピンは無いが、難しく考える必要はなく CheckpointLoader から出ているものでよい。
入力:imageピン 入力:segsピン まずは手書きマスクをSEGSとして使うsegsは極端なことを言うとマスクの上位互換だと思われる(私の見解)
Load Imageノードにマスクはどうやって書くの??Load Image を右クリック > Open In MaskEdoitor を使うとマスクを塗る画面を出せる。
主要な設定KSamplerをいじるときと同じように Sampler, cfg, steps, denoise の調整は基本
自動検出してSEGSを作る- UltralyticsDetectorProvider ノードに洋服検出モデルの deepfashion2_yolov8s-seg.pt を入れる
- SEGM Detector (SEGS) ノードがこのモデルを利用し実際にsegを生成する
更に FaceDetailer を通して完成
自動検出用モデルの調べ方ComfyUI Managerを利用して Install Models
あとはここで Ultralytics で検索するとずらっと一覧が出てくる
DetailerDebug (SEGS)検索名: DetailerForEachDebug ノードを出すとこのノードが出る。
基本的には DetailerForEach と変わらないが、次のアウトプットだけ違う。
要するにこれは内部処理で使用したマスクでどこが検出されているのかなどを目視で確認するためのピン。
Detailer (SEGS/pipe)検索名: DetailerForEachPipe がこのノードになる。
こちらも機能自体は同じだが入出力のピンが異なる。
pipeとは???ImpactPack には Pipe という概念がある。
こちらは Impact Pack 基本でもあるのでまた別途記事が作れたらと思う。
出力側にもpipeやsegがあるこのノードは出力側にも pipe や seg がある。
その他調べていないものdetailer_hook , refiner_basic_pipe_opt などのインプットは未調査。
FaceDetailer設定項目が通常の Detailer と比べてかなり違っているためここがFace専用のメリットなのではないだろうか。
また FaceDetailer の他に FaceDetailerPipe というノードがあり、こちらは上で紹介したものと同じで BasicPipe を受け取って動作するもの。
SEGSDetailerこのノードの最大の特徴は出力が segs であるという点。
force_inpaintオプションのチェックが必須??次のように Simple Detector (SEGS) を使用し、BBOXベースのsegを取る。
次にforce_inpaintをenabledにしないとDetailerの処理が走らずスルーされてしまうことが分かっている(デフォルトでオフ)
メリットはバッチ処理ができること outputがsegsで何のメリットがある?output が segs になることで、このままのデータを別のノードに渡せる。
この後さらに顔だけの seg データを加工する場合にのみ使用か?
顔を書き換えた例では効果が微妙素直に FaceDetailer を使ったほうが良さそう
元絵に戻す場合はSEGSPasteを使う例えばこれで全身の絵から顔のsegを対象に処理をすると segs アウトプットには補正後の顔だけ切り抜かれた状態で保存されている。
この場合は SEGSPasete ノードを使って元絵と合成してやる。
バッチから特定の番号を取り出す場合はPicker (SEGS) SEGSDetailer For AnimateDiff(SEGS/pipe)なんと AnimateDiff 専用の Detailer
単なる SEGSDetailer は使い所が難しいが、 AnimateDiff 前提なら迷わずこれを使えばよいのではないだろうか。
基本的なノードの繋ぎ方は上の SEGSDetailer と同じなのでかなり簡略化して画像にしておく。
この例では顔を自動判別し、全てのフレームで顔のディティールアップを行っている
ここでもpipeの説明は省略するが KSampler に繋がっているものをここに繋げれば良い。
segsデータの目視はSEGSPreviewSEGSDetailerForAnimateDiff にはsegsを目視するピンがないので、ここで初めて SEGSPreview というノードを付けている。
MaskToSegsForAnimateDiff サンプル 未加工のAnimateDiff Detailer後 Sorry, your browser doesn't support embedded videos. Sorry, your browser doesn't support embedded videos. さいごにsegの自動判定のみならず MaskToSegs ノードで手書きでsegを作るなどもやってみるのも有用。
このシリーズの記事一覧- 【Impact Pack #1】SEGSとは何か【ComfyUI】
- 【Impact Pack #2】顔を再描画!Face Detailerの使い方【ComfyUI】
- 【Impact Pack #3】部分的に修正!Detailer系いろいろ紹介【ComfyUI】
- 【Impact Pack #4】線をまとめて見やすく!Pipeの使い方!【ComfyUI】
- Impact PackのDetailerとは何か
- Detailerとは
- Inpaintと何が違うのか
- Inpaintのメリット
- Inpaintのデメリット
- Detailerのメリット
- Detailerのデメリット
- 入力:model ~ negativeまで
- 入力:imageピン
- 入力:segsピン
- 主要な設定
- 自動検出用モデルの調べ方
- pipeとは???
- 出力側にもpipeやsegがある
- その他調べていないもの
- force_inpaintオプションのチェックが必須??
- メリットはバッチ処理ができること
- outputがsegsで何のメリットがある?
- 顔を書き換えた例では効果が微妙
- 元絵に戻す場合はSEGSPasteを使う
- バッチから特定の番号を取り出す場合はPicker (SEGS)
- segsデータの目視はSEGSPreview
- MaskToSegsForAnimateDiff
- サンプル