Adobe Stock向けの画像生成を進めていると、次第に「動画も扱ってみたい」と考えるようになりました。

画像生成のストックフォト申請記事では、無料で大量画像生成できるサイト・品質選別・Upscaylによる高解像度化までの流れを紹介しています。 無料動画生成のサイトもいずれまとめたいとは思いますが、まずは私以外にも困る人が多いと思うアップスケールに関して記事にしておきます。

なぜ動画のアップスケールが必要だったのか

Adobe Stockへの投稿を想定していたため、生成した動画の解像度が自分の想定する投稿条件を満たさないケースがありました。 画像生成についてはAIアップスケーラーで対応できていたのですが、動画は静止画と違い「連続するフレーム全体を高画質化する」必要があるため、同じ感覚では扱えません。

最初はDaVinci Resolveの編集画面から手動でアップスケールしていましたが、本数が増えるにつれて手作業では追いつかなくなってきました。 そこで「無料・無期限で使えて、なおかつ将来自動化できるツール」を軸に選定を進めることにしました。

この記事で書くこと

  • 動画アップスケールツールを比較検討した内容
  • 最終的にFFmpeg + Real-ESRGAN-ncnn-vulkanを選んだ理由
  • Windows環境への導入手順
  • 自動化パイプラインの設計とコード例

検討した動画アップスケールツールの比較

候補として挙がったのは主に以下のツールです。それぞれ無料かどうか、動画に直接対応しているか、自動化のしやすさという観点で比較しました。

比較したツール一覧

  • DaVinci Resolve(無料版):AIアップスケール機能「Super Scale」は有料のStudio版限定。無料版には搭載されていない
  • Upscayl:オープンソースで無料・無期限だが画像専用。動画を扱うには自分でフレーム分解・再結合が必要。画像のアップスケールで使用中
  • Video2X:動画に特化したオープンソースツール。無料だがCLI操作中心(GUIからも利用可能)で環境構築がやや複雑
  • QualityScaler:画像・動画両対応のAIアップスケーラー。GUIで扱いやすいが、今回の自動化構成には組み込みにくかった
  • Topaz Video AI:高品質な有料ソフト。現在はサブスクリプション型の料金体系が中心で、今回の「無料・無期限」という条件には合わない

FFmpeg + Real-ESRGAN-ncnn-vulkanを選んだ理由

最終的に選んだのは、FFmpegで動画をフレーム画像に分解し、Real-ESRGAN-ncnn-vulkanでアップスケールした上で、再びFFmpegで動画に再結合するという構成です。

単体のGUIソフトではなく複数ツールの組み合わせになりますが、私が比較した範囲では、今回の条件を最も満たしていたのがこの組み合わせでした。

  • 2026年8月時点では、無料・無期限で利用できる(買い切りでも継続課金でもない)
  • GPU(Vulkan対応)を使ったAIアップスケールで、CPUのみより高速に処理できる
  • コマンドラインから操作できるため、スクリプトによる自動化と相性が良い
  • 入力・出力フォルダを指定するだけのシンプルな仕組みで、バッチ処理に組み込みやすい

特に「スクリプトから自由に操作できる」という点が、後述する自動化パイプライン構築の決め手になりました。

導入手順:ダウンロードと配置

導入は大きく分けて2つのツールをダウンロードして配置するだけです。

1. FFmpegの入手

FFmpeg公式サイトのWindowsアイコンから、ビルド済みのZIPファイル(例:ffmpeg-release-essentials.zip)をダウンロードします。 トップページの緑色のボタンはソースコードのみのダウンロードなので、Windows向けにはビルド済みファイルの方を選ぶ点に注意してください。 展開後、binフォルダの中にffmpeg.exeffprobe.exeがあることを確認します。

少しわかりづらかったですが、2026年8月時点では下図リンクからダウンロードできました。Windowsボタンを押下し、下記リンクを選択。

FFmpegダウンロードサイト画面①

その後、GitHubページに遷移するので、そのサイトからダウンロードします。

FFmpegダウンロードサイト画面②

2. Real-ESRGAN-ncnn-vulkanの入手

Real-ESRGANのGitHub Releasesページから、ファイル名に「ncnn-vulkan」と「windows」が含まれるZIPファイルをダウンロードします。 通常の「ソースコード(ジップ)」はPythonのソースコードのみのため、実行ファイル版とは別物である点に注意が必要です。 展開するとrealesrgan-ncnn-vulkan.exemodelsフォルダが同じ階層に配置されています。こちらは下図のようにOSを選択すると即ダウンロードできました。

Real-ESRGANダウンロードサイト画面

導入時に確認したいポイント

  • フォルダ名が長いと後続のパス指定が煩雑になるため、短くリネームしておくと管理しやすい
  • 使用するGPUがVulkanに対応しているか確認する
  • ffmpegの配布形態には静的ビルド版と共有ライブラリ版があり、共有ライブラリ版はbinフォルダごと保持する必要がある

自動化パイプラインの設計

単発の変換だけであれば手動実行でも十分ですが、複数の動画を継続的に処理する運用を見据えて、以下の4ステップに分けたスクリプト構成にしました。

  1. 入力フォルダの動画を検出し、フレーム画像(連番PNG)に分解
  2. Real-ESRGANでフレーム画像をアップスケール
  3. アップスケール済みフレームを動画として再結合
  4. 命名規則に沿ってリネームし、出力フォルダへ移動。一時ファイルを削除

