본문 바로가기
Paper Review/Diffusion Model

[논문 리뷰] FastDrag: Manipulate Anything in One Step (arxiv0524)

by climba 2024. 6. 7.

Gradient based optimization 논문들을 찾아보다가 발견한 논문. DragGAN이나 DragDiffusion 등을 몇 번 들어봤었는데, Drag xxx의 sota model인 것 같다. 이해하는데 꽤 어려웠지만, 배울점이 많은 논문이였다.

arxiv : https://arxiv.org/abs/2405.15769

code : x

 

Before reading

  1. 논문 제목을 보고 해당 모델이 어떤 방법론을 바탕으로 할지 가설을 세워봅시다.
    1. ~~~ Anything이란 제목을 그닥 좋아하지는 않지만 manipulate anything이라니 .. 방법이 굉장히 궁금했다. one step이란 단어는 처음에는 눈에 들어오지 않았는데, related work를 읽으며 기존에 drag xx 방식이 전부 몇십 step의 optimization이 필요하단 걸 알게 되었고, 다시보니 제목이 매력적으로 느껴졌다.
  2. 논문의 main figure를 보고 전체 흐름을 유추해봅시다.
    1. 이해되지 않는 파트가 있나요? 있다면 미리 표시해두고 집중적으로 읽어봅시다

One-step Warpage Optimization, Bilarteral Nearest Neighbor Interpolation, Consistency Preserving 이렇게 총 세 가지의 메소드를 제안하는데 마지막 consistency preserving은 대충 뭔지 알 것 같고 1번을 구체적으로 어떻게 했는가와 2번이 뭔지(왜 필요한지)가 궁금하다.

1. Introduction

  1. 논문이 다루는 task : drag guided image editing
    1. Input : dragging instruction + image
    2. Output : edited image
  2. 해당 task에서 기존 연구 한계점

DragDiffusion, FreeDrag, Dragondiffusion : need n-step(about 50~80) optimization

그러나, Fast Drag는 one-step optimization이 가능하다! + preventing image distortions

2. Related Work

2-1. Text-based Image Editing : DiffusionCLIP, P2P, Imagic, InstructPix2Pix, Null-text inversion

 

2-2. Drag-based Image Editing

2-2-1. Motion based

DragGAN, DragDiffusion, GoodDrag, StableDrag, DragNoise, FreeDrag

2-2-2. Gradient based

DragonDiffusion, DiffEditor, SDEDrag(one-step but still time consuming)

3. 제안 방법론

- Main Idea

제안하는 방법론은 크게 3가지이다.

1. One-step Warpage Optimization

2. Bilateral Nearest Neighbor Interpolation

3. Consistency Preserving

 

1. One-step Warpage Optimization

warpage는 뒤틀림, 왜곡이라는 뜻인데, Latent Warpage Function(LWF)을 이용하여 latent space 상에서 drag editing을 어떻게 잘 (뒤틀림이나 왜곡을 최대한 자연스럽게) 할 것인지를 표현한다는 것이다.

수식으로 보면 위와 같은데 v_j가 결국 drag instruction이라고 생각하면 된다.

user가 입력으로 제공하는 것은 k개의 drag instruction들로 구성된 set D와, mask region 안에 있는 feature points들로 구성된 set P이다.

 

결국 이 함수는 j개의 feature points들을 어떤 warpage vector로 mapping시켜야하는지 결정해야한다. 이를 기하학적으로 그려보면 아래 그림과 같은데,

예를 들어 특정 drag instruction d_i가 s_i(handle point)와 e_i(target point)로 표현된다고 해보자. 그럼 위와 같이 s_i 말고도 수정되어야하는 point p_j들이 존재할 것이고, 이 p_j와 s_i의 유클리디안 거리를 통해 3번식의 weight를 결정한다.(아래 식과 같이) (유클리디안 거리가 멀수록 w의 크기는 작아진다 -> 당연히 거리가 멀면 영향을 적게 받으므로)

 

바꿔 말하면 p_j에서의 drag instruction vector v_j는 아래와 같이 표현할 수 있다.

그리고 람다는 결국 Figure 3의 그림에서 닮음 조건을 이용하면 아래와 같이 표현할 수 있다.

이렇게 해서 각 point들에 대한 warpage vector v_j를 얻는 것이다.

이렇게 얻은 v_j들을 원래 데카르트 좌표계에서 각 포인트들의 원래 x, y 좌표에다가 더해주면 아래와 같이 새로운 feature point들을 구할 수 있다.

 

그러나 이렇게 계산한 새로운 feature point들도 결국 latent space에서 한 것이기 때문에, 실제 pixel space에서는 아래 Figure 4와 같이 Null 값을 포함할 수 있다.

 

2. Bilateral Nearest Neighbor Interpolation

이를 해결하기 위한것이 Bilateral Nearest Neighbor Interpolation이다.

이름은 어렵게 써놨지만, 결국 상 / 하 / 좌 / 우 네 방향에서 가장 가까운 Null이 아닌 value들을 이용해 interpolation하겠다는 것이고 수식은 아래와 같다.

u, r, d, l : up, right, down, left

 

3. Consistency Preserving

마지막으로 Consistency Preserving은 semantic information을 더 잘 보존하기 위해 inversion에서 뽑은 attention Key와 Value를 sampling에서 활용하겠다라는 것인데, 이런 컨셉은 많이 쓰였던 것 같아 novelty가 있는지는 잘 모르겠다. 근데 또 ablation test를 보면 이게 되게 critical하다.

- Contribution

1. One-step Warpage Optimization

2. Bilateral Nearest Neighbor Interpolation

3. Consistency Preserving

을 제안해서 drag instruction을 one step으로 잘 했다!

4. 실험 및 결과

- Dataset

Drag-Bench Dataset (211 different types of images with 349 pairs of handle and target points)

- Baseline

- Results

Ablation test 결과 (Fig 8, 9 ,10)

- Conclusion (What I learned)

기하학적으로 drag points들의 관계를 정의한게 인상깊었다. 처음 읽었을때는 좀 낯설어서 어렵게 느껴졌는데, 두번째 볼 때는 더 잘 이해된 것 같다.

댓글