--- license: apache-2.0 --- 이 프로젝트는 ComfyUI(AGPL-3.0)를 기반으로 수정된 버전입니다. 원본 프로젝트: https://github.com/comfyanonymous/ComfyUI comfy-Custom-mask-nodes 이 프로젝트는 ComfyUI용 확장 마스크 처리 노드들을 제공합니다. 마스크 변환, 미리보기, 합성 등 다양한 마스크 유틸리티 기능을 포함하고 있습니다. ComfyUI 기본 마스크 노드를 기반으로 하여, 마스크 연산 과정에서 발생하던 알파 채널 오류를 줄이고 보다 안정적인 마스크 처리 기능을 제공하도록 개선되었습니다. -Attention- 이 프로젝트는 ComfyUI 0.092이상에서 정상작동하는 버전입니다. ComfyUI 11.1에서도 기동합니다. 그래픽카드를 사용하지 않는 처리기 때문에 CPU나 AMD에서도 기동될 겁니다. - 주요 기능 (Features) Safe MaskToImage Node: 마스크를 이미지로 변환 (예: 그레이스케일 시각화). Safe ImageToMask Node: 이미지에서 특정 채널을 기반으로 마스크 추출. Safe ImageColorToMask Node: 이미지의 특정 색상 범위로부터 마스크 생성. Safe SolidMask Node: 균일한 값으로 채워진 마스크 생성. Safe InvertMask Node: 기존 마스크 반전. Safe ImageCompositeMasked Node: 마스크를 사용하여 이미지 합성 Safe MaskComposite Node: 여러 마스크를 합성. Safe CropMask Node: 지정된 영역으로 마스크 잘라내기. Safe Select CropMask Node:안정화노드. 상하좌우로 직접 자를 픽셀을 지정. **ImagePadding : 입력 이미지를 상하좌우로 지정한 픽셀만큼 패딩하여 확장 **MaskPadding : 입력 마스크를 상하좌우로 지정한 픽셀만큼 패딩하여 확장 Safe FeatherMask Node: 마스크에 페더링(부드러운 가장자리) 적용. Safe GrowMask Node: 마스크 영역의 픽셀크기를 바깥쪽으로 확장(확장픽셀기준25[연속으로 쓰면 추가확장가능]). Safe ShrinkMask Node: 마스크 영역의 픽셀 크기를 안쪽으로 축소. Safe TransformMask Node: 마스크 영역자체의 크기를 임의 픽셀로 재조정. Safe ThresholdMask Node: 그레이스케일 마스크를 임계값으로 이진 마스크로 변환. Safe MaskPreview Node: GUI에서 마스크 출력 미리보기. Safe MaskSaveOnly: 마스크 데이터를 흑백이미지로 저장. Safe MaskSaveLink: 마스크 데이터를 흑백이미지로 저장 후 마스크 연결선 출력. **SafeMaskChecker : 편집 마스크를 지정 색상으로 시각화하여 안전하게 확인 **SafeMaskDiffChecker : 원본과 편집 마스크의 차이를 강조하여 변경된 영역만 시각화 설치 방법 (Getting Started) Installation ZIP 다운로드 이 저장소를 .zip 파일로 다운로드합니다. custom_nodes 폴더에 배치 압축을 해제한 후, ComfyUI 설치 경로의 custom_nodes 디렉토리에 폴더를 넣습니다. ComfyUI 재시작 ComfyUI를 재시작하면 새로운 커스텀 노드가 로드됩니다. 사용법 (Usage) 에디터 Safe ImageCompositeMasked Node : 안정화 노드. 마스크를 이용해 두 이미지를 합성할 수 있어, 부분 합성이나 블렌딩 작업에 적합. Inputs: destination: 합성 대상 이미지 source: 덮어씌울 이미지 x, y: 위치 오프셋 mask: 블렌딩을 제어하는 선택적 마스크 Outputs: image: 합성된 이미지 Safe CropMask Node : 안정화는 했지만 잘라내는 위치는 추가조정 필요. Inputs: mask: 마스크 텐서 x, y: 잘라낼 위치 width, height: 잘라낼 크기 Outputs: mask: 잘라낸 마스크 Safe Select CropMask Node : 신규노드. 상하좌우로 직접 자를 픽셀을 지정. Inputs: mask: 마스크 텐서 L, R, T, B: 잘라낼 위치 및 크기 Outputs: mask: 잘라낸 마스크 Safe MaskComposite Node : 충돌 원인을 감소. 안정화 노드. 오류발생시 리턴하여 안정화를 유도해 재출력함. Inputs: mask_a: 첫 번째 마스크 mask_b: 두 번째 마스크 blend_mode: 결합 방식 (add, multiply 등) Outputs: mask: 합성된 마스크 Safe FeatherMask Node : 마스크 페더링 노드. 기본노드와 크게 차이는 없지만, 충돌 자체는 줄임. Inputs: mask: 마스크 텐서 radius: 페더링 반경 Outputs: mask: 페더링된 마스크 Safe GrowMask Node : 실험노드. 안정화는 했지만 결과는 보장안됨. Inputs: mask: 마스크 텐서 amount: 확장할 픽셀 수 Outputs: mask: 확장된 마스크 Safe ThresholdMask Node : 실험노드. 안정화는 했지만 결과는 보장안됨. Inputs: mask: 마스크 텐서 threshold: 임계값 (0–1) Outputs: mask: 이진화된 마스크 기본형 Safe MaskToImage Node : 안정화 노드. 오류발생시 리턴하여 안정화를 유도해 재출력함. Inputs: mask: 변환할 마스크 텐서 Outputs: image: 마스크를 표현하는 그레이스케일 이미지 Safe ImageToMask Node : 안정화 노드. 오류발생시 리턴하여 안정화를 유도해 재출력함. Inputs: image: 원본 이미지 channel: 추출할 채널 (red, green, blue, alpha) Outputs: mask: 생성된 마스크 Safe ImageColorToMask Node : 안정화 노드. 특정 색상 범위를 지정해 마스크를 생성할 수 있어, 색상 기반 선택 작업에 유용. Inputs: image: 원본 이미지 color: 지정된 색상 또는 범위 Outputs: mask: 색상 선택으로 생성된 마스크 Safe SolidMask Node : 충돌 원인을 감소. 안정화 노드. 오류발생시 리턴하여 안정화를 유도해 재출력함. Inputs: width: 마스크 너비 height: 마스크 높이 value: 채울 값 (0–1) Outputs: mask: 단색 마스크 Safe InvertMask Node : 안정화 노드. 오류발생시 리턴하여 안정화를 유도해 재출력함. Inputs: mask: 반전할 마스크 텐서 Outputs: mask: 반전된 마스크 기본형 Safe MaskToImage Node : 안정화 노드. 오류발생시 리턴하여 안정화를 유도해 재출력함. Inputs: mask: 변환할 마스크 텐서 Outputs: image: 마스크를 표현하는 그레이스케일 이미지 Safe ImageToMask Node : 안정화 노드. 오류발생시 리턴하여 안정화를 유도해 재출력함. Inputs: image: 원본 이미지 channel: 추출할 채널 (red, green, blue, alpha) Outputs: mask: 생성된 마스크 Safe ImageColorToMask Node : 안정화 노드. 특정 색상 범위를 지정해 마스크를 생성할 수 있어, 색상 기반 선택 작업에 유용. Inputs: image: 원본 이미지 color: 지정된 색상 또는 범위 Outputs: mask: 색상 선택으로 생성된 마스크 에디터 Safe ImageCompositeMasked Node : 안정화 노드. 마스크를 이용해 두 이미지를 합성할 수 있어, 부분 합성이나 블렌딩 작업에 적합. Inputs: destination: 합성 대상 이미지 source: 덮어씌울 이미지 x, y: 위치 오프셋 mask: 블렌딩을 제어하는 선택적 마스크 Outputs: image: 합성된 이미지 Safe MaskComposite Node : 충돌 원인을 감소. 안정화 노드. 오류발생시 리턴하여 안정화를 유도해 재출력함. Inputs: mask_a: 첫 번째 마스크 mask_b: 두 번째 마스크 blend_mode: 결합 방식 (add, multiply 등) Outputs: mask: 합성된 마스크 변형 Safe SolidMask Node : 안정화 노드. 오류발생시 리턴하여 안정화를 유도해 재출력함. Inputs: width: 마스크 너비 height: 마스크 높이 value: 채울 값 (0–1) Outputs: mask: 단색 마스크 Safe InvertMask Node : 안정화 노드. 오류발생시 리턴하여 안정화를 유도해 재출력함. Inputs: mask: 반전할 마스크 텐서 Outputs: mask: 반전된 마스크 Safe GrowMask Node : 안정화 노드. 마스크의 픽셀 크기를 늘림. 최대제한 픽셀을 25로 변경. 재확장시 추가연결하면 됩니다. Inputs: mask: 마스크 텐서 amount: 확장할 픽셀 수 Outputs: mask: 확장된 마스크 Safe ShrinkMask Node : 신규노드. 마스크의 픽셀을 입력치에 비례해서 축소합니다. Inputs: mask: 마스크 텐서 amount: 축소할 픽셀 수 Outputs: mask: 확장된 마스크 Safe TransformMask Node : 신규노드. 마스크를 입력치에 맞춰 크기를 조정. 픽셀단위로 조정합니다. Inputs: mask: 마스크 텐서 amount: 조정할 가로 픽셀 수 amount: 조정할 세로 픽셀 수 Outputs: mask: 변형된 마스크 Safe ThresholdMask Node : 안정화노드. 임계값에 맞춰 마스크를 이진화합니다. Inputs: mask: 마스크 텐서 threshold: 임계값 (0–1) Outputs: mask: 이진화된 마스크 ImagePadding Node : 이미지의 캔버스 크기를 지정한 방향으로 늘려서 칠함. 흑백 지원, 경계 페더링 지원. 이미지가 원본이어서 에러위험이 있어어도 리턴 후 보정처리하여 적용함. Inputs: image : 입력 이미지(배치데이터 체킹 후 아닌경우 배치차원 추가하여 리턴 후 재연결) pad_top, pad_bottom, pad_left, pad_right : 각 방향별 패딩 크기 padding_color : 패딩 영역 색상(black/white) feather_strength : 패딩 경계 페더링 강도 Outputs: `image : 패딩이 적용된 이미지 처리방식 입력 이미지를 배치 차원 보정 후 지정한 픽셀만큼 상하좌우에 패딩을 추가하고 선택한 색상으로 채움 MaskPadding Node : 마스크의 캔버스 크기를 지정한 방향으로 늘려서 칠함. 흑백 지원, 경계 페더링 지원. 마스크데이터가 원본이어서 에러위험이 있어도 리턴 후 보정처리하여 적용함. Inputs: mask : 입력 마스크(배치데이터 체킹 후 아닌경우 배치차원 추가하여 리턴 후 재연결) `pad_top, pad_bottom, pad_left, pad_right : 각 방향별 패딩 크기 padding_color : 패딩 영역 색상(black/white) feather_strength : 패딩 경계 페더링 강도 Outputs: mask : 패딩이 적용된 마스크 처리방식 입력 마스크를 배치 차원 보정 후 지정한 픽셀만큼 상하좌우에 패딩을 추가하고 선택한 색상으로 채움 컷팅 Safe CropMask Node : 안정화는 했지만 잘라내는 위치는 추가조정 필요. 기본값은 왼쪽 위입니다. Inputs: mask: 마스크 텐서 x, y: 잘라낼 위치 width, height: 잘라낼 크기 Outputs: mask: 잘라낸 마스크 Safe Select CropMask Node : 안정화노드. 중앙을 기준으로 상하좌우로 직접 자를 픽셀을 지정. Inputs: mask: 마스크 텐서 L, R, T, B: 잘라낼 위치 및 크기 Outputs: mask: 잘라낸 마스크 Safe FeatherMask Node : 마스크 페더링 노드. 기본노드와 크게 차이는 없지만, 충돌 자체는 줄임. Inputs: mask: 마스크 텐서 radius: 페더링 반경 Outputs: mask: 페더링된 마스크 체커 Safe MaskPreview Node : 안정화 노드. '값이 남아있긴 하다면', 오류발생시 리턴하여 안정화를 유도해 재출력함.(깨지던 버그 수정.) Inputs: mask: 마스크 텐서 Outputs: image: 마스크 미리보기 이미지 Safe MaskSaveOnly Node : 안정화 노드. 마스크를 읽고 '콤피UI 출력 폴더의 마스크폴더에 저장'. 오류발생시 리턴하여 안정화를 유도해 재출력함. Inputs: mask: 마스크 텐서 Safe MaskSaveLink Node : 안정화 노드. 마스크를 읽고 '콤피UI 출력 폴더의 마스크폴더에 저장 후' 마스크 출력 노드로 연결. 오류발생시 리턴하여 안정화를 유도해 재출력함. Inputs: mask: 마스크 텐서 Outputs: mask: 마스크 텐서 SafeMaskChecker Node : 안정화 노드. 원본이미지의 마스크 위에 수정마스크를 덮어서 이미지 미리보기에 연결하여 사전확인 가능하게 함.(깨지던 버그 수정.) Inputs: base_mask : 기준 마스크(원본이미지를 마스크 컨버트로 출력후 연결) edit_mask : 편집 마스크(마스크 에디터로 수정영역 그린 후 연결) color : 표시 색상(red/green/blue) Outputs: preview : 편집 마스크를 색상 오버레이로 표현한 이미지 처리방식 편집 마스크를 흑백 이미지로 변환 후 선택한 색상으로 오버레이하여 시각적으로 확인 가능하게 출력 SafeMaskDiffChecker Node : 원본이미지의 마스크와 수정마스크의 차이점을 대조 후 변경예상점을 이미지 미리보기에 연결하여 사전확인 가능하게 함.(깨지던 버그 수정.) Inputs: base_mask : 원본 마스크(원본이미지를 마스크 컨버트로 출력후 연결) edit_mask : 수정 마스크(마스크 에디터로 수정영역 그린 후 연결) color : 강조 색상(red/green/blue) Outputs: preview : 변경된 영역을 색상으로 강조한 이미지 처리방식 원본과 편집 마스크를 비교하여 차이 영역만 추출, 전체 영역은 반투명 처리하고 차이 영역은 지정 색상으로 강조