FramePackがローカル環境で動かす動画生成AIのスタンダードとなるかと思われましたが、FramePackは1フレーム推論が主流の使い方となり、動画生成としてはあまり使われていない印象です。
やはり数種類のモデルが出ているWan2.1の方が、動画を作るのには適しているようです。
なので今回は、私の作成したワークフローを用いてWan2.1をComfyUIで動かすまでの導入方法を紹介していきます。
注意点ですが、今回紹介する方法はI2Vのやり方となります。
(余談) EasyWanVideoを導入する
余談ですが、簡単にWan2.1を動かす事の出来るリポジトリ「EasyWanVideo」があります。多くの方はこちらを使用してWan2.1を使用しているかと思います。
ただ、こちらを導入するとComfyUIが新しく追加され、必要のないLoRAファイルなども追加されてしまい、ストレージが圧迫されてしまいます。
なので、今回はこちらのリポジトリを使用しないやり方でWan2.1の環境を構築していきます。
必要なカスタムノード
まず、Wan2.1をComfyUIで動かすために必要なカスタムノードを紹介していきます。
ComfyUI-VideoHelperSuite
ComfyUI-WanVideoWrapper
ComfyUI-KJNodes
この3つのカスタムノードは必須ですので、必ず導入してください。
次に紹介するカスタムノードは無くてもWan2.1は動きますが、この記事で配布するワークフローを使うのに必要なカスタムノードなので、合わせて導入してください。
配布したワークフローも元に、最低限のワークフローに戻すという方は後で削除しても大丈夫です。
ComfyUI-Custom-Scripts
rgthree-comfy
ComfyUI-Impact-Pack
ComfyUI-Impact-Subpack
以上の4つをインストールしてください。
もし他に足りないカスタムノードがあった場合は適宜インストールしてください。
スポンサーリンク
必要なモデルなど
次に、動画を生成する為に必要なモデルなどをダウンロードします。
以下のファイルを「ComfyUI/models/diffusion_models」フォルダへ保存します。2種類ありますが、違いは高解像度の動画の生成に対応しているかどうかです。720pの付いている方は高い解像度の生成に対応しています。
Wan2_1-I2V-14B-720P_fp8_e4m3fn.safetensors
Wan2_1-I2V-14B-480P_fp8_e4m3fn.safetensors
次にClipモデルのダウンロードです。以下のファイルを「ComfyUI/models/clip」フォルダへ保存します。
open-clip-xlm-roberta-large-vit-huge-14_visual_fp16.safetensors
次にTextEncoderモデルをダウンロードします。以下のファイルを「ComfyUI/models/text_encoders」フォルダへ保存します。
umt5-xxl-enc-fp8_e4m3fn.safetensors
次にVAEモデルをダウンロードします。以下のファイルを「ComfyUI/models/vae」フォルダへ保存します。
Wan2_1_VAE_bf16.safetensors
これで必要なファイルのダウンロードが環境しました。
ワークフローの配布
上記の.jsonファイルをダウンロードし、ComfyUIで読み込むだけで使用できます。

ごちゃごちゃしていますが、直接いじる部分は基本的に「指定ノード」グループと「LoRA群」グループの2つだけです。
もし、ステップ数などの値を変更したいのであれば、右側あたりにある「WanVideo Sampler」から直接変更してください。
スポンサーリンク
モデルの適用

