C10: 확산 모델의 샘플러와 스케줄러 마스터하기: 종합 가이드

확산 모델을 사용할 때 최적의 결과를 얻으려면 샘플러와 스케줄러의 작동 방식을 이해하는 것이 중요합니다. 이러한 구성 요소는 잠재 공간에서 노이즈가 제거되는 방식에 영향을 미쳐 최종 출력의 품질과 특성을 결정합니다. 이 가이드에서는 샘플러의 작동 방식을 자세히 살펴보고, 그 중요성을 설명하며, 워크플로에 가장 적합한 샘플러-스케줄러 조합을 선택하기 위한 실행 가능한 단계를 제공합니다.



샘플러란?

샘플러는 확산 모델에서 이미지 생성의 근간인 확산 과정을 안내하는 알고리즘입니다. 개략적으로 확산 모델은 무작위 노이즈 필드에서 시작해 이를 반복적으로 정제하여 일관된 이미지를 생성합니다. 샘플러는 각 단계에서 노이즈 제거 과정을 제어함으로써 이러한 정제가 어떻게 이루어지는지를 결정합니다.

샘플러 작동 방식

  1. 잠재 공간 표현:
    확산 모델은 이미지의 고차원 표현인 잠재 공간에서 동작합니다. 처음에는 잠재 공간이 무작위 노이즈로 채워져 있습니다.
  2. 반복적 정제:
    샘플러는 일련의 수학 연산을 사용해 잠재 공간에서 노이즈를 반복적으로 제거하면서 동작합니다. 이러한 연산은 샘플링 알고리즘에 의해 정의되며, 노이즈 제거의 속도와 방식을 결정합니다.
  3. 노이즈 주입(선택 사항):
    앤세스트럴 샘플러와 같은 일부 샘플러는 각 단계에서 추가 노이즈를 주입합니다. 이러한 확률적 접근 방식은 무작위성을 도입하여 모델이 더 다양한 가능성을 탐색하고 더 미세한 디테일을 표현할 수 있게 합니다.
  4. 수렴과 발산:
    • 수렴형 샘플러: 잠재 공간을 점진적으로 정제하여 나중 단계가 이전 단계와 매우 유사해지도록 함으로써 더 부드럽고 예측 가능한 결과를 만듭니다.
    • 발산형 샘플러: 무작위성을 도입하여 나중 단계가 이전 단계와 달라질 수 있게 하며, 이를 통해 더 자연스럽거나 자세한 출력을 얻을 수 있습니다.
  5. 최종 디코딩:
    정제 과정이 완료되면 모델별 디코더(예: DAE 디코더)를 사용하여 잠재 공간을 디코딩해 최종 이미지를 생성합니다.

샘플러가 중요한 이유

샘플러는 다음에 직접적인 영향을 미치기 때문에 중요합니다:

  • 이미지 품질: 부드러움, 디테일 해상도, 아티팩트 존재 여부는 사용하는 샘플러에 따라 달라집니다.
  • 모델 호환성: 모든 샘플러가 모든 확산 모델과 작동하는 것은 아닙니다. 호환되지 않는 샘플러를 선택하면 결과가 나빠지거나 사용할 수 없는 출력이 나올 수 있습니다.
  • 처리 시간: 일부 샘플러는 다른 샘플러보다 계산량이 많아 이미지 생성에 필요한 시간에 영향을 미칩니다.

