2024-02-06|閱讀時間 ‧ 約 23 分鐘

ComfyUI 研究 - 自動產生遮罩

先前使用遮罩進行重繪工作時,雖然ComfyUI有提供簡單的畫布給使用者手繪出遮罩範圍,但是手繪的精度需要看使用者的功力與耐性,如果有大量作業需求時,手繪遮罩的效率極低,因此在工作流中加入自動產生遮罩的功能是必要之事。

自動化產生遮罩的幾個方法介紹如下:


使用 Impact Pack


上圖是使用 Impact Pack提供的節點搭建的自動產生遮罩工作流,包含以下節點:

  • Load Image
  • UltralyticsDetectorProvider
  • SAMLoader (Impact)
  • Simple Detector (SEGS)
  • SEGSPreview
  • SEGS to MASK (Combined)
  • Mask To Image (mtb)
  • Preview Image

其中UltralyticsDetectorProvider節點提供Face、Hand、Person三個模型,可以選擇想要產生Segment的範圍,再經過SEGS to MASK (Combined)的節點轉換成遮罩圖像,之後再將遮罩圖像輸入到重繪用的工作流,就可以重繪遮罩內的內容。


使用 Face Swap

上圖是使用 Face Swap提供的節點搭建的自動產生遮罩工作流,包含以下節點:

  • Load Image
  • Load BiseNet
  • Segment Face
  • Mask To Image (mtb)
  • Preview Image

因為Face Swap的主要功能是換臉,所以可選的只有臉、頭髮、脖子,而且產生的遮罩效果不是很好。


使用 Allor Plugin

使用Allor Plugin提供的節點搭建的自動產生遮罩工作流,包含以下節點:

  • Load Image
  • ImageSegmentation
  • Convert Image to Mask
  • Mask To Image (mtb)
  • Preview Image

這個工作流其實是先對圖片去除背景,然後再轉換成遮罩使用。

在ImageSegmentation這個節點的Model提供多個不同的模型使用,因為都要另外下載,這邊不多做測試。


使用 Segment Anything

使用Segment Anything提供的節點搭建的自動產生遮罩工作流,包含以下節點:

  • Load Image
  • SAMModelLoader (segment anything)
  • GroundingDinoModelLoader (segment anything)
  • GroundingDinoSAMSegment (segment anything)
  • Mask To Image (mtb)
  • Preview Image

這個工作流應用性最廣,可以透過提示詞去控制產生遮罩的範圍,不限於人物,透過GroundingDinoSAMSegment (segment anything)這個節點會產生一個在原始圖片上加入遮罩的圖片,也可以只輸出遮罩供其他節點使用。


分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.