콘텐츠로 이동

ExtractKeyColors

어떤 노드인가요?

ExtractKeyColors 노드는 KMeans 클러스터링 또는 Median Cut (MMCQ) 알고리즘을 사용하여 이미지를 분석하고 가장 두드러진 색상을 추출합니다. 이미지 내 빈도수에 따라 색상을 자동으로 정렬하고 추출된 각 색상에 대해 동적 색상 선택기(Color picker) 파라미터를 생성하므로 색상 팔레트 생성, 브랜드 분석 및 디자인 워크플로우에 매우 적합합니다.

언제 사용하나요?

다음과 같은 작업에 이 노드를 사용하세요:

  • 디자인 프로젝트를 위해 이미지에서 색상 팔레트를 생성할 때
  • 로고 및 마케팅 자료의 지배적인 색상을 분석할 때
  • 이미지에서 브랜드 색상을 추출할 때
  • 이미지 콘텐츠를 기반으로 색상 배색을 구성할 때
  • 색상 기반 필터 및 효과를 구축할 때
  • 시각화 프로젝트를 위한 색상 데이터를 생성할 때
  • 사진의 색상 분포를 분석할 때
  • 시각적 레퍼런스로부터 디자인 시스템을 구축할 때

사용 방법

기본 설정

  1. 워크플로우에 ExtractKeyColors 노드를 추가합니다.
  2. 이미지 소스를 "input_image" 입력에 연결합니다.
  3. 추출할 색상 수를 설정합니다.
  4. 추출된 색상은 동적 색상 선택기 파라미터(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) 패널에서 확인 가능
    • 색상 기반 워크플로우를 위해 다른 노드에 연결 가능

예시

일반적인 색상 추출 워크플로우:

  1. LoadImage 또는 GenerateImage를 사용하여 이미지를 로드하거나 생성합니다.
  2. 해당 이미지를 ExtractKeyColors 노드의 "input_image" 파라미터에 연결합니다.
  3. 상위 5개의 주요 색상을 추출하기 위해 num_colors를 5로 설정합니다.
  4. 노드가 이미지를 분석하고 5개의 색상 파라미터를 생성합니다:
    • color_1: 가장 두드러진 색상 (가장 높은 빈도)
    • color_2: 두 번째로 두드러진 색상
    • color_3: 세 번째로 두드러진 색상
    • 기타 순차적으로 생성...
  5. 속성 패널에서 추출된 색상을 확인합니다.
  6. 색상 출력을 다른 노드에 연결하여 색상 기반 처리를 수행합니다.

중요 참고 사항

  • 알고리즘 선택: KMeans(정확한 클러스터링)와 Median Cut(균형 잡힌 색 공간) 중에서 선택할 수 있습니다.
  • 자동 정렬: 색상은 이미지 내 빈도수에 따라 자동으로 정렬됩니다.
  • 색상 다양성: 두 알고리즘 모두 추출된 색상이 서로 구별되고 대표성을 갖도록 보장합니다.
  • 동적 파라미터: 요청한 수만큼의 색상 파라미터만 노드에 생성됩니다.
  • 실시간 처리: 이미지가 변경되면 색상이 즉시 추출됩니다.
  • Hex 포맷: 모든 색상은 16진수 값(#RRGGBB)으로 제공됩니다.
  • 호환성: 호환성 문제 없이 Pillow 11+ 및 NumPy 1.20+에서 작동합니다.

자주 묻는 질문 및 문제 해결

  • 추출된 색상이 너무 적음: 더 많은 색상을 추출하려면 num_colors 설정을 늘리세요.
  • 색상이 너무 유사함: KMeans 알고리즘은 색상 다양성을 보장하지만, 이미지 전체가 매우 단조로운 경우 유사한 색상이 나올 수 있습니다.
  • 처리 시간: 이미지가 클수록 처리 시간이 길어질 수 있습니다.
  • 색상이 추출되지 않음: 이미지 소스가 제대로 연결되어 있고 유효한 이미지 데이터가 포함되어 있는지 확인하세요.

기술 세부사항

이 노드는 정교한 색상 추출 프로세스를 사용합니다:

  1. 이미지 변환: 입력 이미지를 PIL 이미지 포맷으로 변환하고 RGB 색 공간을 확보합니다.
  2. 알고리즘 선택: 검증된 두 가지 색상 추출 알고리즘 중 선택합니다:
    • KMeans: scikit-learn의 KMeans 클러스터링을 사용하여 지배적인 색상 클러스터를 식별합니다.
      • 지각적 유사성을 기반으로 유사한 픽셀을 클러스터로 그룹화
      • 각 클러스터의 대표 색상 식별
      • 클러스터 크기(픽셀 수)에 따라 색상 정렬
    • Median Cut (MMCQ): Modified Median Cut Quantization 알고리즘
      • 색 공간을 버킷으로 반복 분할
      • 항상 색상 범위가 가장 큰 버킷을 분할
      • 정확히 요청된 색상 수에서 중지
      • 버킷 크기(픽셀 수)에 따라 색상 정렬
  3. 빈도 분석: 추출된 각 색상에는 이미지 내 빈도/중요도가 포함됩니다.
  4. 자동 정렬: 색상은 빈도순(가장 지배적인 색상 우선)으로 자동 정렬됩니다.
  5. 색상 다양성: 두 알고리즘 모두 추출된 색상이 뚜렷하게 구별되고 대표성을 지니도록 보장합니다.
  6. 동적 UI 생성: 추출된 각 색상에 대해 색상 선택기 파라미터를 생성합니다.

알고리즘 장점

  • KMeans 알고리즘:

    • 지각적 유사성을 기반으로 한 정확한 색상 클러스터링
    • 뚜렷한 색상 영역이 있는 이미지에 탁월함
    • 그라데이션 및 색상 전환을 효과적으로 처리
  • Median Cut 알고리즘:

    • 균형 잡힌 색 공간 표현
    • 클래식 양자화(Quantization) 방식
    • 균일한 색상 분포를 가진 이미지에 적합
    • 대용량 이미지의 경우 KMeans보다 빠름
  • 공통 장점:

    • 안정적인 라이브러리(sklearn, numpy)를 사용한 네이티브 Python 구현
    • Pillow 11+ 및 NumPy 1.20+ 호환
    • 다양한 크기의 이미지에 대한 효율적인 처리
    • 각 색상에 대한 빈도 데이터 내장

이를 통해 최신의 유지 관리되는 라이브러리를 사용한 전문가급 색상 추출 솔루션을 제공하며, 창의적인 워크플로우와 기술적인 워크플로우 모두에 적합합니다.