メインコンテンツへスキップ
見出し画像

【ffmpeg】生成したAI動画をローカルPCで高画質化&フレーム生成する話【SVP】【ComfyUI】

    はじめに

    AI動画に限らず、一般的なショート動画をローカルPCで高画質化する方法の紹介です。利用するツールは、

    • ffmpeg

      • コマンドラインで動画をコマごとの画像に分ける

      • 処理したコマ画像を動画に戻す

    • ComfyUI

      • 各種モデルアップスケーラでデノイズと高画質化

    • ※ Smooth Video Project(無料ではない)

      • フレーム生成技術で、30fps動画を60fps化

      • NNを利用した生成AIではないが、筆者の知る限り、他の生成AIフレーム補間ソフトウェアよりも綺麗

      • Linux版は無料で利用できる(昔はWindows版もフリーウェアだったのですが)

    方針は、各画像を一枚ずつ高画質化してから動画に戻し、最後に動画フレーム補間します。

    画像をコマごとの画像に分ける

    ffmpegの導入

    ffmpegコマンドを利用します。ffmpegは、Handbrakeをはじめ、オープンソース系の動画ソフトウェアならほぼすべてで利用されているぐらい有名なソフトウェアです。動画だけでなく、画像や音声ファイルの変換も可能です。

    Linuxなら、

    sudo apt install ffmpeg

    Windowsなら、公式サイトよりバイナリをダウンロードして解凍後、ffmpeg.exeコマンドのあるフォルダをパスに登録します。

    動画を各コマ画像に分ける

    下記コマンドを利用する事で、簡単にコマ画像ファイルに変換できます。

    # 250430_054218_419_9403_46.mp4動画ファイルをkomaフォルダに5桁ゼロ埋め連番ファイル名で出力
    ffmpeg -i 250430_054218_419_9403_46.mp4 koma/%05d.png
    画像
    komaフォルダ

    ComfyUIを利用してアップスケール(高画質化)する

    ※ ComfyUIの導入方法はこちらでも解説しています

    アップスケールモデルを決める

    まずは、より綺麗にできる最適なAIモデルを選びます。得意不得意があるので、写実風、アニメ風、景色、人物主体などで品質に差が出ます。コマ画像のどれか一枚を利用して、もっとも良い結果を出すモデルを選びます。

    ※ 各AIモデルは、次のサイトから入手できます

    画像
    綺麗になるアップスケールモデルを選ぶ(ComfyUI)
    画像
    左:オリジナル
    右:4x_NMKD-Superscale-SP_178000_G

    ただし、6秒動画でも約180枚の画像ファイルを処理する事になるので、あまり重いモデルは利用できません。

    筆者は動作も軽量な4x_NMKD-Superscale-SP_178000_Gモデル(ESRGAN)を良く使います。このモデルは劣化やノイズのない画像をアップスケールするモデルなので、ノイズの多い画像の場合は、先にデノイズや劣化回復モデルを通す必要があります。

    連番ファイルを処理するワークフローを作る

    簡単なワークフローにします。

    ① Inspire-Packカスタムノードの「Load Image List From Dir(Inspire)」を利用して連番ファイルを読み込みます。

    ② ノイズ除去として、1x_JPEGDestroyerV2を利用し、アップスケールモデルに4x_NMKD-Superscale-SP_178000_Gを利用します。※ AI生成動画なので、JPEGは関係ないように思いますが、意外に高画質化に繋がったりします。多くのJPEG画像を学習する事で、ノイズも学んでいるようですね

    ③ 4xモデルを利用すると強制的に4倍になり大きすぎるので、半分にリサイズ(結果として2倍)します。

    ④ 結果を保存します

    画像
    連番ファイルを処理するワークフロー

    一枚あたり数秒(ryzen7 5700x + GTX 1660ti)ですが、180枚処理するとそれなりに時間が必要です

    ffmpegコマンドで動画に戻す

    ComfyUIの保存ノードでprefixの設定をしていなければ次のファイル名の連番で保存されると思います。

    画像
    ComyUIの出力

    ffmpegコマンドを利用して、連番画像を動画にします。ポイントは、

    • ファイル名は「ComfyUI_%05d_.png」:ゼロ埋め5桁

    • 出力フォーマットはh264形式で15Mbps

    • 必要であれば-pix_fmtで最も一般的なyuv420p(色空間フォーマット)を指定

    • 非圧縮にしたい場合はhuffyuv形式もおすすめです

    • 音声はないので、明示的に-anを指定

    ffmpeg -r 30 -i out/ComfyUI_%05d_.png -c:v h264 -b:v 15M -preset slow -pix_fmt yuv420p -an out01.mkv

    これで30fpsのout01.mkv動画ファイルが作成されます。

    フレーム補間生成で30fpsを60fpsにする

    Windowsは有料ですが、Linuxの場合は無料で利用する事ができます。

    ※ 他の選択肢として、AIモデルのフレーム生成ができるNMKD Stable Diffusion GUIの作者のFlowframesもあります。

    画像
    Flowframes

    SVPを利用する場合は、SVPを起動してTranscodingタブで(画面下部のアイコンをクリック)ファイルとプロファイルを指定して、Startするだけです。

    画像
    動画ファイルをドラッグ&ドロップ

    リアルタイム変換する必要はないので、プロファイルはすべてMAX(最高画質)にしておきます。

    画像

    まとめ

    映画のような長篇動画には利用できませんが、数秒のショート動画であれば、画像に合わせてAIモデルを自由に最適化できる利点があるため、有料の動画アップスケーラーよりも綺麗になります。

    また、ローカルPCを利用する利点として、個人情報や法律が許す範囲内での著作物の利用も可能になります。※ オンラインAIサービスではアップロード行為:つまり企業へデータを委ねる行為が必要になるので基本的に御法度です

    以下、関連する記事の【PR】です。


     
     
    3Dアート作品や3Dモデルデータも扱っています。最近は専らAIを利用した作品が多いです。 ※ BOOTHにて各種販売も行なっております。 https://lit.link/catappart3d

    あなたへのおすすめ