본문 바로가기

논문 리뷰/Diffusion Model

Common Diffusion Noise Schedules and Sample Steps are Flawed (Zero Terminal SNR)

[arXiv](Current version v2)

 

Isabella, child of dark

 

Introduction

Stable Diffusion은 중간 밝기의 이미지만 생성하고 매우 밝거나 어두운 이미지를 생성하지 못한다.

 

따라서 몇 가지 간단한 수정:

  • Noise schedule을 재조정하여 zero terminal SNR을 강제함
  • v-prediction으로 모델 훈련
  • 항상 마지막 timestep에서 샘플러가 시작하도록 함
  • Classifier-free guidance를 재조정

 

 

 

Background

확산 모델 (개념, 수식, 코드)

 

순방향:

 

Signal-to-noise ratio (SNR):

 

역방향:

 

 

 

Methods

Enforce Zero Terminal SNR

어떤 스케줄도 zero SNR에 도달하지 못한다.

 

xT에는 여전히 각 채널의 전체 평균과 같은 가장 낮은 주파수 정보가 포함되어 있고, 제거되거나 추가되는 노이즈는 평균이 0이기 때문에 보존될 확률이 높다. 평균을 이동시키는 방법을 배우지 잘 배우지 못하는 것이다.

 

추론 시에는 평균이 0인 순수한 노이즈에서 시작하므로, 모델은 매우 어둡거나 밝은 이미지를 생성하지 못한다.

 

간단한 방법은 √ᾱ1은 보존하고 √ᾱt를 0으로 변경한 다음 [2 ~ t-1]을 선형적으로 조정하는 것이다.

 

Train with V Prediction and V Loss

0에 수렴하는 작은 SNR에서도 안정적으로 작동하는 v-prediction(마지막 챕터 참고), v-loss를 사용한다.

 

Zero SNR, v-prediction을 적용하여 stable diffusion을 fine-tuning 한다.

 

Sample from the Last Timestep

최신 sampler는 dense timestep(T = 100)에서 훈련하고 추론 시 적은 sampling step(S = 25)을 사용한다.

 

추론 시에도 마찬가지로 SNR = 0에서 시작하여야 한다.

2가지 샘플링 step 소개 (Linspace, Trailing):

 

t = 1 step은 출력과 거의 차이가 없어 의미가 없기 때문에 trailing을 선택하였다.

 

Rescale Classifier-Free Guidance

SNR이 0에 가까워질수록 CFG가 민감해지기 때문에 새로운 스케일링 방법 제안.

 

일반적인 CFG :

 

Rescaled CFG : 

 

하지만 스케일링 시 지나치게 단순한 이미지가 생성되었기 때문에 새로운 하이퍼피라미터 도입 :

 

 

 

Evaluation

Stable diffusion 2.1 기반