[22′ arxiv] DALLE2 : Hierarchical Text-Conditional Image Generation with CLIP Latents

This entry is part 7 of 15 in the series Image Generative Model

1. Introduction

이번 글에서는 2022년 발표된 Hierarchical Text-Conditional Image Generation with CLIP Latents 논문을 리뷰합니다. 이 논문은 DALLE의 후속 버전으로 DALLE2 라고 불리며 이번 글에서도 DALLE2 라고 지칭하겠습니다.

이번 글에서는 Diffusion Model 배경 지식에 대한 설명은 생략했습니다. Diffusion Model의 기초와 응용 글을 참고해주세요.

지난 글에서는 Google Research 에서 발표한 Imagen 논문을 리뷰했는데요. Open AI에서 발표한 GLIDE에 대항하는 성격의 Text Guided Diffusion Model 이었습니다. 이에 Open AI에서는 다시 한번 성능이 업그레이드된 Text Guided Diffusion Model을 발표하는데요. 그 모델이 바로 DALLE2 입니다. DALLE의 후속 버전이지만 DALLE 와는 달리 Diffusion Model 방식을 차용했는데요. 어떤 방식을 통해 좋은 성능을 낼 수 있었는지 살펴보겠습니다.

OPEN AI에서 발표한 Image-Text Pair 데이터를 학습할 수 있는 CLIP이라는 모델이 있었는데요. 이 모델은 Image-Text Pair를 같이 학습한 덕분에 Image와 Text 간의 Align을 학습할 수 있다는 특징이 있습니다. DALLE2는 이러한 Pretrained CLIP의 능력을 Diffusion Model에 활용하여 이미지를 생성하는 모델입니다. CLIP의 능력을 어떻게 활용하여 이미지 생성에 활용했는지 아래 챕터에서 자세히 살펴보겠습니다.

이번 글은 다음과 같이 구성되었습니다. 먼저 DALLE2의 제안 방법을 자세히 살펴봅니다. 총 2단계로 구성된 학습 과정과 모델의 세부 구성, 동작 방식에 대해 살펴보겠습니다. 이어서 이미지 조작 방법에 대해 살펴보고요. 마지막으로 실험 결과를 통해 DALLE2가 생성한 이미지 결과를 살펴보겠습니다.

2. DALLE2

이번 챕터에서는 DALLE2의 제안 방법에 대해 자세히 살펴보겠습니다. DALLE2의 학습은 크게 2가지로 구성되어 있습니다. 첫 번째는 CLIP을 학습하는 과정입니다. 이는 간단히 Pretrained CLIP 모델 사용으로 대체할 수 있습니다. 두 번째는 Diffusion Model의 학습입니다. 전체 구성은 다음과 같습니다.

그림1. DALLE2 Architecture
그림1. DALLE2 Architecture

이제 하나씩 자세히 살펴보겠습니다.

2-1. Pretrained CLIP

DALLE2에서는 Pretrained CLIP 모델을 사용합니다. CLIP 모델은 다른 Image / Text Encoder 들과 차별되는 장점이 있는데요. 바로 Image와 Text 간의 Align을 학습했다는 점입니다. 일반적인 Image Encoder는 Image 데이터에 대해서만 학습합니다. 마찬가지로 Text Encoder는 언어 데이터에 대해서만 학습하죠. 반면 CLIP은 Image-Text Pair 데이터셋에 대해 학습했습니다. 따라서 Image의 특성과 매칭되는 Text 표현에 대해 알고 있고 그 주변 표현에 대해서도 같이 매칭되어 알고 있는 모델이죠. DALLE2에서는 이러한 CLIP의 특성을 활용할겁니다.

2-2. Prior

다음은 Diffusion Model 부분에 대해 살펴보겠습니다. Diffusion Model은 크게 Prior와 Decoder, Super Resolution 부분으로 구성되어 있는데요. 그 중 첫 번째 부분인 Prior에 대해 살펴보겠습니다.

