Amazonのアソシエイトとして、当ブログは適格販売により収入を得ています。
以前、自作の動画フレーム補間ソフト「VIP」をアップしましたが、これはフレーム生成の推論部分に「rife-ncnn-vulkan」を使っていました。
今回、推論部分をBiM-VFIに置き換えて作り直してみました。
以下はBiM-VFIについてのサイトです。
以下に、ちょっとだけ比較動画を作ってみました。
出典: 映画『ベルセルク 黄金時代篇I 覇王の卵』
本記事は技術公開を目的としており、動画の視聴を目的としたものではありません
rifeと比べると生成された画像に歪みがあまり出ない印象です。
ただし、生成時間は大幅に伸びます。
ざっと計算して「30〜40分の1」の速度といったところ。
どちらを使うかは、動画の出来栄えと生成時間で決めることになると思います。
BiM-VFIは元々cuda環境のみで動作するようコードが書かれています。
今回Intel Arcで開発するに当たって、xpuで動作するよう書き直している途中で「cupy」で動作する部分をまるまるオミットしてしまいました。
GeForceなら、本来「cupy」のおかげでもっと高速に動作するはずですが・・・。
実装したいところなんですが、自分がGeForceを持っていないので動作テストできません。
ごめんなさい。
BiM-VFIには元々学習用や研究用のコードがあったんですが、フレーム補間に必要なのは推論部分だけです。なので不要なファイルはまるまる削除しています。
そして今回も、コードの作成の殆どをGeminiに書いてもらいました。
ありがとう、Gemini。
ちなみに動作テストはUbuntuで行っています。
多分Windowsでも動くと思いますが、テストしていないのでなんとも・・・。
中の人もここ二年くらいWindowsに触っていないため、いちいち環境を変えてテストする気になれなくなっています。
またしてもごめんなさい。
では、導入手順やっていきましょう。
導入手順1(ドライバ)
まずはドライバですが、自分はIntel Arcを使っていますので、こちらにドライバのインストールの仕方を書いています。
Radeonの場合はこちらの記事の「ROCmのインストール」を参照して下さい。
GeForceの場合は自分はもっていないのでわかりません。
どのグラフィックスカードにも言えることですが、ComfyUIやStable diffusionが動く環境ならドライバは大丈夫でしょう。
導入手順2(仮想環境)
rife-ncnn-vulkanと違ってBiM-VFIはpytorchで動きます。
なので仮想環境があった方が良いでしょう。
今回は「uv」で環境を構築しますが、別にpython-venvでもcondaでもなんでもOK(たぶん)。
ちなみに「uv」のインストール方法は、ここの記事で書いています。
sudo apt update
sudo apt install git
sudo apt install python3-tk
git clone https://github.com/toaru-ubuntu/bimvfi-interp-python.git
cd bimvfi-interp-python
uv venv --python /usr/bin/python3 #システムにインストールされたpythonを使う
source .venv/bin/activateこれで仮想環境はできあがりです。
導入手順3(pytorch)
Intel Arcの場合は以下です。
uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/xpuRadeonやGeForceの場合は以下のリンクから選択してください。

導入手順4(必要なライブラリ)
Arc、Radeon、GeForceすべて共通です。
uv pip install scenedetect av pyyaml opencv-python-headless tqdm numpy導入手順5(モデルファイルのダウンロード)
BiMVFIの本家からダウンロードします。

先程のターミナルから
#「bim_vfi」フォルダの直下に「pretrained」という名前のフォルダを作る
mkdir -p ./bim_vfi/pretrained
#ダウンロードした「bim_vfi.pth」を、先程作った「pretrained」フォルダにコピペ
cp ~/Downloads/bim_vfi.pth ./bim_vfi/pretrained/起動方法
そのまま以下のコマンドを実行
python ./bimvfi_interp_python.py 

VIPと違うところ

今まではプロセス数を設定できていましたが、BiMVFIは超重い処理なので、並列処理できなくなりました。
使用デバイスの設定は、このソフトの処理をどのデバイスで行うかの設定です。「CPU」と「GPU」のどちらかを選びます。
シーンチェンジの検出に「PSNR値」ではなく「PySceneDetect」を使うようにしました。
しきい値は設定できますが、基本的にいじらなくてOKです。
と、こんなところです。
最後に
rifeとは違って歪みの少ない動画が生成できるようになったと思います。
が、トレードオフとして生成時間が(とても)長くなりました。
好きな方を使って下さい。
それからGeForceのみ動作確認がとれていません。
もし、「動いたよ」って方がいたら教えて下さい。
githubのページはこちらです。
今回は以上です。
使用VRAMはフルHDの動画で10〜11GBといったところです。
ffmpegでHD画質まで落とせば5GBで足りるんですが、そうすると画質が・・・。
というわけで12GBと16GBのモデルをピックアップ。
GeForceが高いですね。
でもきっと速いんだろうなぁ。

コメント