1. Stable Diffusion
- Architecture
- AutoEncoder
- Image를 사용하는 것이 아닌 encoder를 통해 저차원에 매핑된 잠재변수 (Latent)를 사용
- Image Information Creator
- Noise Prediction을 담당하는 U-Net
- Noise 주입 정도를 결정하는 Noise Scheduler
- Text Encoder
- Text input을 embedding 형태로 바꿔주기 위해 encoder로 CLIP Text Encoder를 사용
- LDM에선 BERT Encoder로 사용하였지만 Stable Diffusion에선 OpenAI에서 공개한 CLIP Text Encoder를 사용함
- 77개의 토큰으로 맞추어 최종 token embedding 사이즈는 [B, 77, 768] 의 형태를 갖추게 됨
2. After Stable Diffusion
2022sus 11월 24일 Stable Diffusion 2.0이 공개됨.
- CFG Scale에 따른 FiD Score를 비교해 보았을 때 기존 버전보다 월등히 높은 성능을 보임
3. 평가
3.1 Inception Score
높을수록 좋은 것으로
-
생성된 이미지의 질과 다양성을 동시에 측정하는 지표
-
Inception v3 모델을 이용하여 생성된 이미지를 분류하고
-
생성된 이미지의 likelihood 분포를 이용하여 Scoring 진행
-
Fidelity
생성된 이미지가 특정 class를 명확히 표현하는가?
-
Diversity
다양한 class가 생성되고 있는가?
-
두 분포(label 분포, marginal 분포)의 KL divergence를 통해 Inception Score 산출
3.2 FID(Frechet Inception Distance) Scroe
낮을수록 좋은 것으로
- Pre-trained Image classification model을 활용하여 추출한 벡터간 거리를 score로 활용
- 거리는 프레쳇 거리로 측정
- 프레쳇 거리란, 곡선을 이루는 points의 위치와 순서를 고려하여 두 곡선 간 유사도를 측정하는 지표
- Inception Network를 이용하여 구한 실제 이미지의 embedding
- Inception Network를 이용하여 구한 생성 이미지의 embedding
- 두 embedding 간의 프레쳇 거리를 이용하여 scoring
3.3 CLIP Score
높을수록 좋은 것으로
- 이미지와 Caption과의 상관관계를 평가하는 지표이다.
- Catpion으로부터 CLIP를 이용하여 생성된 embedding
- 두 embedding 간의 유사도(Cosine Similarity)를 성능 지표로 사용한다.