콘텐츠로 이동

VideoColorMatch

어떤 노드인가요?

VideoColorMatch 노드는 고급 색상 매칭 알고리즘을 사용하여 참조(레퍼런스) 이미지의 색상 특성을 비디오로 전송합니다. 기본적으로 고속 HALD CLUT(Color Lookup Table) 방식을 사용하여 전체 비디오에 색상 변환을 한 번에 적용하므로 기존의 프레임별 처리 방식보다 10~50배 빠릅니다. 이를 통해 참조 이미지의 색상 팔레트와 일치하도록 비디오에 컬러 그레이딩을 적용할 수 있으며, 일관된 시각적 스타일을 연출하거나 푸티지를 특정 미학에 맞추거나 영화 같은(cinematic) 컬러 그레이딩을 적용할 때 유용합니다.

언제 사용하나요?

다음과 같은 상황에서 VideoColorMatch 노드를 사용합니다:

  • 참조 이미지의 컬러 그레이딩을 비디오에 적용하고 싶을 때
  • 일관성을 위해 여러 비디오 클립의 색상 팔레트를 일치시켜야 할 때
  • 영화 스틸 컷이나 포스터를 기반으로 비디오에 시네마틱한 느낌을 부여하고 싶을 때
  • 특정 미학이나 분위기에 맞춰야 하는 콘텐츠를 제작할 때
  • 최신 푸티지에 빈티지하거나 양식화된 색상 효과를 적용하고 싶을 때
  • 사진의 색상 특성을 비디오 푸티지로 전송해야 할 때

사용 방법

기본 설정

  1. 워크플로우에 VideoColorMatch 노드를 추가합니다.
  2. "reference_image"에 참조 이미지를 연결합니다 (전송하려는 색상 팔레트가 포함된 이미지).
  3. "target_video"에 비디오를 연결합니다 (수정하려는 대상 비디오).
  4. 색상 전송 방식(transfer_method)을 선택합니다.
  5. 강도(strength) 파라미터를 조정하여 효과 세기를 제어합니다.
  6. 워크플로우를 실행하여 색상 전송을 적용합니다.

파라미터 (Parameters)

입력 (Inputs)

  • reference_image: 전송할 색상 팔레트를 제공하는 참조 이미지 (ImageArtifact 및 ImageUrlArtifact 지원)
  • target_video: 색상 전송을 적용할 대상 비디오 (VideoArtifact 및 VideoUrlArtifact 지원)

색상 매칭 설정 (Color Match Settings)

  • transfer_method: 사용할 처리 방식

    • ffmpeg-haldclut: 빠른 HALD CLUT 기반 전송 (10~50배 빠름, 기본값) - 룩업 테이블에 색상 매칭을 한 번 적용한 다음 ffmpeg을 사용하여 전체 비디오를 원패스로 처리합니다.
    • frame-by-frame: 각 프레임을 개별적으로 처리 (더 느리고 메모리 사용량 많음) - color-matcher 라이브러리를 사용하여 각 프레임을 별도로 추출 및 처리합니다.
  • transfer_algorithm: 사용할 색상 전송 알고리즘

    • mkl: Monge-Kantorovich Linearization (빠름, 우수한 품질, 기본값)
    • hm: Histogram Matching (빠름, 보통 품질)
    • reinhard: Reinhard et al. 색상 전송 (빠름, 우수한 품질)
    • mvgd: Multi-Variate Gaussian Distribution (중간 속도, 우수한 품질)
    • hm-mvgd-hm: 복합 방식 (느림, 최고 품질)
    • hm-mkl-hm: 대체 복합 방식 (느림, 최고 품질)
  • strength (0.0-10.0, 기본값: 1.0): 색상 전송의 강도를 제어

    • 0.0 = 변경 없음 (원본 비디오 색상 유지)
    • 1.0 = 전체 색상 전송 (기본값)
    • 1.0 초과 = 효과 과장 및 강조

출력 (Outputs)

  • output: 색상 특성이 전송된 색상 일치 비디오 (VideoUrlArtifact 형태)

출력 비디오는 다음 속성을 유지합니다:

  • 원본 형식 (MP4, MOV 등)
  • 원본 해상도 및 종횡비
  • 원본 프레임 레이트
  • 원본 오디오 트랙 (AAC 192kbps로 인코딩)

예시

기본 컬러 그레이딩

영화 포스터의 색상 팔레트를 비디오에 적용하기:

  1. 워크플로우에 VideoColorMatch 노드를 추가합니다.
  2. 참조 영화 포스터가 있는 LoadImage 노드를 "reference_image"에 연결합니다.
  3. 비디오가 있는 LoadVideo 노드를 "target_video"에 연결합니다.
  4. 기본 "mkl" transfer_algorithm을 유지합니다.
  5. 전체 색상 전송을 위해 "strength"를 1.0으로 설정합니다.
  6. 워크플로우를 실행하면 비디오가 영화 포스터의 색상 팔레트와 일치하게 됩니다.

은은한 빈티지 효과

은은한 빈티지 필름 느낌 적용하기:

  1. 빈티지 사진을 참조 이미지로 불러옵니다.
  2. 최신 비디오를 대상으로 연결합니다.
  3. 자연스러운 휘도 보존을 위해 "transfer_algorithm"을 "reinhard"로 설정합니다.
  4. 은은한 효과를 위해 "strength"를 0.7로 설정합니다.
  5. 워크플로우를 실행하면 향수를 불러일으키는 빈티지 감성의 결과물이 생성됩니다.

방식 실험하기

어떤 미학을 선호하는지 확인하기 위해 여러 알고리즘을 사용해 보세요:

  1. "mkl" 알고리즘으로 짧은 클립(2~3초)을 처리합니다.
  2. 동일한 클립을 "hm-mvgd-hm" 알고리즘으로 처리합니다.
  3. 결과를 비교하여 선호하는 룩을 선택합니다.
  4. 전체 비디오에 적용합니다.

