Post

[비전 생성 모델] LDM (Latent Diffusion Model)

[비전 생성 모델] LDM (Latent Diffusion Model)

📄 관련 논문: [CVPR 2022] High-Resolution Image Synthesis with Latent Diffusion Models

📄 관련 논문: [ICLR 2024] SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis

LDM은 기존 디퓨전 과정을 latent 공간에서 수행하도록 설계된 모델 구조로, Stability AI의 지원을 받아 대규모로 학습되었기에 Stable Diffusion (SD)이라고도 불린다.

SD에는 여러 버전이 있으며, 그 중 많이 사용되는 버전인 SD 1.5와 SDXL의 스펙은 다음과 같다.

 SD 1.5SDXL
U-Net 파라미터 수860M2.6B
텍스트 인코더OpenAI CLIP ViT-L/14OpenCLIP ViT-bigG + OpenAI CLIP ViT-L/14
Context 차원7682048 (1280 + 768)
학습 이미지 해상도512 x 5121024 x 1024
Latent Space 차원64 x 64 x 4128 x 128 x 4

Stable Diffusion 1.5 (SD 1.5) 모델 구조

SD 1.5의 전체 구조는 아래와 같다.

VAE Encoder를 통해 입력 이미지를 latent 공간으로 보낸 뒤에, 디퓨전 과정을 진행한다.

fig1

U-Net 모델 구조

U-Net의 구조는 아래와 같다.

  • 초록색 화살표마다 Noise Timestep이 덧셈 형태로 주입된다.
  • 빨간색 화살표마다 Context가 Cross-Attention을 통해 조건으로 주입된다.

fig2

Resnet Block

U-Net 그림에서 초록색 화살표에 해당하는 Resnet Block의 구조는 아래와 같다.

Noise Timestep $t$는 입력 텐서에 더해지는 형태로 주입된다.

fig3

Transformer Block

U-Net 그림에서 빨간색 화살표에 해당하는 Transformer Block의 구조는 아래와 같다.

CLIP 모델을 통해 전달된 텍스트 조건은 Key와 Value로 변환된 후, cross-attention 연산을 통해 주입된다.

\[\text{Cross-Attn}(Q^{\text{img}},K^{\text{context}},V^{\text{context}}) =\text{softmax}\left(\frac{Q^{\text{img}}\cdot (K^{\text{context}})^\top}{\sqrt{d_k}}\right) V^{\text{context}}\]

fig4

Upsampler & Downsampler

U-Net 그림에서 보라색 화살표에 해당하는 Downsampler와 Upsampler의 구조는 아래와 같다.

Downsampling의 Scale factor는 $0.5$, Upsampling의 Scale factor는 $2.0$이다.

fig5

This post is licensed under CC BY 4.0 by the author.