先ほどダウンロードしてきたモデルを適用していきます。
指定ノードグループにある各ノードに設定していきます。設定ノードと指定モデルは以下の通りです。
WanVideoModel : Wan2_1-I2V-14B-720P_fp8_e4m3fn.safetensors or Wan2_1-I2V-14B-480P_fp8_e4m3fn.safetensors
Load WanVideo T5 TextEncoder : umt5-xxl-enc-fp8_e4m3fn.safetensors
Load WanVideo Clip Encoder : open-clip-xlm-roberta-large-vit-huge-14_visual_fp16.safetensors
WanVideo VAE Loader : Wan2_1_VAE_bf16.safetensors
これで準備が完了しました。
次の項目では、指定ノードグループとLoRA群のノードについて説明していきます。
各ノードの説明
指定ノードグループの説明
まずは指定ノードグループにあるノードの説明をしていきます。
まずは緑色のノードを順番に説明していきます。
・スタートフレーム画像の読み込み
このノードでは動かしたい画像を指定します。
・エンドフレーム画像の読み込み
後述する生成モードが「StartToEnd」のときに使用するノードです。
生成される動画の最後のフレームの画像を指定します。
スタートフレームと同じサイズの画像出ないとエラーで生成出来ないので注意してください。
・プロンプト入力
プロンプトを入力するノードです。
・拡大モデルを読み込む
生成した動画をアップスケールする際に使用するアップスケールモデルを選択できます。
・アップスケール倍率
アップスケールの倍率を指定できます。
・BlockSwap
この数値を高く設定するとVRAMの使用量を減らせますが、生成速度が遅くなります。
・セルフネガティブ
ネガティブプロンプトを自分で入力できます。
次に、赤色のノードを説明していきます。
・使用グループ選択
使用するグループを選択でき、使わないグループはオフに出来ます。
・生成モード選択
生成モードを「通常」「ループ」「StartToEnd」の3つから選択できます。
「通常」ではいたって普通の動画生成が実行されます。
「ループ」ではループ再生に対応した動画が生成されます。
「StartToEnd」ではエンドフレーム画像の読み込みノードが使用可能になり、「スタートフレーム画像を読み込み」ノードに指定した画像から始まり、「エンドフレーム画像を読み込み」ノードで指定した画像で終わる動画を生成できます。
・使用LoRA選択
後述するLoRA群グループから、使用するLoRAを選択できます。
・ネガティブプロンプト選択
ネガティブプロンプトを「中国語」「英語」「セルフネガティブ」から選択できます。
・動画サイズ
動画の解像度を選択できます。
・動画長さ
動画の秒数を選択できます。
LoRA群グループの説明
・LoRA選択
このノードでは使用するLoRAファイルを指定できます。
・LoRA選択のトリガーワード
該当するLoRAのトリガーワードを入力することで、生成時のプロンプトに自動で入力されます。
・String Function
もし、LoRAを追加する場合は、以下のようにしてください。
1. 「WanVideo Lora Select」ノードを追加する
2. 「String Constant Multiline」 などテキストを入力でき、文字列として出力できるノードを追加する
3. 「String Function」ノードを追加する
4. 「Mute / Bypass Repeater (rgthree)」ノードを追加する
5. 追加した「WanVideo Lora Select」ノードのLoRA出力から「WanVideo Model Loader」ノードのlora入力へ接続する
6. 「String Constant Multiline」ノードの文字列出力から「String Function」ノードの”text_c”へと接続する。
7. 「String Function」ノードの文字列出力から「Set_LoRATriggerPrompt」ノードへと接続する。
8. 「String Function3」ノードの文字列出力から今回追加した「String Function」ノードの”text_a”へと接続する。
8. 「WanVideo Lora Select」ノードと「String Constant Multiline」ノードの出力から「Mute / Bypass Repeater (rgthree)」へと接続する
9. 「Mute / Bypass Repeater (rgthree)」の出力から、指定ノードグループにある「使用LoRA選択」へと接続する。
10. 「String Function」ノードの設定項目にある”action”を”append”へ、”tidy_tags”を”no”へ変更し、”text_b”にて改行を1回行う。
少し複雑ですが、使用するLoRAのプリセットを増やすときはこの方法で行えます。この作業がめんどくさいと言う場合は、既存のLoRA選択ノードとトリガーワードノードを書き換えても大丈夫です。
スポンサーリンク
生成
お疲れさまでした。あとは生成するだけです。
内容によってはプロンプトだけでは生成出来ない動画もあるので、Civitaiなどで良い感じのLoRAを見つけたり自作したりして動画を生成していきましょう。
最後に
これで動画生成AIをローカルで動かせるようになり、より一層創作の幅が広がりましたね。
それでは!
コメント