【革新】完全なループアニメーションが簡単に作れる「Wan2.1 FLF2V」!

Wan2.1

ドーモ、最近動画生成AIの技術の進歩が目覚ましいですね!皆さんは先日新しく公開された、Wan2.1のFLF2Vモデルはご存じですか?,FLFはFirstLastFrameの略でこれは2枚の画像を最初と最後のフレームに指定して中間のフレームを生成してくれるもので、その性能はかなりの物、ですがこのモデルの真骨頂は工夫をすれば違和感が全くないループアニメーションを作ることが出来る!という点です、ggufモデルが早くも公開してくださっているので、今回はComfyUIでの使い方を交えて紹介していき、最後は以前のワークフローを改良したワークフローを公開します!

このモデルについて

I2Vには1.3B-480pの軽量モデルが存在しましたが、このモデルは14B-720pのモデルしかありませんので16g以下のvramの場合、ggufバージョンがほぼ必須です、(自分もそうしています)

使い方

使用するにはまずComfyUIをVer3.19以上にアップデートしなければなりません。まだの方は行っておきましょう!

使用するモデル

公式のモデルは大きすぎるので、例のごとくciti96さんが公開してくれているggufモデルを使用しましょう!自分はwan2.1-flf2v-14b-720p-Q4_0.ggufを使用しています、これを[ComfyUI/models/unet]に配置してください。

WanFirstLastFrameToVideo

WanImageToVideoノードと比較してclipとimageの入力が一つ増えていますねこれを…

この様にimageはstartとendで使用するCLIP Vision Encodeと揃えて接続します

あとは基本と同じですね

I2Vモデルとの比較

このモデルは最初から最後にかけて段々と処理に時間がかかります、通常のI2Vのモデルとは真逆ですね、ですからログに終了までの平均時間が出てますが、それよりも大分時間がかかります、I2Vと生成時間を比べると大体40%増ってかんじです。

ループ動画の作り方

作り方は単純ですループさせたい動画の最後のフレームを最初に、最初のフレームを最後に持ってきます、I2Vで作った動画の場合、最後のフレームはそれに使用した画像でもいいです(繋ぐのが面倒な場合)、ただ動画のみで完結した方が後々便利だと思います、下の画像はwan2.1で生成した動画を使用する一例です。

この方法は2つのLoad Videoのノードを使用します、緑の丸で囲っている値、これで最初の1フレーム目だけを読み込みます、そしてvideoinfoから動画元の秒数を基にMath Expressionで計算を行います、1フレームが0.0625秒なので、その値を引いた数値を2つ目のLoad Videoのstart_timeに接続します、これで最後の1フレームだけが読み込まれます。

comfyui-videohelpersuiteのカスタムノードについて

comfyui-videohelpersuiteのカスタムノードには、動画を読み込むノードが2つあったと思います、以前公開した自分のワークフローではそちらを使用していました、ですが繰り返し動画を使用しているとどんどん色がずれてくる問題がありました、ところが!こちらのffmpegのノードの方に差し替えたところ色の問題がなくなりました!なので使用する場合はこちらのノードをおすすめします。

生成例

以下は自分のワークフローで生成した動画の例です

この画像を使用してI2Vで生成したあと、その動画の最後と最初のフレームでFLF2Vで生成します

I2V
FLF2V

この2つの動画をつなぎ合わせて60fps化したのがこちらです

どうですか?綺麗にループしていると思います!(Civitaiの方にもいくつか上げているのでチェックしてみてください!ただ中にはえっっ…な奴もあるので注意して注視してください)

FLF2Vを含んだ改良型ワークフロー

今回のFLF2Vを含んだ自分の改良型ワークフローをCivitaiにアップロードしておきます、また改良点は下記の通りです、改良前の記事はこちらから

【Wan2.1】低VRAM高速化60fps化などの高機能ワークフロー | なんなこなここ

I2VとFLF2Vを瞬時にスイッチできる機能

この2つのグループはどちらかがミュートかonの状態になったらもう片方は逆の状態になります、つまり1ボタンで切り替えができます。またモデルの選択はこの中のUnetノードで行うので変更する場合はこれを開いてください。

画像の選択

・up-videoは効果を実感できなかったので削除しました、

・first、lastでは最初のフレーム画像をこの画像から、最後のフレームを左の方にあるloadimageから読み込みます

・video,last.firstではvideo-pathグループで選択した動画の最後のフレームを1枚目に、最初のフレームを2枚目に読み込みます、またその際保存されるファイルネームは画像ではなく、動画名が使われます。

seed switchではこのワークフローで作成した動画と同じ命名規則の場合、2にすれば動画名に保存されたシード値を使用します、なのでそれ以外の場合は1に合わせておいてください。

Crop

画像の特定範囲を切り抜いたり、回転させたりしてからrmbgノードに通して使用します、

Color Match

mainと結合のグループにColor Matchノードを追加しました、前後の動画で色の不均等差をこれで軽減できます。

大きな変更点、及び注意点

このワークフローはComfyUIの最新環境に適応するための更新を行いましたので、ComfyUIのバージョン、そしてcomfyui_frontend_packageのバージョン1.17.11をインストールしてください。(ComfyUIの更新時に自動でインストールされるはずです)

cg-use-everywhereカスタムノードについて

omfyui_frontend_packageの変更で多数のカスタムノードが影響を受けましたが、このcg-use-everywhereもそのひとつです、現在最新バージョンでも動くようになっていますが、バージョン5.0.10の方がいいかもしれません、(起動時に警告が出ますが、Video Combineなどのノードにvaeを接続したい場合はこちらのバージョンでないとimageの接続が都度切断されます、おそらく推察ですが、表示上はimageとなっています、でも内部ではlatentとして動いていて、それが最新バージョンの参照方法に引っかかっているからなのではないかと。)使用しない場合は最新の物で問題ないです!都度更新を行ってくれている作者さんに感謝ですね

上記以外のバージョンアップ必須のカスタムノード

ComfyUI-Impact-Pack

ComfyUI-Custom-Scripts

ComfyUI_Mel_Nodes

その他細かい変更

・pixelグループのCRTLike Effectを多くのフレームを処理する時にフリーズすることが目立ったので、Meta Batch Managerを追加し64フレームずつ処理するようにしました、その際ファイルネーム名を出力しようとするとエラー表示が繰り返されるので、showtextは削除しました

・video-pathグループのフレームのスイッチを削除、video2conの追加

・Load Video FFmpegに置き換え(色問題の改善)

・upscale、結合、film、pixelグループを同時にミュート、アクティブにするスイッチを追加

最後に

いかかでしょうか、今回ワークフローを手直しするのに、ノードをリロードして…繋げて…エラーが出て…リロードして…繋げて…エラーが出て…を繰り返してめっちゃ時間かかりましたっ…ぜひこのワークフローを使ってお気に入りの動画をループ化させたり、色々試してみてださい!それでは!

コメント