본문 바로가기

논문 리뷰/Diffusion Model

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

Attention map 주입을 통한 텍스트 기반 이미지 편집

 

Project Page

 

 

 

Abstract

편집이 텍스트로만 제어되는 직관적인 prompt-to-prompt 편집 프레임워크.

Cross attention이 중요하다는 것을 관찰하고 확산 과정을 따라 attention map을 주입하여 제어함.

 

 

 

Introduction

핵심 아이디어는 확산 과정에서 cross attention map을 주입하여 확산이 진행되는 동안 프롬프트 텍스트의 토큰에 어떤 픽셀이 참여하는지 제어함으로써 이미지를 편집할 수 있다는 것이다. 

 

위 그림과 같은 작업 가능

  • 단어 교체
  • 새로운 단어 추가
  • 단어의 의미 효과를 증폭하거나 약화

 

 

Prompt-to-prompt는 다양한 text-to-image 모델에 적용될 수 있다.

 

 

 

Method

텍스트 프롬프트 P에서 생성된 이미지 I가 있을 때, 편집된 프롬프트 P*의 안내만을 이용하여 편집된 이미지 I*를 얻는 것이 목표이다.

 

연구진들은 이미지의 구조가 무작위 시드뿐만이 아니라 확산 과정 동안의 픽셀과 텍스트 임베딩 간의 상호작용에 의존한다는 것을 발견했다. Cross attention 계층에서 발생하는 pixel-to-text 상호작용을 수정하여 이미지 편집을 제공한다.

 

Cross-attention in text-conditioned diffusion models

노이즈 있는 이미지의 feature는 쿼리 Q에 투영되고,

텍스트 임베딩은 K, V에 투영된 다음

Cross attention의 출력인 MV는 이미지의 feature를 업데이트하는 데 사용되며, 가중치가 attention map M인 V의 가중 평균이고, 이는 Q와 K 사이의 유사성과 상관관계가 있다.

 

Controlling the cross-attention

생성된 이미지의 구조는 cross-attention map에 따라 달라진다.

 

또한 그 구조는 이미 확산 단계의 초기에 결정된다는 것을 알 수 있다.

원래 프롬프트 P로 생성된 attention map을 편집된 프롬프트 P*의 세대에 주입할 수 있음.


DM(zt,P, t, s)를 step t의 단일 확산 단계라고 하고,

DM(zt,P, t, s){M ← M̂}은 attention map이 M̂으로 교체되고 P에서 얻은 V는 그대로인 확산 단계를 나타낸다.

또한 M*은 P*에서 생성된 attention map이고 

Edit(Mt, M*t , t)는 원본 및 편집된 attention map을 입력으로 받는 편집 함수.

 

일반적으로 두 프롬프트에 대한 확산 과정이 동시에 진행되며, 작업의 종류나 강도에 따라 local 편집이 적용된다.

또한 동일한 프롬프트에서도 시드에 따라 극적인 출력을 생성하기 때문에, 내부 무작위성을 수정한다.

알고리즘은 다음과 같음.


Local Editing

배경 등의 나머지 정보는 유지해야 하기 때문에 편집이 local 영역에만 적용되도록 한다.

 

원래 단어 w의 평균 attention map M̄t,w와 새로운 단어 W*의 M̄*t,w*을 계산하고 임계값 B(x)=(x>k)를 적용하여 원본 객체와 편집된 객체의 실루엣을 모두 포함하는 마스크 α를 얻는다. 이를 통해 편집 영역을 제한한다.


Word Swap

bicycle을 car로 바꾸는 것과 같은 큰 구조적 변형이 수반되는 경우 기하학적 구조를 과도하게 제한하는 경우가 생길 수 있으므로 부드러운 제약을 사용한다.

Attention map의 구성은 초기 단계에 얼추 정해지기 때문에, 초기에만 구조를 제한하고 나머지 step에서는 기하학적 자유를 허용한다.


Prompt Refinement

편집된 프롬프트에 새로운 단어가 추가되었을 경우 공통 정보를 보존하기 위해 공통 토큰에만 attention map 주입을 적용한다.

 

P*에서 토큰 인덱스를 수신한 뒤에 관련된 P에서의 토큰 인덱스나 None을 출력하는 정렬함수 A를 사용한다.

(j는 토큰, i는 연관된 픽셀 값. 부드러운 제약도 사용 가능.)


Attention Re–weighting

추가 매개 변수로 특정 단어의 영향력을 강화하거나 약화할 수 있다.


 

 

 

Results