본문 바로가기

딥러닝

Stable Diffusion

Stable Diffusion = Laten Diffusion Model

LDM의 세가지 구성요소

  1. VAE
    • Training
      • Encoder 가 image를 low dimension latent representation으로 바꾸고, 이게 U-Net에 들어감
    • Inference
      • Decoder는 latent representation을 image로 변환
  2. U-Net
    • Encoder
      • ResNet 구조로 저해상도로 Downsampling
    • Decoder
      • ResNet 구조로 고해상도로 Upsampling
      • Noise residual을 예측함 ( 그니까 현재 시점에 원본 이미지에서 얼마만큼의 Noise가 더해졌는 지를 계산함 )
      • Cross-attention layers 를 통해 text-embedding에 conditioning 시킬 수 있음.
        • Cross-attention layers 는 encoder, decoder 모두 ResNet blocks 사이에 들어감
  3. Text Encoder
    • text input을 U-Net에서 이해할 수 있는 embedding으로 변환
    • transformer-based encoder that maps a sequence of input tokens to a sequence of latent text-embeddings
    • Stable Diffusion에서는 embedding을 새로 학습하는 대신 CLIP의 pretrained된걸 갖다씀

LDM이 좋은 이유?

  • pixel level이 아니라 low dimensional latent space에서 다루므로 빠르고 효율적임

inference

Stable Diffusion Architecture

  • input: seed, prompt
  • U-Net : text embedding에 기반해서 denoise
  • Scheduler : U-Net의 output에 기반해서 Denoised latent image representation 계산