C30: 최적화 글: Segment Anything을 활용한 자동 마스킹

소개

이전 글에서는 자동 마스킹이 이미지 편집 워크플로에서 중요한 기술이며, 특히 인페인팅이나 합성 같은 작업에서 배경으로부터 전경 피사체를 분리할 때 유용하다는 것을 배웠습니다. 이 글에서는 ComfyUI와 Segment Anything Model(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에 로드하세요. 세분화에 필요하므로 이미지 해상도를 알고 있어야 합니다.

이미지 해상도 가져오기

를 사용하세요. 사용할 노드: Get Image Size 입니다. 이 노드는 Essentials Pack에 포함되어 있으며 로드된 이미지의 너비와 높이를 추출합니다. 다음으로 출력 노드: Load Image 의 출력을 대상 노드 Get Image Size 에 연결하세요.

세분화 좌표 정의하기

세분화를 위한 지점을 지정하려면:

  1. 노드를 추가하세요. 노드 이름: Points Editor . KJNodes 팩에 포함되어 있습니다.
  2. 이미지, 너비, 높이 출력을 연결하세요. 출력 노드: Get Image Size . 대상 노드: Points Editor입니다.
  3. 노드를 마우스 오른쪽 버튼으로 클릭하고 다음을 선택하세요. 노드: Points Editor .
    • 위젯을 입력으로 변환 을 너비와 높이 모두에 적용하세요.
    • 새 캔버스 를 선택하여 빈 캔버스를 만드세요.
SAM 2 모델 로드하기
  1. 노드를 추가하고 모델 매개변수가 다음과 같이 설정되었는지 확인하세요. 노드: Download SAM 2 Model .
    • 모델: sam2_hiera_base_plus
    • 장치: cuda
    • 정밀도: floating.16
  2. 로더 노드의 출력을 연결하세요. 연결 대상: SAM 2 Segmentation 노드입니다.
세분화 마스크 만들기
  1. 노드를 추가하세요. 노드: SAM 2 Segmentation .
  2. 이미지와 좌표(양의 포인트와 음의 포인트)를 세분화 노드에 연결하세요. 출처: Points Editor 노드입니다.
  3. 노드를 사용하여 마스크 출력을 미리 보세요. 노드: Mask Preview . Essentials Pack에 포함되어 있습니다.

3. 마스크 품질 개선하기

블러로 가장자리 부드럽게 하기

마스크를 다듬으려면 다음 노드를 사용하세요. Grow Mask with Blur . KJNodes 팩에 포함되어 있습니다.

  1. 노드를 다음 두 노드 사이에 배치하세요. 배치할 노드: Grow Mask with Blur . 첫 번째: SAM 2 Segmentation . 두 번째: Image Composite Mask 노드입니다.
  2. 다음 매개변수를 조정하세요.
    • 블러 반경: 권장 값은 2 입니다. 이렇게 하면 가장자리가 더 부드러워집니다.
    • 확장 값: 권장 값은 2 pixels 입니다. 이렇게 하면 마스크가 약간 커집니다.
  3. 노드를 사용하여 변경 사항을 실시간으로 확인하세요. 노드: Mask Preview 입니다.
마스크 합성하기

출력을 연결하세요. 출력 노드: Grow Mask with Blur . 대상 노드: Image Composite Mask 노드입니다. 이렇게 하면 전경 피사체의 온전함을 유지하면서 배경을 교체할 수 있습니다.


4. 최종 이미지 저장하기

마스크와 배경 교체 결과에 만족하면:

  1. 노드를 추가하여 출력을 디스크에 저장하세요. 노드: Save Image Extended 입니다.
  2. 이 다음 값으로 설정되었는지 확인하세요. 항목: Queue Mode . 값: Queue입니다.
  3. 를 이용해 저장 노드의 바이패스를 해제하고 워크플로를 대기열에 넣어 이미지를 저장하세요. 단축키: 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 입니다.

참고 자료

댓글 남기기