ComfyUI 워크플로에서의 샘플러
샘플러 이름설명사용 사례장점단점
Euler노이즈 제거에 오일러 방법을 사용하는 단순하고 빠른 샘플러.기본 워크플로, 빠른 테스트, 낮은 복잡도의 모델.빠르고 계산 효율적입니다.디테일이 부족하거나 품질이 낮은 결과를 낼 수 있습니다.
Euler_Cfg_PP더 나은 제어를 위해 CFG(Classifier-Free Guidance, 분류기 없는 가이던스)와 결합한 Euler 샘플러.이미지 생성에 정밀한 가이던스가 필요한 시나리오.최종 출력에 대한 제어가 향상됩니다.기본 Euler 샘플러보다 약간 느립니다.
Euler_Ancestral더 다양한 출력을 위해 무작위성을 도입한 Euler 변형.출력의 변화가 필요한 창의적 워크플로.다양하고 독특한 결과를 만듭니다.출력에 노이즈나 불일치가 생길 수 있습니다.
Euler_Ancestral_Cfg_PPEuler Ancestral과 CFG를 결합하여 가이드되지만 다양한 출력을 만듭니다.제어된 무작위성을 가진 창의적 워크플로.다양성과 제어를 효과적으로 균형 있게 맞춥니다.더 느리고 계산 집약적일 수 있습니다.
Heun노이즈 제거 정확도를 높이기 위해 Heun 방법을 사용하는 샘플러.Euler보다 높은 정확도가 필요한 시나리오.더 부드럽고 정제된 결과를 만듭니다.정확도가 높아 Euler보다 약간 느립니다.
DPM_22차 노이즈 제거 확산 확률 모델(DPM) 샘플러.자세한 결과가 필요한 고품질 워크플로.미세한 디테일을 갖춘 고품질 출력을 만듭니다.계산 집약적이고 느립니다.
DPM_2_Ancestral다양한 출력을 위해 DPM_2 샘플러에 무작위성을 도입합니다.출력의 다양성이 필요한 창의적 워크플로.품질을 유지하면서 다양한 출력을 만듭니다.일관되지 않은 결과를 낼 수 있습니다.
DPM_Fast속도를 위해 설계된 더 빠른 DPM 변형.허용 가능한 품질로 빠른 결과가 필요한 워크플로.다른 DPM 변형보다 빠릅니다.속도를 위해 일부 디테일과 품질을 희생할 수 있습니다.
DPM_Adaptive확산 중에 노이즈 제거 과정을 동적으로 조정합니다.적응형 정제가 필요한 복잡한 워크플로.균형 잡히고 적응적인 결과를 만듭니다.계산 요구량이 높습니다.
DPM++_2S_Cfg_PP고품질 출력을 위해 최적화된 가이드형 DPM++ 샘플러.가이드형 정제가 필요한 정밀 중심 워크플로.매우 정제되고 자세한 결과를 만듭니다.느리고 세심한 조정이 필요합니다.
DPM++_SDE확률 미분 방정식(SDE) 기반 DPM++ 샘플러.노이즈 제어와 부드러운 출력이 필요한 시나리오.부드럽고 아티팩트가 없는 결과를 만듭니다.계산 집약적이고 느립니다.
DPM++_2M2차 다단계 DPM++ 샘플러.다단계 정제가 필요한 고품질 워크플로.자세하고 고품질의 결과를 만듭니다.계산 요구량이 높습니다.
DDIM더 빠른 추론을 위한 노이즈 제거 확산 암시적 모델(DDIM) 샘플러.허용 가능한 품질로 더 빠른 결과가 필요한 시나리오.기존 확산 샘플러보다 빠릅니다.약간 덜 자세한 출력을 낼 수 있습니다.
Uni_PCUni-PC(Uniform Predictor-Corrector, 균일 예측자-교정자) 방법을 사용하는 샘플러.균형 잡힌 노이즈 제거가 필요한 워크플로.균형 잡히고 예측 가능한 결과를 만듭니다.복잡한 워크플로에서는 유연성이 제한적입니다.
Uni_PC_BH2노이즈 제거 기능을 강화한 Uni-PC 변형.부드러운 출력이 필요한 고정밀 워크플로.Uni-PC보다 더 부드럽고 정제된 결과를 만듭니다.계산 요구량이 높습니다.
IPNDM반복 확률 노이즈 확산 모델 샘플러.정밀한 노이즈 제어가 필요한 반복 워크플로.매우 자세하고 정제된 출력을 만듭니다.반복 처리로 인해 느립니다.
DEIS확산 기반 효율적 추론 샘플러.효율적이고 빠른 추론이 필요한 시나리오.빠르고 계산 효율적입니다.속도를 위해 일부 품질을 희생할 수 있습니다.
Gradient_Estimation확산 중 그래디언트 추정에 중점을 둔 샘플러.그래디언트 분석이 필요한 연구 기반 워크플로.자세한 그래디언트 정보를 제공합니다.범용 이미지 생성에 최적화되지 않았습니다.

