🦊SEGS
>SEGSは、マスク、bbox、クロップ領域、confidence、label、ControlNet情報など、Detailerの操作に必要な情報を含む包括的なデータフォーマットです。
いろいろな情報がひとつにまとまっていて、マスクやBBOXとの違いが分からないと混乱してしまいます
一つ一つ丁寧に見ていきましょう
前提として便利なノード
SEGSと元の画像を入力することで、SEGSが持つマスクやBBOX情報をプレビューすることができます
クロップ領域とは?
マスクとの違いがわかりにくいかもしれませんが、上の画像のような関係性です
マスクやBBOXを基準に適当な余白を加えてクロップ領域にします
Detailerはこのクロップ領域のみで行うinpaintingです
BBOXとクロップ領域
YOLOやCLIPSegで物体検出をしたときのBBOXとクロップ情報がSEGSとして出力されます
この場合はBBOXがそのままマスクとして使用されます
bbox_threshold
bbox_dilation
BBOXの範囲を大きくします
crop_factor
クロップ領域を大きくします
1にすると(🟩)BBOXちょうど、これを増やしていくと(🟨)マスクの周囲も範囲に含まれるようになる
inpaintingモデルを使うときは周囲の情報も欲しいためcrop_factorを大きくしたほうが良いでしょう
drop_size
SEGMとクロップ領域
上のworkflowにSAMを加えると、BBOXの範囲内にあるオブジェクトをセグメンテーションします
つまるところ対象が顔なら、顔の形に合わせて切り抜きされます
post_dilation
マスクの形そのまま大きくなります
MaskToSEGS
マスクを作る方法は他にもあります
手動、HQ-SAM + DINO etc.
手動マスク
combined
離れた位置にマスクがあった場合、MastToSEGSは自動で2つのSEGSに分割します
combined
をenabledにした場合は、離れていても一つのSEGSとして出力します
crop_factor
上に同じ
bbox_fill
マスクが全部埋まるように矩形のマスクを作ります
drop_size
この値より小さなマスクは無視されます
contour_fill
ドーナツのようにぐるっと取り囲むマスクがあったとき、中空の部分も埋めます
ControlNet