【CodeFormerの使い方】3通りの方法

CodeFormerの使い方  3通りの方法
目次

CodeFormerとは?

顔の復元・補完・高画質化に特化したAIツールです。
主に次のような用途に向いています

  • ぼやけた顔写真を鮮明にしたい
  • AI生成画像の崩れた顔(目・口・鼻)を修正したい
  • ノイズが多い古い写真の顔を補完したい

CodeFormerの使用環境

CodeFormerやReal-ESRGAN、GFPGANのようなツールは、一般に以下のような環境を前提としています。

  • Python(3.8~3.10あたり)
  • PyTorch(+CUDAドライバ:NVIDIAのGPUがあれば)
  • Git
  • LinuxまたはLinux系OS(Ubuntuなど)での動作

しかし、これらの環境が無くても使用できる方法があります。
今回は、上記の環境(ローカル)以外で使用できる方法を含めた、3通りの使用方法について、解説していきます。

使い方:3通りの方法

1⃣【手軽】ブラウザで試す(ローカル不要)

Hugging Faceのデモページ

Hugging Face CodeFormer ページはこちら

  1. ページを開くと、シンプルな操作画面が出てくる
  2. 画像をアップロードする(自分の写真や試したい画像)
  3. 「Submit(送信)」ボタンを押す
  4. 数秒〜1分くらい待つと、修復された顔画像が出てくる!
  5. 完了したらダウンロード

オプションで「Fidelity(忠実度)」スライダーを調整
低め:より綺麗に整形
高め:元の顔に忠実

注意事項

  • 待ち時間があるかも(人気なので並ぶことがある)
  • アップロードする画像サイズは小さめ(できれば512px以内)がスムーズ
  • あくまで「デモ版」だから、商用利用はNG(正式に使いたいならローカルインストールかライセンス確認)

もうちょっと高機能版を使いたい場合や、自分のPCでCodeFormer動かしたい場合は2へ!

2⃣ 【やや中級者向け】Google Colabで使う(ブラウザ+GPU)

Step.1 Google Colabにアクセス

まず、Googleアカウントがあれば誰でも使える「Google Colab」にアクセスします。
Google Colabはこちら

Step.2 新しいノートブックを作成

Colabを開いたら、

  • 「ファイル」>「ドライブの新しいノートブック」 をクリックして、新しいページを開きます。
「ファイル」>「ノートブックを新規作成」

Step.3 GPUを有効にする(これ超重要!)

CodeFormerは重いので、GPUを使う設定にしておきましょう!

「ランタイムのタイプを変更」を選択
  1. メニューから「ランタイム」>「ランタイムのタイプを変更」を選択
  2. 「ハードウェアアクセラレータ」で「GPU」を選んで「保存」

これで、GPUが使える状態になりました!

Step.4 CodeFormerをColabにインストール・準備

コードは、一つのコードに対して一つのセルを使用します。
+コードで、セルを追加して、コードを書きましょう。

「インストールのためのコード」

① 必要なライブラリとCodeFormerをインストール

次のコードを、Colabのセルにコピペして実行していきます!

# GitからCodeFormerをダウンロード
!git clone https://github.com/sczhou/CodeFormer.git
%cd CodeFormer

# 必要なパッケージをインストール
!pip install -r requirements.txt

Ctrl+Vでペースト出来ます。

セルにペーストして実行

実行はセルの「▶️ボタン」を押します。

② CodeFormerの事前学習モデルをダウンロード

新しいセルを追加して、②の「事前学習モデルをダウンロードするコード」を貼り付けて、また実行します。

# weights(重みファイル)をダウンロード
!mkdir weights
!wget -P weights https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/codeformer.pth

※これが「AIが学んだ知識データ」だと思ってください!

「事前学習モデルをダウンロードするコード」を貼り付け

Step.5 画像をアップロードする

Colabに自分の画像をアップロードして、修復させます。

from google.colab import files

uploaded = files.upload()  # ここでファイル選択画面が出ます

実行すると、自分のPCからファイル選択できるので、顔画像などを選びます。

Step.6 CodeFormerで画像を修復する

次に、アップロードした画像を修復するコードです

import os
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'
model = CodeFormer(dim_embd=512, codebook_size=1024, n_head=8, n_layers=9, connect_list=['32', '64', '128', '256']).to(device)
ckpt_path = 'weights/codeformer.pth'
model.load_state_dict(torch.load(ckpt_path)['params_ema'])
model.eval()

# 画像の読み込み
input_image_path = list(uploaded.keys())[0]
input_image = Image.open(input_image_path).convert('RGB')
input_tensor = to_tensor(input_image).unsqueeze(0).to(device)

# 推論
with torch.no_grad():
    output = model(input_tensor, w=0.7)[0]  # wの値は0.0〜1.0で調整できる(整形度合い)

