본문 바로가기

논문 리뷰/Diffusion Model

VidToMe: Video Token Merging for Zero-Shot Video Editing

[arXiv](Current version v1)

 

 

Abstract

프레임 간에 self-attention token을 병합하여 계산 비용을 줄임과 동시에 시간적 일관성을 향상하는 VidToMe 제안

 

 

 

Introduction

한 프레임의 토큰을 다른 프레임의 가장 유사한 토큰과 병합하여 정렬한다.

 

모든 프레임을 한 번에 처리할 수 없으므로 비디오를 청크로 나누고 청크 내 local merging과 청크 간 global merging을 수행하여 단기, 장기 일관성을 보장한다.

 

 

 

Preliminaries

Latent Diffusion Model

LDM

 

Token Merging

Token Merging은 먼저 토큰 시퀀스를 src, dst로 분할하고 유사도가 높은 토큰끼리 연결한 뒤 가장 유사한 r개의 pair를 선택하여 병합한다. 병합과 병합해제 M, U를 정의한다.

 

 

 

Proposed Method

우리의 목표는 비디오의 구조를 보존하면서 주어진 prompt에 맞는 편집 이미지를 생성하는 것이다.

Video Editing Pipeline

먼저 각 프레임에 DDIM Inversion을 적용한다.

 

각 프레임 ztn를 일련의 청크 Cm으로 분할한다. 첫 청크의 길이는 [1,B] 범위의 무작위 정수 b이고 처음과 마지막 청크를 제외한 모든 청크는 B개의 프레임을 갖는다.

 

프레임은 배치 차원에서 연결되며, 이는 모든 프레임을 개별 이미지로 취급한다는 것을 의미한다. 위 이미지는 B=4일 때의 pipeline을 보여준다.

 

외관과 높은 상관관계가 있는 self-attention 전에 프레임 간 토큰을 병합하여 일관된 feature를 출력하도록 한다.

깊은 block에서 병합하면 생성 품질이 저하될 수 있으므로 처음 두 downsample block과 마지막 두 upsample block에서 병합을 수행한다.

 

Video Token Merging

Self-attention의 입력과 출력은 BxNxC인  Tin, Tout으로 표시.

 

Local Token Merging

청크에서 무작위로 dst token을 선택하고 병합. 인접한 프레임은 매우 비슷하므로 높은 병합 비율을 사용한다. (e.g. 0.9)

 

장거리 일관성을 위해 청크 크기를 늘리는 것은 계산 비용이 부담되므로 global merging을 제안한다.

 

Global Token Merging

별도로 존재하는 global token set Tg가 있다.

Tg는 첫 번째 청크의 local merging token Tlm으로 초기화되며, 반복해서 다음 청크의 local token과 병합한다.

 

Tgm의 길이를 무제한으로 늘리는 방법은 긴 비디오에서 적합하지 않다.

대신에 길어진 Tgm을 Tg와 Tlmu로 나누고 Tlmu를 현재의 global token Tgk로 대체한다.

 

Self-Attention Analysis

B = 4, p = 0.9로 가정할 때, 계산 복잡도가 절반으로 감소. 4N2 → 2N2

 

Token Unmerging

병합 해제 하면 됩니당.

 

 

 

Experiments

Project Page가 아직 없어서 최상단의 동영상 참고. 진짜 깔끔하긴 하다 ㅇㅇ;;