画像・動画生成

RTX 5090で古い映像を復元する:SwiftVRローカル導入ガイド

SwiftVRは新しい動画を生成するモデルではなく、低画質映像を復元するモデルです。

昔撮影した480p映像を大きな画面で見直すなら、SwiftVRは4倍拡大と動画復元を試せるローカルモデルです。制作者はRTX 5090でBF161・因果チャンクを使い、1080pで約26 FPS2と報告していますが、すべての入力ファイルの完了時間を保証する数字ではありません。導入、短い区間での試行、保存ファイルの確認、全体処理時間の記録を通して、自分の映像に合う設定を判断します。

実行条件と要点
  • SwiftVRはWan2.2-TI2V-5Bを基盤とする動画復元モデルで、テキストから新しい場面を作る用途とは異なります。
  • 制作者はRTX 5090でBF16、標準のPyTorch SDPA、因果チャンクを使い、1080pで約26 FPSと報告しています。
  • まず短い入力で復元フレームとMP4保存を確認し、その後同じ設定でファイル全体の実時間を測ります。

復元する映像と成功基準を先に決めます

古い480pの旅行映像を大画面で見直す例を考えましょう。SwiftVRの例では`upscale=4`を使い、出力寸法を4倍にします。まず入力の縦横比と画素数を確認し、結果が実際の画面や編集規格に合うか見ます。目的は場面を描き直すことではなく、元映像にあった輪郭や質感を復元することです。顔の形が保たれるか、草や建物の境界がにじみにくくなるか、動く物体がフレーム3間で急に揺れないかを先に決めておけば、「鮮明に見える」だけで動画全体を評価せずに済みます。

モデルカードの名称は「Real-Time One-Step Generative Video Restoration」です。2026年6月に公開され、Wan2.2-TI2V-5Bを基盤とします。名称に「Generative」とあっても、この手順はプロンプトから新しい動画を作るのではなく、低画質の入力を復元します。元映像がない場合や場面の内容を変えたい場合は、別の動画生成モデルを選びます。

入力映像のフレームレート、解像度、長さも記録します。比較時にプレーヤーが片方だけ自動で拡大したりフレームを飛ばしたりすると、見た差がモデルの結果だけとは限りません。同じ区間を同じ表示サイズにし、静止フレーム数枚と動きの両方を確認すれば、輪郭の保持と時間方向の安定性を分けて評価できます。

道路の映像が映るモニターと、その横のデスクトップPC
復元フレームでは、鮮明さだけでなく元の道路シーンの輪郭が保たれているかも確認します。

RTX 5090の公開結果はどの条件で測定されたのでしょうか

SwiftVRの制作者はRTX 5090 1基で1080p約26 FPSと報告しています。条件はBF16、標準のPyTorch4 SDPA経路、因果チャンクで、ハードウェア別の再学習やカーネル交換は不要とモデルカードに記載されています。この値はフレーム処理率であり、「30秒の動画が何秒で終わるか」を保証しません。入力読み込み、動画デコード5、チャンクバッファリング、出力エンコードと保存にも時間がかかります。

別のモデルカードの表は、H100 1基で2560×1440、因果ストリーミング、24フレームの条件において平均0.766秒、31.32 FPS、ピークメモリ38.01GBを示します。これはRTX 5090の結果ではありません。同じカードにはH100で4K約14 FPSという別の値もあります。GPU6と解像度が異なるため、QHDや4Kの処理速度をRTX 5090に当てはめることはできません。

LightX2Vは別の実行環境でSwiftVRをサポートします。リポジトリではH100 1基でリクエストが1.91倍高速化し、ピークGPUメモリが65.71%減ったと報告しています。比較対象もH100です。この倍率をRTX 5090の値に掛けると未測定の数字になります。まず公式SwiftVR経路で基準を作り、LightX2Vに切り替える場合は同じRTX 5090、同じ入力、同じ出力解像度で再測定してください。

