【MagicAnimate】AnimateAnyoneよりこっちを使え!画像を踊らせる神AIの使い方〜実践まで
WEELメディア事業部LLMリサーチャーの中田です。
11月23日、TikTokを運営する「ByteDance」によって、画像1枚からアニメーションを生成できる「MagicAnimate」が公開され、誰でも簡単にアニメーションを生成できるようになりました。
これにより、モナリザにダンスをさせたり、走らせたりすることができるんです…!
本プロジェクトのGitHubのスター数は、なんと1100を超えており、先日の「AnimateAnyone」に迫る期待を集めていることがわかります。
この記事ではMagicAnimateの使い方や、有効性の検証まで行います。本記事を熟読することで、MagicAnimateの凄さを実感し、普通の動画生成AIには戻れなくなるでしょう。
ぜひ、最後までご覧ください。
MagicAnimateの概要
MagicAnimateは、TikTokの運営会社である「ByteDance」が開発した、アニメーショ生成AIツールです。静止画や動画からキャラクターの動きや表情を自動で読み取り、オリジナルアニメーションを作成可能になります。
その他にも、顔を変更して動画を作成したり、ダンスや動きをアニメーション化したり、異なる人物にスワップすることが可能です。
ビジネスやSNSでのコンテンツ制作に利用でき、将来的にはTikTokなどのアプリに統合される予定だそう。その他にも、教育や広告、エンターテイメントなど幅広い分野での活用が見込まれ、ユーザーは簡単にアニメーション化されたコンテンツを作成できるでしょう。
MagicAnimateのライセンス及び料金体系
MagicAnimateのライセンスはBSD 3-Clauseであるため、無料で利用可能です。
詳細なライセンスは下記の表をご確認ください。
利用用途 | 可否 |
商用利用 | ⭕ |
改変 | ⭕ |
配布 | ⭕ |
特許使用 | ⭕ |
私的利用 | ⭕ |
なお、MagicAnimateと同様の機能を持つAnimateAnyoneについて知りたい方はこちらの記事をご覧ください。
→【Animate Anyone】アニメキャラを自由に動かせるアリババAIの使い方や導入方法を解説
MagicAnimateの使い方
今回はGoogle Colab ProのV100(ハイメモリ)を使用しました。
まずは、以下のコードを実行して、リポジトリのクローンと、パッケージインストールをしてください。
!git clone https://github.com/magic-research/magic-animate
%cd magic-animate
!pip install -r requirements.txt
セッションの再起動を求められたら再起動を行ってください。
次に、以下のコードを実行して、StableDiffusion V1.5とMSE-finetuned VAEのリポジトリのクローンをしましょう。
!git clone -b fp16 https://huggingface.co/runwayml/stable-diffusion-v1-5 /content/magic-animate/pretrained_models/stable-diffusion-v1-5/
!git clone https://huggingface.co/stabilityai/sd-vae-ft-mse /content/magic-animate/pretrained_models/sd-vae-ft-mse/
!git lfs clone https://huggingface.co/zcxu-eric/MagicAnimate /content/magic-animate/pretrained_models/MagicAnimate/
画像や動画の指定は「magic-animate/configs/prompts/animation.yaml」で設定することができます。
初期のままだと5つ生成されて時間がかかってしまうのでコメントアウトして1つだけにします。
自分で用意した素材を使う際はここに記載したパスの通り配置してください。なお、画像と動画は上から順番に対応しているようです。
■animation.yaml
pretrained_model_path: "pretrained_models/stable-diffusion-v1-5"
pretrained_vae_path: "pretrained_models/sd-vae-ft-mse"
pretrained_controlnet_path: "pretrained_models/MagicAnimate/densepose_controlnet"
pretrained_appearance_encoder_path: "pretrained_models/MagicAnimate/appearance_encoder"
pretrained_unet_path: ""
motion_module: "pretrained_models/MagicAnimate/temporal_attention/temporal_attention.ckpt"
savename: null
fusion_blocks: "midup"
seed: [1]
steps: 25
guidance_scale: 7.5
source_image:
- "inputs/applications/source_image/monalisa.png"
# - "inputs/applications/source_image/demo4.png"
# - "inputs/applications/source_image/dalle2.jpeg"
# - "inputs/applications/source_image/dalle8.jpeg"
# - "inputs/applications/source_image/multi1_source.png"
video_path:
- "inputs/applications/driving/densepose/running.mp4"
# - "inputs/applications/driving/densepose/demo4.mp4"
# - "inputs/applications/driving/densepose/running2.mp4"
# - "inputs/applications/driving/densepose/dancing2.mp4"
# - "inputs/applications/driving/densepose/multi_dancing.mp4"
inference_config: "configs/inference/inference.yaml"
size: 512
L: 16
S: 1
I: 0
clip: 0
offset: 0
max_length: null
video_type: "condition"
invert_video: false
save_individual_videos: false
最後に、以下のコマンドを実行すると、「samples/animation-生成した日時」のフォルダの中に動画が生成されます。
%cd magic-animate
!bash scripts/animate.sh
MagicAnimateの仕組みとして「inputs/applications/driving/densepose/」の中にある「アニメーション動画」と、「inputs/applications/source_image/」の中にある「画像」を組み合わせて入力しているのだと思われます。例えば、以下の「アニメーション動画」と「画像」を組み合わせると、、、
次のようなアニメーションに!
なお、以下のHugging Faceのデモページに移動すれば、より簡単にブラウザ上で試すことができます。
参考記事:https://showlab.github.io/magicanimate/
MagicAnimateを動かすのに必要なPCのスペック
■Pythonのバージョン
Python 3.8以上
■必要なパッケージ
CUDA 11.3以上が推奨(GPU使用の場合)
FFmpeg
MagicAnimateを実際に使ってみた
試しに、先ほどのダンスを、ワンピースの「フランキー」に躍らせてみましょう。入力画像は、以下の通りです。
すると、結果は以下の通りに!
うーん…
やはりこれは、簡易的なイラストだから難しかったのか…
また、MagicAnimateがものすごく重たかったため、今回はステップ数を減らして実行してみました。そのため、ステップ数を増やせば、もっと精度が高くなるかもしれません!
MagicAnimateの推しポイントである高精度アニメーション生成は本当なのか?
MagicAnimateに似ているツールに「AnimateAnyone」というものがあります。ここでは、モデル構造の視点から、両者の違いについて解説します。ちなみに、AnimateAnyoneのデモとコードは準備中とのことで、未公開です。ただしプロジェクトは、以下のYouTubeで見ることができます。
MagicAnimateのモデル構造は、以下の通りです。
一方で、AnimateAnyoneのモデルは、以下の通りです。
両者を見てみると、利用しているモジュールなどの違いはあれど、どちらも条件付きの拡散モデルを使用していることから、大枠に大きな差はなさそうです。
また、入力するアニメーション動画においても、MagicAnimateは「人形のようなもの」で、AnimateAnyoneは「ボーン人形」という違いがあります。さらに、AnimateAnyoneのソースコードはまだ公開されていないが、MagicAnimateは既にソースコードとモデルが公開されており、無料で利用可能な点は、大きな違いでしょう。
加えて、複数人を含む画像のアニメーション化が必要な場合はMagicAnimateが適しているかもしれません。というのも、MagicAnimateに関しては、複数人や複数キャラクターの入力を受け付けているが、AnimateAnyoneでは受け付けてなさそうだからです。
まとめると、両者の違いのポイントは、以下の通りです。
- モデル構造に大きな差はない
- 入力のアニメーション動画の形式が少し異なる
- AnimateAnyoneのソースコードはまだ公開されていないが、MagicAnimateは公開されている
- 複数人を含む画像のアニメーション化が必要な場合はMagicAnimateが向いている
MagicAnimateで画像から簡単にアニメーションが生成できる時代に!
MagicAnimateは、TikTokの運営会社である「ByteDance」が開発した、アニメーショ生成AIツールです。静止画や動画からキャラクターの動きや表情を自動で読み取り、オリジナルアニメーションを作成可能になります。ビジネスや教育や広告、エンターテイメントなど幅広い分野での活用が見込まれ、ユーザーは簡単にアニメーション化されたコンテンツを作成できるでしょう。
今回は、ステップ数を減らしてMagicAnimateを実行したため、精度が微妙でしたが、ステップ数を増やせば、もっと精度が高くなるかもしれません!
MagicAnimateとAnimateAnytimeの違いは、以下の通りです。
- モデル構造に大きな差はない
- 入力のアニメーション動画の形式が少し異なる
- AnimateAnyoneのソースコードはまだ公開されていないが、MagicAnimateは公開されている
- 複数人を含む画像のアニメーション化が必要な場合はMagicAnimateが向いている
数年後には、AIによるプロダンサー集団のようものも、作られるかもしれないですね。
最後に
いかがだったでしょうか?
弊社では
・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
・ハルシネーション対策AIツールの開発
・自社専用のAIチャットボットの開発
などの開発実績がございます。
まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。
➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。
「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。
セミナー内容や料金については、ご相談ください。
また、サービス紹介資料もご用意しておりますので、併せてご確認ください。