평범한 필기장

[평범한 학부생이 하는 논문 리뷰] Null-text Inversion for Editing Real Images using Guided Diffusion Models (CVPR 2023) 본문

AI/Diffusion

[평범한 학부생이 하는 논문 리뷰] Null-text Inversion for Editing Real Images using Guided Diffusion Models (CVPR 2023)

junseok-rh 2024. 8. 28. 21:38

Paper | Github | Project Page

 

Null-text Inversion for Editing Real Images using Guided Diffusion Models

Null-text Inversion for Editing Real Images using Guided Diffusion Models Ron Mokady* 1,2 Amir Hertz* 1,2 Kfir Aberman1 Yael Pritch1 Daniel Cohen-Or1,2 1 Google Research 2 Tel Aviv University *Denotes Equal Contribution Paper      Code TL;DR Null-text

null-text-inversion.github.io

1. Introduction

 Real image에 대해 editing을 하기 위해서는 원본 이미지와 textual prompt를 inverting하는 것이 필요하다. 비록 DDIM inversion이 unconditional diffusion model에 대해 제안되었지만, classifier-free guidance가 적용될 때 text-guided diffusion model에 대해서는 부족하다.

 본 논문은 original model의 풍부한 text-guided editing 능력을 유지하면서 near-perfect reconstruction을 달성하는 효율적인 inversion scheme을 도입한다. 본 논문의 방식은 classifier-free guidance와 DDIM inversion이라는 guided diffusion model의 두 주요 측면의 분석으로부터 시작한다.

 본 논문은 classifier-free guidance의 unconditional part에 의해 유도되는 상당한 효과를 인지한다. 그래서 본 논문은 input image와 prompt를 invert하기 위해 unconditional part에서 사용되는 embedding을 최적화한다. 본 논문에서는 empty text string의 embedding을 본 논문의 optimized embedding으로 대체하기 때문에 이를 null-text optimization이라고 부른다.

 기존의 DDIM inversion은 에러가 어느정도 있지만 unconditional에서 잘 작동한다. 하지만 classifier-free guidance는 이러한 에러를 증폭 시키기 때문에 text guided synthesis에서는 그렇지 않다. 그래서 본 논문에서는 Diffusion Pivotal Inversion이라는 것을 도입한다.

 이를 통해 본 논문은 Prompt-to-Prompt의 text editing을 real image에 가능하게 한 첫 방식이라고 소개한다. 또 model을 tuning할 필요없다는 다른 방식들과의 강점을 지닌다고 소개한다.

2. Related Work

  기존에 text를 가지고 image를 생성하는 것은 발전이 많이 됐지만, training data에 퍼지지 않은 specific하고 personal한 object를 합성하는 것은 어려웠다. 이를 위해서는 inversion이 필요하다. 기존에는 textual inversion이나 모델을 tuning하는 방식이 있지만 이러한 방식들은 unedited parts를 정확하게 재생성하면서 real image를 editing를 하는 것에 어려움을 겪는다.

 본 논문의 방식은 real image에 대해서 Prompt-to-Prompt를 적용시킬 수 있게 한다. 또한 fine-tuning을 필요로 하지 않고 SD를 사용해서 고퀄리티의 local, global modification이 가능하다.

3. Method

 Real image $\mathcal{I}$이 있다고 하면, 본 논문의 목적은 text guidance만을 가지고 edited image $\mathcal{I}^*$를 얻는 것이다. 셋팅은 Prompt-to-Prompt와 동일하다. (P2P 논문에 대한 자세한 설명은 여기에서 볼 수 있다.) 본 논문의 결과에 대한 예시는 다음과 같다.

 위와 같은 editing operation은 $\mathcal{I}$를 inverting하는 것을 필요로 한다. Main challenge는 직관적인 text-based editing 능력은 유지하면서 model에 source prompt $\mathcal{P}$를 넣음으로써 $\mathcal{I}$를 충실히 reconstruction하는 것이다.

 본 논문의 approach는 두가지 main observation을 base로 한다. 첫번째, DDIM inversion은 classifier-free guidance가 적용될 때 만족스럽지 못한 reconstruction을 제공하지만, optimization에 대한 좋은 출발점을 제공한다는 것이다. 두번째, classifier-free guidance에서 사용되는 unconditional null embedding을 최적화하는 것은 모델과 conditional embedding의 tuning을 피하면서 정확한 reconstruction을 제공한다. 그로 인해 바래진 editing 능력을 보존한다.

