[논문리뷰] Prompt-to-Prompt Image Editing with Cross-Attention Control
📑

[논문리뷰] Prompt-to-Prompt Image Editing with Cross-Attention Control

Category
딥러닝
Tags
Deep Learning
Paper Review
Diffusion Model
Published
March 1, 2023
Author
Jay

Prompt-to-Prompt Image Editing with Cross-Attention Control

 
 

0. Abstract

Text-based diffusion 모델은 image editing에 대해 챌린징한 면이 있는데, 프롬프트에 약간의 수정을 가하는 것만으로도 output이 완전히 달라진다는 것이다. 기존 SOTA image editing diffusion 모델의 경우 mask를 활용하는데, mask 내부의 structure와 content를 고려하지 않는다는 단점이 존재했다.
때문에 본 논문에서는 prompt-to-prompt editing 프레임워크를 제시하는데, 이미지의 spatial layout과 프롬프트의 각 단어의 relation을 컨트롤하는 것으로, 핵심은 cross-attention-layer이다. original image의 attention maps를 diffusion process에 주입하여 edited image의 attention maps를 컨트롤 한다.
Textual prompt만으로 합성 process가 가능해짐으로서, 다양한 caption-based editing application으로 가는 길이 열렸다.
 

1. Introduction

최근 LLI(Large-scale Language Image)모델이 연구 커뮤니티와 public에서 높은 image generation 성능으로 주목을 받고 있다. 그러나 주어진 이미지의 specific semantic region에 대한 컨트롤에 약한 모습을 보인다.
이를 해결하기 위해 기존의 방법론들은 주어진 이미지를 inpaint하기 위해 mask를 활용하는데, 이 making 방법은 cumbersome하며(거추장스러우며) 빠르고 직관적인 text-driven editing을 방해한다. 또한, 이미지 내의 중요한 구조적 정보를 제거하여, 특정 object의 texture를 수정한다던가하는 inpainting scope를 벗어나는 editing 능력이 부족하다.
본 논문에서는 직관적이고 강력한 textural editing method를 제시하는데, Prompt-to-Prompt manipulation이다. 특히, internal cross-attention maps를 고려하는데, 이는 pixel과 prompt text로부터 추출된 token을 바인딩하는 고차원 tensor이다.
Key idea는 cross-attention maps를 diffusion process에 주입하는 것으로, 어떤 diffusion step에서 어떤 픽셀이 프롬프트의 어떤 token과 연관될 것인지를 컨트롤할 수 있다.
notion image
본 논문에서는 cross-attention maps를 심플하고 semantic한 interface로 컨트롤하기 위한 여러 methods를 제시한다. (Figure 1. 참고)
  1. 장면의 composition을 보존하기 위해 cross-attention maps를 고정하면서도, prompt의 single token’s value를 바꾼다.(eg. “dog” to “cat”)
  1. 프롬프트에 새로운 단어를 추가하여 새로운 attention flow를 허용하면서도, 이전의 token에 대한 attention은 freezing한다.
  1. 생성된 이미지에서 단어에 대한 semantic effect를 확대하거나 약하게 한다.
 

2. Related Work

GAN-based editing이 있었는데, curated data(human faces와 같이 적은 범위로 한정된 데이터)에만 성공적이고 크고 diverse한 데이터셋에 대해서는 잘 안됐다. VQ-GAN이 나오면서 diverse한 데이터셋에 대해 생성이 가능하기 시작했고, 다른 방법론으로는 Diffusion model이 있었다. Diffusion 성능이 보통 GAN을 능가했다. 이후 성능이 계속 올랐고, editing 기법(Blended latent diffusion)도 등장했지만, masking이 필요했다.
이전 작업들과는 다르게, 본 논문에서 제시하는 method는 textual input만 필요로 한다. 이는 유저들에게 보다 직관적인 editing 경험을 제공한다.
 

3. Method

