フレーム補間技術【RIFE】を利用してCogVideoXのFPSを改善しよう
はじめに
先日、動画生成モデルであるCogVideoXに関する記事を書きました。
安定してそれなりの質の動画を出してくれて、かつ安価な家庭用GPUでも問題なく動作する素晴らしいモデルなのですが、FPSが低く、動画がカクカクしていることが玉に瑕でした。
そこで今回は、CogVideoXのデモページでも利用することができるフレーム補間技術【RIFE】を利用して、FPSを改善し、滑らかな動画にしようという回です。
RIFEとは
ECCV2022に採択されている、リアルタイムで動画像のフレーム補間を可能にする技術です。
さらに、ライセンス的に商用利用も可能な技術になります。
CogVideoXはFPSが低いので、フレーム補間を利用して、FPSを向上させるために利用します。
環境構築
実行環境
OS:Ubuntu 20.04
GPU:RTX3060 12GB
CUDA:12.2
RAM:64GB
Python:3.11.7
venvで仮想環境を作ります。
venvによる仮想環境を構築する。
python -m venv env
source env/bin/activate
リポジトリをクローンする。
git clone https://github.com/hzwer/ECCV2022-RIFE.git
必要なパッケージをインストールする
リポジトリの中にあるrequirements.txt
は、私の環境ではそのままでは動作しなかったので、下記のように変更しています。
numpy>=1.16, <=1.23.5
tqdm>=4.35.0
sk-video>=1.1.10
torch==2.0.1
opencv-python>=4.1.2
moviepy>=1.0.3
torchvision>=0.7.0
変更点はtorch
の部分だけです。
このリポジトリではtorch==2.0.1
であれば動作しました。
変更したら、実際に必要なパッケージをインストールしましょう。
cd ECCV2022-RIFE
pip install -r requirements.txt
実行
クローンしたリポジトリの中に実行コードがすでにあるため、それをそのまま実行します。
python3 inference_video.py --exp=4 --video=../output.mp4
上記を実行することで、output_16X_128fps.mp4
という動画が、元の動画があった場所と同じ場所に生成されています。
動画によって引数を変更する必要があります。
たとえば、
--video=../output.mp4
は、変換する元のビデオのPATHを指定します。
また、--exp=4
では1を指定すると2倍のFPSに、2を指定すると4倍のFPSに、4を指定すると16倍(最大)のFPSに変換されます。
今回は4を指定しているので、8FPSから128FPSまでFPSを向上させることができます。
フレーム補間した動画
実際に、フレーム補間をした動画を下に提示します。
前回のCogVideoXの記事にて提示した生成動画に対して実行してみました。
ご覧ください。
もともとカクついていた動画が、かなりなめらかな動画になりました!
(ちなみに、元々の動画はこちらの記事からご覧ください)
とても自然になめらかにできているので、とても使いやすいツールです!
まとめ
RIFEと組み合わせることで、CogVideoXにより生成された動画が非常になめらかな動画になりました。
つまり、安価な家庭用GPUだけで、最終的にこのクオリティの動画が作成できるということです!驚きです!
(CogVideoXの使いやすいLoRAやFineTuningモデルをご存知でしたら、使ってみたいので教えていただけると嬉しいです!)
それでは、ここまで読んでくださってありがとうございました!
Discussion