꾸준하게

[논문리뷰] The Chosen One: Consistent Characters in Text-to-Image Diffusion Models 본문

논문 리뷰

[논문리뷰] The Chosen One: Consistent Characters in Text-to-Image Diffusion Models

yeonsikc 2024. 6. 19. 23:26

arXiv paper code(unofficial) page huggingface
Omri Avrahami, Amir Hertz, Yael Vinker, Moab Arar, Shlomi Fruchter, Ohad Fried, Daniel Cohen-Or, Dani Lischinski
The Hebrew University of Jerusalem, Google Research, Tel Aviv University, Reichman University
Subbmitted on 16 Nov 2023 (v1)
Last revised 5 Jun 2024 (v4)

동일한 텍스트 입력에서 몇가지 추가적인 프롬프트를 추가하여도 모두 같은 외형을 가진 모습이다.

Abstract

최근 T2I 생성 모델이 창작 활동에 많이 사용되고 있지만 일관된 캐릭터를 생성하는것은 아직 한계점으로 남아있다. 이 때문에 작업 프로세스에 사람의 수작업이 들어가야 하는 문제가 발생한다. 본 논문에서는 텍스트 입력만을 이용하여 일관된 캐릭터 생성을 위한 완전 자동화 방법을 제안하였다. 저자는 각 단계에서 유사한 아이덴티티를 공유하는 일관된 이미지 집합을 식별하고 이 집합에서 보다 일관된 아이덴티티를 추출하는 반복적인 절차를 도입하였다. 정량적 분석 결과, 이 방법이 기존보다 신속한 정렬과 아이덴티티 일관성 사이에서 더 나은 균형을 이룬다는 것이 입증되었다. 

 

Method

Fig. 3. Overview

 

앞서 말했듯이 본 연구의 목적은 텍스트 입력만으로 일관된 캐릭터를 생성하는 것이다. 저자는 pre-trained T2I 모델을 이용하여 반복적으로 이미지를 생성하고 이를 일종의 학습 데이터로 사용하여 모델이 일관적인 캐릭터를 생성할 수 있도록 한다.

 

 

기호 설명

  • $M_{\Theta}$ : Text-to-Image Model
  • $\Theta$ : model weights $\theta$와 커스텀 텍스트 임베딩  $\tau$로 구성된 파라미터
  • $p$ : 타겟 캐릭터를 설명하는 text prompt

 

알고리즘 1에 나와있듯이 저자의 접근 방식은, 서로 다른 seed의 동일한 텍스트 프롬프트에 대해 $M$에서 생성한 충분히 큰 이미지 셋이 이미지 매니폴드의 불균일한 밀도를 반영한다는 전제를 기반으로 한다. 구체적으로, 공유된 특성을 갖는 이미지 그룹을 찾을 것이라 기대한다. 저자는 이러한 그룹 중 하나에 있는 이미지 간의 '공통점'을 사용하여  $\Theta (p)$ 표현을 세분화하여 대상을 더 잘 포착하고 맞출 수 있다고 한다. 따라서 저자는 생성된 이미지를 반복적으로 군집화하고 가장 응집력이 높은 클러스터를 사용하여 $\Theta (p)$를 구체화하는 것을 제안하였다. 이 프로세스는 개선된 표현 $\Theta (p)$가 수렴할 때 까지 반복된다.

 

 

Identity Clustering

저자는 먼저, 가장 최근의 표현 $\Theta$의 파라미터를 가진 $M_{\Theta}$를 이용하여 각 반복을 시작하여 각각 다른 임의의 seed에 해당하는 N개의 이미지 모음을 생성한다. 각 이미지는 Feature Extractor $F$를 이용하여 고차원의 의미론적 임베딩 공간에 임베딩되어 $S = \bigcup_{N}F(M_{\Theta}(p))$의 임베딩 집합을 형성한다. 저자는 Feature Extractor $F$로 DINOv2를 사용하였다.

 

Fig. 4. 군집 시각화

 

