AnimateDiff prompt travel を使って、ローカル PC で簡単に動画を生成する環境です。
[ 概要 ] [ Colab版 ]
- プロンプトだけで FullHD のスムーズな長尺動画を生成
- セットアップ・2段アップスケール・フレームレート補間などが自動
- AnimateDiff prompt travel の生成設定ファイルを流用可能
- 利用者の人気のつぶやき: @Yokohara_h @PhotogenicWeekE @cigmatari @hina_chocoboo13
- 9/25: AnimateDiff prompt travelの更新比較 の きれいな動画
- 9/24: モデルへの VAE 組み込み有無比較 の きれいな動画
- 9/23: motion-moduleのmm_sd_v15_v2とmm-Stabilized_high比較 FullHD 超え動画
- 9/21: FullHD 相当 KuronekoAkiba
- 9/18: nadenadesitai_v10, xxmix9realistic_v40, onigiriMix_v10, mistoonAnime_v20
- 利用者のつぶやき(気付いたもののみ): @llrinnell @ai_gene_fumo7 @moshimur @mouriAIart @katarina7410 @safa_dayo @keythpiece @TakaWeekendProg @llrinnell @toki_mwc @towya_aillust @aicocoa982 @Lover57227277 @julajp @towya_aillust @PhotogenicWeekE
- 2024/09/25
- FFmpeg のインストールに失敗する不具合を修正しました。
Update.bat
を実行すると修正します。
- FFmpeg のインストールに失敗する不具合を修正しました。
- 2024/09/24
- 今回の更新では
Update.bat
を 2回!実行してください(Update.bat
を更新したため)。 - AnimateDiff prompt travel の更新に対応しました。
- AnimateDiff 用にモデルを修正する
FixCheckpoint.bat
を追加しました。
が、手元で利用しているモデルは修正不要でした。
- AnimateDiff 用にモデルを修正する
- 生成した動画のサイズを低減する
Mp4Crf(26|32|38)
を追加しました。 - 生成した動画から X(Twitter) 投稿用の動画を生成する
XMp4*.bat
を追加しました。
- 今回の更新では
- 2023/09/23
- 生成する動画のデフォルトの FPS を、様々なサービスとの互換性の観点から 40FPS にしました。
- 生成設定ファイル名に
-D3
を付け足すと、以前と同様に 80FPS になります。 - FPS 指定の詳細は ファイル名オプション一覧 や
FpsX4.bat
の説明を参照してください。
- 生成設定ファイル名に
- 生成した mp4 ファイル名に、日時のプレフィックスを追加するようにしました。
- 同一シードで生成しても、mp4 ファイルを上書きしなくなります。
- 生成する動画のデフォルトの FPS を、様々なサービスとの互換性の観点から 40FPS にしました。
- 2023/09/22
- motion-module に mm-Stabilized_high.pth と mm-Stabilized_mid.pth を追加しました。
Update.bat
を実行するとダウンロードします。
- 同一シードで同じフォルダに再出力した際に、正しくフレーム補間されない不具合を修正しました。
- インストール済みの方は
Update.bat
を実行してください。
- インストール済みの方は
- インストーラーで
C:\Windows\System32
にパスが通っていない場合にエラー扱いにしました。
- motion-module に mm-Stabilized_high.pth と mm-Stabilized_mid.pth を追加しました。
- 2023/09/21
- 公開
- Windows 10 以降(Update済み)の PC で、/Windows/System32 にパスが通っている
- 最近の NVIDIA Geforce RTX VRAM 8BG 以上
- パスを通した Python 3.10.6 と Git for Windows
- 動作環境の Python 3.10.6 を導入していない場合は、Python のインストール をします。
- 動作環境の Git for Windows を導入していない場合は、Git for Windows のインストール をします。
- Civitai がダウンしていないか確認します。
- Setup-EasyPromptAnime.bat を 右クリックから「名前をつけてリンク先を保存…」 でインストール先のフォルダ(英数字のみの浅いパス、 スペース不可)にダウンロードして実行します。
- 「WindowsによってPCが保護されました」と表示されたら、「詳細表示」から「実行」します。
- インストールが終わると、Google Colabでプロンプト編集用の「簡単プロンプトアニメエディタ」が立ち上がります。
- セットアップや更新で
curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x00000000) - 失効の関数は証明書の失効を確認 できませんでした。
といったエラーが発生する- ネットワークのセキュリティチェックに失敗しています。
- アンチウィルスソフトの Avast 有効時に発生し、無効にしたら問題なくインストールできたとの事例報告がありました。
- 動画の生成が一晩経っても終わらない、サンプル(
sample/UpscaleGacha.bat
、RTX 3060 で約 15分)の生成に長い時間が掛かる- AI 画像生成の VRAM オフロード問題を踏んでいる可能性がありますので、グラフィックスドライバのバージョンを確認してください。
- セットアップでダウンロードされるモデルで動画を正常に生成できない
- モデルのダウンロードに失敗している場合がありますので、
animatediff-cli-prompt-travel/data/models/sd/
にある該当ファイルを削除し、src/Setup.bat
で再ダウンロードしてください。
- モデルのダウンロードに失敗している場合がありますので、
簡単プロンプトアニメを更新するには、Update.bat
を実行します。
12秒のアニメをとりあえず生成してみたい方は、sample/UpscaleGacha.bat
を実行してみてください(RTX 3060 で約 15分)。
OpenClabEditor.bat
で「簡単プロンプトアニメエディタ」を開きます。- ひとつめの
▶
を押してプロンプト入力欄を表示し、プロンプトやパラメータを編集して、ふたつめの▶
を押すと動画生成用の生成設定ファイル (*.json) をダウンロードします。 - 生成設定ファイルをインストール先(Setup-EasyPromptAnime.bat を実行したフォルダ)にある
Generate.bat
にドラッグ&ドロップすると、生成設定ファイルの場所に動画を生成します。- 生成した動画とフレームレート補間した動画と再エンコードした動画を生成します。
- アップスケールを無効にしたり、アップスケールのサイズを下げたりすることで効率的にシードガチャができます。
- プロンプトをざっくり詰める段階なら、最初の生成解像度を下げたり、短時間にして先頭付近のキーフレームで検証するのも手です。
- mp4 ファイル名先頭の
日時(MMDD_HHMM_SS)-数値
の数値
部分がシードです。 animatediff-cli-prompt-travel/(output|upscaled|refine)/
以下にあるprompt.json
でも確認できます。
以下のいずれかの手順で、改善するかもしれません。
FixCheckpoint.bat
でモデルを修正します。モデルが書き換わる可能性があります。- 生成設定ファイルのファイル名に
-V
を付け足します(改善報告あり)。 - モデルの VAE を差し替えます。
- 生成設定ファイルのファイル名に
-X
を付け足します(未検証、-V
,-v
,-x
との併用も)。 - 別のモデルを使います。
「簡単プロンプトアニメエディタ」の初期値や選択肢を変えたい
- Colab のメニュー
ファイル - ドライブにコピーを保存
して、一番下のコードを表示
から該当部分を編集します。
FixCheckpoint.bat
でモデルを修正します。モデルが書き換わる可能性があります。animatediff-cli-prompt-travel/data/models/sd/
にモデルを置きます。- [!注意!] stable-diffusion-model-toolkit などで、モデルに VAE を埋め込んでください。
モデルに VAE を埋め込まないと、このようになる 場合があります。
- [!注意!] stable-diffusion-model-toolkit などで、モデルに VAE を埋め込んでください。
- Colab ソースの
model_name = "nadenadesitai_v10" # @param [...]
の...
を書き換えます。
AnimateDiff とモデルに相性があり、黒画像になる、あまりアニメーションしない、といった場合があります。
stable-diffusion-model-toolkit によるモデルへの VAE 埋め込み方法
- Stable Diffusion web UI に stable-diffusion-model-toolkit をインストールします。
- Stable Diffusion web UI の
Toolkit
タブでリフレッシュ
してから入力
で VAE を埋め込むモデルを選択して読み込み
ます。 高度な設定
に移り、Component - Class
からVAE-v1
を選択します。実行 - ファイル
で埋め込む VAE を選択してImport
します。名前
で VAE を埋め込んだモデルのファイル名を指定して保存
で、モデルフォルダに VAE を埋め込んだモデルが保存されます。animatediff-cli-prompt-travel/data/models/sd/
に VAE を埋め込んだモデルを移動します。
animatediff-cli-prompt-travel/data/models/motion-module/
にモーションモジュールを置きます。- Colab ソースの
motion_module = "mm_sd_v15_v2.ckpt" # @param [...]
の...
を書き換えます。
animatediff-cli-prompt-travel/data/lora/
に LoRA を置きます。- 使える LoRA は通常の LierLa 形式で、C3Lier(Locon) 以降は使えないっぽいです。
- LoRA の読み込みは、プロンプトエディタの
L:
で始める行で指定します。
animatediff-cli-prompt-travel/data/embeddings/
に TI を置きます。
- AnimateDiff prompt travel がそのまま動作していますので、生成設定ファイルを手書きすれば使えます。
- そのうち対応するかも?
animatediff-cli-prompt-travel/wildcards/
にワイルドカードを置きます。
- context を半分にしていますが、落ちますね。
- 初回のアップスケールで解像度を抑えつつ Refine を使用、とかもできましたが、重い印象でした。
- まずは WizTree で状況を確認してください。それでもストレージ容量が足りなかったら、買ってください。
- ありません。「Colab版簡単プロンプトアニメ」のコードを流用しただけなので、利用者が多そうだったらローカルエディタを用意する、かも。
「簡単プロンプトアニメエディタ」を開きます。
生成設定ファイルをドラッグ&ドロップすると、動画を生成します。
生成設定ファイルをドラッグ&ドロップすると、動画を生成し続けます。終了時は Ctrl+C
で止めてください。
簡単プロンプトアニメと AnimateDiff prompt travel を更新します。
モデルをドラッグ&ドロップすると、モデルに問題があれば AnimateDiff 用に修正します。モデルが書き換わったかどうかは更新日時で確認してください。
mp4 をドラッグ&ドロップすると、RIFE で FPS を4倍にします。サイズが大きくなるので再エンコード版も生成します。
- 第 2 引数に RIFE による中割りの分割回数(FPSの倍増を何回実施するかの)を指定できます。FPSが 1 なら 2倍、2 なら 4倍、3 なら 8倍、4 なら 16倍になります。未指定や 0 なら 2 になります。
- 第 3 引数に RIFE の分割後の FPS を指定できます。 この FPS 指定では画像の枚数を変更せずに FPS を適用しますので、アニメーションの速度と長さが変わります。 1秒の 10FPS の動画を RIFE で 4倍にして 40枚の画像がある状態で、第三引数で 60FPS を指定すると、アニメーションが早くなり 0.66秒で再生が終わります。逆に 8倍で80枚にして 60FPS を指定した場合は、ゆっくり再生されて 1.33秒で再生が終わります。0 なら未指定です。
- 第 4 引数で FFmpeg による再エンコード時の FPS を指定できます。再生速度や動画の長さは変わりません。0 なら未指定です。
- 第 5 引数で FFmpeg による再エンコード時の crf を指定できます。未指定や 0 なら 20 になります。
Tile アップスケールは mp4 を生成しませんが、animatediff-cli-prompt-travel\upscaled
にある連番 png が入っているフォルダをドラッグ&ドロップすると、mp4 を生成します。
ストレージ容量を消費しがちな animatediff-cli-prompt-travel/
の output/*/
, upscaled/*/
, refine/*/
を削除します。
mp4 をドラッグ&ドロップすると、Crf26 で 1/2、Crf32 で 1/4、Crf38 で 1/8 ぐらいのサイズの mp4 に変換します。
mp4 をドラッグ&ドロップすると X(Twitter) アップロード用の動画(40FPS, 25Mbps)を生成します。
アップロード時に再エンコードされる前提ですので、省サイズではありません。
- Xで動画を共有および視聴する方法
- 動画の大きさが W1920 x H1200 か W1200 x H1900 に収まらない場合は、
XMp4W1920.bat
,XMp4W1200.bat
,XMp4H1900.bat
,XMp4H1200.bat
を使用して、W1920 x H1200 か W1200 x H1900 に収まるように縮小します。 - mp4 ファイル名の末尾が
*-D2e.mp4
な再エンコード後の mp4 でなく、*-D2.mp4
な再エンコード前の mp4 から生成したほうが、品質が高くなります。
AnimateDiff prompt travel 利用者向け情報
既存のコンフィグファイルのファイル名にオプションを指定することで、Generate.bat
が色々やってくれます。
ハイフン(-
)は引数の指定に使用するため、ファイル名には使えません。
例) Config-L30-C16-W448-H544-T1088-T1632.json
を Generate.bat
にドロップ
animediff generate -L 30 -C 16 -W 448 -H544
animediff tile-upscale -H 1088
から FFmpeg で mp4 生成-R
ならanimediff refine -C (context / 2)
animediff tile-upscale -H 1632
から FFmpeg で mp4 生成- RIFE でフレーム補間
キー | デフォルト値 | 説明 |
---|---|---|
L | 30 | 動画のフレーム総数を指定します。 |
C | 16 | AnimeDiffのコンテキスト長を指定します。 |
W | 384 | 動画の幅を指定します。 |
H | 512 | 動画の高さを指定します。 |
T | - | Tile アップスケール後の動画の高さを指定します。2回指定できます。 |
R | - | Refine アップスケール後の動画の高さを指定します。2回指定できます。 |
D | 2 | RIFE による中割りの分割回数を指定します。FpsX4.bat の第 2 引数説明参照。 |
I | 0 | RIFE による中割り後の FPS を指定します。FpsX4.bat の第 3 引数説明参照。 |
F | 0 | FFmpeg で mp4 に変換する際の FPS を指定します。FpsX4.bat の第 4 引数説明参照。 |
M | 20 | FFmpeg で mp4 に変換する際の crf を指定します。FpsX4.bat の第 5 引数説明参照。 |
U | 10 | Tile アップスケール後の画像を MP4 にする際のFPSを指定します。 |
v | - | 動画の生成で half-vae を有効にします。 |
V | - | 動画のアップスケールで half-vae を有効にします。 |
x | - | 動画の生成で xFormers を有効にします。 |
X | - | 動画のアップスケールで xFormers を有効にします。 |
- AnimateDiff prompt travel
- Codex FFmpeg
- Real-Time Intermediate Flow Estimation for Video Frame Interpolation
このリポジトリのスクリプトやドキュメントは、MIT Licenseです。
This software is released under the MIT License, see LICENSE.txt.