본문 바로가기

논문 리뷰/Diffusion Model

SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis

Stable diffusion의 개선 버전

 

[Github]

[arXiv]

 

(본 글은 요약본입니다. 자세한 리뷰)

 

SDXL

  • 아키텍처 향상(3배 더 큰 U-Net backbone)
  • 추가 컨디셔닝
  • 오토인코더 향상
  • 다단계 학습
  • Refiner

 

 

 

Improving Stable Diffusion

Architecture & Scale

아키텍처 구성이 달라졌다.(SD, SDXL 아키텍처 분석)

두 개의 텍스트 인코더를 같이 사용, 풀링된 텍스트 인코딩을 추가로 컨디셔닝


Micro-Conditioning

학습 데이터셋의 rescaling 전 원래 사이즈 csize를 컨디셔닝.

 

추론 시 겉보기 해상도 조절 가능


학습 데이터 로드 시 데이터가 crop 되었다면 crop 좌표 ccrop을 컨디셔닝.

 

ccrop = (0,0)으로 설정하여 개체가 잘리지 않게 할 수 있고 위치를 조절할 수도 있다.


Multi-Aspect Training

여러 종횡비의 이미지를 처리할 수 있도록 픽셀 수는 최대한 유지 한 채 종횡비를 변경하여 사전 학습된 모델을 fine-tuning.

각 배치는 동일한 종횡비의 이미지로 구성되며 버킷 크기 car을 컨디셔닝.


Improved Autoencoder

기존의 AutoEncoder에서 더 큰 배치크기와 지수 이동 평균으로 개선 훈련된 새로운 AutoEncoder 사용.


Putting Everything Together

향상된 오토인코더, 1000step diffusion schedule

 

다단계 학습 절차:

  • 256x256, 2048 batch, csize, ccrop에 대해 60만 번의 최적화 단계
  • 512x512에 대해 20만 번의 최적화 단계
  • 1024x1024, car, 0.05 offset-noise 

 

Refinement Stage

별도의 refinement model을 통해 품질 개선.

 

eDiff-I와 비슷하게 후반 200step에 특화된 모델을 학습하고 SDEdit처럼 기존 모델의 출력에 일정 노이즈를 다시 도입하여 Refiner에서 200step denoising 함.

SDEdit

 

Refiner
빨강: Basic SDXL, 파랑: SDXL+Refiner

 

FID 같은 정량적 평가에서의 유의미한 개선은 없지만 사람들은 Refiner의 결과를 더 선호함.