はじめに
Kling AIなどの動画生成AIで720p動画を作った後、「もう少し高解像度にしたい」と思ったことはないでしょうか。
ComfyUIのテンプレートライブラリで動画アップスケール用のワークフローを探すと、TopazやFLUX Video Upscaleなど、いずれもクレジット課金が必要な有料APIノードばかりでした。ローカルで完結する無料のワークフローは見当たらず、テンプレート検索では実質1件(Topaz)しかヒットしません。
そこで、静止画アップスケールの定番モデルであるRealESRGANをComfyUIの標準ノードで動画に流用し、RTX5080環境で完全無料・ローカル完結のアップスケールワークフローを構築しました。本記事ではその手順と、実際にハマったトラブルシューティングをまとめます。
環境
- GPU: RTX5080
- OS: Linux(Ubuntu系)
- ComfyUI(最新版)
- ComfyUI-VideoHelperSuite(動画入出力用カスタムノード)
全体構成
無料で完結させるポイントは、静止画用のRealESRGANモデルを、動画のフレーム列にそのまま適用することです。ComfyUIは動画を内部的に連番フレームとして扱えるため、静止画アップスケールノードがそのまま流用できます。
手順
1. RealESRGANモデルをダウンロード
公式リポジトリから実写向けモデルをダウンロードします。アニメ特化版(RealESRGAN_x4plus_anime_6B.pth)は実写だと質感が崩れるため、実写素材には汎用モデルを使います。
curl -L -o RealESRGAN_x4plus.pth https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth
ダウンロードしたファイル(約64MB)は以下に配置します。
ComfyUI/models/upscale_models/RealESRGAN_x4plus.pth
2. ComfyUI-VideoHelperSuiteを導入
ComfyUI ManagerからVideoHelperSuiteを検索してインストールします。動画の読み込み(Load Video)と書き出し(Video Combine)を担当します。
3. ワークフローを組む
ノード構成は以下の通りです。
- Load Video (Upload): 元動画を読み込む
-
Load Upscale Model:
RealESRGAN_x4plus.pthを選択 - Upscale Image (using Model): RealESRGANで4倍に拡大
-
Upscale Image(通常リサイズ、
ImageScale): 720p→4倍だと2560×1440になるため、最終的に1920×1080へリサイズ(upscale_method: lanczos) - Video Combine: フレームを動画として書き出し
4倍でいったん大きく復元してから縮小する方が、いきなり目的解像度に合わせるよりディテールが綺麗に残ります。
4. Video Combineの設定
| 項目 | 設定値 | 理由 |
|---|---|---|
| frame_rate | 元動画と同じ値(例:24) | ズレると再生速度が変わる |
| format | video/h264-mp4 | h265は再生できない環境が多い |
| pix_fmt | yuv420p | 10bit(yuv420p10le)は再生できない環境がある |
| crf | 18〜20 | 数値が低いほど高画質(18はほぼロスレス) |
元動画のfps・解像度・コーデックはffprobeで確認できます。
ffprobe -v error -select_streams v:0 -show_entries stream=r_frame_rate,width,height,codec_name -of default=noprint_wrappers=1 元動画.mp4
ハマったポイント
GStreamerのプラグインが見つからない
動画の読み込みやサムネイル生成でGStreamer関連のエラーが出る場合、以下のパッケージ不足が原因であることが多いです。
sudo apt update
sudo apt install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
Load Videoで「could not be loaded with cv」
video欄が空のまま実行するとこのエラーになります。ノードのvideo欄から実際に動画ファイルをアップロード/選択する操作を忘れずに行う必要があります。
Video Combineで「Permission denied: temp/metadata.txt」
ComfyUI/tempフォルダの権限問題です。
sudo chown -R $USER:$USER ~/www/ComfyUI/temp
chmod -R 755 ~/www/ComfyUI/temp
出力したh265が再生できない
formatのドロップダウンにvideo/h264-mp4が出ない場合、ComfyUIが参照しているffmpegにlibx264が含まれていない可能性があります。
ffmpeg -encoders | grep 264
何も出ない場合はffmpegの入れ直しが必要です。libx264が入っているのに選択肢に出ない場合は、ComfyUIの再起動で解消することがあります(VideoHelperSuiteは起動時に対応コーデック一覧を読み込むため)。
音声が消える
RealESRGANでのアップスケール処理は映像(IMAGE)にしか関与しないため、Load Videoのaudio出力をVideo Combineのaudio入力に明示的に接続する必要があります。ここを繋ぎ忘れると、映像だけの無音動画になります。
まとめ
- ComfyUIのテンプレートで見つかる動画アップスケールはほぼ有料APIノードのみ
- 静止画用のRealESRGANモデル+標準ノードの組み合わせで、動画も無料・ローカルでアップスケール可能
- つまずきポイントはGStreamer・パーミッション・コーデック・音声配線の4箇所
RTX5080のようなある程度のVRAMがあれば、720p→1080p程度のアップスケールは実用的な速度で処理できました。有料APIに課金する前に、まずこの構成を試してみる価値はあると思います。