Google Colabでエラーが出てCodeFormerが使えない時の対処法

Google Colab エラー対処法

ImportError: /usr/local/lib/python3.11/dist-packages/torch/lib/libtorch_cuda.so: undefined symbol: ncclMemFree

PyTorch のインストールに関連するエラー

解決方法

  1. PyTorch と CUDA のバージョンを一致させる Google ColabでCUDAとPyTorchが互換性のあるバージョンを手動でインストールする必要があります。次のコマンドを実行して、正しいバージョンをインストールします。
!pip uninstall torch torchvision torchaudio -y
!pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2+cu118 -f https://download.pytorch.org/whl/torch_stable.html

このコマンドは、CUDA 11.8 に対応した PyTorch 2.0.1、torchvision 0.15.2、および torchaudio 2.0.2 をインストールします。

  1. ランタイムを再起動 インストールが完了したら、Google Colabのランタイムを再起動する必要があります。再起動後、もう一度コードを実行。

RuntimeError: Numpy is not available

Numpy がインストールされていない、もしくは適切に利用できない状態

このエラーを解決するためには、Numpy を手動でインストールする必要があります。

解決手順

  1. Numpy をインストールする まず、Numpy をインストールします。
!pip install numpy
  1. 再度実行する Numpy をインストールした後、もう一度顔補正コードを実行してみる。

もしエラーがまだ解消されない場合は、他にも依存関係が不足している可能性があるので、ランタイムの復旧を行ってみましょう。

目次

復旧手順

  1. メニューから「ランタイム」>「ランタイムの接続を解除して削除」 を押してください
    (これでColabの環境を初期状態に戻します)
  2. 新しいランタイムを割り当てる必要があります。
    • Colab画面の上の方にある▶️【接続】ボタン(または【再接続】【ランタイムを接続】)を押して、新しく接続
  3. リセット後、必須ライブラリのインストールをします
!pip install torch==2.0.1 torchvision==0.15.2
!pip install basicsr facexlib gfpgan
!pip install -U numpy

torchtorchvision は CodeFormer 推奨バージョンに固定
basicsrfacexlibgfpgan は補完モデルに必要
numpy は汎用依存ライブラリ

CodeFormer リポジトリのクローンと依存関係インストール

!git clone https://github.com/sczhou/CodeFormer.git
%cd CodeFormer
!pip install -r requirements.txt

ここで basicsr などが重複して入ることがありますが問題ありません。

学習済みモデル(重み)のダウンロード

!mkdir -p weights
!wget https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/codeformer.pth \
      -O weights/codeformer.pth

画像アップロード用セルの実行

from google.colab import files
uploaded = files.upload()

補正(推論)実行セルの実行

import torch
from basicsr.archs.codeformer_arch import CodeFormer
from torchvision.transforms.functional import to_tensor, to_pil_image
from PIL import Image

# モデルロード
device = 'cuda' if torch.cuda.is_available() else 'cpu'
net = CodeFormer(dim_embd=512, codebook_size=1024, n_heads=8, n_layers=9,
                connect_list=["32","64","128","256"]).to(device)
net.load_state_dict(torch.load('weights/codeformer.pth')['params_ema'])
net.eval()

# 画像読み込み
path = list(uploaded.keys())[0]
img = Image.open(path).convert("RGB")
inp = to_tensor(img).unsqueeze(0).to(device)

# 推論
with torch.no_grad():
    out = net(inp, w=0.7)[0]
img_restored = to_pil_image(out.cpu().clamp(0,1))

# 保存・表示
img_restored.save('restored_image.png')
display(img_restored)

出力ファイルのダウンロード(任意)

files.download('restored_image.png')

ポイント

  • import torchfrom basicsr... は「補正実行セル」にのみ含める
  • 依存ライブラリのインストールと重みファイルのダウンロードは、必ず「推論前」に完了させる
  • すべてのセルは上から順に実行してください

これでゼロからワンクリック版ノートブックと同じ流れが完成します。

なぜリセットが必要なのか?

  • もともとColabにはPyTorch 2.1系+CUDA 12.1の組み合わせが入っています
  • そこに違うバージョン(例えばCUDA 11.8向けとか)を無理にインストールすると、CUDAライブラリやNCCLライブラリが壊れます
  • 結果、undefined symbol: ncclMemFree など「ライブラリシンボルが見つからない」という致命的エラーになります
  • Colabでは、壊れた環境を元に戻すにはリセットしかないです。

Colab の無償枠で GPU 上限に達してしまったときの代替手段

ユニットの購入以外に試せる方法をまとめましたので、ご参考になさってください。

1. CPU モードで動かす

GPU がなくても CodeFormer は動きます。ただし処理が非常に遅くなるので、小さい画像(例:256×256px 以下)で試すか、処理中は気長に待つ必要があります。

  • ランタイムの「ハードウェア アクセラレータ」を「None(なし)」に切り替える
  • 推論セルの device = 'cuda' if torch.cuda.is_available() else 'cpu' 部分で自動的に CPU に切り替え
  • 512×512px だと数十秒~数分かかりますが、動作はします

2. Kaggle ノートブックを使う

Kaggle の無料ノートブックでも GPU(Tesla P100)が使えます。

  • Kaggle アカウント(無料)を作成
  • New Notebook → Settings → “Accelerator” で GPU を ON
  • Colab とほぼ同じ手順でライブラリをインストール/実行可能

3. Paperspace Gradient の無料枠

Paperspace の Community Notebook でも GPU(無料枠)が利用できます。

  • アカウント登録後に Community ノートブック作成
  • Tensorflow / PyTorch テンプレートが選べる
  • Colab ノートと同じセルを流用できます

4. ご自身の PC/ローカル環境で動かす

お手元に NVIDIA GPU(CUDA 対応)があれば、ローカルに PyTorch 環境を構築して動かすのが最も確実です。

  • Conda などで仮想環境を作成
  • 必要なライブラリを pip/mim でインストール
  • Colab と同じノートブックを Jupyter Lab で開いて実行

5. その他クラウドの無料トライアルを利用

  • Google Cloud Platform:無料クレジット(300 USD)をもらって Compute Engine を試せる
  • AWS:無料枠で一定期間 GPU マシンを使える場合あり
  • Microsoft Azure:無料クレジット+無料枠で試用可能

CPU モード:最も手軽。遅いが追加コストなし
Kaggle / Paperspace:ほぼ Colab と同じ感覚で使える無料 GPU
ローカル GPU:手元に GPU があれば一番安定
クラウド無料トライアル:短期的にまとまった GPU を使いたいとき

  • URLをコピーしました!
目次