Stable Diffusion의 공개 이후, diffusion 모델이 굉장히 많이 발표되는 것 같다.
유저가 만들고 싶은 이미지에 대한 설명을 text prompt로 활용하여 유저의 의도를 전달해줄 수 있다는 것이 diffusion 모델의 가장 큰 강점이라고 생각한다.
그렇다면...의도를 전달해줄 수 있다는 부분을 제외한 이미지 생성 성능 자체는 어떨까?
라는 의문으로 시작한 toy project 입니다.


"GAN vs Diffusion" 프롬프트를 stable-diffusion-xl-base-1.0 모델에 입력한 결과...심연을 의미하는 걸까?

목차

  1. 개요
  2. 데이터셋 준비
  3. GAN 모델 학습
  4. GAN 모델 추론
  5. Diffusion 모델 학습
  6. Diffusion 모델 추론
  7. 결과 비교
  8. 결론

개요

  • GAN / Diffusion 모두 단일 모델으로 개와 고양이를 conditional하게 생성할 수 있도록 구현.
    • GAN 모델은 class 정보를 입력받을 수 있음.
    • Diffusion 모델은 text prompt로 "dog" 또는 "cat"만 입력받을 수 있음.
  • pretrained weight를 최대한 활용하지 않는 방향으로 진행.

데이터셋 준비

GAN 모델 학습

Base Model : StyleGAN2-ADA

GAN 모델 추론

Diffusion 모델 학습

Base Model : Latent Diffusion
autoencoder 모듈은 ImageNet 데이터셋으로 pretrained된 것과 커스텀 학습 시킨 것...이렇게 2가지 버전으로 각각 테스트해봐야할 것 같다.

Diffusion 모델 추론

결과 비교

결론