Flowframes(RIFE)によるパンチラのフレーム補間
先日知人からメールをもらってまたフレーム補間に関する興味が湧いてきたのでちょっとした実験です。
先に結論から書くとGoogle FILMと比べて、RIFE(≒Flowframes)のほうが劇的に性能が上、というわけではないものの、
- アニメ顔の破綻が少ない
- 2~3倍ほど高速
- 使うための準備が超簡単
以上のことから、これからAIフレーム補間試してみようかな?という人にはFlowframesインストールするのが一番楽だと感じました。
まだ試してはいないけれど、中身はRIFEのpythonスクリプトなのでFILMと同様、コマンドラインで使うことも出来るハズ。効率を求めると最終的にはコマンドによるバッチ処理になるので、ここも重要。
三面図をAIフレーム補間で回転させるテスト
昨年試した「AIフレーム補間で三面図の回転と歩きアニメーションのテスト」と同じですが、今回はSD1.5からSDXLへ移行。AIフレーム補間はGoogle FILMとRIFEの両方で試してみました。
やはり三面図程度では圧倒的に情報量が足りず、360度回転は無茶でしたが、高速回転させれば多少誤魔化せるかな?という気もしなくもない。ゼーガペインのAIオペレーターとかこんな感じのぺらいカードみたいなデザインでしたよね。あんなシーンで使えそう。
また、FILMとRIFEでほとんど違いがないように見えるかもですが、1コマ1コマ止めて見るとおおむねRIFEのほうが補間力が高いように見えます。
どちらもECCV2022の論文を基に作成されているようでアルゴリズムに大きな違いはないと思うのだけれど、RIFEのほうは正式にアニメシーンに対応したと明言されているとおり、たぶん学習モデルが違うんじゃないかな。知らんけど。
元画像
RIFE v4.0によるパンチラアニメーションの補間テスト
AIフレーム補間が得意な直線的な動きでテストしてみましたが、さすがのぬるぬる感。見ればわかるだろうけど、左が元で右がフレーム補間済です。
6fpsのカクカクアニメーションのほうが、屈伸したときのタメ動作があるように見えるんだけど、それは脳内補間されてるからなのかも。
元画像
元画像はこのとおりタメ動作などない(屈伸動作は他と同じ1フレームのみ)のでフレーム補間のほうが正しいといえば正しいのだけれど、人間が脳内補間する余地を残すためにあえてフレームレートを落とすケースもアリかもなぁ。
チープアニメの作成方法
絵の心得が全くないので、全てAIイラスト+画像加工です。
見れば想像つくと思うけれど、一応軽く説明しておきます。
まずはこの絵↓のスカートから上部分のみをカットして保存。
次に「1girl,naked,panties,jumping,full body shot」あたりのキーワードでじゃんじゃか出力し、良さげな脚を見つけたら切り取って保存。
あとは最初に保存しておいた上半身の絵の下に好きな脚を配置するだけ。
スカートがめくれる差分や、髪の毛がふわっとする差分はGIMPのワープ変形。ワープ変形がわからない方は「GIMPのワープ変形を使った簡単なアニメーション作成の解説」を参照のこと。
Flowframes(RIFE)の感想
最初に書いたとおり、とてもイイですね。
フレーム補間の性能がぶっちぎり…!というほどではないのですが、間違いなくFILMより得意な場面があって、具体的にはここ。
先日アップしたpixivのお題「#桜」のシーンだけれど、FILMだとアニメ顔の瞳が壊れることが多いです。しかしこれがRIFEではありませんでした。さすがアニメシーンに対応と明言しているだけはある。
また、RIFEにはFlowframesというGUIツールがあるためPC初心者向けにも良いです。PC初心者がフレーム補間したいと思うのかは知らんケド…。
今までは、アニメの中割を作る→連番画像を特定のフォルダへほおりこむ→バッチファイルをダブルクリックする、という一連の流れが出来上がっていたので、GUIあってもさほど嬉しくはないかなぁーという気持ちもありましたが、インストールが楽なのは明らかなメリットですね。まさかDLしてボタンポチポチ押すだけでpythonや学習モデル含めて全部入れてくれるとは思わんかった。gitやpython環境すら作ってない人でも鼻ほじりながらセットアップ完了するよ。
FILMのほうもgit cloneして学習モデルDLするだけなんですけど、説明が不親切で解説どおり進めると必ずエラーが出てハマるんですよ。詳しい人にはrequirements.txtって言えば伝わると思うんだけど、中にモジュールのバージョン番号が指定されているせいで、そのままじゃ動かないんですね。
エラーメッセージちゃんと読めばバージョンが違うよ!このバージョンでは動かないよ!ってひとつひとつのモジュールでエラーが表示されているのですが、大量だから読み切れないし、そもそも英語アレルギーの人は文字とすら認識しなさそう。解決策は簡単で、requirements.txtの中に書いてあるバージョン番号を消してやれば最新版DLしてくれるから普通に動くんだけど、まぁわからん人には一生わからんよね…。更にはCUDAのバージョンにも縛りが…いやこれ以上は長くなるからやめよう。
そんなこんなで使うまでのハードルがわりと高いので、今あえてFILMを使う必要はないと思います。
Flowframesの場合はここからDLしてインストールをぽちぽち押すだけ。一般的なWindowsアプリケーションとなんら変わりません。
https://nmkd.itch.io/flowframesDLする前に5ドル寄付しろや!って言われるけど、No Thanks押せば無料で使えます。開発支援するつもりがあればじゃんじゃん払ってあげてください。ぼくは学生時代と貧乏生活時代にフリーソフトに助けられて技術力を磨いてきたので、オープンソースにはそこそこ寄付するタイプですが、人それぞれ環境も考え方も違うでしょう。
尚、FlowframesはあくまでGUIなわけですが、そのおかげでエンジンの切り替え機能まであります。
デフォルトではRIFEがインストールされていますが、プルダウンでFLAVRやDAIN、XVFIといった別のフレーム補間機能を選択すると、そのときに自動的にDLがはじまって使えるようになります。ただ、ぼくが試した限りではRIFEが一番きれいな処理でした。3Dや実写だとまた違った結果なのかも知れないけども。
品質に関わる部分としては、Quick SettingsタブにあるSensitivity、これが0.5~0.50まで選べるのですが、残像のようなものを作りやすくなるので、低フレームレートでは避けたほうが良いと感じました。高フレームレートなら、スピード感あるのでむしろ綺麗に見えると思うんですけどね。ぼくがよく作ってるチープアニメレベルだとSensitivityはチェック付けないほうが綺麗だと思います。
とりあえず、こんなとこかな?
