# 保存
output_image = to_pil_image(output.squeeze(0).cpu().clamp(0, 1))
output_image.save('output.png')

# 表示
output_image.show()

これで、アップロードした顔画像が補完・修復された状態で出てきます!

Step7 完成した画像をダウンロードする

最後に、出力画像(output.png)をダウンロードして保存できます!

files.download('output.png')

※無料でGPUが使えるのが魅力!重い画像も快適処理。

「CodeFormerを動かす為のまとめノートブック」を作る手順

同じ操作を繰り返したい場合は、まとめノートブックを作成しておくと実行ボタンのみを押すだけで、簡単に同じ操作を繰り返す事が出来ます。
作成方法は以下の通りです。

【STEP 1】新しいGoogle Colabノートブックを開こう!

まずは、

  • Google Colab にアクセス
  • 画面左上の「ファイル > 新しいノートブック」をクリック

すると、新しい空っぽのノートブックが開きます。
(名前は後でつければOKです)

順番にセルを作っていきましょう!

【STEP 2】最初のセルに書くコード

まずは「CodeFormerのソースコードをGitHubからダウンロード」してきます。

ノートブックの一番上のセルに、次のコードをコピペしてください

# CodeFormerをクローン
!git clone https://github.com/sczhou/CodeFormer.git

# CodeFormerフォルダに移動
%cd CodeFormer

# 必要なライブラリをインストール
!pip install -r requirements.txt

# さらに必要な依存ライブラリもインストール
!pip install -q basicsr facexlib gfpgan
!pip install -q -U openmim
!mim install -q mmcv-full

左側の「▶️ボタン(セルを実行)」を押してください!

CodeFormerのソースコードをGitHubからダウンロード

【STEP 3】事前学習モデル(重みファイル)をダウンロードするセル

次は、CodeFormerの学習済みモデルcodeformer.pth)をダウンロードするコードを書きます。

新しいセルを追加して、次をコピペしてください

# 重みファイルを保存するフォルダを作成
!mkdir -p weights

# CodeFormerの学習済みモデルをダウンロード
!wget -P weights https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/codeformer.pth
【ポイント】
  • weights というフォルダを作って、そこに保存します。
  • この「重み」がないと、顔修復ができないので必須です!
【やること】
  1. 新しいセルを追加して
  2. 上のコードを貼り付けて
  3. 「▶️」ボタンで実行!
事前学習モデル(重みファイル)をダウンロードするセル

ダウンロードする「学習済みモデル(codeformer.pth)」のサイズがけっこう大きい(数百MB以上ある)為、時間が掛かる場合があります。ColabのサーバーとGitHubの通信速度はそのときの回線状況に左右されます。

【目安時間】
  • 早いとき ➔ 10秒〜30秒くらい
  • 遅いとき ➔ 数分かかることもある

なので、のんびり待っていればOKです
(途中でエラーが出なければ問題なし!)

【もし途中でエラーになったら?】

もし仮にダウンロード中にエラーが出ても、
もう一度「セルの▶️ボタンを押して再実行」すれば大丈夫です!

【STEP 4】画像をアップロードするセルを作ります!

Colab上に、CodeFormerで直したい自分の画像ファイルをアップロードする仕組みを作りましょう!
次のコードを新しいセルにコピペしてください

from google.colab import files

# ファイルアップロード
uploaded = files.upload()
  1. 上のコードを貼り付けて
  2. ▶️ボタンを押します

すると、「ファイルを選んでください」というウィンドウが出るので、
手元にある顔画像ファイルを選んでアップロードしてみてください

【STEP 5】CodeFormerで画像補正を実行するセル

次のコードを、新しいセルに貼り付けてください

# 推論に必要なモジュールをインポート
import torch
from torchvision.utils import save_image
from basicsr.archs.codeformer_arch import CodeFormer
from torchvision import transforms
from PIL import Image
import os

# CodeFormerモデルの準備
net = CodeFormer(dim_embd=512, codebook_size=1024, n_heads=8, n_layers=9, connect_list=["32", "64", "128", "256"])
ckpt_path = 'weights/codeformer.pth'
net.load_state_dict(torch.load(ckpt_path)['params_ema'])
net = net.eval().cuda()

# アップロードしたファイル名を取得
filename = list(uploaded.keys())[0]

# 画像の読み込みと前処理
img = Image.open(filename).convert("RGB")
transform = transforms.Compose([
    transforms.Resize((512, 512)),
    transforms.ToTensor()
])
img_input = transform(img).unsqueeze(0).cuda()

# 顔補正を実行
with torch.no_grad():
    output = net(img_input, w=0.7, adain=True)[0]
    output = (output.clamp(-1, 1) + 1) / 2

# 結果を保存
save_image(output, 'restored_image.png')

# 画像を表示
from IPython.display import Image as IPImage, display
display(IPImage('restored_image.png'))

