AIREITER

GFPGAN vs CodeFormer 臉部修復:設定與 API 比較

最近更新: 2026-09-01 01:48:33

臉部修復模型確實能讓受損人像變得更清晰,卻也可能在不知不覺間改掉照片中的那個人。實務上,GFPGAN 適合做簡單、自然的清理;如果更在意身分特徵,CodeFormer 則提供更明確的控制選項。2026 年的新研究開始往參考圖導引、擴散模型與邊緣裝置友善的方向發展,但目前還不能直接取代這兩套成熟實作。

先看影像怎麼壞,再決定用哪個模型

臉部修復不等於一般放大。超解析度模型會放大影像,並估計整張畫面中遺失的紋理;盲臉修復模型則會進一步運用學習到的人臉先驗,重建可能已經不存在的眼睛、皮膚、頭髮與其他特徵。這會讓結果看起來更合理,但也因此可能產生身分偏移。

輸入或目標建議先試原因主要檢查項目
稍微失焦,但五官仍清楚可辨的人像GFPGAN官方比較指出,v1.3 在相對高品質的輸入上能產生自然、可用的結果皮膚是否變乾淨,同時保留痣、斑點與頭髮紋理?
尺寸極小或嚴重劣化的人臉CodeFormer它的 w 控制項能讓你決定要接受多少重建結果新生成的眼睛與嘴巴,還像是原本那個人嗎?
真實人物,且相似度優先較高 w 值的 CodeFormer較高的 w 通常更偏向保留輸入影像的身分特徵保留一點模糊,是否比生成一張不存在的臉更好?
臉部與背景都受損搭配背景增強的 CodeFormer,或另用整張影像放大器CodeFormer 可以把非人臉區域交給 Real-ESRGAN 處理臉部與背景的邊界、頭髮是否仍然自然?
整張影像需要放大,而不是專門修復臉部Real-ESRGAN它主要是通用型影像修復與放大工具,也可選擇進行臉部增強臉部增強是否覆蓋了原本有用的紋理?
手機或嵌入式裝置上的即時推論留意 CFRNet作者的目標是 256×256 消費級 NPU是否已經有正式發布且持續支援的模型權重?

比較保守的做法,是保留未處理的原始檔,另外修復一份副本;判斷結果時先以 100% 顯示檢查臉部,再看放大後的整體效果。

單靠這張表,還是會遇到例外

如果只是輕微模糊,或是 AI 生成的人臉出現小瑕疵,想先清理但不希望大幅重建,可以從 GFPGAN 開始。至於變形、尺寸很小或劣化嚴重的人臉,CodeFormer 通常更值得優先測試,因為它能直接把保真度與重建程度的取捨呈現出來。

整張掃描檔上的刮痕與褪色,則是另一種問題。GFPGAN 和 CodeFormer 都是以人臉為主,最好把臉部與背景分開處理,再仔細檢查髮際線、眼鏡與合成後的顆粒感。如果畫面裡有多張臉或造型特殊的配件,當使用的封裝工具提供對齊人臉或只處理中心人臉的選項時,可以善加利用。

不要把變清晰的結果直接稱為「找回的證據」。當原始影像已經遺失像素,修復模型做的是估算一張合理的人臉。對家庭檔案來說,這個差異很重要;涉及法律、新聞或身分辨識用途時,更不能忽略。

GFPGAN、CodeFormer 與 2026 年研究,成熟度並不在同一層級

GFPGAN 和 CodeFormer 都是正式發布的開源研究實作。官方 GFPGAN repository 說明了 Python 3.7+、PyTorch 1.7+、預訓練權重與命令列推論方式。CodeFormer repository 則提供本機推論、整張影像與影片模式,以及 0 到 1 的保真度權重。

以下列出的 2026 年專案,比較適合視為研究訊號,而不是與它們等價的託管產品。相關論文紀錄並沒有同時說明可下載的完整工作流程、生產環境 API、清楚的授權條款與可預期的計費方式。

