학습목표
이미지의 '일부'를 조정할때 유용하게 쓰일 수 있는 Mask에 대해 조금 더 자세히 배워봅니다.
일단 6.3.1.에서 활용사례를 한가지 본 이후, 6.3.2.부터는 지엽적인 기술들에 대해 설명할 수 있도록 하겠습니다.
반복해서 드리는 말씀이지만, 많다고 쫄지말고, 모두 정독하실 필요 없이 필요하실때 찾아보세요.
Plain Text
복사
6.3.1. Masking
마스킹을 활용하면 이미 생성된 캐릭터의 얼굴 부분만을 수정 및 생성이 가능하다.
BBOX Detector와 SAM Detector를 활용해 최대한 디테일하게 얼굴 부분만을 마스킹한다.
Masking 된 얼굴 부분만을 인식해서 프롬프트에 따라 다른 부분은 그대로 유지한 채 얼굴 부분만 수정이 된다.
Before
After
생성된 이미지를 비교해 보면 나머지 부분은 동일한 채 얼굴의 표정과 눈동자 색만 바뀐 것을 볼 수 있다.
1. 마스킹의 기본 개념
마스킹은 이미지의 특정 부분을 선택 또는 제외하는 기술이다. 흑백 이미지와 유사하게, 각 픽셀이 선택 여부를 나타내는 값을 가지며 보통 흰색(255)은 선택된 영역, 검은색(0)은 선택되지 않은 영역을 의미한다.
2. 마스크 생성 방법
6.3.2. SAM
SAM (Segment Anything Model)
SAM은 이미지에서 사물을 자동으로 분할하는 데 사용됩니다. 주로 배경과 물체를 구분하는 데 효과적이지만, 세밀한 작업에는 한계가 있을 수 있습니다.
6.3.3. RMBG
RMBG는 배경을 깔끔하게 제거해주는 모델이다.
간단한 이미지의 경우 해당 모델을 쓰면 SAM 보다 세밀한 마스크를 얻을 수 있다.
6.3.4. Mediapipe
Mediapipe (SEGS)
Mediapipe는 눈썹, 눈 등 특정 얼굴 부위를 인식하고 분할하는 데 특화되어 있다.
직접 마스크 생성
소프트웨어 내에서 직접 마스크를 그리거나 만들 수 있습니다. 이 방법은 세밀한 조정이 필요할 때 유용하다.
아직 노르디에서 해당 기능 동작하지 않아 근시일에 버그 해결할 수 있도록 하겠습니다.
외부 도구에서 마스크 가져오기
포토샵, 일러스트레이터, 피그마 등 외부 그래픽 도구에서 만든 마스크를 가져와 사용할 수 있다.
3. 마스크 조작 기법
6.3.5. GrowMask
마스크 확장/축소 (Grow Mask)
"Grow Mask" 노드에 양수/음수 값을 주어 사용 가능.
(더 찾아보시고 싶으신 분들을 위하여, 전통적인 컴퓨터 비전에서는 이를 erode/dilate 라고 말하며, 이를 조금 더 실용적으로 개선한 노드이다.)
6.3.6. MaskBlur
마스크의 가장자리에 블러 효과를 적용하여 부드러운 경계를 만드는 기능.
자연스러운 합성 효과를 내는 데 도움이 된다.
Gaussian Blur Mask 노드로 사용 가능. kemel_size, sigma 값 조정해서 블러 정도를 조절할 수 있다.
6.3.7. Cut&Paste
마스킹 잘라내기/붙여넣기
이미지의 일부를 마스킹에 따라 잘라내고 다른 이미지에 붙이는 기능.
복잡한 이미지를 만들거나 수정할 때 유용하다.
Cut By Mask 노드로 마스킹 부분을 잘라내기.
Paste By Mask 노드로 잘라낸 부분 붙여넣기. resze_behavior 값을 선택해서 비율이나 사이즈를 조정할 수 있다.
6.3.8. InvertMask
마스크를 반전시키면 선택된 영역과 선택되지 않은 영역이 서로 바뀐다.
InverMask 노드로 마스크 반전.
6.3.9. CropMask
마스크의 특정 부분만 잘라내어 사용할 수 있다.
CropMask 노드로 가능. x, y, width, height 값 조절로 잘라낼 부분 지정할 수 있다.
6.3.10. Feathering
마스크 페더링 (Feathering)
페더링은 마스크의 가장자리를 부드럽게 만드는 기능이다.
FeatherMask 노드로 가능. left, top, right, bottom 값으로 페더링 정도 조절 가능
6.3.11. MaskOperation
Operation은 연산이란 뜻으로 우리가 말하는 덧셈, 뺄셈, 곱셈, 나눗셈 등을 의미한다.
연산 처리를 통해 마스크 영역을 조절하는 기능
Pixelwise 노드로 +, -, & 연산 처리하여 마스크 영역 조절 가능
6.3.12. ImageBlendByMask
마스크를 사용하여 두 이미지를 부분적으로 합성할 수 있다.
6.3.13. ImageBlendByMode
이미지를 다양한 방식으로 블렌딩할 수 있다.