스케줄러란?

스케줄러는 각 단계에서 노이즈를 제거하는 방법을 정의함으로써 샘플링 과정을 제어합니다. 샘플러가 정제에 사용되는 알고리즘을 결정하는 반면, 스케줄러는 노이즈 제거의 속도와 패턴을 결정합니다.

Stable Diffusion용 스케줄러

스케줄러 작동 방식

스케줄러는 다음과 같이 샘플링 과정을 조율합니다:

  1. 노이즈 제거 전략:
    각 단계에서 동일한 양의 노이즈를 제거할지, 아니면 속도를 동적으로 조정할지를 결정합니다.
  2. 단계 조정:
    단계 수가 늘어남에 따라 정제 과정이 어떻게 전개되는지를 제어합니다. 예를 들어:
    • 균일 스케줄러는 각 단계에서 고정된 양의 노이즈를 제거합니다.
    • 동적 스케줄러는 과정이 진행될수록 제거하는 노이즈를 줄여, 나중 단계에서 더 세밀한 조정을 가능하게 합니다.
  3. 샘플러 성능 향상:
    샘플러를 적절한 스케줄러와 결합하면 이미지 품질을 크게 향상시키고 아티팩트를 줄일 수 있습니다.

스케줄러설명사용 사례장점단점
Normal표준 균일 노이즈 제거 과정을 적용하는 기본 스케줄러.기본 워크플로와 범용 이미지 생성.사용하기 쉽고 대부분의 샘플러와 폭넓게 호환됩니다.최적의 샘플러와 결합하지 않으면 노이즈가 많은 결과나 아티팩트가 생길 수 있습니다.
Karras노이즈 제거를 점진적으로 조정하는 동적 스케줄러로, 결과를 개선하는 경우가 많습니다.고품질의 아티팩트 없는 출력이 필요한 고급 워크플로.아티팩트를 줄이고 이미지 품질을 향상시킵니다.특정 샘플러에 맞게 미세 조정이 필요할 수 있습니다.
Exponential초기 단계를 강조하면서 지수 패턴으로 노이즈를 점진적으로 줄입니다.초기 단계 정제가 중요한 시나리오.잠재 공간에서 더 부드러운 전환을 만듭니다.나중 단계에서 미세한 디테일을 표현하는 데 어려움을 겪을 수 있습니다.
SGM_Uniform확률적 그래디언트 방법에 맞게 조정되어 균일 노이즈 제거를 적용하는 스케줄러.확률적 워크플로와 SGM 기법에 최적화된 모델에 적합합니다.모든 단계에서 일관된 노이즈 제거를 보장합니다.동적 노이즈 조정이 필요한 모델에서는 유연성이 부족할 수 있습니다.
Simple복잡도가 최소인 간단한 스케줄러.빠른 테스트와 단순함이 선호되는 워크플로.빠르고 구성하기 쉽습니다.고품질 출력을 위한 최적화 기능이 제한적입니다.
DDIM_Uniform균일 노이즈 제거를 적용한 DDIM(노이즈 제거 확산 암시적 모델)용으로 설계된 스케줄러.일관된 노이즈 감소가 필요한 DDIM 기반 워크플로.DDIM 샘플러와의 호환성을 보장합니다.DDIM이 아닌 샘플러와는 잘 작동하지 않을 수 있습니다.
Beta베타 분포를 사용하여 노이즈 제거를 제어하고 특정 단계를 강조합니다.확산 과정의 특정 단계를 특별히 강조해야 하는 시나리오.노이즈 제거 패턴에 대한 제어가 향상됩니다.자세한 구성과 베타 분포에 대한 이해가 필요합니다.
Linear_Quadratic노이즈 제거를 위해 선형 패턴과 이차 패턴을 결합합니다.점진적 노이즈 감소와 공격적 노이즈 감소의 조합이 필요한 복잡한 워크플로.부드러운 전환과 날카로운 정제의 균형을 맞춥니다.적절한 샘플러와 결합하지 않으면 일관되지 않은 결과를 낼 수 있습니다.
KL_Optimal노이즈 아티팩트를 최소화하기 위해 KL 발산을 사용하여 최적화된 스케줄러.노이즈와 아티팩트를 최소화해야 하는 고정밀 워크플로.고품질의 아티팩트 없는 출력을 만듭니다.계산 집약적이며 세심한 조정이 필요할 수 있습니다.