이미지 를 text 프롬프트 와 랜덤 seed 를 사용하여 text-guided diffusion model로 만들어낸 이미지라고 하자. 목표는 를 수정된 프롬프트 만으로 edit하여 수정된 이미지 를 얻어내는 것이다. 예를 들어 “my new bicycle”이라는 프롬프트로 만들어진 이미지가 있다고 할때, 유저는 이미지의 기존 구조를 유지한 상태로 자전거의 색상을 수정하거나, 자전거를 스쿠터로 바꾸고 싶을 것이다. 유저를 위한 직관적인 인터페이스는 text 프롬프트를 수정하는 것이다.
본 논문에서는 mask 사용을 피하고 싶었고, 가장 단순한 방식으로 고정된 seed를 사용하고 수정된 프롬프트로 생성하는 방식을 수행해 보았는데, Figure 2.의 아랫줄과 같이 실패했다.
notion image
본 논문의 가장 중요한 발견은 생성된 이미지의 구조와 모습이 random seed에만 의존하는 것이 아니라, diffusion process를 통한 pixel과 text embedding간의 interaticion에도 의존한다는 것이다. cross-attention layer에서 발생하는 pixel-to-text intercation을 수정함에 따라 Prompt-to-Prompt image editing을 제공할 수 있다.
보다 정확하게는 이미지 의 cross-attention map을 diffusion process에 주입하여 기존의 구성과 구조를 보존할 수 있다.
 

3.1. Cross-Attention in Text-Conditioned Diffusion Model

Imagen 모델이 본 연구의 backbone으로 사용되었는데, 이 method는 특정 모델에 적용이 제한되지 않는다. section 4.1에서 latent diffusion과 stable diffusion에 적용된 결과도 함께 보일 것이다. 이 세가지 모델은 text 프롬프트 conditioned이며, cross-attention layer를 통해 prediction을 한다. 이미지의 composition과 geometry가 6464 resolution에서 결정되기 때문에(diffusion process에서 결정), 본 논문에서는 SR model은 그대로 사용하고, text-to-image diffusion model에만 적용했다.
 
notion image
기본적으로 DM에서, 각 diffusion step 는 UNet을 사용해 noisy 이미지 와 text embedding 으로 부터 noise 을 predict한다. 마지막 step에서 이 과정은 생성된 이미지 를 만들어낸다. 가장 중요한 것은, 두가지 modality(language와 visual)간의 interaction은 noise prediction 과정에서 일어난다는 것이다. 이때 각 textual token에 대한 spatial attention maps를 만들어내는 cross-attention layer가 활용된다.
보다 엄밀히, Figure 3.에서 보이는 것과 같이, noisy image 의 깊은 공간적 특성은 Query Matrix 에 주입되고, textual embedding은 Key Matrix인 와 Value Matrix 에 주입된다.
Attention maps는 따라서.
cell 는 pixel 와 연관된 -th token의 값에 대한 weight를 정의하고, 는 key와 query의 latent projection dimension이다. 최종적으로 cross-attention output은 로 정의되고, 이는 spatial feature 를 업데이트하는데에 활용된다.
직관적으로 cross-attetion output인 에 의해 weight된 의 weighted average로 볼 수 있다. 실제로는 표현력을 높이기 위해, multi-head attetion이 병렬적으로 사용되었다.
 

3.2. Controlling the Cross-Attention

notion image
다시 중요한 발견으로 돌아와서, 생성된 이미지의 spatial layout과 geometry는 cross-attention maps에 달려있다. pixel과 text간의 interaction은 Figure 4.에 나와있고, pixel들은 그들을 표현하는 단어에 더 강하게 attracted 되어있다. 예를들어 “bear”의 경우 piexel들이 더 곰과 연결되어있다. 주목할만한 것은 averaging이 visualization 목적으로 수행된다는 것과, attention map이 각각의 목적에 따라 계속해서 분리되어 있다는 것이다. 시각적 구조가 diffusion process의 초기부터 이미 결정되어 있다는 것 역시 흥미롭다.
Attention이 모든 composition(구성)을 반영하기 때문에, 우리는 original 프롬프트 로 부터 얻어진 attention map 을 프롬프트 로 편집하는 second generation 과정에 주입할 수 있다. 이는 편집된 이미지 의 합성과정이 으로만 편집되는 것이 아닌, input image 의 구조를 유지할 수 있다는 것을 의미한다. 이는 다양한 타입의 직관적 편집이 가능하도록 하는 attention-based manipulation의 한 가지 형태일 뿐이다. 따라서 본 논문에서는 더 general한 프레임워크를 제안한다.
를 noisy image 과 attention map 를 output으로 내는 single step 의 diffusion prcess 연산이라고 하자. 본 논문에서는 를 보충 프롬프트의 value 를 유지하면서도 으로 overide하는 diffsuion step으로 나타냈다. 또한 수정 프롬프트 에 대한 attention map을 로 나타냈다. 마지막으로 general edit 함를 로 나타냈다.
본 논문의 General Algorithm은 기존 prompt와 수정 prompt를 동시에 사용한다. 또한 inteanl randomness를 고정했는데, 같은 프롬프트라도 다른 seed는 완전 다른 output을 내기 때문이다. editing 알고리즘은 아래와 같다.
notion image
 