專案新意在哪裡論文中的證據目前應如何看待
CFRNet採用固定點算子訓練的 2.0M 參數 ResNet 風格修復器在 HiSilicon Hi3402 NPU 上,每個 INT8 週期為 23 ms;測試集包含 300 張影像於 2026 年 6 月 5 日投稿;尚未證明能取代 GFPGAN
HDRFace從劣化輸入與中間修復結果建立高維度表徵以 SD V2.1-base 與 Qwen-Image 實作於 2026 年 5 月 14 日投稿;來源未提供託管 API 或價格
IConFace可選擇使用最多三張同身分參考影像進行條件控制報告領先的參考圖相容性,以及經人工審核的身分基準測試於 2026 年 8 月 5 日修訂;參考圖工作流程值得關注,但還不是可直接替換的基準方案

GFPGAN 的強項,以及它改變人臉的地方

GFPGAN 使用預訓練的生成式人臉先驗,發表的方法中包含以 StyleGAN2 為基礎的先驗模型,用來修復劣化人臉。官方 README 表示,v1.3 會產生更自然的結果,也更能處理品質極低的輸入;同時也提醒,v1.3 不一定總比 v1.2 好,並且可能輕微改變身分特徵。GFPGAN 採用 Apache License 2.0 授權。

官方版本比較屬於質化描述,不是數值化基準測試。當中將 v1.2 描述為較銳利但偶爾不自然,v1.3 則較自然但不算非常銳利。因此,當原始人臉大致正確時,GFPGAN 是合理的第一輪處理工具;但它不像 CodeFormer 一樣,提供明確的身分保留與重建程度旋鈕。

Official GFPGAN version comparisons

CodeFormer 的保真度權重,實際上是在取捨什麼?

CodeFormer 使用 codebook lookup transformer 進行盲臉修復。它最核心的控制項是保真度權重 w,文件指定的範圍為 [0, 1]。作者表示,較小的 w 通常會產生視覺品質較高的結果;較大的 w 則更重視輸入影像的身分與內容保真度。

w 是取捨旋鈕,不是單純的畫質滑桿:數值較低時,模型可能透過自行生成細節來做出更乾淨的臉;數值較高時,則較能忠實保留來源,同時讓模糊、壓縮或其他損壞繼續可見。CodeFormer 的整張影像流程也會把修復後的人臉融合回原場景,而 README 特別警告,這個步驟可能傷害臉部與背景交界處的頭髮紋理。

CodeFormer 採用 NTU S-Lab License 1.0。若要重新發布或整合到商業產品,請先閱讀授權條款,不要預設託管端點與 repository 會有完全相同的使用規則。

已發表基準測試的邊界

目前確實有可參考的公開證據,但還不存在一份涵蓋所有模型與各種損壞類型的 2026 年通用正面對決排行榜。2023 ICCV 的迭代式擴散修復論文,就曾在 CelebA-HQ 上將 GFPGAN 與 CodeFormer 和其他基準方法一起評估。

在其中一個合成劣化測試表格中,論文報告了以下數據:

模型PSNRArcFace 身分分數
GFPGAN26.950.59
CodeFormer25.700.75
IDM,該論文的方法27.420.87

這些是特定測試流程下的數字,不是 2026 年的通用排名。同一篇論文使用了自己的資料集、劣化流程、實作與評估方式。它們可以幫助我們理解為什麼新一代修復器開始強調真實感與可信度,但不能預測某張家庭照片一定會由哪個模型得到最佳結果。

調參時,如何避免修出一張塑膠臉

「塑膠臉」通常是因為把修復強度、身分保真度與合成方式當成同一個控制項。其實這是三個不同的決定。

一組實用的 CodeFormer 起始設定

先讓同一張輸入影像跑過三組設定,再考慮更換影像或模型:

w 範圍預期效果適用情境
0.3–0.5重建更積極,也會生成更多原本不存在的細節眼睛或嘴巴嚴重損壞,而且身分本來就已經難以確認
0.5–0.7在可見的清理效果與輸入保真度之間取得折衷需要一組通用的第一輪比較
0.8–1.0更接近來源影像,同時保留較多原始損壞相似度比最大銳利度更重要