그 다음으로, K-MEANS++ 알고리즘을 이용하여 임베딩된 이미지들을 cosine similarity를 통해 군집화 한다. 개인화 알고리즘은 작은 데이터셋에 과적합이 발생하기 쉽다는 사실이 밝혀졌기 때문에, 사전에 설정한 threshold $d_{min-c}$보다 작은 규모를 갖는 모든 군집은 제거한다. 남아있는 군집들 중 가장 결집력 좋은 것을 하나 선택하여 Identity Extraction의 입력으로 사용한다. 결집력 좋은 것을 판단하기 위해 군집의 각 멤버와 군집의 중심 간의 평균 거리로 계산한다.

 

$$cohesion(c) = \frac{1}{|c|} \sum_{e \in c} ||e - c_{cen}||^2 \tag{1}$$

 

  • $c$ : 군집
  • $c_{cen}$ : 군집의 중심

위 Fig. 4는 DINOv2를 이용한 임베딩 공간을 시각화 한 것이다. 고차원 임베딩을 t-SNE 기법을 통해 2D로 투영하였으며 K-MEANS++ 군집에 따라 색을 구분하였다.

 

Identity Extraction

가장 최근 iteration에서 생성된 이미지들이 다양하기 때문에 가장 결집력 좋은 군집 $c_{cohesive}$는 위 Fig. 3.에서 볼 수 있듯이 아직 좋지 못한 결집력을 가질 것이다. 따라서 표현 $\Theta$는 아직 일관된 생성을 할 준비가 되지 않았으며, $c_{cohesive}$의 이미지를 학습하여 보다 일관된 Identity를 추출함으로써 이를 더욱 개선한다. 이러한 개선은 이미 일관된 Identity를 묘사하는 여러 이미지의 주어진 셋에서 캐릭터를 추출하는 것을 목표로 하는 Text Inversion (TI)를 이용하여 학습(개선)이 수행된다.

 

저자는 완전히 일지하지 않는 이미지 셋에 적용하지만, 이러한 이미지가 서로의 의미적 유사성을 기반으로 선택된다는 사실 덕분에 이러한 방법을 통해 이미지에서 공통된 정체성을 추출할 수 있다고 한다. 또한, 이렇게 하면 Feature Extractor $F$ 또는 Clustering 알고리즘으로 인해 발생할 수 있는 불일치를 극복할 수 있다고 한다.

 

본 연구에는 두 개의 text encoder (CLIP, OpenCLIP)가 포함된 pre-trained Stable Diffusion XL (SDXL)을 사용하였다. TI를 수행하여 두 text encoder에 각각 하나씩 새로운 text token $\tau$ 쌍을 추가하였다. 하지만 저자는 TI 기법이 파라미터 공간을 충분히 표현되지 않는다는 것을 발견하였고 이후 self-attention 부분과 cross-attention 부분에 Low-rank adaptation (LoRA)를 적용하여 학습하였다. (unique token과 LoRA 기법을 사용)

  • $c_{cohesive}$ : 선택된 군집
  • $E(x)$ : VAE encoder of SDXL
  • $\epsilon$ : noise
  • $t$ : timestep
  • $z_t$ : timestep $t$일때의 latent z

 

Convergence

 

앞서 말한 바와 같이 $\Theta$가 일관된 이미지를 생성할 때 까지 이 프로세스는 반복된다(이미지 생성 -> 군집화 -> LoRA 학습).  이때, 고정적인 반복횟수를 설정하기 보다는 early stopping 기준을 세워 수렴할 때 까지 반복한다.  각 iteration 이후에는 새롭게 생성된 이미지들의 모든 임베딩 사이의 평균 쌍별 Euclidean distance를 계산하고, 이 distance가 사전에 설정한 threshold $d_{conv}$보다 작아지면 학습을 종료한다.

 

