kkm0476

[논문리뷰] An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion 본문

AI/Paper review

[논문리뷰] An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion

kkm0476 2024. 3. 20. 16:01
An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion
Rinon Gal, Yuval Alaluf, Yuval Atzmon, Or Patashnik, Amit H. Bermano, Gal Chechik, Daniel Cohen-Or
[paper] [github]

Contents

1. Introduction

2. Method

3. Qualitative comparisons and applications

4. Quantitative analysis

5. Limitations

6. Summary


1. Introduction

Large-scale text-to-image model의 성능은 conditiong text prompt의 수준에 따라 제한된다. 사용자의 개인적인 물건이나 키우는 애완동물에 대한 이미지를 합성하기 위해서는 아주 자세한 text prompt로도 부족할 것이다. Pretrained text-to-image 모델에 새로운 데이터를 학습시키기 위한 기존 연구들은 여러 문제에 의해 성능이 제한되었다. 새로운 데이터를 포함한 전체 데이터셋을 새로 학습시키는 것은 많은 computing cost를 요구하고 비효율적이다. 반대로 새로운 데이터만을 fine-tuning하는 것은 기존에 학습한 데이터를 잊어버리는 catastrophic forgetting 문제를 발생시켰다.

 

연구진들은 기존의 문제를 해결하면서도 3~5장의 이미지로 새로운 데이터를 학습할 수 있는 Textual Inversion 기술을 제안한다. Pretrained text-to-image 모델에서 새로운 데이터를 표현하기 위한 embedding vector를 찾고, 대응하는 pseudo-word $S_*$를 이용하여 text prompt로 사용한다. 예를 들어 "A photo of $S_*$"과 같이 사용하여 새로운 데이터에 대한 이미지를 합성할 수 있다. 중요한 것은 이 과정에서 모델에는 아무 변화도 없다는 것이다. 모델을 변화시키지 않기 때문에 데이터 학습 과정에서 발생하는 문제들이 발생하지 않는다. 


2. Method

Textual Inversion은 LDM (Latent Diffusion Model)을 base로 하여 연구를 진행했다. LDM은 diffusion model의 일종으로, 데이터를 latent spcae로 옮겨 diffusion 과정을 진행한다. LDM은 데이터를 latent representation으로 전환하는 encoder $\mathcal{E}$와 latent space에서 다시 이미지로 디코딩하는 decoder $\mathcal{D}$를 이용한다. LDM의 objective function은 다음과 같다.$$
L_{L D M}:=\mathbb{E}_{z \sim \mathcal{E}(x), y, \epsilon \sim \mathcal{N}(0,1), t}\left[\left\|\epsilon-\epsilon_\theta\left(z_t, t, c_\theta(y)\right)\right\|_2^2\right]
$$

연구진들은 base로 LAION-400M 데이터셋으로 학습한 LDM과 BERT text encoder를 이용하였다.

 

위 사진의 왼쪽에서는 text encoder 내부에서 문장이 처리되는 과정을 볼 수 있다. 문장의 각 단어는 token으로 변환되고, 각 토큰은 unique하게 대응하는 embedding vector로 전환된다. 새로운 컨셉을 표현하기 위한 pseudo-word $S_*$를 정의하고, learned embedding $v_*$에 대응하도록 한다. $v_*$는 새로운 컨셉을 표현하는 embedding vector로, $S_*$를 text prompt에 포함시켜 사용할 수 있다. $v_*$를 찾기 위해 새로운 컨셉에 대한 3~5장의 이미지를 사용한다. 주어진 이미지에 대해 LDM의 objective function을 최소화하는 방향으로 $v_*$를 학습한다. 결과적으로 우리가 찾으려는 $v_*$는 다음과 같이 쓸 수 있다.$$
v_*=\underset{v}{\arg \min } \mathbb{E}_{z \sim \mathcal{E}(x), y, \epsilon \sim \mathcal{N}(0,1), t}\left[\left\|\epsilon-\epsilon_\theta\left(z_t, t, c_\theta(y)\right)\right\|_2^2\right]
$$ 이 식에서 우리가 학습하는 것은 embedding $v_*$ 뿐이고, 모델이나 text encoder는 변하지 않는 것을 알 수 있다.


3. Qualitative comparisons and applications

