본문 바로가기
Comfy UI 연구실

CFG와 샘플러

by 지나가는 프로도 2025. 2. 7.

CFG

CFG(Classifier Free Guidance)는 AI 이미지 생성에서 중요한 파라미터입니다. 주요 내용을 설명드리면:

  1. 기본 개념:
  • 텍스트 프롬프트와 생성되는 이미지 간의 일치도를 조절하는 값입니다
  • 보통 1에서 20 사이의 값을 사용하며, 기본값은 대체로 7이나 8입니다
  1. 값의 의미:
  • 높은 CFG 값 (예: 12-20): 프롬프트를 매우 엄격하게 따르려고 합니다. 이미지가 더 선명하고 극적이지만, 때로는 부자연스러울 수 있습니다
  • 낮은 CFG 값 (예: 1-5): 더 자유롭고 창의적인 해석을 허용합니다. 이미지가 자연스럽지만, 프롬프트와 덜 일치할 수 있습니다
  • 중간 CFG 값 (예: 6-11): 대부분의 경우 균형 잡힌 결과를 제공합니다
  1. 사용 팁:
  • 사실적인 이미지를 원할 때는 중간 값(7-8)이 좋습니다
  • 아트워크나 일러스트는 더 높은 값(10-12)이 효과적일 수 있습니다
  • 실험적이거나 추상적인 결과를 원할 때는 낮은 값(3-5)을 시도해보세요

CFG는 이미지 생성의 품질과 스타일을 미세 조정하는 데 매우 유용한 도구입니다. 프로젝트의 목적에 따라 적절한 값을 실험해보시는 것을 추천드립니다.

 

Sampler의 종류

DDIM (Denoising Diffusion Implicit Models)

  • 딥러닝에서 사용되는 생성 모델의 한 종류
  • 점진적으로 노이즈를 제거하면서 이미지를 생성하는 암묵적 확산 모델
  • 2020년에 Song et al.이 제안한 모델

 

PLMS (Pseudo Linear Multistep)

  • 여러 단계의 선형적 근사를 사용하는 수치해석 방법
  • DDIM을 개선한 방식으로, 더 안정적인 생성 과정을 제공

 

DPM (Diffusion Probabilistic Models)

  • 확산 확률 모델의 약자
  • 노이즈를 단계적으로 제거하면서 이미지를 생성하는 확률적 접근 방식
  • 여러 변형이 존재:
    • DPM++: 개선된 DPM 알고리즘
    • DPM 2M: 2nd order Multistep DPM
    • SDE: Stochastic Differential Equation의 약자로, 확률적 미분방정식을 활용

 

Euler / Euler a

  • Euler: 오일러 방법으로 불리는 수치해석 방법
  • Euler a: Ancestral sampling을 사용하는 오일러 방법의 변형

 

UniPC (Unified Predictor-Corrector)

  • 예측자-교정자 방법을 통합한 접근 방식
  • 2023년에 제안된 비교적 최신 샘플러
  • 적은 스텝으로도 높은 품질을 달성하는 것이 특징

 

Heun

  • Heun's method로 불리는 수치적분 방법
  • 오일러 방법을 개선한 2단계 룽게-쿠타(Runge-Kutta) 방법의 한 종류

 

LMS (Linear Multistep)

  • 선형 다단계 방법
  • 여러 이전 단계의 정보를 활용하여 다음 단계를 계산

 

Karras

  • NVIDIA의 연구자 Tero Karras의 이름을 딴 스케줄링 방식
  • 노이즈 스케줄링을 최적화하여 더 나은 품질의 이미지를 생성
  • 주로 다른 샘플러와 결합하여 사용 (예: DPM++ 2M Karras)

 

이러한 샘플러들은 각각 수학적, 확률적 접근 방식의 차이가 있으며, 계속해서 새로운 방법들이 연구되고 있습니다.

 

추가적인 의미 분석

  1. ++ (Plus Plus)의 의미
  • 기존 알고리즘의 개선/향상 버전을 의미
  • 예: DPM++ = DPM의 개선된 버전

 

  1. 2M의 의미
  • "2nd order Multistep"의 약자
  • 2차 정확도를 가진 다단계 방법을 의미
  • 예: DPM++ 2M = DPM++의 2차 다단계 버전

 

  1. SDE의 의미
  • "Stochastic Differential Equation"의 약자
  • 확률적 미분방정식을 사용하는 방식
  • 더 자연스러운 노이즈 처리가 가능

 

따라서 전체 이름의 의미를 분석하면:

DPM++ 2M SDE Karras의 경우:

  • DPM: 기본 확산 확률 모델
  • ++: 개선된 버전
  • 2M: 2차 다단계 방법 적용
  • SDE: 확률적 미분방정식 사용
  • Karras: Karras 노이즈 스케줄링 적용

 

DPM++ 2M Karras의 경우:

  • DPM: 기본 확산 확률 모델
  • ++: 개선된 버전
  • 2M: 2차 다단계 방법
  • Karras: Karras 노이즈 스케줄링

이처럼 각 샘플러의 이름은 그것이 사용하는 기술과 개선사항들을 조합하여 만들어졌습니다. 더 뒤에 붙은 용어일수록 최신에 추가된 개선사항을 의미하는 경우가 많습니다.