Common Diffusion Noise Schedules and Sample Steps are Flawed

Common Diffusion Noise Schedules and Sample Steps are Flawed 논문 리뷰
김호진's avatar
Oct 29, 2024
Common Diffusion Noise Schedules and Sample Steps are Flawed
원래의 diffusion noise schedule이 마지막 timestep에서 signal-to-noise ratio가 0이되도록 밀어붙이지 않는다는걸 발견했다(z_T가 fully gaussian이 아니라는 뜻).
그리고 몇몇 샘플러들은 T에서 시작하지도 않는다.
이건 문제다! inference 때는 진짜 순수한 Gaussian noise에서 출발할 수 밖에 없으니. 학습과의 괴리가 발생한다.
이게 기존의 모델들에서 발생시킨 문제는 - 중간밝기의 이미지만 만들고 완전히 밝거나 어두운건 못 만든다.
 
  1. rescale the noise schedule to enforze zero SNR
  1. train model with v-prediction
  1. sampler가 항상 T(마지막 timestep)에서 출발하도록 한다.
  1. cfg 값을 조절해서 과도하게 보지 않도록 한다.
학습과 추론 과정을 align 시키겠다는 뜻
 
개선 전과 후 비교
개선 전과 후 비교
 

Method

  1. zeroSNR
notion image
3가지 noise scheduler(gaussian noise를 원본에 더하는 방법)를 비교해봤는데, 어떤 것도 SNR이 T에서 0이 되도록 하지 않는다.(심지어 cosine schedule은 clipping해서 0이 될 수 없게 제약도 걸어놓음)
SD가 특히 문제다. 다른 스케줄은 그래도 거의 0에 가까워서 직접적으로 문제가 느껴지진 않는다.
notion image
제시 : 은 그대로 두고, 를 0으로 만든다음 는 그 사이값을 linear하게 가지도록 한다.
 
  1. train with v-prediction and v-loss(Progressive distillation for fast sampling of diffusion models)
이렇게 zeroSNR 노이즈가 되면, 기존의 noise prediction objective로는 T일 때 뭔가 할 수가 없다. 그래서 v-objective로 바꿔줬다고 하는듯
 
  1. Sample from Last Timestep T
T가 zero SNR일 때, T-1과 T일때 모델이 해야하는 일은 확연히 다르다. z_T에 대해서는 모델이 T일때 해야하도록 배운 일을 해야한다. 하지만 sampler들이(DDIM, PNDM) T에서 시작하지 않는 경우가 있어, 이를 수정했다.
항상 T와 1은 포함하도록 샘플러를 개선.
 
  1. Rescale Classifier-free guidance
SNR이 zero와 가까울 때, CFG에 크게 의존해버려서 이미지가 overexposed(정확하게 뭔지.. 진짜 원래 이미지 exposure인지 프롬프트에 과도하게 피팅되는건지)되는 경우가 발생한다.
원래는
인데, w가 크면 값이 커져서 문제가 생긴다.
그래서 cfg를 적용한 다음 rescale하는 방법을 제안한다.
notion image
cfg를 적용한 다음에, 원래 pos embedding의 표준편차로 만들어준다(cfg는 w로 인해 커진 상태라서). 근데 그냥 이렇게하면 너무 cfg가 많이 없어져서, 적당히는 크게 해준다.
 
w=7.5, =0.7 일 때 성능이 가장 좋았다.
 
완전히 어둡거나 하얀 배경의 이미지를 잘 생성한다는걸 보여주는 극단적인 예시
notion image
 
cfg rescaling 결과 비교
notion image
  1. a zebra
  1. A watercolor painting of a snowy owl standing in a grassy field
  1. A photo of a red parrot, a blue parrot and a green parrot singing at a concert in front of a microphone. Colorful lights in the background
0이면 원래의 cfg이고, 1이면 완전히 조절한 값.
 
 
 
 
 
 
 
 
 
Share article
Subscribe to our newsletter

Kim Hojin