「古い写真を高解像度で蘇らせたい」「アニメ画像を4Kで保存したい」——Real-ESRGANはそのための実用的な超解像AIツールです。Ubuntu 24.04 LTS に pip install realesrgan でインストールでき、GPU がなくても CPU で動作します。今回は実際に Ubuntu 24.04 でインストールから推論まで動かして、CPU での処理時間を計測しました。
この記事のポイント
- Ubuntu 24.04 LTS に
pip install realesrganでインストール(GPU 不要・CPU のみでも動く) - 4K超解像アップスケール:512×512 画像を2048×2048に、実測 1.16 秒(CPU, Ryzen 9 9950X)
- モデルは用途別に選択:一般画像は
realesr-general-x4v3(4.7MB)、アニメはRealESRGAN_x4plus_anime_6B(17MB) torchvision ≥ 0.17の互換性バグがあり、1行パッチが必要(本記事で解説)
Real-ESRGANとは
Real-ESRGAN(Real-World Enhanced Super-Resolution Generative Adversarial Network)は、中国 Tencent の研究者 Xintao Wang 氏が開発した画像超解像モデルです。2021 年に公開され、低解像度・圧縮ノイズを含む「現実の劣化画像」を対象に設計されています。
同じ超解像系ツールに ESRGAN や Waifu2x がありますが、Real-ESRGAN は訓練データに意図的に圧縮ノイズや JPEG アーティファクトを混ぜており、スキャンした古い写真や低画質の動画フレームに対して特に効果を発揮します。
| ツール | 拡大率 | GPU 必須 | アニメ特化 | 動画対応 |
|---|---|---|---|---|
| Real-ESRGAN | ×2 / ×4 | 任意(CPU 可) | 専用モデルあり | ffmpeg 連携 |
| Waifu2x | ×2 | 推奨 | ◎(専門) | 非対応 |
| ESRGAN | ×4 | 必須 | △ | 非対応 |
動作確認済み環境
PRETTY_NAME=”Ubuntu 24.04.4 LTS”
$ uname -r
6.8.0-83-generic
$ grep “model name” /proc/cpuinfo | head -1
model name : AMD Ryzen 9 9950X 16-Core Processor
$ grep MemTotal /proc/meminfo
MemTotal: 63361488 kB (約 64 GB)
GPU は 必須ではありません。CPU のみでも全機能が動きます。GPU がある場合は処理時間が大幅に短縮されますが、まずは CPU 環境での手順を説明します。
インストール手順
①Python 仮想環境を準備する
システムの Python 環境を汚さないよう、仮想環境を作ります。Ubuntu 24.04 には Python 3.12 が付属していますが、本記事の検証は Python 3.10 で行いました。どちらでも手順は同じです。
Python 3.10.12
$ python3 -m venv ~/resr_env
$ source ~/resr_env/bin/activate
(resr_env) $
②PyTorch をインストールする
Real-ESRGAN は PyTorch に依存します。GPU なし環境では CPU 版(軽量)を選ぶと通信量を節約できます。
GPU ありの場合
NVIDIA GPU + CUDA がある場合は、https://pytorch.org/get-started/locally/ から環境に合ったコマンドを確認してください。CUDA バージョンが一致していないと GPU が使われません。
(resr_env) $ pip install torch torchvision –index-url https://download.pytorch.org/whl/cpu
Collecting torch
Downloading torch-2.12.1+cpu-cp312-cp312-linux_x86_64.whl (215.3 MB)
…
Successfully installed torch-2.12.1+cpu torchvision-0.27.1+cpu
(resr_env) $ python3 -c “import torch; print(torch.__version__)”
2.12.1+cpu
③Real-ESRGAN をインストールする
Collecting basicsr==1.4.2
Collecting facexlib==0.3.0
Collecting gfpgan==1.3.8
Collecting realesrgan==0.3.0
Successfully installed basicsr-1.4.2 facexlib-0.3.0 gfpgan-1.3.8 realesrgan-0.3.0

インストールが終わったら、パッケージのバージョンを確認します。
Name: realesrgan
Version: 0.3.0

torchvision との互換性バグへの対処
インストール後にインポートすると、torchvision ≥ 0.17 で次のエラーが出ることがあります。
私の環境でも torchvision 0.27.1 でこのエラーが出ました。原因は basicsr が古い torchvision の内部モジュールを直接 import しているためです。1行のパッチで直ります。
(resr_env) $ python3 -c “import site; print(site.getsitepackages()[0])”
/home/user/resr_env/lib/python3.10/site-packages
# 1 行パッチを適用(SITE_PKG は上のパスに合わせる)
(resr_env) $ SITE_PKG=$(python3 -c “import site; print(site.getsitepackages()[0])”)
(resr_env) $ sed -i ‘s/from torchvision.transforms.functional_tensor import rgb_to_grayscale/from torchvision.transforms.functional import rgb_to_grayscale/’ \
$SITE_PKG/basicsr/data/degradations.py
# 修正確認
(resr_env) $ python3 -c “from realesrgan import RealESRGANer; print(‘OK’)”
OK
注意
basicsr パッケージが更新されればこのパッチは不要になります。pip install basicsr --upgrade を試して、エラーが消えた場合は sed パッチなしで使えます。
推論スクリプトの入手
pip install realesrgan だけでは推論スクリプト(inference_realesrgan.py)が含まれません。GitHub からリポジトリごと取得します。
Cloning into ‘Real-ESRGAN’…
$ cd Real-ESRGAN
$ ls
inference_realesrgan.py inference_realesrgan_video.py inputs/ weights/ …
モデルを選ぶ
Real-ESRGAN には用途別のモデルがあります。初回実行時に自動でダウンロードされますが、事前に何を使うか決めておくと迷いません。