Karus Scheduler

  • 작동 방식: 단계 수에 따라 노이즈 제거 속도를 동적으로 조정하여 더 부드러운 결과를 위해 정제 과정을 최적화합니다.
  • 장점: 샘플러 성능을 향상시키며, 특히 다음과 같은 샘플러에 효과적입니다: dpmpp_2m.
  • 제한 사항: 특정 워크플로에 가장 적합한 설정을 찾으려면 실험이 필요할 수 있습니다.

실용 워크플로: 샘플러와 스케줄러 선택

단계별 프로세스

  1. 샘플러 선택:
    • 부드럽고 예측 가능한 결과를 위해 Euler와 같은 표준 샘플러로 시작합니다.
    • 더 자연스럽거나 대비가 높은 출력을 위해 Euler Ancestral 또는 UniPC로 전환합니다.
    • 고급 작업에는 DPM 계열 샘플러를 사용해 보세요.
  2. 호환성 테스트:
    • 샘플러가 확산 모델과 호환되는지 확인하세요. 예를 들어 Juggernaut XL에서는 LMS를 피하세요.
  3. 워크플로 실행:
    • 선택한 샘플러를 사용하여 이미지 생성 과정을 실행합니다.
    • 결과를 관찰하면서 아티팩트, 수렴 또는 발산에 주목합니다.
  4. 스케줄러 조정:
    • 출력에 노이즈가 많거나 아티팩트가 많으면 Karus와 같은 동적 스케줄러로 전환합니다.
    • 워크플로를 다시 실행하고 결과를 비교합니다.
  5. 출력 비교:
    • 대기열 패널을 사용하여 다양한 샘플러-스케줄러 조합으로 생성된 이미지 사이를 이동합니다.
    • 디테일, 대비, 아티팩트 해상도의 차이를 평가합니다.

예시: 샘플러와 스케줄러 비교

시나리오 설정

  • 프롬프트: “A vibrant sunset over a mountain range with clouds, realistic style.”
  • 고정 시드: 599869489844012
  • CheckPoint: Realistic Vision 5.1
  • 단계 수: 50
  • CFG 스케일: 7.5
  • 해상도: 512×512

비교 표

샘플러와 스케줄러 조합결과 설명강점약점
Euler + Normal일몰과 산이 선명한 기본 이미지를 생성하지만 미세한 디테일이 부족합니다.빠르고 계산 효율적입니다.구름이 평면적으로 보이고 색상이 생동감이 부족할 수 있습니다.
Euler_Ancestral + Karras부드럽고 무작위적인 구름 형태를 가진 더 생생한 이미지를 생성합니다.이미지에 다양성과 예술적 감각을 더합니다.산 모양에 약간의 불일치가 생길 수 있습니다.
DPM++_2M + Exponential산 가장자리가 선명하고 구름이 부드러운, 매우 자세하고 사실적인 이미지를 만듭니다.고품질의 사실적인 결과를 만듭니다.계산 집약적이고 느립니다.
DDIM + Linear_Quadratic디테일이 좋고 요소 간 전환이 부드러운 균형 잡힌 이미지를 만듭니다.적당한 품질을 유지하면서 DPM++ 변형보다 빠릅니다.DPM++ 샘플러의 극단적인 정제에는 미치지 못할 수 있습니다.
DPM++_2S_Cfg_PP + KL_Optimal정교한 구름 디테일과 선명한 산 질감을 가진 놀라울 정도로 사실적인 일몰을 생성합니다.가장 높은 수준의 정제와 아티팩트 없는 출력을 제공합니다.상당한 계산 리소스와 더 긴 처리 시간이 필요합니다.
DPM_Fast + Beta색상과 질감이 좋고 상당히 자세한 이미지를 만듭니다.대부분의 DPM 기반 샘플러보다 빠릅니다.속도를 위해 일부 디테일과 선명도를 희생할 수 있습니다.
Gradient_Estimation + Karras일몰과 산 사이에 그래디언트 같은 전환이 있는 예술적인 이미지를 생성합니다.창의적 또는 연구 워크플로에 이상적입니다.사실적인 출력에는 적합하지 않을 수 있습니다.
DEIS + Normal허용 가능한 품질의 적당히 자세한 이미지를 빠르게 만듭니다.매우 빠르고 계산 효율적입니다.구름과 산이 지나치게 단순해 보일 수 있습니다.