Prior는 Pretrained CLIP의 Output으로 나온 Text Embedding인 Zt를 Condition으로 받아 Image Embedding인 Zi를 생성하는 Model 입니다. 이 Prior는 2가지 방법을 통해 구현할 수 있는데요. 첫 번째 방법은 Auto Regressive 방식이고 두 번째는 Diffusion Model 방식입니다. 이 글에서는 Diffusion Model 방식에 대해서만 살펴보겠습니다.

Diffusion Model 방법으로 구현한 Prior의 구성은 다음과 같습니다.

그림2. Prior
그림2. Prior

Noise로부터 Image Embedding Zi를 생성하는 모델인데요. Condition으로 Text Embedding인 Zt를 받는 모습을 볼 수 있습니다. 따라서 Prior의 Loss Function은 다음과 같습니다.

그림3. Prior Loss Function
그림3. Prior Loss Function

최종 생성한 Image Embedding Zi가 같아지도록 학습하는 모습을 볼 수 있습니다.

2-3. Decoder

다음은 Decoder 부분은 살펴보겠습니다. Decoder는 Prior가 생성한 Image Embedding Zi를 입력으로 받아 최종 이미지를 생성하는 Diffusion Model입니다. 이때 선택 사항으로 Caption 정보를 Condition으로 입력받을 수도 있죠. Decoder의 구성을 그림으로 표현하면 다음과 같습니다.

그림3. Decoder
그림4. Decoder

Image Embedding Zi를 Condition으로 받아 최종 이미지를 생성하는 모습을 볼 수 있습니다.

2-4. Super Resolution

이렇게 Decoder를 거쳐 생성된 이미지는 기존 Diffusion Model들과 마찬가지로 64×64의 저화질인데요. 따라서 이를 고화질 이미지로 Upscale 해줄 필요가 있습니다. 이때의 방식은 기존 Diffusion Model에서 사용되는 Super Resolution 방식과 동일합니다. 이에 대한 자세한 내용은 SR3 리뷰글을 참고해주세요.

DALLE2의 Super Resolution 과정을 그림으로 표현하면 다음과 같습니다.

그림4. Super-Resolution
그림5. Super-Resolution

64×64 이미지가 두번의 Super Resolution Diffusion Model을 거쳐 최종적으로 1024×1024 이미지가 생성되는 모습을 볼 수 있습니다.

3. Image Manipulations

다음은 DALLE2가 갖는 특징중 하나인 이미지 조작 (Image Manipulation) 방법을 살펴보겠습니다. DALLE2는 이미지 변형하기, 두 이미지 특성 합치기 또는 생성한 이미지를 Text를 사용해서 조작하는 방법등이 가능한데요. 하나씩 살펴보겠습니다.

3-1. Variations

먼저 이미지를 변형하는 방법을 살펴보겠습니다. DDIM의 Nu를 적절히 변경해주면 이미지의 특성을 유지하면서 세부 사항을 조금씩 변형할 수 있는데요. 예시는 다음과 같습니다.

그림5. Image Variations
그림6. Image Variations

위의 이미지는 원본 이미지에 해당하고, 아래 이미지들은 Nu 값을 변경하여 변형시킨 이미지에 해당합니다. 원본 이미지의 특성은 잘 살리면서 조금씩 세부 사항을 잘 변형하는 모습을 볼 수 있습니다.

3-2. Interpolations

다음은 두 이미지의 특성을 섞어 새로운 이미지를 생성하는 Interpolation 방법을 살펴보겠습니다. 앞서 살펴본 방식으로 학습이 완료된 DALLE2 모델을 사용하면 두 이미지를 적절히 섞을 수 있는데요. 이때 섞을 두개의 Image Embedding을 각각 Zi1과 Zi2라고 하겠습니다. 이제 Spherical Interpolation을 사용하면 이 둘을 섞은 Image Embedding Zi𝜃는 이렇게 표현되는데요.

그림6. Spherical Interpolation
그림7. Spherical Interpolation

그림으로 표현해보면 더 직관적으로 이해할 수 있습니다. 위 수식은 다음과 같이 표현할 수 있습니다.

그림7. Spherical Interpolation 수식
그림8. Spherical Interpolation 수식

