【DynamiCrafter】Stable Video Diffusionと比較してみた
WEELメディア事業部LLMライターのゆうやです。
DynamiCrafterは、静止画像に自然な動きをつけ、短いビデオクリップにアニメーション化する技術で、香港中文大学、Tencent AI Lab、北京大学の研究者によって開発されました。
このモデルは、画像に基づくビデオ生成タスクを解決するために、事前に訓練されたビデオ拡散モデルの生成的事前分布を活用することを目的としています。
DynamiCrafterは、公開以来注目を集めており、Githubのスター数は1,200を超えています!
今回は、DynamiCrafterの概要と実際に使ってみた感想をお伝えします。
是非最後までご覧ください!
DynamiCrafterの概要
DynamiCrafterは、静止画像に自然な動きをつけ、短いビデオクリップにアニメーション化する技術で、約2秒間の短いビデオクリップを条件画像とテキストプロンプトから生成することを目指しています。
このモデルは、香港中文大学、Tencent AI Lab、北京大学の研究者によって開発されました。
最近は生成AI分野での中国の存在感がかなり高まっていますね!
そんなDynamiCrafterの特徴は以下の5点です。
- アニメーション生成:DynamiCrafterは、動きを記述するテキストプロンプトに基づき、静止画からビデオ(約2秒間、16フレーム)を生成します。256×256、320×512、576×1024の解像度に対応したモデルがそれぞれ公開されています。
- 生成モデル:事前訓練されたビデオ拡散モデルの先行研究(text-conditioned VDMs)をベースにしており、オリジナルの画像の視覚的内容を保持しつつ、自然な動きを示すビデオを作成します。
- ビデオ拡散先行研究からの画像ダイナミクス:特定の画像をアニメーション化するために、DynamiCrafterは与えられた画像をフレームの1つとして含むモデリングスペース内のビデオをサンプリングする必要があります。
- 機能性:DynamiCrafterは、画像アニメーションに加えて、ループビデオ生成、生成フレーム補間をサポートしており、動的な視覚コンテンツの作成においてその多用性を示しています。
- 使用範囲: 主に研究目的で設計されており、個人的な研究や非商業的な用途に限定されています。
DynamiCrafterの基盤となるビデオ拡散モデルは、静止画をアニメーション化するために利用されます。
このモデルは、データサンプルに段階的にノイズを加え、そのプロセスを逆転させてデータのデノイズを学ぶことにより、最終的なビデオを生成します。
以下に実際にDynamiCrafterで生成できるアニメーション例を示します。
Prompt
"boy walking on the street"
画像
アニメーション
解像度は256×256なので低いですが、ちゃんと少年が歩いているようなアニメーションにしてくれていますね!
なお、プロンプトの記載はありませんでしたが、より高解像度のアニメーションの例もいくつか公開されていたのでご紹介します。
576×1024
320×512
ここからは、DynamiCrafterの使い方を解説した後、実際に使用してみようと思います。
なお、OpenAIの動画生成AIのSoraについて知りたい方はこちらの記事をご覧ください。
→【Sora】世界に激震を与えたOpenAIの動画生成AI!できることや仕組み、問題点まで徹底解説
DynamiCrafterのライセンス
DynamiCrafterは、Apache-2.0 licenseで提供されていますが、そのため、商用利用は認められておらず、個人/研究/非営利目的でのみ使用できます。
利用用途 | 可否 |
---|---|
商用利用 | ✖ |
改変 | ✖ |
配布 | ✖ |
特許使用 | ✖ |
私的使用 | ⭕️ |
DynamiCrafterの使い方
DynamiCrafterは、ローカルに実装する方法とオンラインデモを使用する方法の2種類の方法で使用できます。
オンラインデモ
オンラインデモは、通常のアニメーション作成デモと、ループ動画作成デモが公開されており、それぞれ以下のリンクにアクセスすることで使用できます。
アニメーション作成デモ
ループ動画作成デモ
Doubiiu/DynamiCrafter_interp_loop
ローカル
ここからはローカルに実装する方法を解説します。
まずGithubリポジトリをクローンします。
git clone https://github.com/Doubiiu/DynamiCrafter.git
DynamiCrafterのディレクトリに移動し、仮想環境をセットアップします。
cd DynamiCrafter
conda create -n dynamicrafter python=3.8.5
conda activate dynamicrafter
次に依存関係をインストールします。
pip install -r requirements.txt
Hugging Face経由で任意の事前トレーニング済みモデルをダウンロードし、以下の場所に配置した後、Gradioを起動します。
画像からビデオ生成
checkpoints/dynamicrafter_[1024|512|256]_v1/model.ckpt
python gradio_app.py --res 1024
生成フレーム補間 / ループビデオ生成
checkpoints/dynamicrafter_512_interp_v1/model.ckpt
python gradio_app_interp_and_loop.py
これで実装は完了です。
DynamiCrafterの必要要件
以下の表は、各モデルを実行する際に必要なVRAMの容量です。
モデル | 解像度 | 必要VRAM |
---|---|---|
DynamiCrafter1024 | 576×1024 | 18.3GB |
DynamiCrafter512 | 320×512 | 12.8GB |
DynamiCrafter256 | 256×256 | 11.9GB |
DynamiCrafter512_interp | 320×512 | 12.8GB |
最高解像度のDynamiCrafter1024は、RTX4090程度の性能のGPUが必要になります。
DynamiCrafterを実際に使ってみた
試しに、DynamiCrafterでアニメーションを生成してみましょう。
以下のプロンプトと画像を入力します。
a man in an astronaut suit playing a guitar
およそ20秒ほどで以下のアニメーションを生成してくれました。
元の画像を維持しながら、テキストプロンプトの指示に従った非常に高品質のアニメーションを生成してくれました。
ここからは、他のモデルとの比較を行いながらDynamiCrafterの性能に迫っていきます。
DynamiCrafterとStable Video Diffusionを比較してみた
ここからは、DynamiCrafterの性能を検証するために、同じような機能を持つ、Stable Video Diffusion XTとの比較を行っていきます。
今回の検証では、それぞれのモデルに同じ画像を入力して、アニメーションの品質を比較していきます。
ただ、Stable Video Diffusion XTではプロンプトの入力はできないので、指示通りのアニメーションが生成できるか等の比較はできません。
早速検証していきましょう!
燃えている家の前に立つ女の子
まずは以下の画像を入力します。
こちらの画像をアニメーション化する上でのポイントは、女の子の表情の変化と後ろに写っている炎の表現でしょう。
DynamiCrafterには、以下のプロンプトも入力します。
A girl laughs in front of a burning house
女の子は燃えている家の前で笑っている
結果はこのようになりました。
DynamiCrafter
記事に載せていいのかわからないような非常に不気味なアニメーションを生成しました…汗
後ろの人や燃えている家などの表現は非常によく、プロンプトの指示通りになっているのですが、表情が怖すぎます…
DynamiCrafterのモデルカードには、「顔や人物全般が正しく生成されない場合があります。」との記載があったので、確かにその通りのようです。
Stable Video Diffusion XT
こちらは、女の子の表情も自然で、画像をそのままアニメーション化したようになっており、炎もしっかりと表現されています。
ただ、背景に写っている人がおかしくなっており、炎の表現もDynamiCrafterの方がよりリアルであると感じます。
どうやら、DynamiCrafterはStable Video Diffusion XTと比較して人の表情以外のアニメーション化が得意で、Stable Video Diffusion XTはDynamiCrafterと比較して人の表情のアニメーション化が得意なようです。
高速で走る車
では次は、人が写っていない以下の画像をアニメーション化してもらいましょう。
この画像のアニメーション化のポイントは、かなりの速度で走っている車を自然に動かすところですね。
DynamiCrafterには、以下のプロンプトも入力します。
The car is going pretty fast
車がかなりの速度で走ってる
結果はこのようになりました。
DynamiCrafter
背景の移動や、すれ違う車を表現することで移動する車をうまく表現しているように感じます。
しかし、すれ違う車の表現自体はあまり品質が良いとは言えず、車自体も前ではなく後ろに進んでいるようです。
プロンプトで指示したわけではないので、全く見当違いなアニメーションではないですが、進行方向が後ろなのはいただけませんね。
果たしてStable Video Diffusion XTではどのような結果になったでしょうか。
Stable Video Diffusion XT
こちらは、背景と道路に動きをつけ、かなり自然なアニメーションを生成してくれました。
きちんと前に進んでおり、画像に登場しない部分もかなり高品質に出力してくれている印象です。
まだまだ改善の余地はありそうですが、全体的なアニメーションの品質はStable Video Diffusion XTの方が良さそうです。
今回の検証の結果、DynamiCrafterは人の表情をアニメーション化するのは苦手であり、不自然で不気味なアニメーションを生成することがあることが分かりました。
ただ、それ以外の物体の表現は得意であり、Stable Video Diffusion XTを超える品質のアニメーションを生成したほか、プロンプトで細かく指示することによって、より高品質なアニメーションを生成できます。
DynamiCrafterは比較的簡単に実装でき、オンラインデモもあるため、もし気になった方は是非試してみてください!
なお、DragNUWAについて知りたい方はこちらの記事をご覧ください。
→【DragNUWA】カーソルの動きで動画を編集できる最先端動画生成AIの使い方〜実践まで
DynamiCrafterはアニメーション生成の新たな選択肢
DynamiCrafterは、静止画像に自然な動きをつけ、短いビデオクリップにアニメーション化する技術で、約2秒間の短いビデオクリップを条件画像とテキストプロンプトから生成できます。
256×256、320×512、576×1024の解像度に対応したモデルがそれぞれ公開されており、環境に合わせて柔軟にモデルを選択できます。
DynamiCrafterでは、事前訓練されたビデオ拡散モデルの生成先行研究を活用しており、オリジナルの画像の視覚的内容を保持しつつ、自然な動きを示すアニメーションを作成できます。
また、画像からのアニメーション生成だけでなく、ループビデオ生成、生成フレーム補間をサポートしており、多様な機能を有していることが特徴です。
実際に使ってみたところ、かなり高品質なアニメーションを生成してくれましたが、人の表情のアニメーション化は苦手で、その他の部分もプロンプトで細かく指示する必要がありそうです。
DynamiCrafterは、その品質と使いやすさから、アニメーション生成の新たな選択肢となり得る存在だと感じました。
生成系AIの業務活用なら!
・生成系AIを活用したPoC開発
・生成系AIのコンサルティング
・システム間API連携
最後に
いかがだったでしょうか?
弊社では
・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
・ハルシネーション対策AIツールの開発
・自社専用のAIチャットボットの開発
などの開発実績がございます。
まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。
➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。
「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。
セミナー内容や料金については、ご相談ください。
また、サービス紹介資料もご用意しておりますので、併せてご確認ください。