마지막으로, 저자의 방법은 non-deterministic 라는 점. 즉, 위 방법이 동작하는 여러 차례 동안 같은 입력 $p$를 넣어도 다른 일관된 캐릭터가 생성될 것에 유의해야한다. 이는 one-to-many 특징을 갖고있다고 볼 수 있다.

 

Experiments

아래 실험은 SDXL에서 생성된 단일 이미지를 이용하여 각각의 방법론으로 학습한 결과로, 대체적으로 일관성 없는 결과를 내보이고 있다. LoRA DB의 경우 나름 일관된 결과를 보이고 있지만 프롬프트를 잘 이행하지 않는 모습이다. 또한, 생성된 캐릭터가 똑같은 고정된 포즈를 취하고 있다. 반면 저자의 방법론은 일관된 캐릭터를 생성하는데 더불어 프롬프트도 잘 이행하며 다양한 화각에서 다양한 포즈를 생성할 수 있다.

 

저자의 방법과 기준선을 양적으로 자동으로 평가하기 위해, ChatGPT를 이용하여 다양한 유형(동물, 생물 등)의 다양한 스타일(스티커, 애니메이션, 사실주의)의 프롬프트를 생성하도록 지시하였다. 이러한 각 프롬프트를 이용하여 일관된 캐릭터를 추출하는데 사용되었다.

 

Fig. 6. identity consistency와 prompt similarity 간의 trade-off 경향이 나타났다. (좌) 정량적 평가 (Ablation study 포함) (우) 정성적 평가

 

저자는 두 가지 평가 지표를 사용하였다.

  • prompt similarity : 입력 프롬프트와 생성된 이미지 간의 유사성을 평가하는 것으로, CLIP similarity를 사용하였다.
  • identity consistency : 다양한 맥락에서 동일한 컨셉으로 생성된 이미지의 CLIP image embedding 간의 쌍별 유사성을 계산하였다. (즉, 동일한 캐릭터에 대해 다른 텍스트 프롬프트를 사용할 때)

실험 결과, 위 Fig. 6.에서 알 수 있듯이 identity consistency와 prompt similarity 간의 trade-off 경향이 나타났다. User study(위 오른쪽 그림)에서 보인 바와 같이, 저자의 방법론은 두 가지 평가 지표의 밸런싱이 잘 된 것으로 나타났다.

 

User Study는 Amazon Mechanical Turk (AMT) 플랫폼을 운영했다고 한다(정성 평가를 위해 논문에서 자주 등장하는 플랫폼). 평가 방법으로, 같은 생성된 프롬프트와 샘플을 평가자에게 보여준 뒤, 해당 프롬프트와 샘플 간의 유사성을 1점부터 5점까지의 리커트 척도로 실제 사람에게 평가 받는 시스템이다.

 

Ablation Study

저자는 다음 사항에 대한 Ablation study를 진행하였다. 실험 결과는 위 Fig. 6. 좌측 빨간 점으로 표시되어있다.

  1. Without Clustering : clustering 단계를 생략하고 입력 프롬프트에 대한 이미지를 단순히 5개 생성.
    $\rightarrow$ 학습 셋이 너무 다양하기에 identity extraction에 좋지 않음
  2. Without LoRA : identity extraction 단계에서 최적화될 파라미터 $\Theta$를 위해 새로운 토큰을 사용하는 기법인 TI만 사용
    $\rightarrow$ 모델이 identity를 제대로 포착하지 못하였기에 과소적합을 일으킴
  3. With re-initialization : 각 iteration에서 가장 최근의 $\Theta$를 사용하는 것 대신에 re-initialization 하는 것
    $\rightarrow$ 모델이 단일 identity에 수렴할 수 없음
  4. Single iteration : 수렴할 때 까지 프로세스를 반복하는 것이 아닌, 단 한번의 iteration만 수행하는 것
    $\rightarrow$ 모델이 단일 identity에 수렴할 수 없음

 

Applications

다양한 downstream-task에서도 잘 작동하는 모습을 보인다.

 