Zi𝜃는 Zi1과 Zi2 사이의 어떠한 벡터라고 볼 수 있는데요. 이 Zi𝜃를 그대로 Decoder에 넣어 이미지를 출력하면 두 원본 이미지의 Interpolation에 해당하는 이미지를 생성할 수 있습니다. 이렇게 생성된 이미지들은 다음과 같습니다.

그림8. Image Interpolation Results
그림9. Image Interpolation Results

왼쪽과 오른쪽에 있는 이미지들이 Interpolation을 수행할 2개의 원본 이미지입니다. 가운데 이미지들은 Interpolation 방식을 적용하여 생성한 이미지들이죠. 어떤가요? 각도를 변형함에 따라 조금씩 각 이미지의 가중치를 변경해가며 잘 반영한 이미지를 생성하고 있죠?

3-3. Text Diffs

다음은 Text를 사용하여 이미지를 조작하는 방법을 살펴보겠습니다. CLIP은 Image와 Text간의 Align을 학습한 모델이라고 말씀드렸는데요. 이러한 특성을 살리면 2개의 Text 차이를 사용하여 이미지를 조작할 수 있습니다. Image와 Text의 Align이 맞춰져 있기에 두 Text Embedding의 차이만큼 그대로 Image Embedding을 변형해주는 방법을 사용하는 거죠. 그림으로 표현하면 다음과 같습니다.

그림9. Text Diffs
그림10. Text Diffs

왼쪽은 두 개의 Text Embedding을 표현하고 있습니다. 이 둘의 차이를 𝜃라고 할게요. 그렇다면 Zt1에 해당하는 Image Embedding인 Zi1을 Zt2 방향으로 조작하고 싶다면 동일하게 𝜃만큼 움직여주면 되는거죠. 이렇게 나온 Image Embedding Zi2를 Decoder에 넣어 이미지를 생성하는겁니다. 이런 방법으로 생성한 이미지들은 다음과 같습니다.

그림10. Text Diffs Image Manipulation Results
그림11. Text Diffs Image Manipulation Results

가장 위 그림을 살펴볼게요. 첫 번째 이미지는 고양이 사진이죠. 이를 표현하고 있는 Text는 “a photo of a cat” 입니다. 그런데 이 이미지를 슈퍼 싸이언 고양이 만화 이미지로 변형하고 싶은거죠. 이에 해당하는 Text는 “an anime drawing of a super Saiyan cat, artstation” 입니다. 그럼 두 Text Embedding 사이의 𝜃를 위에서 설명한 방법대로 변경해가며 이미지를 추출해주는겁니다. 결과는 위와 같습니다. 고양이 사진과 슈퍼 싸이언 만화 고양이 사이 이미지들을 잘 생성하고 있는 모습이죠? 그 아래의 집, 사자, 풍경 사진 모두 동일한 방식으로 해석할 수 있습니다.

4. Experiments

다음은 DALLE2가 생성한 Text Guided 이미지들을 살펴보겠습니다.

그림11. Text Guided Image Generation Results
그림12. Text Guided Image Generation Results

어떤가요? 정말 Wow 소리가 나오는 결과이지 않나요? Imagen과 DALLE2는 Image Generative Diffusion Model의 전성기를 알리는 신호탄이 된 모델이라고 할 수 있습니다.

5. Conclusion

이번 글에서는 DALLE2의 핵심 내용을 살펴봤습니다. 먼저 DALLE2 제안 방법을 자세히 살펴봤는데요. 다른 Diffusion Model들과는 달리 Pretrained CLIP의 능력을 십분 활용한다는 점이 가장 큰 특징이었습니다. DALLE2는 또한 다양한 Image Manipulation 방법을 제안하고 있는데요. 이는 실용적인 측면에서 매우 큰 장점이라고 여겨집니다. 이렇게 생성한 Text Guided 이미지들은 Image Generative Diffusion Model의 놀라운 능력을 보여주었죠.

Series Navigation<< [22′ NIPS] Imagen : Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding[22′ CVPR] Stable Diffusion : High-Resolution Image Synthesis with Latent Diffusion Models >>
5 2 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top