簡介
在上一篇文章中,我們了解到自動遮罩是影像編輯工作流程中的一項關鍵技術,尤其是在為修復或合成等任務將前景主體與背景分離時。在本文中,我們將探討如何結合 ComfyUI 使用 Segment Anything 模型(SAM 2)來自動完成遮罩過程。利用自訂節點和工作流程,你可以高效地定義遮罩、柔化邊緣並替換背景。
目錄
自動遮罩的關鍵元件
1. 安裝所需的節點套件和模型
要開始自動遮罩,你需要安裝以下內容:
- 節點套件:
使用 ComfyUI Manager 搜尋並安裝這些節點套件。安裝完成後,重新啟動 ComfyUI。 - SAM 2 模型:
- 下載 sam2.1_hiera_base_plus-fp16 的模型。來源: Hugging Face。
- 將模型放在
ComfyUI/models/Sam2目錄中。如果模型沒有自動安裝,請按照 Hugging Face 頁面上提供的手動安裝步驟操作。
2. 設定工作流程
安裝所需的工具後,你可以建立一個自動遮罩工作流程。以下是逐步指南:

載入影像
首先,使用 Load Image 節點將前景影像和背景影像載入到 ComfyUI 中。請確保已知影像解析度,因為分割需要用到它。
取得影像解析度
使用 Essentials Pack 中的 Get Image Size 節點提取已載入影像的寬度和高度。將 Load Image 節點的輸出連接到 Get Image Size 節點。
定義分割座標
要指定分割點:
- 加入 KJNodes 套件中的
Points Editor節點。 - 將
Get Image Size節點的影像、寬度和高度輸出連接到Points Editor。 - 按右鍵點選
Points Editor節點並選擇:- 將小工具轉換為輸入 (同時適用於寬度和高度)。
- 新增畫布 ,建立一個空白畫布。
載入 SAM 2 模型
- 加入
Download SAM 2 Model節點,並確保模型參數設定如下:- 模型:
sam2_hiera_base_plus - 裝置:
cuda - 精確度:
floating.16
- 模型:
- 將載入器節點的輸出連接到
SAM 2 Segmentation節點。
建立分割遮罩
- 加入
SAM 2 Segmentation節點。 - 將
Points Editor節點的影像和座標(正點和負點)連接到分割節點。 - 使用 Essentials Pack 中的
Mask Preview節點預覽遮罩輸出。

3. 提高遮罩品質
用模糊柔化邊緣
要最佳化遮罩,請使用 KJNodes 套件中的 Grow Mask with Blur 節點:
- 將
Grow Mask with Blur節點放置在SAM 2 Segmentation節點與Image Composite Mask節點之間。 - 調整以下參數:
- 模糊半徑:設定為
2,以獲得更平滑的邊緣。 - 擴展值:設定為
2 pixels,以略微擴大遮罩。
- 模糊半徑:設定為
- 使用
Mask Preview節點即時查看變更效果。
合成遮罩
將 Grow Mask with Blur 節點的輸出連接到 Image Composite Mask 節點。這樣可以在保持前景主體完整的同時替換背景。

4. 儲存最終影像
對遮罩和背景替換感到滿意後:
- 加入一個
Save Image Extended節點,將輸出儲存到磁碟。 - 確保
Queue Mode設定為Queue。 - 使用
Ctrl + B取消儲存節點的旁路,並將工作流程排入佇列以儲存影像。

範例工作流程
下面是工作流程設定的一個範例:
1. Load Image Node → Get Image Size Node → Points Editor Node
2. Download SAM 2 Model Node → SAM 2 Segmentation Node → Mask Preview Node
3. Grow Mask with Blur Node → Image Composite Mask Node → Save Image Extended Node
提高遮罩精確度
為確保遮罩精確度最佳:
- 使用
Points Editor節點準確定義前景點和背景點。 - 在
Grow Mask with Blur節點中嘗試不同的模糊值和擴展值,以平衡邊緣柔和度與遮罩覆蓋範圍。