위 사진은 Textual Inversion과 다른 모델이 생성한 이미지이다. Text prompt만을 활용하거나 이미지를 conditioning하는 경우에는 이미지의 정교한 디테일을 표현하지 못하는 것을 볼 수 있다. 반면에 Textual Inversion을 적용한 모델은 주어진 이미지의 디테일을 표현하면서도 주어진 이미지와 다른 새로운 이미지를 합성할 수 있다.

위 사진은 모델이 기존에 학습한 정보와 새로 학습한 컨셉을 잘 조합하는 것을 보여준다. 4번째 줄의 이미지에서는 그릇이 무언가를 담는 물체라는 semantic을 잘 표현하는 것을 확인할 수 있다.

위 사진은 기존 모델들과 Textual Inversion으로 같은 text prompt에 대한 샘플링 결과이다. PALAVRA는 물체의 디테일을 포착하지 못하고 색이나 글자가 적혀있다는 간단한 정보만을 인코딩한다. Guided diffusion은 더 나은 결과를 보여주지만 prompt를 따르지 않는 결과를 생성한다. Textual Inversion으로 합성한 이미지는 물체의 디테일과 prompt 모두 잘 따르며, 한 번 학습한 pseudo-word를 계속 사용할 수 있어 효율적이다.

Textual Inversion을 이용하여 위 사진과 같이 style transfer와 비슷한 결과물을 생성할 수 있다. Style transfer와의 차이점은 특정 이미지에 대해 스타일을 주입하는 기존의 것과 다르게 스타일만 제한하여 prompt에 따른 다양한 이미지를 합성할 수 있다는 점이다.


4. Quantitative analysis

Textual Inversion의 성능을 평가하기 위해 두 가지 항목을 정량적으로 측정한다. 첫 번째로는 생성된 이미지가 주어진 컨셉을 얼마나 잘 표현하는지에 대한 subject fidelity이다. 이는 "A photo of $S_*$" prompt로 생성한 이미지와 학습에 사용한 이미지의 average pairwise CLIP-space cosine similarity로 측정한다. 두 번째로는 생성된 이미지가 text prompt를 잘 반영하였는지 측정하는 prompt fidelity이다. 이는 $S_*$가 포함된 prompt와 $S_*$가 포함되지 않은 prompt로 생성한 이미지들의 average pairwise CLIP-space cosine similarity로 측정한다.

위 사진은 조건을 다르게 한 모델들을 평가한 것이다. 다음과 같은 사실을 알 수 있다.

(1) Textual Inversion을 통해 생성한 이미지의 품질이 실제 이미지의 품질과 큰 차이가 없다.

(2) pseudo-word로 한 개의 word만을 사용한 모델의 이미지 품질이 2, 3개의 word를 사용한 모델에 밀리지 않으면서 prompt를 훨씬 잘 반영한다.

(3) 모델들이 trade-off curve를 그리는 것을 확인할 수 있다. 특히, 1-word 모델의 learning rate를 변화하여 trade-off 정도를 조절할 수 있음을 확인할 수 있다.

(4) Human caption만을 사용하는 모델의 품질이 낮은 것을 확인할 수 있다. 이는 모델이 전체 문장이 아닌 일부 단어에 집중하는 문제에 의한 것으로, 단일 token으로 컨셉을 표현하는 Textual Inversion은 이러한 문제를 최소화한다.

아래의 설문을 통한 평가 결과에서도 비슷한 경향을 확인할 수 있다.


5. Limitations

Textual Inversion을 사용해 합성한 이미지는 주어진 컨셉의 semantic을 잘 포착하지만, 디테일을 표현하는 데에 한계가 존재한다. 또한 embedding $v_*$를 학습하는 과정은 오랜 시간을 필요로 한다. 연구진들은 2개의 V100 GPU를 사용하는 환경에서 하나의 embedding을 학습하는데 약 2시간 정도가 소요된다고 설명한다.


6. Summary

연구진들은 pretrained text-to-image 모델이 personalized concept에 대한 이미지를 생성할 수 있도록 하는 Textual Inversion 기술을 제시한다. 모델과 텍스트 인코더를 학습하지 않고 주어진 concept를 표현하는 embedding $v_*$를 학습함으로써, 기존 연구에서 발생하는 문제들을 해결하였다. 다양한 task에서 주어진 컨셉과 text prompt를 잘 반영하는 것을 확인할 수 있었다. 또한 learning rate에 따라 subject와 text prompt 사이의 trade-off를 조절할 수 있음을 확인하였다. 다만 Textual Inversion을 이용한 학습 과정이 오래 걸린다는 한계가 존재한다.