機材や解像度が異なる公開結果を、そのまま順位表として比較することはできません。
公開結果GPUと設定読み取れる範囲
約26 FPS、1080pRTX 5090、BF16、標準SDPA、因果チャンクモデルカードにあるコンシューマーGPUの報告値
31.32 FPS、QHD、24フレームH100 1基、因果ストリーミング別条件のH100ベンチマーク
約14 FPS、4KH100 1基4KでのH100報告値
1.91倍、メモリ65.71%減LightX2VによるH100 1基の測定5090の性能推定に流用しない

機材や解像度が異なる公開結果を、そのまま順位表として比較することはできません。

約26 FPS、1080p

GPUと設定
RTX 5090、BF16、標準SDPA、因果チャンク
読み取れる範囲
モデルカードにあるコンシューマーGPUの報告値

31.32 FPS、QHD、24フレーム

GPUと設定
H100 1基、因果ストリーミング
読み取れる範囲
別条件のH100ベンチマーク

約14 FPS、4K

GPUと設定
H100 1基
読み取れる範囲
4KでのH100報告値

1.91倍、メモリ65.71%減

GPUと設定
LightX2VによるH100 1基の測定
読み取れる範囲
5090の性能推定に流用しない
自転車に乗る人が通り過ぎる場面を連続したフィルムフレームで表した画像
静止画1枚だけでなく、動きが続く複数フレームで復元結果を確認します。

公式手順で導入し、短い入力を最後まで保存します

SwiftVRの公式例にはPyTorch 2.10.0・torchvision 0.25.0のCUDA7 12.4ホイールを使うコマンドがありますが、その組み合わせをRTX 5090にそのまま推奨しません。Blackwell(sm_120)に合わせるには、公式PyTorch CUDA 12.8ホイールから同じバージョンを導入し、NVIDIAドライバーが対応していることを確認してください。CUDAホイールにはユーザー空間ランタイム8が含まれ、ローカルCUDA Toolkitの導入とは別です。モデルの重みと推論コードはApache-2.0で公開されています。

隔離した環境を作ってSwiftVRを導入し、`H-oliday/SwiftVR`のモデルIDから重みを取得します。チェックポイント9フォルダーにはReAEの重み、空プロンプト埋め込み、Diffusers形式のtransformer10ファイルが必要です。`torch.version.cuda`が12.8で、RTX 5090のcapabilityが`(12, 0)`か確認します。`no kernel image is available`や`sm_120 is not compatible`が出たら、まず現在のPythonが別環境のTorchを読み込んでいないか、導入したホイールがBlackwellに対応しているか調べます。モデル読み込み時にファイル不足が出た場合は、`--checkpoint`で指定したフォルダー直下に3種類の構成ファイルがあるか確認してください。

RTX 5090向けCUDA 12.8ホイールの導入と確認
git clone https://github.com/H-oliday/SwiftVR.git
cd SwiftVR
conda create -n swiftvr python=3.10 -y
conda activate swiftvr
python -m pip install torch==2.10.0 torchvision==0.25.0 --index-url https://download.pytorch.org/whl/cu128
python -m pip install -e .
python -c "import torch; print(torch.__version__, torch.version.cuda, torch.cuda.is_available()); print(torch.cuda.get_device_name(0), torch.cuda.get_device_capability(0)) if torch.cuda.is_available() else None"
huggingface-cli download H-oliday/SwiftVR --local-dir checkpoints/
短い動画を復元する
python scripts/inference.py \
  --input sample_short.mp4 \
  --output restored_short.mp4 \
  --checkpoint checkpoints/ \
  --upscale 4 \
  --clip-len 24 \
  --dtype bfloat16

復元フレームと完成ファイルを分けて確認します

短いテストが終わったら、元映像と結果を同じプレーヤーサイズで開き、決めておいた基準を確認します。人物の輪郭が変わったり背景に新しい模様が現れたりしても、鮮明に見えるだけで合格にしないでください。重要な映像では同じ時点のフレームを並べ、顔、文字、直線など識別しやすい部分を比べます。生成復元は細部をもっともらしく補うことがあるため、新しい質感を事実の復元と断定できません。