중요 참고 사항

  • 처리 시간:
    • ffmpeg-haldclut (기본값): 매우 빠른 처리 - 10초 분량의 1080p 30fps 비디오는 일반적으로 수 초 만에 처리됩니다. 대부분의 사용 사례에 권장됩니다.
    • frame-by-frame: 느린 처리 - 동일한 10초 비디오 처리에 3~5분이 소요될 수 있습니다. 픽셀 단위의 정밀한 제어가 필요하거나 HALD CLUT 방식에서 문제가 발생하는 경우 유용합니다.
  • 진행률 표시줄:
    • ffmpeg-haldclut: HALD 생성 시 10%, 색상 매칭 시 20%, 비디오 처리 시 70%로 표시됩니다.
    • frame-by-frame: 프레임 처리 시 0-90%, 비디오 재조합 시 90-100%로 표시됩니다.
  • 비디오 속성: 모든 원본 비디오 속성(형식, 해상도, 프레임 레이트, 재생 시간)이 출력에 보존됩니다.
  • 오디오 보존: 원본 오디오 트랙이 유지됩니다 (ffmpeg-haldclut의 경우 복사, frame-by-frame의 경우 AAC 192kbps로 재인코딩).
  • 메모리 사용량: 두 방식 모두 효율적으로 처리됩니다 (ffmpeg-haldclut는 비디오 스트리밍 방식, frame-by-frame은 순차 처리 방식).

알고리즘 상세 설명

서로 다른 알고리즘은 뚜렷한 미학적 결과를 제공합니다:

  • mkl: 최적 수송(Optimal Transport) 기반의 빠른 방식. 속도와 품질의 균형이 우수하며 일반적인 사용에 가장 적합합니다.
  • hm: 히스토그램을 사용하여 색상 분포를 매칭합니다. 보다 극적인 색상 변화를 생성할 수 있습니다.
  • reinhard: 휘도 구조를 보존하는 통계적 색상 전송 방식. 자연스러운 결과물을 얻는 데 좋습니다.
  • mvgd: 색상을 가우시안 분포로 모델링합니다. 미묘한 색상 관계를 포착하는 데 탁월합니다.
  • hm-mvgd-hm: 히스토그램 매칭 후 MVGD를 적용하고 다시 히스토그램 매칭을 적용하는 정교한 복합 방식입니다.
  • hm-mkl-hm: 중간 단계로 MKL을 사용하는 대체 복합 방식으로 고품질 결과를 제공합니다.

팁 및 모범 사례

참조 이미지 선택

좋은 참조 이미지:

  • 원하는 색상 팔레트가 선명하고 적절히 노출된 이미지
  • 비디오와 유사한 조명 조건을 가진 이미지
  • 최종적으로 원하는 결과물의 룩을 잘 나타내는 참조 이미지

피해야 할 이미지:

  • 지나치게 어둡거나 과도하게 노출된 이미지
  • 비디오와 조명 시나리오가 크게 다른 이미지
  • 부자연스럽거나 지나치게 채도가 높은 참조 이미지 (의도한 것이 아닌 경우)

강도(Strength) 가이드라인

강도 (Strength) 사용 사례
0.3-0.5 매우 은은한 색상 보정, 미세한 분위기 조정
0.6-0.8 뚜렷하지만 자연스러운 컬러 그레이딩
0.9-1.1 전체 색상 전송, 드라마틱한 룩 변화
1.2-2.0 양식화된 예술적 효과
> 2.0 실험적이고 과장된 효과

전송 방식 선택

ffmpeg-haldclut (기본값)를 사용하는 경우:

✓ 대부분의 사용 사례 - 빠르고 우수한 결과를 생성합니다. ✓ 긴 비디오나 고해상도 푸티지를 처리할 때 ✓ 결과를 빠르게 미리보고 싶을 때 ✓ 여러 비디오를 일괄 처리(배치 처리)할 때

frame-by-frame을 사용하는 경우:

  • HALD CLUT 사용 시 예기치 않은 시각적 왜곡(아티팩트)이 발생하는 경우 (드묾)
  • 문제 해결 또는 비교 목적
  • 레거시 처리 방식과 결과를 검증해야 할 때

자주 묻는 질문 및 문제 해결

색상이 너무 과하게 나타남

  • 해결책: "strength"를 0.6-0.8로 낮추세요.
  • 또는 채도가 낮은 참조 이미지를 선택하세요.
  • 또는 원본 휘도를 더 잘 유지하는 "reinhard" 알고리즘을 사용해 보세요.

색상 변화가 충분하지 않음

  • 해결책: "strength"를 1.2-1.5로 높이세요.
  • 또는 색상이 더 뚜렷한 참조 이미지를 선택하세요.
  • 또는 더 강한 전송 효과를 위해 "hm-mvgd-hm" 알고리즘을 사용해 보세요.

처리가 너무 오래 걸림

  • 해결책: "ffmpeg-haldclut" 전송 방식을 사용 중인지 확인하세요 (기본값, 10-50배 빠름).
  • 또는 가장 빠른 알고리즘인 "mkl"을 사용하세요.
  • 또는 Split Video 노드로 원하는 구간만 미리 잘라내어 처리하세요.
  • 또는 Resize Video 노드로 해상도를 낮춘 후 처리하세요.

관련 노드

  • Color Match (Image 카테고리) - 단일 이미지 색상 전송 (동일 알고리즘 사용)
  • Adjust Video EQ (Video 카테고리) - 수동 밝기/대비/채도 조정
  • Add Color Curves (Video 카테고리) - 사전 설정된 컬러 그레이딩 커브 적용