這些範圍反映的是文件描述的取捨,並不保證適用於每一個封裝工具。CodeFormer README 在對齊人臉修復範例中使用 w=0.5,整張影像增強使用 w=0.7,影片指令範例則使用 w=1.0。

如果結果看起來像蠟製面具,先比較較高的 w 值;如果託管服務提供臉部可見度或混合比例,也可以降低相關設定,並嘗試保留更多原始場景的裁切圖。即使修復後的裁切臉很銳利,混回一部分原始紋理,仍可能減少貼上去的違和感。

每次處理後,應該檢查哪些地方?

  1. 身分特徵:眼距、鼻子寬度、嘴型、臉部輪廓,以及具辨識度的痣或斑點。
  2. 紋理:毛孔、雀斑、鬍渣、髮絲與底片顆粒。
  3. 配件:眼鏡、耳環、帽子,以及掠過臉部的頭髮。
  4. 融合效果:光線、色彩、顆粒感,以及臉部與背景的交界。
  5. 可重現性:再次處理時,臉部是否又被改成另一個樣子。

GFPGAN 沒有相同的 w 旋鈕,因此應保守使用模型版本與可見度/混合控制。官方 repository 表示 v1.3 可以連續執行兩次,但重複修復仍應視為實驗;如果第二次處理改變了身分或紋理,就保留第一次的輸出。

本機部署:控制力更高,但相依環境較老舊

本機推論能讓影像留在自己的電腦上,但 Python、PyTorch、模型權重、CUDA、偵測器套件與檔案權限,也都要由你自行處理。

GFPGAN 本機流程

官方 repository 提供了一套不需要自訂 CUDA 擴充功能的基本安裝方式:

git clone https://github.com/TencentARC/GFPGAN.git
cd GFPGAN
pip install basicsr
pip install facexlib
pip install -r requirements.txt
python setup.py develop
wget https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth \
  -P experiments/pretrained_models
python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2

README 列出的需求為 Python >=3.7 與 PyTorch >=1.7;文件中的安裝流程也將 NVIDIA GPU 與 CUDA 列為可選路徑。這個指令支援資料夾、最終縮放倍率、背景放大、只處理中心人臉、對齊人臉,以及自動處理副檔名。

CodeFormer 本機流程

CodeFormer 的官方環境設定相對繁瑣:

git clone https://github.com/sczhou/CodeFormer
cd CodeFormer
conda create -n codeformer python=3.8 -y
conda activate codeformer
pip3 install -r requirements.txt
python basicsr/setup.py develop
python scripts/download_pretrained_models.py facelib
python scripts/download_pretrained_models.py CodeFormer

repository 列出的需求為 PyTorch >=1.7.1 與 CUDA >=10.1。dlib 是其偵測器與臉部裁切流程的選用套件;若要使用文件中的 Windows 與 Mac 影片工作流程,則需要 FFmpeg。

處理 512×512 對齊人臉時,官方範例指令如下:

python inference_codeformer.py -w 0.5 --has_aligned \
  --input_path inputs/cropped_faces

進行整張影像增強時,README 使用 -w 0.7,也可以選擇加入 --bg_upsampler realesrgan 與 --face_upsample。repository 沒有公布可靠的 VRAM、吞吐量或延遲需求,因此請以實際環境測試,不要直接承諾最低硬體規格。

API 成本與整合方式

託管推論比較容易拿來做原型,但價格與授權仍然是兩個不同的決策。

註明日期的託管成本表

官方的 GFPGAN Replicate page、CodeFormer Replicate page 與 Real-ESRGAN Replicate page 都列出了約略成本。價格檢查日期為 2026 年 9 月 1 日。兩個臉部模型都表示,在 Nvidia L40S 上通常可於 3 秒內完成;實際估算會依輸入而變動。

託管模型列出成本每 $1 約可執行次數
tencentarc/gfpgan$0.0020/次500
sczhou/codeformer$0.0028/次357
nightmareai/real-esrgan$0.0020/張輸出影像500
Hosted face restoration cost per run