Windowsのバッチファイル(.bat)だけではJSON設定の読み込みやループ処理が書きにくいため、実処理はPowerShell(.ps1)で記述し、.batから呼び出す構成にしています。 入出力フォルダやツールのパスなどの設定はconfig.jsonに集約し、環境が変わっても設定ファイルの書き換えだけで対応できるようにしました。

{
  "paths": {
    "inputFolder": "D:\\Upscale\\01_Input",
    "processedFolder": "D:\\Upscale\\02_Processed",
    "outputFolder": "D:\\Upscale\\03_Output",
    "ffmpegExe": "C:\\Tools\\ffmpeg\\bin\\ffmpeg.exe",
    "realesrganExe": "C:\\Tools\\realesrgan\\realesrgan-ncnn-vulkan.exe"
  },
  "upscale": { "model": "realesrgan-x4plus", "scale": 4 },
  "rename": { "label": "video", "dateFormat": "yyyyMMdd", "sequenceDigits": 3 }
}

フレーム分解の中核部分は、PowerShellからFFmpegを呼び出す以下のような処理になります。

& $ffmpeg -y -i "$($video.FullName)" -fps_mode passthrough `
    (Join-Path $framesDir "frame_%08d.png")

処理が完了した元動画は、次回実行時に重複して処理対象とならないよう、自動的にprocessedFolderへ移動する仕組みも組み込みました。 出力ファイル名はvideo_20260809_001.mp4のように「ラベル+日付+連番」の形式とし、出力フォルダを毎回スキャンして当日の最大連番+1から採番することで、日付が変われば連番が自動的にリセットされるようにしています。

実際に短い動画で試した際のログは下図の通りです。

自動化パイプライン実行時のログ画面

以下のようにアップスケールされた動画が生成されます。

自動化パイプライン実行後の動画一覧

アップスケール前後の動画は下図のようになり、想定通りアップスケールされたことが分かります。

◆アップスケール前

Real-ESRGANでアップスケールする前の動画

◆アップスケール後

Real-ESRGANでアップスケールした後の動画

つまずいたポイントと解決策

実際に運用するまでにいくつかの落とし穴がありました。

  • PowerShellスクリプトの文字化け:日本語コメントを含むスクリプトをBOM無しのUTF-8で保存すると、Windows PowerShellが文字コードを誤認識し「閉じ括弧が見つからない」といった構文エラーになりました。UTF-8(BOM付き)で保存し直すことで解決しています。
  • ffmpegオプションの仕様変更:最新のFFmpeg(master)ビルドでは、フレームレート維持に使っていた-vsyncオプションが廃止されており、-fps_mode passthroughへの置き換えが必要でした。
  • 処理段階間の情報引き継ぎ漏れ:各ステップの結果をqueue.jsonで引き継ぐ設計にしていましたが、更新漏れがあると後続ステップが「対象ファイルなし」としてスキップしてしまうため、各ステップの最後に必ずキュー情報を再構築するようにしました。

まとめと今後の展望

今回の対応により、動画をフォルダに入れるだけでアップスケールから出力までを自動化できる仕組みが完成しました。 無料・無期限のツールの組み合わせであるため、継続的にストック動画を生成していく上でのコスト面の懸念もありません。

今後は、画像生成時と同様に申請絡み(動画の審査申請や審査結果の管理)の単純化、画面UIも画像生成と同じ画面に組み込んでいきたいと考えています。

本記事の内容は2026年8月時点のWindows環境を基準にしています。ソフトウェアのバージョンアップにより、ダウンロードページやコマンドの仕様が変わる可能性があります。

※商用利用(ストックフォト販売等)を行う際は、各AIモデルやアセットのライセンス規約を必ずご確認ください

今回のポイントまとめ

  • DaVinci ResolveのSuper Scaleは有料版限定。無料・無期限で使うならFFmpeg+Real-ESRGANの組み合わせが有力
  • スクリプトから操作できるツールを選ぶことで、自動化パイプラインへの組み込みがしやすくなる
  • 設定はJSONに集約し、環境依存の情報を1箇所にまとめておくとメンテナンスしやすい
  • ツールのバージョンアップによるオプション仕様変更には注意が必要

FAQ

Q. 動画のアップスケールを無料・無期限で行えるソフトはありますか?
はい。DaVinci ResolveのAIアップスケール機能(Super Scale)は有料のStudio版限定ですが、FFmpegとReal-ESRGAN-ncnn-vulkanを組み合わせれば、無料かつ無期限で動画のAIアップスケールが可能です。
Q. UpscaylやVideo2Xとの違いは何ですか?
Upscaylは画像専用ツールで、動画を扱うには自分でフレーム分解・再結合の工程を挟む必要があります。Video2Xは動画に特化したオープンソースツールで、GUIからも利用できます。
Q. アップスケール処理を自動化するメリットは何ですか?
フォルダに動画を入れるだけでフレーム分解・アップスケール・再結合・リネーム・出力までを自動実行できるため、手動での書き出し作業が不要になります。処理済みの元ファイルを別フォルダへ自動移動する仕組みも組み込むことで、再処理の重複も防げます。
次の記事 運用改善フェーズの記録(準備中)→