CodeFormerモデルをロードしてアップロードした画像を読み込んで顔をきれいに復元(補正)して結果を表示&保存する

【注意点】

保存されたファイル名は restored_image.png になります!
最初にアップロードした画像ファイル名が自動で使われます。

このようなエラーが出た場合
ModuleNotFoundError: No module named 'basicsr'
エラー内容

次のコマンドを新しいセルにコピペして、実行してください

!pip install basicsr

これでbasicsrがインストールされます!
(この作業は、Colabを新しく開いたときは毎回やる必要があります)インストールが終了したら、一度画面左上のランタイムのタブをクリックして、セッションを再起動をして下さい。

このようなエラーが出た場合

ModuleNotFoundError: No module named 'torchvision.transforms.functional_tensor'

これは、今インストールされてる「torchvision」のバージョンが低すぎて、必要な機能がない場合のエラーです。

次のコマンドを新しいセルにコピペして、実行してください

!pip install torchvision --upgrade

これで、最新の torchvision にアップデートできます。

3⃣【上級者向け】ローカルPCに導入して使う

前提条件(以下の環境が整っていること)

  • Python(推奨:3.8〜3.10)
  • Git(コードをクローンするため)
  • NVIDIA製GPU + CUDA環境(GPUで高速処理する場合)

手順(ざっくりとした流れ)※詳細は別ページにて解説しています。最後にリンクがあります。

  1. CodeFormerのソースコードをGitHubから取得
git clone https://github.com/sczhou/CodeFormer.git
cd CodeFormer

2.必要なPythonライブラリをまとめてインストール

pip install -r requirements.txt

このコマンドは、requirements.txt に書かれている依存ライブラリ(例:torch, opencv-pythonなど)を一括でインストールします。

について,
以下の記事で詳しく解説していますをご覧ください。

  1. 事前学習済みモデル(CodeFormer.pth)をダウンロードして、所定の場所に配置

GitHubの公式リポジトリの「README」にあるURLから、weights フォルダに保存します。

例(Linux/macOSの場合)

mkdir -p weights/CodeFormer
mv CodeFormer.pth weights/CodeFormer/

実行!画像を指定して処理を開始

例:

python inference_codeformer.py --w 0.7 --input_path inputs/test.jpg --output_path results/

--w パラメータは「どれくらいAI補正するか(0〜1)」を指定します。0に近いと原画寄り、1に近いと修正が強くなります。
出力結果は results/ フォルダに保存されます。
GPU環境があれば高速ですが、CPUでも動作は可能です(ただし時間がかかります)。

おすすめ設定とコツ

パラメータ説明おすすめ値
w補完の強さ(0〜1)0.5〜0.7くらいが自然
画像サイズ小さすぎると補完しきれない顔が100px以上推奨

CodeFormerをローカルで使うためのPC環境

1. 【OS環境】

  • 対応OS
    • Windows 10 / 11
    • macOS(Intel or Apple Silicon)
    • Linux(Ubuntu推奨)

※ただし、GPU処理(高速動作)したい場合はWindows or Linuxを強く推奨。


2. 【Python・CUDA環境】

項目内容
Python3.8 〜 3.10(Python 3.11は非推奨)
CUDA Toolkit11.3 〜 11.7(GPUを使う場合)
PyTorchCUDA対応版をインストール(後述)
GitGitHubからコードを取得するために必要

3. 【PCスペック】

スペック項目最低要件推奨要件
CPUIntel Core i5 / AMD Ryzen 5 以上Core i7 / Ryzen 7 以上
メモリ(RAM)8GB 以上16GB 以上(重い画像処理のため)
GPU(NVIDIA製)GeForce GTX 1060 以上(VRAM 6GB〜)RTX 3060 / 3070 / 4070(VRAM 8GB〜)
ストレージSSD推奨(数GBのモデルファイルを扱う)SSD(空き容量:10GB以上)

GPUはCUDA対応のNVIDIA製が必須です。AMDやIntel GPUは非対応。

4. 【その他の条件】

  • Python環境は仮想環境(venv)で構築するのがおすすめ
  • Pythonライブラリの依存関係を pip install -r requirements.txt で管理
  • インターネット接続(初回はモデルファイルなどをダウンロードするため)

GPUがないとどうなる?

  • CPUでも動作はしますが「1枚の画像処理に数分〜十数分かかる」こともあります。
  • GPUがあると「数秒〜十数秒で処理完了」なので、作業効率が段違いです。

どんな画像に向いてる?

イラストよりは「写真風」向き(リアル寄りの顔)
AI画像で顔が「崩れがち」なときの補修に最適
特に「顔だけ浮いてる画像」や「古い写真」が得意分野!

顔だけじゃないの?

CodeFormerは 全体の画像ではなく「顔部分のみ」に特化 しています。
顔以外の補完は別のツール(例:Real-ESRGANなど)と組み合わせるのがおすすめです。

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