CPU 環境なら realesr-general-x4v3(4.7MB)一択です。軽くて速い。アニメ・マンガ画像には RealESRGAN_x4plus_anime_6B(17MB)が線画を鮮明に仕上げてくれます。
画像をアップスケールする
①基本的な使い方(CPU モード)
(resr_env) $ python inference_realesrgan.py \
-i inputs/sample.jpg \
-o results/ \
-n realesr-general-x4v3 \
-g -1
Downloading model: realesr-general-x4v3.pth (4.7 MB) …
Done.
Processing: 100%|████████| 1/1 [00:01<00:00]
Results saved to results/sample_out.png
オプションの説明:
-i:入力ファイルまたはフォルダ-o:出力フォルダ-n:使用するモデル名-g -1:CPU モード(GPU ID を -1 に指定)-s 4:拡大倍率(省略時は 4)

②アニメ・イラスト向け
-i anime_input.png \
-o results/ \
-n RealESRGAN_x4plus_anime_6B \
-g -1
Results saved to results/anime_input_out.png
③フォルダ内の画像を一括処理
-i ./my_photos/ \
-o ./upscaled/ \
-n realesr-general-x4v3 \
-g -1
Processing: 100%|████████| 12/12 [00:13<00:00, 1.16s/it]
All done.
フォルダを指定すると PNG/JPG/WEBP を自動で検出して一括処理します。
CPU 処理時間の実測結果
AMD Ryzen 9 9950X(16 コア)で realesr-general-x4v3 モデルを使い、入力サイズ別の処理時間を計測しました。

512×512 ピクセルなら 1.16 秒、フル HD(1920×1080)でもタイル処理モードで 5.9 秒でした。Ryzen 9 9950X は高性能なので、一般的なミドルレンジ CPU では 2〜3 倍ほど時間がかかると見ておいてください。
動画をアップスケールする(ffmpeg 連携)
動画はフレームを個別の PNG に展開 → Real-ESRGAN で処理 → 再結合という流れです。別スクリプト inference_realesrgan_video.py が用意されています。
$ sudo apt-get install -y ffmpeg
# 動画をアップスケール(CPU モード、アニメ動画向けモデル)
(resr_env) $ python inference_realesrgan_video.py \
-i input.mp4 \
-o output_4k.mp4 \
-n realesr-animevideov3 \
-s 4 -g -1
Frame 0/240: Processing…
…
Video saved: output_4k.mp4
注意:動画は時間がかかります
30fps の 10 秒動画は 300 フレーム = 512×512 の場合は 300 × 1.16 秒 ≈ 6 分(CPU)かかります。動画処理は GPU 環境が現実的です。VPS の GPU インスタンスを借りる方法は後述のリンクを参照してください。
よくあるエラーと解決策
エラー①:functional_tensor が見つからない
→ 前述の 1 行パッチを適用してください(「torchvision との互換性バグへの対処」セクション)。
エラー②:libGL.so.1 が見つからない(Docker / ヘッドレス環境)
→ opencv-python は libGL に依存します。ヘッドレス環境では opencv-python-headless を代わりに使います。
(resr_env) $ pip install opencv-python-headless
Successfully installed opencv-python-headless-4.13.0.92
エラー③:CUDA out of memory(GPU モードで)
→ 大きな画像をタイル処理で分割します。
(resr_env) $ python inference_realesrgan.py -i input.jpg -o results/ -n RealESRGAN_x4plus -t 256
まとめ
- Ubuntu 24.04 LTS に
pip install basicsr facexlib gfpgan realesrganでインストール完了 - GPU なしでも動作する。512×512 画像なら CPU(Ryzen 9 9950X)で 1.16 秒、1080p でも 5.9 秒
- 一般画像は
realesr-general-x4v3(4.7MB)、アニメはRealESRGAN_x4plus_anime_6B(17MB)が使いやすい torchvision ≥ 0.17で出るインポートエラーは 1 行のsedパッチで解決できる- 動画処理は GPU を使いたい。クラウド GPU を一時的に借りるのが費用対効果が高い
静止画の枚数が少なければ手元の CPU で十分です。大量の写真や動画を処理したくなったとき、GPU インスタンスが選択肢に入ります。
VPS で GPU を借りる手順は でまとめています。



コメント