CodeFormer 的 Replicate 頁面明確表示,其 API 版本不能用於商業用途。這項說明適用於該託管部署;若使用其他供應商,請另外確認對方的條款。

fal CodeFormer API documentation 將其端點標示為可商業使用,並提供 fidelity(預設值為 0.5)、upscale_factor(預設值為 2)、選用的臉部放大、對齊、中心人臉選擇與 seed。文件沒有公布價格,因此不要拿 Replicate 的估算去推論 fal 的費用。

最精簡的託管工作流程

fal 文件提供了以下 JavaScript client 工作流程:

import { fal } from "@fal-ai/client";

const result = await fal.subscribe("fal-ai/codeformer", {
  input: {
    image_url: "https://example.com/input.jpg",
    fidelity: 0.7,
    upscale_factor: 2,
    face_upscale: true
  },
  logs: true
});

console.log(result.data);

如果是較長時間的工作,同一份文件也提供佇列提交、狀態輪詢、結果取得與 webhook 回呼。請把 FAL_KEY 或其他供應商的金鑰放在伺服器端,不要寫進瀏覽器或手機程式碼。

GFPGAN Replicate model page CodeFormer Replicate model page

實際使用時,大家還是會遇到這些問題

在整理到的使用者討論、安裝回報與放大錯誤回報中,不少人提到:臉部看起來變好了,卻已經不像同一個人;也有人遇到本機整合錯誤。這些是工作流程經驗,不是受控環境下的基準測試。

「我覺得 CodeFormer 往往是在『創造』一張臉,而不是修好原本的臉。」—— u/TheMemo,r/StableDiffusion

實務上的重點很簡單:用具代表性的臉部影像比較輸出,並為批次處理流程固定好整套執行環境。

FAQ:GFPGAN 與 CodeFormer 臉部修復

修復老照片,GFPGAN 和 CodeFormer 哪個比較好?

簡單來說,臉部仍清楚可辨、想要自然清理時,先試 GFPGAN;如果劣化嚴重,或更需要控制相似度,則使用 CodeFormer。

CodeFormer 要用多少保真度值,才能保留身分?

較高的 w 值會偏向保留輸入影像的特徵,較低的值通常會得到更乾淨、但也更可能是生成出來的結果。可以比較 0.5、0.7 與 0.9,最後保留能維持關鍵特徵的版本,而不是單純選眼睛最銳利的那張。

應該先修復,再放大嗎?

實務上,可以先在副本上修復人臉,再將完成的影像放大。Real-ESRGAN 搭配臉部增強的整合流程是例外,但同樣需要檢查身分特徵,以及臉部與背景的融合效果。

這些模型能找回完全被模糊掉的細節嗎?

不能。任何模型都無法可靠地找回從未被拍攝下來的資訊。GFPGAN 與 CodeFormer 可以生成看似合理的臉部細節,因此變清楚的眼睛或嘴巴,不代表原始細節真的被找回來。

2026 年的模型已經可以取代 GFPGAN 或 CodeFormer 了嗎?

相關論文展示了幾個重要方向,包括邊緣裝置部署、高維度條件控制,以及同身分參考圖;但目前還沒有一套廣泛可用、同時具備相同本機與託管工作流程文件的替代方案。

CodeFormer 的 Replicate API 可以商用嗎?

CodeFormer Replicate 頁面表示,其 API 版本不能用於商業用途。底層 repository 另有自己的 NTU S-Lab License 1.0,其他供應商也可能公布不同條款。

實際選擇,就是在生成想像與控制力之間取捨

挑選三張具代表性的裁切圖:輕微模糊、嚴重模糊,以及有刮痕的低解析度人像。讓 GFPGAN,以及 w=0.5、0.7、0.9 的 CodeFormer 分別處理;每張輸出都和原始檔並排比較,只要改變了身分關鍵特徵,就直接淘汰。如果背景也需要修復,則把整張影像放大交給獨立的放大器處理。

接下來可以參考Real-ESRGAN 下載與 GUI 指南,以及免費 AI 影片放大工具指南。