3.1 Pivotal Inversion

 최근 inversion 연구에서는 optimization iteration 마다 random noise를 사용해서 모든 noise vector를 single image에 mapping하는 것을 목표로 했다고 한다. 본 논문에서는 inference는 하나의 noise vector만을 필요로하기 때문에 비효율적이라는 것을 관찰했다. 대신 본 논문은 single noise vector만을 사용해 더 "local"한 optimization을 수행하려한다. 특히, 본 논문은 좋은 근사치인 pivotal noise vector 주변에서 optimization을 수행하고 그럼으로써 더 효율적인 inversion을 하게 하는 것을 목표로 한다.

 Unconditional diffusion model에서, DDIM inversion을 통해 매 step마다 작은 error들이 쌓이는데, 이렇게 쌓인 error는 무시할만하다. 하지만 Stable diffusion을 이용해 editing을 할 때 $w >1$인 큰 guidance scale을 적용이 필요로 한다. 본 논문에서는 이러한 상황에서 guidance scale은 쌓인 error들을 더 증폭시킨다는 것을 발견한다. 그래서 classifier-free guidance를 가진 DDIM inversion은 visual artifacts를 가져올 뿐만아니라, 얻어진 noise vector가 Gaussian 분포를 벗어나는 결과를 초래할 수도 있다. 후자는 editability를 감소시킨다.

 Guidance scale $w = 1$로 DDIM inversion을 사용해서 original image의 rough한 근사치를 제공한다. Image encoding $z_0$와 Gaussian noise vector $z_T^*$ 사이의 $T$ step trajectory를 생성한다. 본 논문에서는 이 $z_T^*$를 classifier-free guidance를 가진 diffusion process에 넣는 것에 집중한다. 이는 중간 latent code들이 trajectory로부터 이탈하기 때문에, high editability지만 부정확한 reconstruction을 야기한다.

 본 논문에서는 이 $w = 1$인 initial DDIM inversion을 pivot trajectory라고 부르고 본 논문의 optimization을 $w > 1$인 standart guidance scale와 함께 이 주변에서 수행한다. 즉, 본 논문의 optimization은 의미있는 editing을 수행하는 능력을 유지하면서 original image에 대한 유사성을 최대화한다. 초기 trajectory $z_T^*, \cdots, z_0^*$에 가능한한 가깝게 하는 다음과 같은 objective를 가지고 diffusion process의 각 timestep $t$에 대해 개별적으로 optimization을 수행한다.

여기서 $z_{t-1}$은 optimization의 중간 결과이다. Pivotal DDIM inversion은 좋은 starting point를 제공하기 때문에, 이 optimization은 random noise vector들을 사용하는 것과 비교해서 매우 효율적이다.

 모든 $t < T$에 대해, optimization은 이전 step $(t+1)$ optimization의 endpoint로 부터 시작해야만 한다는 것에 주목해야한다. 그렇지 않으면 inference시에 최적화된 trajectory가 유지되지 않는다고 한다. 그러므로 step $t$의 optimization이후, noisy latent $\bar{z}_t$를 계산한다. 이는 다음 step의 optimization에서 사용되고 이는 새로운 trajectory가 $z_0$ 주변에서  끝나는 것을 보장한다.