입력 프롬프트로 부터 생성된 이미지들의 군집들 중에서 결집력이 좋은 군집을 자동으로 선택하는 것이 아닌, 사용자가 원하는 군집을 선택한다면 아래의 그림처럼 원하는 군집의 캐릭터를 생성할 수도 있다. (닮은듯.. 안닮은듯..)

 

Limitations

저자는 한계점으로 다음 사항들을 언급하였다.

 


(a) 완벽히 수렴되지 않는 경우도 있다.

$\rightarrow$ 저자는 이것이, identity clustering을 하기에 프롬프트가 너무 일반적이여서 그런 것 같다고 의심하였다.

 

(b) 메인 캐릭터 외의 서브 캐릭터(물체 등)가 일관되지 않는다.

$\rightarrow$ 프롬프트에서 메인 캐릭터의 묘사는 자세하지만 서브캐릭터의 묘사가 자세하지 않아서 발생하는 문제로 보여진다.

 

(c) 가짜 속성을 부여하는 경우가 있다. 아래 예시에서는, 고양이 스티커에 초록 잎이 같이 나타난다.

$\rightarrow$ T2I 모델의 확률적 특성으로 인한 것으로, 우연히 초록잎이 같이 생성된 이미지들의 군집이 결집력이 좋았던 것으로, 자동으로 군집을 선택하지 않고 직접 선택한다면 이를 완화할 수 있다.

 

(d) 지나친 연산 비용

$\rightarrow$ 본 방법론에는 각 iteration에서 많은 이미지를 생성하고, 가장 결집력 좋은 군집을 학습하는 작업이 포함되며 수렴할 때 까지 20분 정도 소요된다.

 

(e) 단순한 캐릭터 (사용하는 목적에 따라 장점이 될 수 있을 것 같음)

$\rightarrow$ 저자는 본 방법론이 단순한 장면(혼자, 가운데 있는 객체)을 생성하는 경향이 있다는 것을 발견하였다. 저자는 identity extraction 단계에서 수행하는 "averaging" 영향으로 발생하는 문제로 추측된다고 한다.

 

Implementation Details

  • number of generated images at each iteration : 128 (실험적으로 충분한 규모라고 함)
  • learning rate : 3e-5
  • optimizer : Adam ($\beta_1 = 0.9$, $\beta_2 = 0.99$)
  • weight decay : 1e-2
  • number of identity extraction iteration : 500 steps
  • convergence criterion $d_{conv}$ : 80%  of the average pairwise Euclidean distance all N initial image embeddings of the first iteration
  • minimum cluster size $d_{min-c}$, target cluster size $d_{size-c}$ : 5로 설정하여 작은 클러스터 장려하는 것이 유리
  • 대부분 1-2 iteration 안에 수렴함. A100, mixed-precision(bf16) 기준 13~26분 소요.

Automatic Metrics Implementation Details

[v] : unique token (e.g. iom)

  • a photo of [v] at the beach
  • a photo of [v] in the jungle
  • a photo of [v] in the snow
  • a photo of [v] in the street
  • a photo of [v] with a city in the background
  • a photo of [v] with a mountain in the background
  • a photo of [v] with the Eiffel Tower in the background
  • a photo of [v] near the Statue of Liberty
  • a photo of [v] near the Sydney Opera House
  • a photo of [v] floating on top of water
  • a photo of [v] eating a burger
  • a photo of [v] drinking a beer
  • a photo of [v] wearing a blue hat
  • a photo of [v] wearing sunglasses
  • a photo of [v] playing with a ball
  • a photo of [v] as a police officer

Additionally my opinion

평소에 일관된 생성을 위한 방법에 대해 고민했던 나로서 본 논문은 좋은 힌트가 되었다. 본 논문에서는 '하나의 텍스트'로 부터 일관된 캐릭터를 생성하는 것이었으며, 나는 단일 캐릭터의 여러 이미지로 부터 일관된 캐릭터를 생성하는 모델을 연구해 볼 것이다.