Local Editing
일반적인 경우, 유저들은 나머지 디테일을 보존하면서(i.e. 배경) 특정 object나 region을 수정하고 싶을 것이다. 이를 위해 수정될 object의 attention map layer를 활용한다. 실제로는 수정되는 part의 mask를 근사한다(알고리즘의 11-14 확인). step 의 mask를 계산하기 위해, 원래 단어 와 새로운 단어 에 대해 평균을 구한다. 모든 실험에서 이다.
notion image
 
Word Swap
이 경우, 유저는 기존 프롬프트의 tokens를 다른 걸로 바꾼다. 예를들어 = “a big bicycle”에서 = “a big car”과 같다. 이 경우에는 기존 구성을 보존하면서 새로운 프롬프트의 content에 접근하는게 어렵다. 하지만, 앞서 제안된 attetion injection은 geometry를 과도하게 제한했고, 다음과 같은 softer attention constrain을 제안하게 되었다.
notion image
는 timestamp parameter이고, 언제까지 injection이 적용될 것인지를 결정한다. 앞서 이미지 내의 구성이 초기 단계에서 결정된다는 점을 주목하자. 따라서, injection step을 제한함에 따라, geometry freedom을 새로운 프롬프트에 부여할 수 있다.
 
Prompt Refinement
또다른 경우에, 유저는 새로운 토큰을 기존 토큰에 추가한다. 예를들어 = “a castle”에서 = “children drawing of a castle”과 같다. 일반적인 디테일을 보존하기 위해, 본 논문에서는 attiontion injection을 두 가지 프롬프트의 일반적인 token에만 적용했다. 자세하게는 target prompt 의 token index를 받는 alignment 함수 A를 사용하여 에서 매칭되는 index 혹은 None을 반환한다.
notion image
는 pixel value에 는 text token에 대응되고, injection step을 조절할 수 있음을 기억하자. 이것은 stylization, object의 특성 부각, global manipulation등을 가능하게 한다.
notion image
 
Attetion Re-weighting
마지막으로 유저는 결과 이미지에서 각 단어에 해당하는 효과를 강화하거나 약화시키고 싶어할 수 있다. 예를 들어 = “a fluffy ball”이라는 프롬프트가 있고, 유저가 ball을 더 복슬복슬하게 만들거나, 복슬거리지 않게 만들고 싶다고 가정해보자. 이 편집을 수행하기 위해서, 본 논문에서는 파라미터 를 통해 해당 단어의 token 의 attention map을 scale하여, 효과를 강화시키거나 약화시킨다. 나머지 attention map은 바뀌지 않는다.
notion image
 

3.3. Self-Attention

대부분의 모델은 또한 생성되는 이미지의 spatial layout과 geometry에 영향을 미치는 self-attention layers로 구성되어 있다. 하지만 cross-attetion과는 다르게 self-attention에서는 interaction이 pixel들끼리에서만 일어난다. 따라서, 특정 textual token과 관련된 편집이 불가능하다.
 

4. Results

4.1. Applications

notion image
 

4.2. Comparisons

notion image
 
 

5. Limitations

notion image
  1. 현재의 inversion process는 몇몇 test image에 대해 눈에 보이는 왜곡을 만들어낸다(Figure 19.). 게다가 inversion에는 유저가 적절한 prompt를 작성하는 것이 필요한데, 복잡한 구성에 대해 적합한 프롬프트를 작성하는 것은 어렵다.
  1. 현재의 attention maps는 low resolution인데, cross-attention이 네트워크의 bottleneck에 위치하고 있기 때문이다. 이것은 정밀한 editing만 가능하게 한다. 이를 완화시키기 위해, cross-attetion을 higher-resolution layers에도 적용하는 것을 고안했는데, 이는 future work에서 다루도록 한다.
  1. 본 논문에서 제시하는 method는 이미지 내에서 물체를 움직일 수 없다.
 

6. Conclusions

이번 work에서는 text-to-image diffusion모델의 cross-attetion layers이 강력한 능력을 가짐을 발견했다. 고차원 layers는 spatial maps에 대해 해석가능한 representation을 제공하며, 이는 프롬프트의 단어와 합성된 이미지의 spatial layout을 관계짓는데 중요한 역할을 수행한다.
이 연구는 유저에게 심플하고 직관적인 AI Image Editing을 제공하는 첫번째 발걸음이 될 것이다.
 

Reference