AI動画でBGVを作る(6)|高画質化パイプラインの構築(アップスケール+補間)

AI動画でBGVを作る(4)|高画質化パイプラインの構築(アップスケール+補間) — AI動画, 高画質化, アップスケール AI動画

こんにちは、パレイド技術部です。

前回までの検証で、T2V・I2Vいずれも RTX4070環境で1280×720・3秒程度の生成が安定上限であることが分かりました。BGV素材として実用するには、生成後の高画質化処理が必須です。今回は、生成動画を4K/60fpsのBGV素材に仕上げるパイプラインを構築します。

高画質化の戦略

生成動画をBGV素材に仕上げるには、以下の処理が必要です。

  1. 色調補正: AI生成動画特有の明度・色味のドリフトを補正
  2. 空間解像度のアップスケール: 720p → 4K(4倍拡大)
  3. 時間解像度の補間: 24fps → 60fps
  4. ループ化: シームレスな繰り返し再生に対応

すべて無料ツールで完結します。使用するのは、自作の色補正スクリプト、Real-ESRGAN v0.3.0(Python版)、Flowframes、FFmpegの4つです。

ステップ0:色調・明度の均質化

Wan2.2などのAI生成動画では、始点から終点にかけて明度や赤みが徐々にドリフトする現象が起きます。アップスケール前にこれを補正しておかないと、歪んだ色を精細に焼き付けてしまいます。

自作の color_normalize.py で、最初のフレームを基準に全フレームの色調を揃えます。

  • 補正強度: デフォルト0.8で大抵うまくいく。強すぎる場合は0.5に下げる
  • 参照画像: 省略時は最初のフレームを基準にする。始点画像を明示指定することも可能

この前処理を挟むだけで、後段のアップスケール結果が目に見えて安定します。

Wan2.2で生成した夕焼けのビーチ。日没後をプロンプトで支持しても、明滅が激しい。

Wan2.2を含む動画生成モデルでは、フレーム間の一貫性が完全ではないため、時間経過とともに明度や色味がわずかにドリフトすることがあります。このままアップスケールすると、そのズレが強調されてしまうため、事前に色調を揃えておくと安定した結果になります。

ステップ1:Real-ESRGAN v0.3.0 で4倍アップスケール

アップスケールには Real-ESRGAN v0.3.0 の Python版を使用します。v0.3.0では inference_realesrgan_video.py が追加され、動画ファイルを直接入力できるようになりました。フレーム分解・再結合の手間が不要です。

モデルの選択

2つのモデルを試しました。

  • RealESRGAN_x4plus: 実写・風景向き。品質は高いが処理が重い
  • realesr-general-x4v3: v0.3.0で追加された軽量汎用モデル。ノイズ除去強度(-dn)を0〜1で調整できるのが特徴

夕焼けや海など自然風景のBGVには RealESRGAN_x4plus が適していました。まず軽く試したい場合は realesr-general-x4v3 が高速で便利です。

ノイズ除去強度の調整

realesr-general-x4v3 モデルでは -dn オプションでノイズ除去強度を指定できます。AI生成動画の場合、0.3〜0.5あたりから試すのがおすすめです。0だと生成時のノイズがそのまま残り、1だとディテールが潰れます。

アップスケール結果

720p(1280×720)を拡大し、4K(3840×2160)相当の解像度にアップスケールします。実際は大画面のTV表示など限定的な用途でない限り2倍程度で十分な精細さです。処理時間は81フレームで、GPU性能にもよりますが数分程度でした。

セットアップ時のハマりどころ

Real-ESRGAN v0.3.0 のPython版セットアップではいくつか既知の問題があります。

  • torchvision.transforms.functional_tensor が見つからない: basicsrdegradations.py を修正する必要がある
  • Number of processes must be at least 1: PyTorchがCPU版になっている。CUDA版に入れ替えが必要
  • No module named 'ffmpeg': pip install ffmpeg-python で解決

環境構築にやや手間がかかりますが、一度セットアップすれば安定して動きます。

アップスケール後。波や空の質感がクリア。

ステップ2:Flowframes でフレーム補間(24fps → 60fps)

フレーム補間には Flowframes を使用しました。GUIベースのツールで、RIFEモデルによる高品質な補間が可能です。

操作手順

  1. Flowframes を起動
  2. ステップ1の出力動画をドラッグ&ドロップ
  3. AIモデルに「RIFE」を選択
  4. 補間倍率を設定(2.5xで60fps)
  5. Output FPSに数値を直接入力(例: 60)
  6. 「Interpolate」をクリック

注意点

  • Output FPSは必ず数値で直接指定する。「Normal Speed」のままだと日本語環境でパースに失敗する
  • RIFE-NCNNモードにすればVulkanで動作するため、NVIDIA以外のGPUでも使える
  • 4K解像度の補間は1フレームあたり数秒かかる。81→約200フレーム(2.5x)で数分

ComfyUI内のRIFEノードで補間する方法もありますが、Flowframesの方が安定しており、補間倍率の自由度も高いためこちらを採用しました。

フレーム補完後のデータ。滑らかに動く

完成パイプライン

最終的に、今回確立したパイプラインは以下の通りです。

項目生成直後パイプライン適用後
解像度720p(1280×720)3926×2160(4K相当)
フレームレート24fps48(2x)-72(3x)fps
色調ドリフトあり均質化済み
主観品質素材レベルBGVとして実用可能

まとめ

  • 色補正 → 4倍アップスケール → 60fps補間 → ループ化 → H.265エンコードの5段パイプラインを構築した
  • すべて無料ツール(color_normalize.py / Real-ESRGAN v0.3.0 / Flowframes / FFmpeg)で完結
  • 720p/24fps → 約2880×1620/60fps への変換で、4K TVでのBGV再生に十分な品質が得られた
  • Real-ESRGAN v0.3.0のPython版は動画直接入力に対応しており、フレーム分解の手間が不要
  • 色補正を最初に入れることで、アップスケール後の品質が安定する

次回は、素材をつなぎ合わせて長尺のBGV映像作成にチャレンジします。

タイトルとURLをコピーしました