🦊Detector
画像内にある特定の物体の位置を検出、切り抜きするタスクです
前提知識
BBOX
物体の位置を四角形の座標で表す
SEGM
物体の形を検出します
🐈YOLO (BBOX)
高速な物体検出といえばこれですね
基本的にYOLOはあまり多くの種類を見分けることはできず、例えば顔だったら顔専用の、車だったら車専用のYOLOモデルがあります(もしくは作ります)
他のモデル
探してきた、もしくは作ったYOLOも使うことができます
ComfyUI Managerメニュー → Install Models
→ YOLOで検索
リンクは貼りませんが、CivitaiでAdetailerと探すとNSFWに特化したモデルが出てきます
作ってみる
📎CLIPSeg (BBOX)
高速なのはいいですが、YOLOは特定の物体しか認識できないので少し使い勝手が悪いですね
CLIPSegはCLIPの知識を使ってセグメンテーションを行う技術です
これを応用することで、何万という種類の物体をテキストで検出できるようになります
🪢追加のカスタムノード
無駄に検出範囲が大きくなることが多く精度はイマイチです
というよりも、CLIPSegが作ったマスクからBBOXを作るのですが、CLIPSegのセグメンテーション精度がイマイチなのです
故にCLIPSeg自体がセグメンテーションできるにも関わらずBBOXの作成にしか使いません
🦄YOLO World + EfficientSAM (BBOX & SEGM)
最新のYOLOにCLIPSegのように自然言語でオブジェクトを検出できる
YOLO-Worldが登場しました
🪢追加のカスタムノード
好きな言葉で物体検出ができます
ImpactSimpleDetectorSEGSノードの bbox_threshold
は低めの値にした方が良いかもしれません
これを活用し、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同様、大体のオブジェクトをセグメンテーションできるので、人、顔、手以外はこれを使うことが多いです