3.2 Null-text optimization

 최근 연구들은 성공적으로 real image를 model의 domain으로 invert하기 위해, textual encoding, 네트워크의 weight들 혹은 둘 다를 최적화한다. 하지만 이러한 방식들은 직관적인 prompt-to-prompt edit을 더 어렵게 한다.

 대신에 본 논문에서는 결과는 unconditional prediction에 크게 영향을 받는다는 classifier-free guidance의 key feature를 사용한다. 본 논문은 default null-text embedding을 optimize된 것으로 교체하는데 이를 null-text optimization이라고 부른다. 이름대로 각 input image에 대해서, null-text embedding으로 초기화된 unconditional embedding $\varnothing$만 optimize한다. 모델과 conditional textual embedding은 그대로 유지한다.

 이는 최적화된 unconditional embedding을 단순히 사용해서 Prompt-to-Prompt를 이용한 직관적인 editing을 가능하게 하면서 고퀄리티의 reconstruction을 야기한다. 더욱이 single inversion process 후에, 동일한 unconditional embedding은 input image에 대해 다양한 editing operation들에 사용될 수 있다. Null-text optimization은 전체 모델을 fine-tuning하는 것보다는 덜 expressive하기 때문에, 더 효과적인 pivotal inversion scheme을 필요로 한다.

 본 논문에서는 단일 unconditional embedding을 최적화하는 것을 Global null-text optimization이라고 부르는데, 본 논문은 아래의 그림처럼 $t$에 대해 다른 null embedding $\varnothing_t$을 optimizing하는 것이 본 논문의 pivotal inversion에 더 잘 부합하면서 reconstruction 퀄리티를 상당히 향상시키는 것을 관찰했다. 그래서 본 논문은 timestep에 따른 unconditional embeddings $\{ \varnothing_t \}^T_{t=1}$을 사용하고, $\varnothing_t$을 이전 step의 embedding $\varnothing_{t+1}$으로 초기화한다.

본 논문의 full algorithm은 다음 그림과 같다.

(1) $w = 1$로 DDIM inversion을 수행해서 noisy latent codes $z_T^*, \cdots, z_0^*$을 얻는다.

(2) $\bar{z_T}$를 $z_T^*$로 초기화하고, default guidance scale $w=7.5$로 다음 optimization을 각 timestep마다 $N$번 수행한다.

(3) 각 step의 끝에 다음과 같이 업데이트한다.

이 방식을 통해 $\bar{z_T} = z^*_T$와 optimize된 unconditional embeddings $\{ \varnothing_t \}^T_{t=1}$를 통해 real input image를 editing할 수 있다.

4. Ablation Study

DDIM inversion

Lower bound로 사용

VQAE

Upper bound로 사용

Random Pivot

$z_0 \sim \mathcal{N}(0,I)$로 두고 한 실험

Global null-text embedding

이 방식은 덜 expressive하기 때문에 converge하는데 어려움을 겪는다.

Textual inversion

Convergence가 더 느리고 reconstruction 퀄리티가 좋지 않다.

Textual inversion with pivot

Null-text optimization과 비교해서 editability가 줄어든다. 특히 attention map이 덜 정확해서 Prompt-to-Prompt editing의 성능이 감소한다.

Null-text optimization without pivotal inversion

Null-text optimization이 완전히 망가진다. DDIM inversion에 비해서도 결과가 안좋아진다.

5. Results

 위 결과들을 보면 본 논문의 방식의 reconstruction 퀄리티와 좋은 editability를 볼 수 있다. 특히 좌측 이미지에서 본 논문은 texture와 structured object 둘 다 잘 수정하는 것을 볼 수 있다. 또 한번의 inversion 절차를 통해 여러 editing된 이미지를 만들어 낼 수 있다는 것을 보인다. 또 5번 이미지를 보면 효과를 키우거나 작게하는 것도 가능한 것을 볼 수 있다.

5.1 Comparison

 본 논문은 text-only editing method인 VQGAN + CLIP, Text2Live, SDEdit과 mask-based methods인 Glide, Blended-Diffusion, Stable Diffusion Inpaint와 비교한다. 또 Imagic이라는 Imagen모델을 editing operation마다 model-tuning하는 방식과도 비교한다.

Qualitative Comparison

Quantitative

5.2 Evaluating Additional Editing Technique

 본 논문에서 editing을 Prompt-to-Prompt를 이용해서 하는데, SDEdit에 이용한 결과도 보인다.

6. Limitations

7. Conclusions

 Pivotal inversion과 null-text optimization이라는 text-guided diffusion model에 새로운 두 기술적인 컨셉을 도입했는데, 이를 통해 reconstruction과 editability사이의 gap을 연결할 수 있었다.