generated at
🦊Detector


画像内にある特定の物体の位置を検出、切り抜きするタスクです

前提知識

BBOX
物体の位置を四角形の座標で表す
SEGM
物体の形を検出します
BBOXでオブジェクトの位置を指定 → これをSAM(Segment Anything Model)に渡しSEGMを作成 → これをマスクとして使ったり、SEGSとしてDetailerに受け渡したりする流れが多いです


🐈YOLO (BBOX)
高速な物体検出といえばこれですね
基本的にYOLOはあまり多くの種類を見分けることはできず、例えば顔だったら顔専用の、車だったら車専用のYOLOモデルがあります(もしくは作ります)
おそらくUltralyticsDetectorProviderノードの中にすでにface/hand/personのモデルがあります
他のモデル
探してきた、もしくは作ったYOLOも使うことができます
ComfyUI Managerメニュー → Install Models → YOLOで検索
リンクは貼りませんが、CivitaiでAdetailerと探すとNSFWに特化したモデルが出てきます
作ってみる
https://github.com/MNeMoNiCuZ/yolov8-scripts/Yolov8 Training & Inference Scripts


📎CLIPSeg (BBOX)
高速なのはいいですが、YOLOは特定の物体しか認識できないので少し使い勝手が悪いですね
CLIPSegはCLIPの知識を使ってセグメンテーションを行う技術です
これを応用することで、何万という種類の物体をテキストで検出できるようになります
🪢追加のカスタムノード
無駄に検出範囲が大きくなることが多く精度はイマイチです
というよりも、CLIPSegが作ったマスクからBBOXを作るのですが、CLIPSegのセグメンテーション精度がイマイチなのです
故にCLIPSeg自体がセグメンテーションできるにも関わらずBBOXの作成にしか使いません


🦄YOLO World + EfficientSAM (BBOX & SEGM)
最新のYOLOにCLIPSegのように自然言語でオブジェクトを検出できるYOLO-Worldが登場しました
🪢追加のカスタムノード
好きな言葉で物体検出ができます
ImpactSimpleDetectorSEGSノードの bbox_threshold は低めの値にした方が良いかもしれません
このカスタムノードにはEfficientSAMという高速なSAMを使う機能もあります
これを活用し、BBOXだけでなくセグメンテーションも行うことができます(下半分のworkflow)


😚MediaPipe Face Mesh (BBOX & SEGM)
顔を検出し、メッシュを生成するAIです
これ一つでBBOXだけでなく、セグメンテーションもすることができます
🪢追加のカスタムノード
顔特化であり、目や口といったパーツ単位でのセグメンテーションが簡単にできます


🖼️Segment Anything Model (SEGM)
上のYOLOやCLIPSegが作ったBBOXを元にセグメンテーションします
sam_model_opt にSAMモデルを入力すれば自動でセグメンテーションになります
sam_model_optにSAMLoaderが接続されていれば自動でセグメンテーションになります


🦨Grounding DINO + HQ-SAM (BBOX & SEGS)
CLIPのように自然言語による物体検出を行うGrounding DINOとSegment Anything Modelの高性能版であるHQ-SAMを組み合わせてセグメンテーションを行います
Impact-Packとは別系統のカスタムノードのため、マスクからSEGSへ変換します
🪢追加のカスタムノード
CLIPSeg同様、大体のオブジェクトをセグメンテーションできるので、人、顔、手以外はこれを使うことが多いです