このリポジトリは、AnimateDiff [ICLR2024 Spotlight] の公式実装です。これは、追加のトレーニングを必要とせずに、ほとんどのコミュニティのテキストから画像へのモデルをアニメーション ジェネレーターに変えるプラグ アンド プレイ モジュールです。
AnimateDiff: 特別な調整を行わずに、パーソナライズされたテキストから画像への拡散モデルをアニメーション化します。
Yuwei Guo、Ceyuan Yang✝、Anyi Rao、Zhengyang Liang、Yaohui Wang、Yu Qiao、Maneesh Agrawala、Dahua Lin、Bo Dai (✝責任著者)
注: main
ブランチは Stable Diffusion V1.5 用です。 Stable Diffusion XL については、 sdxl-beta
ブランチを参照してください。
その他の結果はギャラリーでご覧いただけます。それらの一部はコミュニティによって提供されています。
モデル:トゥーンユー
モデル:Realistic Vision V2.0
注: AnimateDiff は、ディフューザーでも正式にサポートされています。詳細については、「AnimateDiff ディフューザーのチュートリアル」を参照してください。次の手順は、このリポジトリを操作するためのものです。
注:すべてのスクリプトについて、チェックポイントのダウンロードは自動的に処理されるため、スクリプトの初回実行時は実行に時間がかかる場合があります。
git clone https://github.com/guoyww/AnimateDiff.git
cd AnimateDiff
pip install -r requirements.txt
生成されたサンプルはsamples/
フォルダーにあります。
python -m scripts.animate --config configs/prompts/1_animate/1_1_animate_RealisticVision.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_2_animate_FilmVelvia.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_3_animate_ToonYou.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_4_animate_MajicMix.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_5_animate_RcnzCartoon.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_6_animate_Lyriel.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_7_animate_Tusun.yaml
python -m scripts.animate --config configs/prompts/2_motionlora/2_motionlora_RealisticVision.yaml
python -m scripts.animate --config configs/prompts/3_sparsectrl/3_1_sparsectrl_i2v.yaml
python -m scripts.animate --config configs/prompts/3_sparsectrl/3_2_sparsectrl_rgb_RealisticVision.yaml
python -m scripts.animate --config configs/prompts/3_sparsectrl/3_3_sparsectrl_sketch_RealisticVision.yaml
AnimateDiff を使いやすくするために、Gradio デモを作成しました。デフォルトでは、デモはlocalhost:7860
で実行されます。
python -u app.py
AnimateDiff は、安定拡散ファミリーの他のバリアントに適用できる伝達可能なモーション事前分布を学習することを目的としています。この目的を達成するために、3 つのステージで構成される次のトレーニング パイプラインを設計します。
1. ネガティブな影響の軽減ステージでは、ドメイン アダプター(例: v3_sd15_adapter.ckpt
) をトレーニングして、欠陥のある視覚的成果物 (透かしなど) をトレーニング データセットに適合させます。これは、動きと空間の外観を分離して学習する場合にも役立ちます。デフォルトでは、アダプターは推論時に削除できます。モデルに統合することもでき、その効果は lora スケーラーで調整できます。
2. モーション事前学習ステージでは、モーション モジュール(例: v3_sd15_mm.ckpt
をトレーニングして、ビデオから現実世界のモーション パターンを学習します。
3. (オプション) 新しいパターンに適応するステージでは、特定のモーション パターン (カメラのズーム、ローリングなど) にモーション モジュールを効率的に適応させるために、 MotionLoRA 、たとえばv2_lora_ZoomIn.ckpt
をトレーニングします。
SparseCtrl は、いくつかのまばらな入力 (例: 少数の RGB 画像やスケッチ入力) を採用することにより、テキストからビデオへのモデルにさらに制御を追加することを目的としています。その技術的な詳細については、次の論文を参照してください。
SparseCtrl: テキストからビデオへの拡散モデルへのスパース コントロールの追加
Yuwei Guo、Ceyuan Yang✝、Anyi Rao、Maneesh Agrawala、Dahua Lin、Bo Dai (✝責任著者)
このバージョンでは、イメージ モデルの微調整にドメイン アダプター LoRA を使用し、推論時の柔軟性が向上しました。また、アニメーション コンテンツを制御するために任意の数の条件マップを受け取ることができる 2 つの (RGB イメージ/スクリブル) SparseCtrl エンコーダも実装します。
名前 | ハグ顔 | タイプ | ストレージ | 説明 |
---|---|---|---|---|
v3_adapter_sd_v15.ckpt | リンク | ドメインアダプター | 97.4MB | |
v3_sd15_mm.ckpt.ckpt | リンク | モーションモジュール | 1.56GB | |
v3_sd15_sparsectrl_scribble.ckpt | リンク | SparseCtrl エンコーダ | 1.86GB | 落書き状態 |
v3_sd15_sparsectrl_rgb.ckpt | リンク | SparseCtrl エンコーダ | 1.85GB | RGB画像の状態 |
入力 (RealisticVision による) | アニメーション | 入力 | アニメーション |
落書きの入力 | 出力 | 落書きの入力 | 出力 |
SDXL でモーション モジュール (ベータ版) をリリースし、Google Drive / HuggingFace / CivitAI で入手できます。高解像度ビデオ (つまり、さまざまなアスペクト比の 1024x1024x16 フレーム) は、パーソナライズされたモデルの有無にかかわらず作成できます。推論には通常、選択したパーソナライズされたモデルに応じて、最大 13 GB の VRAM と調整されたハイパーパラメータ (サンプリング ステップなど) が必要です。
推論の詳細については、ブランチ sdxl をチェックアウトしてください。
名前 | ハグ顔 | タイプ | 保管スペース |
---|---|---|---|
mm_sdxl_v10_beta.ckpt | リンク | モーションモジュール | 950MB |
オリジナルSDXL | コミュニティSDXL | コミュニティSDXL |
このバージョンでは、モーション モジュールmm_sd_v15_v2.ckpt
(Google Drive / HuggingFace / CivitAI) が、より大きな解像度とバッチ サイズでトレーニングされます。スケールアップ トレーニングが動作の品質と多様性の向上に大きく役立つことがわかりました。
8つの基本的なカメラ動作のMotionLoRAにも対応しています。 MotionLoRA チェックポイントはモデルごとに 77 MB のストレージのみを使用し、Google Drive / HuggingFace / CivitAI で入手できます。
名前 | ハグ顔 | タイプ | パラメータ | ストレージ |
---|---|---|---|---|
mm_sd_v15_v2.ckpt | リンク | モーションモジュール | 453M | 1.7GB |
v2_lora_ZoomIn.ckpt | リンク | モーションロラ | 19分 | 74MB |
v2_lora_ZoomOut.ckpt | リンク | モーションロラ | 19分 | 74MB |
v2_lora_PanLeft.ckpt | リンク | モーションロラ | 19分 | 74MB |
v2_lora_PanRight.ckpt | リンク | モーションロラ | 19分 | 74MB |
v2_lora_TiltUp.ckpt | リンク | モーションロラ | 19分 | 74MB |
v2_lora_TiltDown.ckpt | リンク | モーションロラ | 19分 | 74MB |
v2_lora_RollingClockwise.ckpt | リンク | モーションロラ | 19分 | 74MB |
v2_lora_RollingAnticlockwise.ckpt | リンク | モーションロラ | 19分 | 74MB |
ズームイン | ズームアウト | 左にズームパン | 右にズームパン | ||||
チルトアップ | 下に傾ける | 反時計回りにローリング | 時計回りに回転 | ||||
mm_sd_v15.ckpt
(左) と改良されたmm_sd_v15_v2.ckpt
(右) の比較を次に示します。
AnimateDiff! の最初のバージョン
名前 | ハグ顔 | パラメータ | 保管スペース |
---|---|---|---|
mm_sd_v14.ckpt | リンク | 417M | 1.6GB |
mm_sd_v15.ckpt | リンク | 417M | 1.6GB |
詳細はトレーニングの手順をご確認ください。
安定した拡散のための AnimateDiff WebUI: sd-webui-animatediff (@ continue-revolution による)
ComfyUI の AnimateDiff: ComfyUI-AnimateDiff-Evolved (@Kosinkadink による)
Google Colab: Colab (@camenduru 著)
このプロジェクトは学術目的でリリースされています。当社はユーザーが作成したコンテンツに対する責任を負いません。また、弊社の公式 Web サイトは https://github.com/guoyww/AnimateDiff および https://animatediff.github.io のみであり、他のすべての Web サイトは AnimateDiff と関連付けられていないことにご注意ください。
郭宇偉: [email protected]
楊哲源: [email protected]
ボダイ:[email protected]
@article{guo2023animatediff,
title={AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning},
author={Guo, Yuwei and Yang, Ceyuan and Rao, Anyi and Liang, Zhengyang and Wang, Yaohui and Qiao, Yu and Agrawala, Maneesh and Lin, Dahua and Dai, Bo},
journal={International Conference on Learning Representations},
year={2024}
}
@article{guo2023sparsectrl,
title={SparseCtrl: Adding Sparse Controls to Text-to-Video Diffusion Models},
author={Guo, Yuwei and Yang, Ceyuan and Rao, Anyi and Agrawala, Maneesh and Lin, Dahua and Dai, Bo},
journal={arXiv preprint arXiv:2311.16933},
year={2023}
}
Tune-a-Video に基づいて構築されたコードベース。