`clip_len`は時間方向にまとめて処理するフレーム数で、リポジトリの例は24です。値を変えるとメモリ使用量やチャンク境界も変わるため、最初から複数の設定を同時に変えないでください。まず既定値で動画が最後まで保存されることを確認し、その後チャンク長だけを変更します。結果が空(`None`など)だったり末尾が欠けたりした場合は、ログとファイル長を見て処理エラーや入力末尾バッファの読み込みを確認します。

FPSは処理中にフレームを計算する速さを示しますが、起動や最終ファイルのエンコード・保存を含む合計時間ではありません。30秒の入力が30秒で終わるという意味でもありません。入力の長さ、開始・終了時刻、GPU、出力解像度、`clip_len`、精度、FPSを記録すれば再現できます。

海岸の映像の画質を左右に並べて比較する画像
同じ海岸の輪郭や細かな質感を比べると、鮮明さの変化と新たに作られた質感を見分けやすくなります。

5090の数値を自分の映像の目安にできるのはどんな場合ですか

RTX 5090で1080p復元をしたい場合、制作者の約26 FPSは実行可能性を考える出発点になります。ただし自分のファイルでも同じ速度になるとは限らないため、短い区間の成功後にファイル全体を処理して完了時間を測ります。長さ、コーデック、保存先、前処理によって、FPSが似ていても全体時間は変わります。

RTX 5090以外のGPUでは、H100の31 FPSや4Kの値をそのまま当てはめないでください。復元では出力解像度が上がるほど、フレームごとの画素処理が増えます。先に目標サイズを決め、そのサイズで完了した実例、できれば自分の機材での試行を基準にします。実行できても遅すぎる場合は、購入前に短い区間でFPSと全体時間を分けて測り、解像度やチャンク長を下げても目的を満たすか確かめます。

新しい場面、人物の動き、カメラ移動を作りたい場合、SwiftVRの用途ではありません。このガイドの結論は「RTX 5090ならあらゆる動画AIが使える」ではなく、復元という特定の作業について制作者が1080pの数値を公開し、自分の映像で確かめられるということです。短い試行で必要な細部が保たれ、全体処理時間も予定に合う場合に限って、既存映像を一括復元してください。

モデルと実行手順の原文資料

インストールとモデルの利用条件は以下の原文で確認できます。

用語の注釈

  1. BF16 — モデルの数値を保存・計算する16ビット浮動小数点形式です。利用可否はハードウェアと実行環境によります。

    本文に戻る
  2. FPS — 1秒あたりのフレーム数です。動画の時間方向の刻みを示し、生成速度や画質そのものとは異なります。

    本文に戻る
  3. フレーム — 動画を構成する1枚の画像です。フレームレートとフレーム解像度は別の属性です。

    本文に戻る
  4. PyTorch — AIモデルを作成・実行するソフトウェアフレームワークです。モデルと合わせて、対応するPyTorchの版やハードウェアも確認します。

    本文に戻る
  5. デコード — LLMでは入力処理後に出力トークンを生成する段階です。VAEやオーディオコーデックでは、圧縮表現や符号化データから元の形式を復元する処理を指すことがあります。

    本文に戻る
  6. GPU — 多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。

    本文に戻る
  7. CUDA — NVIDIA GPUで汎用計算を行うソフトウェア基盤です。CUDA向けのプログラムが他のGPUでそのまま動くとは限りません。

    本文に戻る
  8. ランタイム — プログラムの実行時に必要な機能を提供するソフトウェア環境です。ローカルAIではモデル実行エンジンを指すこともあり、GPUランタイムライブラリと完成したサービングアプリは別の構成要素です。

    本文に戻る
  9. チェックポイント — 学習済みモデルの重みなどを保存したファイルです。同じモデル系列でも、版や用途によって異なるチェックポイントを使うことがあります。

    本文に戻る
  10. Transformer — 入力内の関係をAttentionを中心に計算するニューラルネットワーク構造です。言語のほか、画像・音声・動画モデルにも使われます。

    本文に戻る