Skip to main content

Tune-A-Video

Tune-A-Video(Wu ら, 2023)は、pre-trained な image diffusion model を inflate して、1 本の video からの one-shot fine-tuning で text-to-video の編集を行う model です。

目的

mm 個の frame からなる video V={vii=1,,m}\mathcal{V} = \{v_i \mid i = 1, \dots, m\} と、その内容を記述する prompt τ\tau が与えられたとき、少し編集した別の prompt τ\tau^* に基づいて新しい video V\mathcal{V}^* を生成する task を扱います。たとえば、τ=\tau = "A man is skiing" を τ=\tau^* = "Spiderman is skiing on the beach" のように書き換えて生成します。

Tune-A-Video は、object editing、background change、style transfer などの編集用途を想定しています。

ST-Attention

Tune-A-Video の U-Net では、2D convolution layer を inflate するだけでなく、temporal consistency を保つために ST-Attention(spatiotemporal attention)block を導入します。Frame viv_i の latent feature を query にし、最初の frame v1v_1 と直前の frame vi1v_{i-1} を key と value にすることで、関連する位置への参照を行います。

Q=WQzvi,K=WK[zv1,zvi1],V=WV[zv1,zvi1]\mathbf{Q} = \mathbf{W}^Q \mathbf{z}_{v_i}, \quad \mathbf{K} = \mathbf{W}^K [\mathbf{z}_{v_1}, \mathbf{z}_{v_{i-1}}], \quad \mathbf{V} = \mathbf{W}^V [\mathbf{z}_{v_1}, \mathbf{z}_{v_{i-1}}] O=softmax ⁣(QKd)V\mathbf{O} = \text{softmax}\!\left(\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d}}\right) \cdot \mathbf{V}

Tune-A-Video architecture

画像出典: Lilian Weng, “Diffusion Models for Video Generation”。Tune-A-Video は、sampling の前に 1 本の video で軽量な fine-tuning を行います。新しく追加された temporal self-attention(T-Attn)layer は全体が fine-tuning される一方で、ST-Attn と Cross-Attn では query projection のみが更新され、text-to-image の事前知識を保ちます。ST-Attn は spatio-temporal consistency を高め、Cross-Attn は text-video alignment を補正します。

何を fine-tuning するか

Tune-A-Video の fine-tuning では、何を更新するかを慎重に選びます。

  • 新しく追加された temporal self-attention layer は全体を更新します。
  • ST-Attn と Cross-Attn では query projection のみを更新し、text-to-image の事前知識を維持します。

これによって、軽量な fine-tuning で video editing 能力を獲得できます。

関連ページ