ExtractKeyColors
어떤 노드인가요?
ExtractKeyColors 노드는 KMeans 클러스터링 또는 Median Cut (MMCQ) 알고리즘을 사용하여 이미지를 분석하고 가장 두드러진 색상을 추출합니다. 이미지 내 빈도수에 따라 색상을 자동으로 정렬하고 추출된 각 색상에 대해 동적 색상 선택기(Color picker) 파라미터를 생성하므로 색상 팔레트 생성, 브랜드 분석 및 디자인 워크플로우에 매우 적합합니다.
언제 사용하나요?
다음과 같은 작업에 이 노드를 사용하세요:
- 디자인 프로젝트를 위해 이미지에서 색상 팔레트를 생성할 때
- 로고 및 마케팅 자료의 지배적인 색상을 분석할 때
- 이미지에서 브랜드 색상을 추출할 때
- 이미지 콘텐츠를 기반으로 색상 배색을 구성할 때
- 색상 기반 필터 및 효과를 구축할 때
- 시각화 프로젝트를 위한 색상 데이터를 생성할 때
- 사진의 색상 분포를 분석할 때
- 시각적 레퍼런스로부터 디자인 시스템을 구축할 때
사용 방법
기본 설정
- 워크플로우에 ExtractKeyColors 노드를 추가합니다.
- 이미지 소스를 "input_image" 입력에 연결합니다.
- 추출할 색상 수를 설정합니다.
- 추출된 색상은 동적 색상 선택기 파라미터(color_1, color_2 등)로 제공됩니다.
파라미터 (Parameters)
이미지 입력 (Image Input)
- input_image: 분석할 이미지 (다른 이미지 노드에서 연결 가능)
- 일반적인 포맷 지원: JPG, PNG, GIF, BMP, TIFF, ICO, WEBP
- ImageArtifact 또는 ImageUrlArtifact 허용
- 간편한 이미지 선택을 위한 파일 브라우저 연동 지원
색상 설정 (Color Settings)
-
num_colors (2-12, 기본값: 3): 추출할 색상 수
- 손쉬운 선택을 위한 슬라이더 인터페이스
- 색상은 중요도(빈도수가 높은 순)에 따라 정렬됨
- 추출된 각 색상은 별도의 출력 파라미터가 됨
-
algorithm (기본값: kmeans): 사용할 색상 추출 알고리즘
- kmeans: 정확한 색상 그룹화를 위해 KMeans 클러스터링 사용
- median_cut: 균형 잡힌 색 공간 분할을 위해 Modified Median Cut Quantization (MMCQ) 사용
- 손쉬운 선택을 위한 드롭다운 메뉴 제공
출력 (Outputs)
추출된 각 색상마다 동적 색상 선택기 파라미터가 생성됩니다:
- color_1, color_2, etc.: 16진수 색상 값 (#RRGGBB)
- 각 파라미터에는 대화형 색상 선택기 UI가 포함됨
- 빈도수 순(가장 지배적인 색상이 먼저 나옴)으로 정렬됨
- 속성(Properties) 패널에서 확인 가능
- 색상 기반 워크플로우를 위해 다른 노드에 연결 가능
예시
일반적인 색상 추출 워크플로우:
- LoadImage 또는 GenerateImage를 사용하여 이미지를 로드하거나 생성합니다.
- 해당 이미지를 ExtractKeyColors 노드의 "input_image" 파라미터에 연결합니다.
- 상위 5개의 주요 색상을 추출하기 위해 num_colors를 5로 설정합니다.
- 노드가 이미지를 분석하고 5개의 색상 파라미터를 생성합니다:
- color_1: 가장 두드러진 색상 (가장 높은 빈도)
- color_2: 두 번째로 두드러진 색상
- color_3: 세 번째로 두드러진 색상
- 기타 순차적으로 생성...
- 속성 패널에서 추출된 색상을 확인합니다.
- 색상 출력을 다른 노드에 연결하여 색상 기반 처리를 수행합니다.
중요 참고 사항
- 알고리즘 선택: KMeans(정확한 클러스터링)와 Median Cut(균형 잡힌 색 공간) 중에서 선택할 수 있습니다.
- 자동 정렬: 색상은 이미지 내 빈도수에 따라 자동으로 정렬됩니다.
- 색상 다양성: 두 알고리즘 모두 추출된 색상이 서로 구별되고 대표성을 갖도록 보장합니다.
- 동적 파라미터: 요청한 수만큼의 색상 파라미터만 노드에 생성됩니다.
- 실시간 처리: 이미지가 변경되면 색상이 즉시 추출됩니다.
- Hex 포맷: 모든 색상은 16진수 값(#RRGGBB)으로 제공됩니다.
- 호환성: 호환성 문제 없이 Pillow 11+ 및 NumPy 1.20+에서 작동합니다.
자주 묻는 질문 및 문제 해결
- 추출된 색상이 너무 적음: 더 많은 색상을 추출하려면 num_colors 설정을 늘리세요.
- 색상이 너무 유사함: KMeans 알고리즘은 색상 다양성을 보장하지만, 이미지 전체가 매우 단조로운 경우 유사한 색상이 나올 수 있습니다.
- 처리 시간: 이미지가 클수록 처리 시간이 길어질 수 있습니다.
- 색상이 추출되지 않음: 이미지 소스가 제대로 연결되어 있고 유효한 이미지 데이터가 포함되어 있는지 확인하세요.
기술 세부사항
이 노드는 정교한 색상 추출 프로세스를 사용합니다:
- 이미지 변환: 입력 이미지를 PIL 이미지 포맷으로 변환하고 RGB 색 공간을 확보합니다.
- 알고리즘 선택: 검증된 두 가지 색상 추출 알고리즘 중 선택합니다:
- KMeans: scikit-learn의 KMeans 클러스터링을 사용하여 지배적인 색상 클러스터를 식별합니다.
- 지각적 유사성을 기반으로 유사한 픽셀을 클러스터로 그룹화
- 각 클러스터의 대표 색상 식별
- 클러스터 크기(픽셀 수)에 따라 색상 정렬
- Median Cut (MMCQ): Modified Median Cut Quantization 알고리즘
- 색 공간을 버킷으로 반복 분할
- 항상 색상 범위가 가장 큰 버킷을 분할
- 정확히 요청된 색상 수에서 중지
- 버킷 크기(픽셀 수)에 따라 색상 정렬
- KMeans: scikit-learn의 KMeans 클러스터링을 사용하여 지배적인 색상 클러스터를 식별합니다.
- 빈도 분석: 추출된 각 색상에는 이미지 내 빈도/중요도가 포함됩니다.
- 자동 정렬: 색상은 빈도순(가장 지배적인 색상 우선)으로 자동 정렬됩니다.
- 색상 다양성: 두 알고리즘 모두 추출된 색상이 뚜렷하게 구별되고 대표성을 지니도록 보장합니다.
- 동적 UI 생성: 추출된 각 색상에 대해 색상 선택기 파라미터를 생성합니다.
알고리즘 장점
-
KMeans 알고리즘:
- 지각적 유사성을 기반으로 한 정확한 색상 클러스터링
- 뚜렷한 색상 영역이 있는 이미지에 탁월함
- 그라데이션 및 색상 전환을 효과적으로 처리
-
Median Cut 알고리즘:
- 균형 잡힌 색 공간 표현
- 클래식 양자화(Quantization) 방식
- 균일한 색상 분포를 가진 이미지에 적합
- 대용량 이미지의 경우 KMeans보다 빠름
-
공통 장점:
- 안정적인 라이브러리(sklearn, numpy)를 사용한 네이티브 Python 구현
- Pillow 11+ 및 NumPy 1.20+ 호환
- 다양한 크기의 이미지에 대한 효율적인 처리
- 각 색상에 대한 빈도 데이터 내장
이를 통해 최신의 유지 관리되는 라이브러리를 사용한 전문가급 색상 추출 솔루션을 제공하며, 창의적인 워크플로우와 기술적인 워크플로우 모두에 적합합니다.