시각적 비교 예시

1. Euler + Normal

  • 출력: 산과 구름이 보이는 기본 이미지이지만 정교한 질감이 부족합니다.
  • 사용 사례: 빠른 프로토타이핑 또는 테스트.

2. Euler_Ancestral + Karras

  • 출력: 생생한 색상과 무작위 구름 형태를 갖추고 예술적 해석 쪽으로 기울어집니다.
  • 사용 사례: 다양성이 우선시되는 창의적 워크플로.

3. DPM++_2M + Exponential

  • 출력: 매우 자세한 산과 구름, 부드러운 전환, 사실적인 조명 효과.
  • 사용 사례: 고품질의 사실적인 이미지 생성.

4. DDIM + Linear_Quadratic

  • 출력: 디테일이 좋고 그래디언트가 부드러운 균형 잡힌 이미지로, 범용으로 적합합니다.
  • 사용 사례: 품질을 크게 희생하지 않으면서 더 빠른 워크플로.

핵심 요약

빠른 샘플러(Euler, DEIS):

빠른 결과에 적합하지만 디테일과 정제가 부족할 수 있습니다.

프로토타이핑이나 리소스가 적은 환경에 유용합니다.

고품질 샘플러(DPM++ 변형):

사실적이고 자세한 이미지를 생성하지만 계산 집약적입니다.

최종 제작이나 높은 정밀도가 필요한 워크플로에 이상적입니다.

창의적 샘플러(앤세스트럴 변형):

무작위성과 다양성을 도입하여 예술적 출력에 이상적입니다.

창의성을 위해 일관성이나 사실성을 희생할 수 있습니다.

스케줄러 영향:

Normal: 큰 개선이 없는 표준 결과.

Karras: 생동감을 높이고 아티팩트를 줄입니다.

Exponential: 부드러운 전환과 초기 정제.


샘플러와 스케줄러 선택 최적화 팁

  1. 실험이 핵심입니다:
    여러 샘플러-스케줄러 조합을 테스트하여 모델과 사용 사례에 최적의 조합을 찾으세요.
  2. 모델 요구 사항 이해:
    확산 모델과 특정 샘플러 및 스케줄러 간의 호환성을 조사하세요. 예를 들어 DPM 계열 샘플러는 최상의 결과를 위해 동적 스케줄러가 필요한 경우가 많습니다.
  3. 다양성을 위해 앤세스트럴 샘플러 사용:
    다양하고 자연스러운 출력을 생성하는 것이 목표라면 Euler Ancestral과 같은 앤세스트럴 샘플러 사용을 고려하세요.
  4. 동적 스케줄러 활용:
    Karus와 같은 동적 스케줄러와 샘플러를 결합하여 성능을 향상시키고 아티팩트를 줄입니다.

결론

샘플러와 스케줄러는 확산 모델의 근간이며 생성된 이미지의 품질과 특성을 결정합니다. 그 작동 방식을 이해하고 조합을 실험함으로써 워크플로의 잠재력을 최대한 발휘할 수 있습니다. 수렴형 샘플러로 부드러운 출력을 정제하든, 앤세스트럴 변형으로 정교한 디테일을 표현하든, 적절한 스케줄러가 큰 차이를 만들 수 있습니다.

댓글 남기기