見出し画像

【動画高画質化】アップスケール&フレーム補完で動画を高画質・滑らかにする方法|ComfyUI

今回の内容は、ComfyUIを使って、画質の粗い動画やフレームレートの低い動画に対し、アップスケールやフレーム補完を行い、より高画質で滑らかな映像へ整えていく方法をまとめた技術メモです。
今回は、以下の2パターンを例にしながら進めます。

  • 960×540 の動画を 3840×2160(4K)にアップスケール&フレーム補完

  • 1920×1080 の動画を 3840× 2160(4K)にアップスケール&フレーム補完

「動画がぼやけて見える」「動きがカクついて見える」「もう少し見栄えを良くしたい」といった場合でも、処理の組み合わせ次第で映像の印象を大きく改善できることがあります。この記事では、そうした改善をComfyUI上でどのように行うのかを、必要なモデルや関連ファイルの準備から順番に整理していきます。

本記事の内容は、検証・学習・創作用途を前提としています。実在人物の画像や音声を扱う場合は、権利やプライバシーに十分配慮したうえで活用してください。

1. この記事の前提環境

本記事は、Stability Matrix上にComfyUIを導入した環境を前提に解説しています。
同じ環境を用意したうえで解説通りに進めたい方は、まずはこちらのYouTube動画を参考にしてください。

それではまず、必要なモデルや関連ファイルの準備から進めていきます。

2. 必要モデルとカスタムノードのインストール

2.1. ComfyUI-VideoHelperSuiteのインストール

拡張機能をクリック

検索欄に「ComfyUI-VideoHelperSuite」を入力し、対象をインストール

「変更を適用」をクリック

2.2. ComfyUI-Frame-Interpolationのインストール

拡張をクリック

検索欄に「ComfyUI-Frame-Interpolation」と入力し、対象をインストール

ここでは「変更の適用」が表示されないかと思います。
一度StabilityMatrixごと終了させて再度起動させます。
起動時に必要ファイルのダウンロードが行われるため、多少時間がかかるかと思いますが、終わるまで待ちましょう。

2.3. RealESRGAN_x2plus.pthのインストール

https://github.com/xinntao/Real-ESRGAN/releases/tag/v0.2.1」にアクセスし、「RealESRGAN_x2plus.pth」をダウンロードします。

2.3. RealESRGAN_x4plus.pthのインストール

https://github.com/xinntao/Real-ESRGAN」にアクセスし、少し下にスクロールするとダウンロードリンクがありますので、そこから「RealESRGAN_x4plus.pth」をダウンロードします。

ダウンロードしたファイルはそれぞれ「D:\StabilityMatrix-win-x64\Data\Packages\ComfyUI\models\upscale_models」に配置します。
WebUIの画面をF5キーで更新し反映させます。

3. 実際に高画質化してみる

3.1. 960×540 の動画を 3840×2160(4K)にアップスケール&フレーム補完

空のワークフローを開きます。

任意の場所でダブルクリックしてノード検索メニューを表示し、検索欄に「load video」と入力します。

「Load Video (Upload)」を選択します。

ノード検索メニューを表示し、検索欄に「拡大モデルを読み込む」と入力します。

「拡大モデルを読み込む」を選択します。

ノード検索メニューを表示し、検索欄に「モデルを使用して画像を拡大」と入力します。

「モデルを使用して画像を拡大」を選択します。

ノード検索メニューを表示し、検索欄に「画像を拡大」と入力します。

「画像を拡大 (指定サイズ)」を選択します。

ノード検索メニューを表示し、検索欄に「RIFE」と入力します。

「RIFE VFI (recommend rife 47 and rife 49)」を選択します。

ノード検索メニューを表示し、検索欄に「Video Combine」と入力します。

「Video Combine」を選択します。

各ノードをこのように繋ぎます(若干ノードの位置を調整してます)。

「拡大モデルを読み込む」ノードのパラメータを「RealESRGAN_x4plus.pth」に変更します。

「Load Video (Upload)」ノードのパラメータのformatを「None」に変更します。

「Video Combine」ノードのパラメータの「frame_rate」にフレーム補完後のフレーム数に変更します。入力動画が15fpsの場合は、RIFE VFIノードのパラメータの「multiplier」に設定されている値の乗算値を設定します。例えば、入力動画が15fpsで「multiplier」が2の場合は、「frame_rate」には30を設定します。
※45fpsにしたい場合は「multiplier」に3を設定して、「frame_rate」に45を設定します。

続いて、「Video Combine」ノードのパラメータの「format」に「video/h264-mp4」を設定します。

続いて、「Video Combine」ノードのパラメータの「filename_prefix」に「AnimateDiff_%date:yyyyMMdd_HHmmss%」を設定します。
前回生成時のファイルが残っていると、上書きできずにキューが詰まってしまうため、生成される動画ファイルのファイル名に時分秒などを付与します。audioを繋がずに生成すれば重複することはないのですが、audioを繋ぐと、音声付きファイルのファイル名が被ってしまい、キューが詰まってしまいます。

入力動画を指定します。ここで指定する動画の解像度は960×540です。

実行すると、4倍の解像度の4K画像になり、フレーム補完されます。
結果を確認したい方は、こちらのYouTube動画を確認してください。

3.2. 1920×1080 の動画を 3840×2160(4K)にアップスケール&フレーム補完

「拡大モデルを読み込む」ノードのパラメータを「RealESRGAN_x2plus.pth」に変更します。

入力動画を指定します。ここで指定する動画の解像度は1920×1080です。
ここでは先程と同じ15fpsの動画を指定しています。

実行すると、2倍の解像度の4K画像になり、フレーム補完されます。
結果を確認したい方は、こちらのYouTube動画を確認してください。

上記で使用したワークフローは以下からダウンロードできます。

上記ファイルをWebUIの画面にドラッグすると読み込めます。

いいなと思ったら応援しよう!