ComfyUIのWan2.1動画がカクつく原因とfps設定・補間の手順

※本記事にはプロモーション(広告・アフィリエイトリンク)を含みます。
ComfyUIでWan2.1を回して動画を書き出したのに、再生するとカクカクして見える——。その多くは「生成fpsと再生fpsのズレ」か「そもそものフレーム数が少ない」ことが原因で、プロンプトやモデル自体の問題ではないことが多いです。
この記事では、原因の切り分け → Video Combineのfps設定 → RIFEによるフレーム補間 → 補間ノードが使えない時のffmpeg代替、までを再現できる手順でまとめます。
なぜWan2.1の動画はカクついて見えるのか
動画生成モデルは、1秒あたりのフレーム数(fps)が低めに生成されることが多く、尺も短めになりがちです。多くのComfyUIワークフローでは、Wan2.1の出力を16fps前後で扱う例が一般的です(使うワークフローやバージョンによって異なります)。
カクつきの正体は、大きく分けて次の2つです。
| 症状 | 主な原因 | 対処 |
|---|---|---|
| 速すぎる/遅すぎる再生 | 書き出しfpsが生成fpsと違う | Video Combineのframe_rateを合わせる |
| コマ送りのように見える | フレーム数そのものが少ない | フレーム補間でfpsを増やす |
前者は「設定ミス」、後者は「情報量の不足」です。まずどちらなのかを切り分けないと、補間を入れても直らなかったり、逆にスロー再生になったりします。
まず原因を切り分ける
確認するのは3つの数字です。
- 生成時のフレーム数(サンプラーに渡す length / num_frames。Wan2.1では81などがよく使われます)
- モデルが想定するfps(16fpsで扱うワークフローが多い)
- 書き出しノードの frame_rate(VideoHelperSuiteの「Video Combine」の値)
たとえば16fpsで生成したものを frame_rate=8 で書き出すと、実時間の倍の長さでカクついて見えます。逆に30で書き出すと早送りになります。まず「生成fps = 書き出しfps」をそろえるのが最初の一歩です。それでもコマ送り感が残るなら、フレーム数不足なので補間に進みます。
手順1:Video Combineのframe_rateを合わせる
ComfyUI-VideoHelperSuiteの「Video Combine」ノード(VHS_VideoCombine)には frame_rate という入力があります。
- ワークフローのデコード後の画像(IMAGE)を Video Combine につなぐ
- frame_rate を生成fpsと同じ値(例:16)にする
- format を選ぶ(まずは
video/h264-mp4が扱いやすい) - 一度書き出して、再生速度が自然かを確認する
この段階で「速度は自然だがコマ送り」なら設定は正しく、足りないのはフレーム数です。手順2へ進みます。
手順2:フレーム補間(RIFE)でfpsを底上げする
フレーム補間は、隣り合うフレームの中間を生成してfpsを増やす処理です。ComfyUIでは「ComfyUI-Frame-Interpolation」カスタムノードの RIFE VFI がよく使われます。
- ComfyUI-Manager から「ComfyUI-Frame-Interpolation」をインストールして再起動
- デコード後のIMAGE出力を RIFE VFI ノードの frames 入力につなぐ
- RIFE VFI の出力を Video Combine につなぎ替える
- RIFE VFI の
multiplierを 2 にすると枚数が2倍(16fps想定なら実質32fps相当) - Video Combine の frame_rate を、元fps × multiplier(例:16×2=32)に更新する
ここでmultiplierとframe_rateを両方そろえるのが肝心です。片方だけ変えると、また速度がズレてカクつきます。より滑らかにしたい場合は multiplier=3(48fps相当)にして frame_rate も48にします。
VRAMが厳しい環境では、RIFE VFIの clear_cache_after_n_frames を小さめ(10前後)にするとメモリ解放の頻度が上がり、長い動画でも落ちにくくなることがあります(環境によって最適値は異なります)。
補間の注意点として、速い動き・細かい模様・急なカットがある素材では、中間フレームが溶けたりにじんだりすることがあります。その場合は multiplier を下げるか、補間なしで元fpsを素直に見せたほうが自然なこともあります。
手順3:補間ノードが入らない時のffmpeg代替
カスタムノードの導入でつまずく場合や、書き出し済みの動画を後処理したい場合は、ffmpegの minterpolate フィルタでも補間できます。
ffmpeg -i in.mp4 -vf "minterpolate=fps=48:mi_mode=mci:mc_mode=aobmc:vsbmc=1" out.mp4
mci(動き補償補間)はRIFEほど綺麗にならないこともありますが、ノード追加なしで試せるのが利点です。
仕上げの配信最適化については、私は別件で、Real-ESRGANで動画を2倍に高画質化したあと、ffmpegの libvpx-vp9(crf 32)でWebMに変換し、mp4比で容量を約半分にしました。補間でfpsを上げると容量が増えるので、最終的な配布形式は次のように圧縮しておくと扱いやすくなります。
ffmpeg -i interpolated.mp4 -c:v libvpx-vp9 -crf 32 -b:v 0 out.webm
crfは数値が大きいほど低画質・小容量です。用途に合わせて28〜34あたりで調整してください(環境や素材によって最適値は異なります)。
まとめ
Wan2.1のカクつきは、「生成fpsと書き出しfpsを合わせる」→「それでもコマ送りなら補間でfpsを増やす」の順で切り分けると、ほぼ原因にたどり着けます。次の一歩としては、まず現状の3つの数字(生成フレーム数・想定fps・Video Combineのframe_rate)をメモすることから始めてください。ズレが見えれば、直す場所は自ずと決まります。
よくある質問
Wan2.1の動画は何fpsで生成されますか?
多くのComfyUIワークフローでは16fps前後で扱う例が一般的ですが、使うワークフローやバージョンによって異なります。書き出しノードのframe_rateを生成fpsと同じ値にそろえるのが基本です。
RIFEとffmpegのminterpolate、どちらで補間すべきですか?
ComfyUI内で完結させたい・品質を優先するならRIFE VFIが扱いやすいです。ノード導入でつまずく時や書き出し済み動画の後処理にはminterpolateが手軽ですが、仕上がりは素材によって差が出ます。
補間すると動きが溶けたりにじんだりするのはなぜですか?
補間は隣のフレームから中間を推定するため、速い動き・細かい模様・急なカットでは推定が外れやすくなります。multiplierを下げるか、補間なしで元fpsを見せる方が自然な場合もあります。