cedro-blog

Animate Anyoneで、1枚の画像から動画を生成する

1.はじめに

 今回ご紹介するのは、昨年11月にアリババが発表した、1枚の画像から動画を生成する「Animate Anyone」という技術です。

*この論文は、2023.12に提出されました。

2.Animate Anyoneとは?

 下記がAnimate Anyoneのフロー図です。 まず、Pose SequenceをPose Guiderでエンコードし、Noiseと融合し、 Denoising UNet がビデオ生成のためのノイズ除去プロセスを実行します。

 Denoising UNetの計算ブロックは、右側の破線のボックスに示すように、空間アテンション、クロスアテンション、および時間アテンションで構成されます。

 参照画像の統合には 2 つの側面が含まれます。 まず、ReferenceNet を通じて詳細な特徴が抽出され、空間アテンションに利用されます。 次に、クロスアテンション用の CLIP 画像エンコーダを通じて意味的特徴が抽出されます。 時間的注意は時間次元で機能します。 最後に、VAE デコーダは結果をビデオ クリップにデコードします。

3.コード

 今回のコードはアリババが公式に公開したものではなく、論文の実証結果に基づいて別の方が作成したものです。そして、今回使用するcolabは、[このリンク]をクリックすると動かせます。なお、このcolabは@camenduru氏によって作成されたものです。

 コードは、先頭の動作ボタンを1回押すだけです。そうすると、必要なコードとデータが自動的にダウンロードされ、処理が行われます。ログに、Running on public URLが表示されたら、それをクリックするとGUI画面が表示されます。

 

 これがGUI画面です。Refetence Image に人の画像を、Motion Sequence に動きの動画をセットして、Animateボタンを押すだけです。

 この画面のさらに下に、Exampleがありますので、クリックするとサンプルをそのまま使うことが出来ます。ここでは、Exampleの先頭のものをクリックしています。Video Lengthを120に設定して、Animateボタンを押します。しばらくすると、動画が生成されます。

 

これが生成された動画です。

https://cedro3.com/wp-content/uploads/2024/01/20240122T1349.mp4

(オリジナルgithub)https://github.com/MooreThreads/Moore-AnimateAnyone