フレーム補間が16倍速くなるRIFE TensorRTを試してみた
フレーム補間が特別遅いと感じたわけでもないのですが、RIFE TensorRTを使うとちょっぱやだよ、と小耳に挟んだので実際に測ってみることにしました。
結果、従来のRIFE VFIノードを使った場合、768x528pxの81フレームの補間におよそ40秒ほどかかっていました。
その前にRealESRGAN_x2plusを使って2倍アップスケールしているのですが、その処理も約40秒。合わせて80秒の後処理というわけです。
十分早いのですが、動画生成自体も高速化LoRAのおかげで早くなっており、768x528px 81フレームを120秒ほどで生成できてしまうため、それと比較するとなるほどちょっと気になってきます。
カスタムノードはRIFE TensorRTではなく、Autoのほうを入れる
コレ。
最初、RIFE TensorRTのほうを入れようとしたのですが、githubの手順に従って、rife49_ensemble_True_scale_1_simをDLしてexport_trt.pyをDLして、中のパスを書き換えてpython実行して………と途中までやって面倒になって投げました。
最初からRIFE TensorRT Autoカスタムノード入れれば全部自動でやってくれるのでオススメです。
アップスケール&フレーム補間のワークフロー
何も特別なことはやっていません。RealESRGAN_x2plusで2倍にアップスケールした後、RIFEに通すだけ。
ワークフローjsonが必要ならどうぞ:20260121_upscale_rife.zip
以前はRIFE VFIノードを通しており、ここで40秒ほどかかっていましたが、RIFE_TensorRT_Autoを通すと2.5秒くらいで済んでいるのがわかると思います。(ノードの左上に実際にかかった処理時間が表示されています)
約16倍の速度UPです。なんだこれ。あまりにも早すぎて失敗したのかと思ったよ。
ただ、最初の実行時はAutoの名のとおり、RIFEモデルのDLと、TRTへの変換処理があり、これがけっこう時間かかります。一度やってしまえば次からは爆速。
また、デフォルトのresolution_profileでは低解像度(たぶん1024x1024px以下くらい?)じゃないと動かないと思います。
768x528pxを2倍にしただけで、1536x1056pxになるためNG。なので、RIFE Custom Resolution Configでmax_dimに1920を指定して、大きいサイズ用のモデルを作っています。
モデルを作ると言っても単に数値入力して実行するだけで勝手に作ってくれるのでご安心を。
最初から大きい数値にしておけよ、と思われるかもですが、VRAM消費量がエグいみたいなので、こんな仕組みなんじゃないかな。知らんけど。
opt_dimがもっとも使う解像度で、max_dimには最大解像度を入れるみたい。RIFE VFIみたいな柔軟性はないので、ここで指定した解像度を超えた動画が流れてきた場合は問答無用でエラーになります。
尚、ChatGPT君に聞くと、先にRIFEしてからアップスケールすれば解決だよ!みたいなアドバイスしてくれますが、騙されないように。RIFEよりもアップスケール処理のほうが重いので、トータルの時間が遅くなり、TensorRTバージョン使う意味がなくなります。
玉吸い手コキ
せっかくなので、RIFE TensorRTのほうでフレーム補間した動画をアップしておきます。
30fpsですが、RIFE VFIと比べて特にこれといった違いは見受けられません。
これからはRIFE TensorRT Autoノードを常用しようと思いました。
















