🦊Detector
画像内にある特定の物体の位置を検出、切り抜きするタスクです
前提知識
BBOX
https://gyazo.com/1a10dcd7dcf8f72eee275a3d8484f882
物体の位置を四角形の座標で表す
SEGM
https://gyazo.com/cf587c9f4dcde9c0df17fc97962ff6aa
物体の形を検出します
🐈YOLO (BBOX)
高速な物体検出といえばこれですね
基本的にYOLOはあまり多くの種類を見分けることはできず、例えば顔だったら顔専用の、車だったら車専用のYOLOモデルがあります(もしくは作ります)
https://gyazo.com/ea6896b53f75b7d21475e19eac842e2d
他のモデル
探してきた、もしくは作ったYOLOも使うことができます
ComfyUI Managerメニュー → Install Models → YOLOで検索
リンクは貼りませんが、CivitaiでAdetailerと探すとNSFWに特化したモデルが出てきます
作ってみる
📎CLIPSeg (BBOX)
高速なのはいいですが、YOLOは特定の物体しか認識できないので少し使い勝手が悪いですね
CLIPSegはCLIPの知識を使ってセグメンテーションを行う技術です これを応用することで、何万という種類の物体をテキストで検出できるようになります
🪢追加のカスタムノード
https://gyazo.com/894f41f4d27b7c28123fd3efffdb14a6
無駄に検出範囲が大きくなることが多く精度はイマイチです
というよりも、CLIPSegが作ったマスクからBBOXを作るのですが、CLIPSegのセグメンテーション精度がイマイチなのです
故にCLIPSeg自体がセグメンテーションできるにも関わらずBBOXの作成にしか使いません
🦄YOLO World + EfficientSAM (BBOX & SEGM)
最新のYOLOにCLIPSegのように自然言語でオブジェクトを検出できるYOLO-Worldが登場しました 🪢追加のカスタムノード
https://gyazo.com/354b1a0d7076398b849caaaf8ee2148e
好きな言葉で物体検出ができます
ImpactSimpleDetectorSEGSノードのbbox_thresholdは低めの値にした方が良いかもしれません
これを活用し、BBOXだけでなくセグメンテーションも行うことができます(下半分のworkflow)
😚MediaPipe Face Mesh (BBOX & SEGM)
顔を検出し、メッシュを生成するAIです
これ一つでBBOXだけでなく、セグメンテーションもすることができます
🪢追加のカスタムノード
https://gyazo.com/b1404d207e1a7791f71f73ad0519cdb0
顔特化であり、目や口といったパーツ単位でのセグメンテーションが簡単にできます
🖼️Segment Anything Model (SEGM)
上のYOLOやCLIPSegが作ったBBOXを元にセグメンテーションします
sam_model_optにSAMモデルを入力すれば自動でセグメンテーションになります
https://gyazo.com/52bcdbd797d1df470a1ba3febb6bf682
sam_model_optにSAMLoaderが接続されていれば自動でセグメンテーションになります
🦨Grounding DINO + HQ-SAM (BBOX & SEGS)
CLIPのように自然言語による物体検出を行うGrounding DINOとSegment Anything Modelの高性能版であるHQ-SAMを組み合わせてセグメンテーションを行います
Impact-Packとは別系統のカスタムノードのため、マスクからSEGSへ変換します
🪢追加のカスタムノード
https://gyazo.com/b09407b280926ef4740132c2561ed37c
CLIPSeg同様、大体のオブジェクトをセグメンテーションできるので、人、顔、手以外はこれを使うことが多いです