일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- continued pre-training
- diffusion
- sfttrainer
- transformer
- cross-document attention
- gemma2
- Fine-tuning
- PEFT
- instruction tuning
- prompt
- ViT
- CPT
- domain-adapted pre-training
- llm tuning
- continual pre-training
- lora+
- instruct-pt
- error: mkl-service + intel(r)
- Text-to-Image
- instruct pre-training
- continued pre-train (cpt)
- Lora
- glibcxx
- Mac
- backbone
- langchain
- instruction tuning (it)
- llm
- ubuntu
- full fine-tuning (fft)
- Today
- Total
꾸준하게
[논문리뷰] StoryDiffusion: Consistent Self-Attention for Long-Range Image and Video Generation 본문
[논문리뷰] StoryDiffusion: Consistent Self-Attention for Long-Range Image and Video Generation
yeonsikc 2024. 6. 20. 19:34
arXiv paper code page demo
Yupeng Zhou, Daquan Zhou, Ming-Ming Cheng, Jiashi Feng, Qibin Hou
Nankai University, ByteDance Inc., Nankai International Advanced Research Institute
2 May 2024
Abstract
최근 Diffusion 기반 모델은 연속 시퀀스로 생성되는 이미지의 특정 요소를 유지하거나 복잡한 요소를 생성하는 것은 도전과제로 남아있다. 이를 해결하기 위해 본 논문에서는 새로운 self-attention 계산식인 Consistent Self-Attention을 제안하였다. 이는 생성된 이미지들의 일관성을 상당히 높여주며, 사전학습된 diffusion 기반 T2I 모델을 zero-shot 방식으로 보강한다. 본 방법론으로 긴 영상을 생성하기 위해, 새로운 semantic 공간 시간적 움직임 예측 모듈인 Semantic Motion Predictor 또한 소개한다. 이는 semantic 공간 속에 제공된 두 이미지 사이의 motion condition을 예측하는 것으로 학습된다. 이 모듈은 생성된 이미지 시퀀스를 부드러운 전환과 일관된 피사체가 있는 동영상으로 변환하며, 특히 긴 영상을 생성할 때 latent space만을 기반으로 하는 모듈보다 훨씬 더 안정적이다. 위에서 소개한 새로운 두 요소를 결합하여 텍스트 기반 스토리로부터 일관된 이미지들이나 다양한 콘텐츠를 담은 영상을 묘사할 수 있는 일명 StoryDiffusion를 개발하였다. 본 모델은 이미지와 영상의 표현을 통한 시각적 스토리 생성의 선구적인 탐구를 포함하며, 아키텍처 수정 측면에서 더 많은 연구에 영감을 줄 수 있을 것이라 기대한다.
Introduction
일관성 있는 이미지 생성을 위해 이전에도 다양한 연구가 진행되어 왔지만 값 비싼 연산 비용과 데이터가 요구되는 문제가 있다. 저자는 데이터와 연산 비용을 최대한 가볍게 하거나 심지어 zero-shot 형식이 가능하도록 목표를 설정하였다.
self-attention 기법은 생성되는 시각적 콘텐츠의 전체적인 구성을 모델링하는 매우 중요한 모듈이다. 저자는 self-attention 연산에 guide용 레퍼런스 이미지를 사용할 수 있다면 두 이미지 사이의 일관성이 상당히 개선될 것이라는 것이라는 기대에 연구를 시작했다고 한다. self-attention은 입력에 의존적으로, 모델 학습이나 fine-tuning이 아마 필요하지 않을 수 있다. 이러한 아이디어를 토대로, 저자는 StoryDiffusion의 핵심 모듈로 Consistent Self-Attention (CSA)을 제안한다. 이는 zero-shot 방식으로 diffusion backbone에 있던 original self-attention을 대체하게 된다.
기존 self-attention가의 차이점으로, CSA는 단일 레퍼런스 이미지를 대표하는 토큰 위에서 작동한다는 점이다. CSA는 토큰 유사도 행렬 계산 및 토큰 병합 중에 레퍼런스 이미지에서 샘플링된 참조 토큰을 통합한다. 샘플링된 토큰은 동일한 Q-K-V 가중치를 공유하므로 추가적인 학습이 필요하지 않다. 위 그림에서 볼 수 있듯이, CSA는 배치의 이미지 간에 상관관계를 구축하여 신체적 특성과 옷차림 등의 측면에서 일관된 캐릭터 이미지를 생성한다. 이를 통해 스토리텔링을 위한 주제 일관성 있는 이미지를 생성할 수 있게 된다.
아무 스토리 글이 입력되면, 본 아키텍쳐는 우선 여러 프롬프트로 분할하고 각 프롬프트는 개별 이미지에 해당된다. 그러면 스토리를 효과적으로 설명하는 매우 일관된 이미지들을 생성할 수 있다. 긴 스토리 생성을 위해, temporal 차원을 따라 sliding window를 적용한 CSA를 구현하였다. 이는 입력 문장 길이에 따른 최대 메모리 사용량의 종속성을 제거하여 긴 스토리를 생성할 수 있다. 생성된 스토리 프레임들을 비디오로 만들기 위해, semantic 공간에서의 두 이미지 사이의 전환을 예측하는 Semantic Motion Predictor (SMP)를 제안하였다. 저자는 경험적으로 semantic 공간에서 움직임을 예측하는 것이 latent 공간에서 예측하는 것보다 더 안정적인 결과를 생성한다는 사실을 발견하였다. 사전학습 된 모션 모듈(Guo et al., 2024)과 결합된 SMP는 SEINE(Chen et al., 2023)과 SparseCtrl(Guo et al., 2023)과 같은 최근의 조건부 영상 생성 방법들 보다 훨씬 더 부드러운 비디오 프레임을 생성할 수 있다.
저자가 언급하는 본 연구의 Contribution은 다음과 같다.
- 학습없이 플러그로 연결 가능한 attention 모듈인 Consistent Self-Attention (CSA)을 제안하였다. 이는 높은 텍스트 제어력을 가진 스토리텔링을 위해 생성된 이미지 시퀀스 속에서 일관된 캐릭터를 유지할 수 있게 한다.
- semantic 공간 속에서 두 이미지 사이의 전환을 예측하는 새로운 모듈인 Semantic Motion Predictor (SMP)를 제안하였다. 이는 최근에 연구된 이미지 조건부 방법인 SEINI 및 SparseCtrl보다 훨씬 더 안정적인 긴 영상 프레임을 생성하여 분 단위로 쉽게 업스케일링 할 수 있다.
- 위에서 제안한 CSA와 SMP를 사용하여 텍스트 프롬프트에 의해 지정된 모션이 포함된 사전 정의된 텍스트로 된 스토리를 기반으로 긴 이미지 시퀀스 또는 영상을 생성할 수 있음을 보여준다. 이를 StoryDiffusion이라 칭하였다.
Method
본 방법론은 two stage로 구분되어진다. 첫 stage에서는 학습 필요없이 일관된 피사체 이미지를 생성하기 위해 CSA를 적용한다. 이러한 일관된 이미지들은 다이렉트로 스토리텔링에 적용될 수 있으며 두 번째 stage의 입력으로 사용될 수 있다. 두 번째 stage에서는 일관된 이미지들에 근거하여 일관된게 전환되는 영상을 만든다.
Training-free Consistent Images Generation
학습없이 일관된 캐릭터를 생성하는 핵심적인 전략은 이미지 배치 내에서 캐릭터 일관성을 유지하는 방법에 있다. 즉, 생성하는 동안 배치 내에서 이미지 간 연결을 설정해야 한다. 저자는 diffusion 내 다양한 attention 메커니즘의 역할에 대해 살펴본 후, 배치 내에서 이미지의 일관성을 유지하기 위해 CSA를 활용하는 방법을 모색하였다고 한다. 결과적으로 U-NET의 original self-attention 자리에 CSA를 넣었으며 original self-attention weight를 재사용하여 학습이 필요없고 플러그인할 수 있는 상태를 유지하였다.
정석적으로, 이미지 feature 배치 $\mathcal{I} \in \mathbb{R}^{B \times N \times C}$가 주어졌을 때 $B$는 배치 사이즈, $N$은 각 이미지의 토큰 수, $C$는 채널 수를 나타내며, self-attention 연산을 위한 function $Attention(X_q, X_k, X_v)$를 정의한다. $X_q, X_k, X_v$는 각각 query, key, value 연산을 수행한다. original self-attention은 $\mathcal{I}$의 각 이미지 feature ${I_i}$내에서 독립적으로 수행된다. feature $I_i$는 $Q_i, K_i, V_i$에 투사되어 attention에 주입된다.
$$O_i = \text{Attention}(Q_i, K_i, V_i) \tag{1}$$
피사체 일관성을 유지하기 위해 배치 내의 이미지 간에 상호 작용을 구축하기 위해, CSA는 배치의 다른 이미지 feature에서 일부 토큰 $S_i$을 샘플링한다.
$$S_i = \text{RandSample}(I_1, I_2, ..., I_{i-1}, I_{i+1}, ..., I_{B-1}, I_B) \tag{2}$$
샘플링 이후, 샘플 토큰 $S_i$와 이미지 feature $I_i$를 페어링하여 새로운 토큰셋 $P_i$를 만든다. 그 다음, CSA 연산을 위해 $P_i$를 새로운 key $K_{Pi}$와 value {V_{Pi}에 대해 linear projection을 수행한다. 이때, original query $Q_i$는 변하지 않는다. 최종적으로 수행되는 self-attention은 다음과 같다. (Query만 단일 이미지 feature 토큰 사용)
$$O_i = \text{Attention}(Q_i, K_{Pi}, V_{Pi} \tag{3}$$
페어 토큰이 주어지면, 저자의 방법론은 이미지 배치 전체에서 self-attention을 수행하여 서로 다른 이미지의 feature 간의 상호작용을 촉진한다. 이러한 유형의 상호작용은 생성 과정에서 캐릭터, 얼굴, 복장이 융합되도록 모델을 촉진한다. 심플하고 학습이 필요없지만 CSA는 효과적으로 일관된 피사체를 생성할 수 있다.
Semantic Motion Predictor For Video Generation
일관되게 생성된 캐릭터 이미지 시퀀스는 인접한 각 이미지 쌍 사이에 프레임을 삽입하여 영상으로 더욱 세분화 될 수 있다. 이는 시작과 끝 프레임이 조건부로 주어졌을 때의 영상 생성 태스크로 간주된다. 저자는 최근에 연구되었던 SparseCtrl과 SEINE 모델은 두 조건 이미지 사이의 거리가 클 때엔 안정적으로 결합하지 못하는 것을 경험적으로 관찰했다고 한다. 저자는, 이러한 한계는 중간 프레임을 예측하기 위해 temporal 모듈에만 의존하기 때문에 이미지 쌍 사이의 큰 상태 차이를 처리하기에 충분하지 않을 수 있다고 주장하였다. temporal 모듈은 각 공간 위치의 픽셀 내에서 독립적으로 작동하므로 중간 프레임을 추론할 때 공간 정보를 충분히 고려하지 못할 수 있다. 이는 결국 이미지 내 긴 픽셀 거리와 물리학적인 의미가 담긴 행동을 모델링하기 어렵게 한다.
이 문제를 해결하기 위해 저자는, 공간적 정보를 포착하기 위해 semantic 공간으로 이미지를 encoding하는 Semantic Motion Predictor (SMT)를 제안한다. 이는 시작과 끝 프레임이 주어졌을 때, 보다 정확한 모션을 예측할 수 있게한다. 구체적으로, 공간 정보를 인코딩하는 $E$를 이용해 RGB 이미지를 vector로 변환한다. 직접적으로 $E$로써 linear layer를 사용하기보다, 사전학습된 CLIP 이미지 인코더를 $E$로써 사용하여 zero-shot 기능을 활용해 성능을 향상시킨다. $E$를 사용하여 주어진 시작 프레임 $F_s$와 끝 프레임 $F_e$를 이미지 semantic 공간 벡터 $K_s, K_e$로 압축한다.
$$K_s, K_e = E(F_s, F_e) \tag{4}$$
그 후 이미지 semantic 공간에서 transformer 기반 구조 예측기를 학습시켜 각 중간 프레임의 예측을 수행한다. 예측기는 먼저 선형 보간을 수행하여 두 프레임 $K_s$와 $K_e$를 시퀀스 $K_1, K_2, ..., K_L$로 확장한다($L$ : 비디오 길이). 그런 다음 시퀀스 $K_1, K_2, ..., K_L$을 일련의 transformer block $B$로 전송하여 전환 프레임을 예측한다.
$$P_1, P_2, ..., P_l = B(K_1, K_2, ..., K_L) \tag{5}$$
다음으로, 이미지 semantic 공간에서 이러한 예측 프레임을 최종 전환 비디오로 디코딩해야한다. image prompt methods(Ye et al., 2023)에 영감을 받아 이러한 이미지 semantic 임베딩 $P_1, P_2, ..., P_L$을 제어 신호로, 비디오 diffusion 모델을 디코더로 배치하여 비디오 diffusion 모델의 생성 능력을 활용한다. 또한 이러한 임베딩을 키와 값에 투영하기 위해 추가 선형 레이어를 입력하여 U-Net의 cross-attention에 관여한다.
공식적으로, diffusion 프로세스 동안에 각 비디오 프레임 feature $V_i$에 대해 텍스트 임베딩 $T$와 예측된 이미지 semantic 임베딩 $P_i$를 연결한다. cross-attention은 다음과 같이 계산된다.
$$V_i = \text{CrossAttention}(V_i, \text{concat}(T,P_i), \text{concat}(T,P_i)) \tag{6}$$
이전 비디오 생성 접근법들과 유사하게, $L$ 프레임 예측 전환 비디오$O = (O_1, O_2, ..., O_L)$와 GT $G = (G_1, G_2, ..., G_L)$ 사이의 MSE loss를 계산하여 모델을 최적화 한다.
$$Loss = \text{MSE}(G,O) \tag{7}$$
공간적 위치 관계를 통합하기 위해 이미지를 semantic 공간으로 인코딩함으로써, semantic 모션 예측기는 모션 정보를 더 잘 모델링하여 큰 움직임이 있는 부드러운 전환 영상을 생성할 수 있게 된다.
Experiments
Implementation Details
[Consistent Images]
- foundation model : SD1.5, SDXL (pre-trained)
- sampler : DDIM
- sampling step : 50
- cfg-scale : 5.0
[Consistent Videos]
- foundation model : SD1.5 + pre-trained temporal module (Guo et al., 2024)
- sampler : DDIM
- sampling step : 50
- cfg-scale : 7.5
- dataset : Webvid10M (Brain et al., 2021)
Comparisons of Consistent Images Generation
저자는 성능 비교 대상으로, 비교적 최근에 비슷하게 연구되었던 IP-Adapter(Ye et al., 2023)와 PhotoMaker(Ye et al., 2023)를 선택하였다. 테스트 셋을 위해 GPT-4로 20가지 캐릭터와 100가지의 특정 행동을 묘사하는 프롬프트를 생성하였다. 각 테스트 사례에 대해 세 가지 비교 방법을 사용하여 모델의 일관성을 테스트하였다. IP-Adapter와 PhotoMaker의 경우 생성된 이미지의 ID 제어를 위해 추가 이미지가 필요하므로, 먼저 제어 이미지로 사용할 캐릭터 이미지를 생성한다.
Qualitative Comparsisons : Image
Quantitative Comparisons : Image
Qualitative Comparisons : Video
Quantitative Comparisons : Video
Ablation Study
User study의 경우 30명 각각에게 50가지의 질문을 하여 평가를 받았다.
with ControlNet
Implemenration Details
- Video model 학습을 위해 AnimateDiff V2 모션 모듈을 사용하였다.(Guo et al., 2024)
- learning rate : 1e-4
- # of iterations : 100k
- GPU : A100 * 8
- Image Semantic Encoder : OpenCLIP ViT-H-14 (Radford et al., 2021; Cherti et al., 2023) (pre-trained)
- # of Semantic Motion Predictor layers : 8 transformer layers
- hidden dim : 1024
- attention heads : 12
Limitations
- 일관된 이미지 생성을 위해 자세하게 표사하는 프롬프트가 필요할 수 있다.
- Sliding Window로 긴 영상을 생성할 수 있지만 그것을 의도하여 추가적인 작업을 하지 않았다.