Yuwei Guo, Ceyuan Yang, Anyi Rao, Yaohui Wang, Yu Qiao, Dahua Lin, Bo Dai
Shanghai AI Laboratory, The Chinese University of Hong Kong, Stanford University
https://arxiv.org/abs/2307.04725
https://animatediff.github.io/
https://github.com/guoyww/AnimateDiff
https://github.com/continue-revolution/sd-webui-animatediff
기존 SD에 video animation을 활용하기 위한 새로운 모듈 제안 (like ControlNet)
generalized dataset으로 해당 모듈을 장착한 T2I모델을 학습하고나면 다양한 종류의 personalized model는 훈련 없이 inference 가능.
Dreambooth, LoRA와 같은 personalized model을 활용한 consistency가 보이는 animation video를 선보이고자 한다.
각 personalized model별 추가적인 별도의 학습이 필요하지 않는다.
여러 실험을 통해 부드러운 생성 결과를 확인할 수 있다.
Text-to-image diffusion models
GLIDE, DALLE-2, CLIP, Imagen, LDM, eDiff-I
Personalize text-to-image model
Textual inversion, Dreambooth, LoRA, Custom Diffusion
Personalized T2I animation
Tune-a-Video, Text2Video-Zero, Align-your-Latents
General text-to-image generator
Stable Diffusion. 이야기
autoencoder로 pretrained VQ-GAN, VQ-VAE 적용
Markov process 기반 Diffusion 이야기
DDPM기반 objective function
SD에서는 U-Net self-, cross-attention 사용
Text model으로 CLIP ViT-L/14 text encoder 사용
Personalized image generation
Dreambooth, LoRA
데이터가 작을 때 regularization으로 모델 tuning시 catastrophic forgetting이나 overfitting 발생.
이를 방지하기 위해 Dreambooth의 mech 설명
전체 모델의 cross attention weight 학습해야하는 Dreambooth와 달리 LoRA는 decompose 2 matrix의 rank 조절을 통해 조금 더 효율적이고 가벼운 parameter tuning 가능 설명
personalized image model animating을 위해서는 상응하는 video collection이 필요.
적거나 훈련 비용이 없으면서도 domain knowledge나 quality를 보존하는 animation genrator로의 변환이 목표
접근법 1: (순진한 접근법) temporal structure를 추가하고 사전에 large-scale video dataset으로 motion을 학습시키는 것.
그러나 충분한 personalized video에는 비용 소모. 적은 데이터는 knowledge loss 초래
접근법 2: 일반화된 motion modeling module 훈련 후 inference time에 personalized T2I plug in.
이를 통해 각 personalize마다 훈련시킬 필요 없음. (like ControlNet)
Network Inflation
SD는 image batch이기 때문에 motion modeling module 호환을 위해서는 모델을 ㅎ확장해야함.
5D video tensor : batch x channel x frames x height x width
Video Diffusion Model과 유사하게 채택
frame axis를 batch axis로 reshape함으로써 2D conv와 attention layer를 spatial only pseudo-3D layer로 변환
motion module frames을 batch에 넣음으로써 motion smoothness와 content consistency 성취.
Module Design
frame에서의 효율적인 정보 교환이 가능한 motion modeling module 설계가 목표
vanilla temporal transformer를 선택. (다른 모델들도 해봤는데 이것이 motion prior modeling에 적합. 나중에 더 찾아보겠다.)
temporal transformer는 temporal axis를 따라 여러 개의 self-attention block으로 구성됨.
순서는 위 그림 Figure 3 오른쪽에 보이는 것과 같음.
1) batch x channel x frames x height x width를 다음과 같이 reshape.
(batch x height x width) x frames x channel
2) feature map proejct
3) 여러 개의 self-attention block 통과
이를 통해 temporal 축을 기점으로 동일 위치의 feature들간 temporal dependency를 인지하게 함.
receptive field 확장을 위해 매 U-Net 구조의 모든 resolution마다 삽입.
4) sinusoial position encoding 역시 self-attention block에 추가. 이를 통해 현 frame에 대한 temporal 위치 인지.
5) temporal transformer output projection layer에 zero initialize
Training Objective
Sample video data $x_0^{1:N}$
latent code $z_0^{1:N}$
forward diffusion schedule :
training objective
Training
Stable Diffusion v1
WebVid-10M a text-video pair dataset
sampled stride 4, resize and center crop 256x256
different diffusion schedule - 높은 quality & low saturability나 flickering같은 artifact 회피 가능
linear beta schedule 0.00085~0.012
Evaluations
trigger word와 함께 prompt 구성하여 활용
더 많은 자료는 project github 참조(위 링크)
다양한 domain에 성공적 결과 확인
+ vividness & realism
Text2Video-Zero model과 비교
content consistency가 더 정확하게 발생 더 우수한 smoothness
다른 schedule은 video에서만 좋은 영향을 발휘.
만약 image로 최적화된 T2I model에 동일 schedule을 사용하면 훈련 효율성이 줄어 느리고 animation이 flickering하며 color aliasing 생김.
실사에 가까운 personalized T2I model domain에서 실패 경우가 많으며 artifact 발생. 적절한 motion 생성에도 어려움.
이는 훈련 video와 personalized model간 distribution gap때문으로 생각됨.
더 많은 video 데이터로 학습하면 잘 되지 않을까하는 생각.
더 많은 자료는 공식 프로젝트 github 참조
https://animatediff.github.io/