AIREITER

GFPGAN vs CodeFormer per il restauro dei volti: impostazioni e API

Ultimo Aggiornamento: 2026-09-01 01:42:33

Un modello di restauro può rendere più nitido un ritratto danneggiato, ma nel frattempo modificare senza farsi notare la persona raffigurata. Come punto di partenza pratico, GFPGAN punta su una pulizia semplice e naturale, mentre CodeFormer offre più controllo quando la somiglianza è la priorità. I nuovi lavori del 2026 guardano a restauratori guidati da immagini di riferimento, basati sulla diffusione e ottimizzati per dispositivi edge, ma nessuno è ancora un sostituto pronto all’uso delle due implementazioni consolidate.

Parti dal tipo di danno, non dal nome del modello

Il restauro dei volti non è un normale upscaling. Un modello di super-risoluzione ingrandisce l’immagine e stima le texture mancanti nell’intero fotogramma; un modello di restauro cieco dei volti usa anche un prior facciale appreso per ricostruire occhi, pelle, capelli e altri tratti che potrebbero non essere più presenti. Il risultato può sembrare più convincente, ma aumenta anche il rischio di alterare l’identità.

Input o obiettivoDa provare per primoPerchéControllo principale
Ritratto leggermente sfocato con tratti riconoscibiliGFPGANIl confronto ufficiale descrive la v1.3 come naturale e adatta a input di qualità relativamente altaLa pelle appare più pulita senza perdere nei, segni distintivi o texture dei capelli?
Volto molto piccolo o gravemente degradatoCodeFormerIl controllo w permette di decidere quanta ricostruzione accettareI nuovi occhi e la nuova bocca appartengono ancora al soggetto?
Persona reale quando la somiglianza viene prima di tuttoCodeFormer con un valore w più altoUn valore w più alto tende in generale a privilegiare la fedeltà all’inputÈ meglio conservare un po’ di sfocatura piuttosto che ottenere un volto inventato?
Volto e sfondo entrambi danneggiatiCodeFormer con miglioramento dello sfondo, oppure un upscaler separato per l’intera immagineCodeFormer può affidare le aree non facciali a Real-ESRGANI bordi tra volto e sfondo e i capelli risultano ancora naturali?
L’intera immagine deve essere ingrandita, non serve un restauro facciale dedicatoReal-ESRGANÈ soprattutto un restauratore/upscaler generico per immagini, con miglioramento opzionale dei voltiIl miglioramento facciale sovrascrive texture utili?
Inferenza in tempo reale su dispositivi mobili o sistemi embeddedTieni d’occhio CFRNetGli autori puntano a NPU consumer 256×256È disponibile un checkpoint pubblicato e supportato?

Un flusso di lavoro prudente conserva l’originale intatto, lavora su una copia e confronta il volto al 100% prima di valutare il risultato ingrandito.

Quando la tabella non basta

In presenza di una sfocatura lieve o di un volto generato dall’IA con piccoli difetti, prova prima GFPGAN se vuoi una pulizia discreta senza una ricostruzione invasiva. Se invece il volto è deformato, minuscolo o fortemente degradato, CodeFormer è l’esperimento iniziale più utile: il suo parametro di fedeltà rende immediatamente visibile il compromesso.

Graffi e scolorimento distribuiti sull’intera scansione sono un problema diverso. GFPGAN e CodeFormer si concentrano sui volti: tratta quindi volto e sfondo separatamente, poi controlla attaccatura dei capelli, occhiali e grana del compositing. Con più volti o accessori insoliti, usa un’opzione per volti allineati o per il volto centrale quando il wrapper la mette a disposizione.

Non chiamare “recuperata” una parte dell’immagine solo perché è diventata più nitida. Quando la sorgente ha perso i pixel originali, il restauratore sta stimando un volto plausibile. È una distinzione importante negli archivi di famiglia e ancora di più in ambito legale, giornalistico o di identificazione.

GFPGAN, CodeFormer e la ricerca del 2026 hanno livelli di maturità diversi

GFPGAN e CodeFormer sono implementazioni di ricerca open source ufficialmente distribuite. Il repository ufficiale di GFPGAN documenta Python 3.7+, PyTorch 1.7+, i pesi preaddestrati e l’inferenza da riga di comando. Il repository di CodeFormer documenta l’inferenza locale, le modalità per immagini intere e video e un peso di fedeltà compreso tra 0 e 1.

I progetti del 2026 elencati qui sotto sono segnali di ricerca, non prodotti online equivalenti. I lavori collegati non documentano la stessa combinazione di workflow scaricabile, API di produzione, chiarezza della licenza e fatturazione prevedibile.

ProgettoNovitàEvidenze riportate nel paperCome interpretarlo oggi
CFRNetRestauratore da 2.0M di parametri, in stile ResNet, addestrato come operatore a punto fisso23 ms per ciclo INT8 su una NPU HiSilicon Hi3402; set di test da 300 immaginiSottomesso il 5 giugno 2026; non è ancora un sostituto dimostrato di GFPGAN
HDRFaceRappresentazioni ad alta dimensionalità ottenute dall’input degradato e da un restauro intermedioImplementato con SD V2.1-base e Qwen-ImageSottomesso il 14 maggio 2026; la fonte non indica né API online né prezzi
IConFaceCondizionamento opzionale su un massimo di tre immagini di riferimento della stessa identitàRiporta risultati di vertice nella compatibilità con i riferimenti e un benchmark di identità verificato da esseri umaniRevisionato il 5 agosto 2026; workflow promettente con immagini di riferimento, ma non baseline sostitutiva pronta all’uso

Cosa fa bene GFPGAN e quando modifica il volto

GFPGAN utilizza un prior generativo facciale preaddestrato, incluso un prior basato su StyleGAN2 nel metodo pubblicato, per restaurare i volti degradati. Il README ufficiale afferma che la v1.3 produce risultati più naturali e gestisce meglio gli input di qualità molto bassa, ma avverte anche che la v1.3 non è sempre migliore della v1.2 e può modificare leggermente l’identità. GFPGAN è distribuito con licenza Apache 2.0.

Il confronto ufficiale tra le versioni è qualitativo, non un benchmark numerico. La v1.2 viene descritta come più nitida ma talvolta innaturale, mentre la v1.3 è più naturale ma non particolarmente nitida. GFPGAN è quindi una scelta sensata per un primo passaggio quando il volto originale è sostanzialmente corretto, ma non offre il comando esplicito identità-versus-ricostruzione di CodeFormer.

Confronto ufficiale tra le versioni di GFPGAN

Che cosa regola davvero il parametro di fedeltà di CodeFormer

CodeFormer usa un transformer con ricerca in un codebook per il restauro cieco dei volti. Il controllo centrale è il peso di fedeltà w, il cui intervallo documentato è [0, 1]. Gli autori spiegano che un valore w più basso produce in genere un risultato dall’aspetto più pulito, mentre un valore più alto mantiene una fedeltà maggiore all’identità e al contenuto dell’input.

w non è un cursore della qualità, ma un compromesso: un valore basso può creare un volto più pulito inventando dettagli; un valore alto può conservare più fedelmente la sorgente, lasciando visibili sfocatura, compressione e altri difetti. Anche il percorso di CodeFormer per l’intera immagine reinserisce il volto restaurato nella scena, e il README avverte che questo passaggio può danneggiare la texture dei capelli lungo il confine tra volto e sfondo.

CodeFormer usa la NTU S-Lab License 1.0. Prima di ridistribuirlo o integrarlo in un prodotto commerciale, leggi la licenza: non dare per scontato che un endpoint online e il repository abbiano condizioni identiche.

I limiti dei benchmark pubblicati

Esistono dati pubblicati utili, ma non una classifica universale del 2026 che metta testa a testa ogni modello per ogni tipo di danno. Il paper ICCV 2023 sul restauro iterativo basato sulla diffusione ha valutato GFPGAN e CodeFormer insieme ad altri baseline su CelebA-HQ.

In una tabella relativa a un degrado sintetico, il paper riportava questi valori:

ModelloPSNRPunteggio di identità ArcFace
GFPGAN26.950.59
CodeFormer25.700.75
IDM, il metodo del paper27.420.87

Si tratta di valori legati a uno specifico protocollo, non di una graduatoria universale del 2026. Lo stesso paper ha usato dataset, processo di degradazione, implementazioni e metodo di valutazione propri. I numeri aiutano a capire perché i restauratori più recenti puntino sull’autenticità, ma non permettono di prevedere quale modello funzionerà meglio su una determinata foto di famiglia.

Come regolare i parametri evitando l’effetto volto di plastica

L’effetto “volto di plastica” nasce dal trattare intensità del restauro, fedeltà dell’identità e compositing come se fossero un unico controllo. Sono invece tre decisioni separate.

Una griglia iniziale utile per CodeFormer

Esegui lo stesso input con tre impostazioni prima di cambiare immagine o modello:

Intervallo di wChe cosa aspettarsiQuando usarlo
0.3–0.5Ricostruzione più aggressiva e maggiore quantità di dettagli inventatiOcchi o bocca sono gravemente compromessi e l’identità è già incerta
0.5–0.7Compromesso tra pulizia visibile e fedeltà all’inputServe un primo confronto generale
0.8–1.0Maggiore vicinanza alla sorgente, con più danni originali ancora visibiliLa somiglianza conta più della nitidezza massima

Gli intervalli riflettono il compromesso documentato, non una garanzia valida per ogni wrapper. Nel README di CodeFormer, w=0.5 viene usato per il restauro di volti allineati, w=0.7 per il miglioramento dell’intera immagine e w=1.0 nell’esempio di comando per i video.

Se il risultato sembra una maschera di cera, confronta prima un valore w più alto, riduci la visibilità o la fusione del volto se il servizio lo consente e prova un ritaglio che conservi più contesto originale. Reinserire parte della texture iniziale può ridurre l’effetto di elemento incollato, anche quando il crop restaurato è nitido.

Che cosa controllare tra un passaggio e l’altro

  1. Identità: distanza tra gli occhi, larghezza del naso, forma della bocca, contorno del volto e segni distintivi.
  2. Texture: pori, lentiggini, barba, ciocche di capelli e grana della pellicola.
  3. Accessori: occhiali, orecchini, cappelli e capelli che attraversano il volto.
  4. Integrazione: illuminazione, colore, grana e bordo tra volto e sfondo.
  5. Ripetibilità: controlla se un secondo passaggio modifica nuovamente il volto.

GFPGAN non offre lo stesso parametro w. Usa con prudenza i controlli relativi alla versione del modello e alla visibilità/fusione. Il repository ufficiale afferma che la v1.3 può essere eseguita due volte, ma il restauro ripetuto dovrebbe restare un esperimento: se il secondo passaggio modifica identità o texture, conserva il primo risultato.

Installazione locale: più controllo, dipendenze datate

L’inferenza locale mantiene le immagini sul tuo computer, ma lascia a te la gestione di Python, PyTorch, pesi del modello, CUDA, pacchetti per il rilevamento e permessi sui file.

Installare GFPGAN in locale

Il repository ufficiale documenta una configurazione pulita che non richiede estensioni CUDA personalizzate:

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

Il README indica Python >=3.7 e PyTorch >=1.7; la GPU NVIDIA e CUDA sono percorsi opzionali nella configurazione documentata. Il comando supporta cartelle, scala finale, upsampling dello sfondo, elaborazione del solo volto centrale, volti allineati e gestione automatica delle estensioni.

Installare CodeFormer in locale

L’ambiente ufficiale di CodeFormer richiede qualche passaggio in più:

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

Il repository indica PyTorch >=1.7.1 e CUDA >=10.1. dlib è opzionale per il rilevatore e il percorso di ritaglio dei volti; FFmpeg serve per il workflow video documentato su Windows e Mac.

Per un volto allineato da 512×512, l’esempio ufficiale è:

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

Per migliorare un’immagine intera, il README usa -w 0.7 e aggiunge facoltativamente --bg_upsampler realesrgan e --face_upsample. Il repository non pubblica requisiti affidabili in termini di VRAM, throughput o latenza: prova quindi l’ambiente esatto invece di promettere una configurazione hardware minima.

Costi delle API e scelte d’integrazione

L’inferenza online è più semplice per i prototipi, ma prezzo e licenza restano due decisioni separate.

Tabella dei costi online rilevati alla data indicata

La pagina Replicate di GFPGAN, la pagina Replicate di CodeFormer e la pagina Replicate di Real-ESRGAN indicano costi approssimativi. I prezzi sono stati verificati il 1 settembre 2026. I due modelli per i volti dichiarano un completamento tipico entro 3 secondi su Nvidia L40S; le stime variano in base agli input.

Modello onlineCosto indicatoEsecuzioni approssimative per $1
tencentarc/gfpgan$0.0020/esecuzione500
sczhou/codeformer$0.0028/esecuzione357
nightmareai/real-esrgan$0.0020/immagine restituita500
Costo per esecuzione del restauro facciale online

La pagina Replicate di CodeFormer specifica chiaramente che la sua versione API non può essere utilizzata a fini commerciali. La dichiarazione riguarda quella distribuzione online; per altri provider verifica separatamente i relativi termini.

La documentazione dell’API CodeFormer di fal indica l’endpoint come utilizzabile commercialmente ed espone fidelity con valore predefinito 0.5, upscale_factor con valore predefinito 2, upscaling facciale opzionale, allineamento, selezione del volto centrale e un seed. Non pubblica un prezzo: non dedurre quindi il costo di fal dalla stima di Replicate.

Workflow online minimo

La documentazione di fal mostra un workflow con client JavaScript:

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);

Per i lavori più lunghi, la stessa documentazione mette a disposizione l’invio in coda, il controllo dello stato, il recupero del risultato e le callback webhook. Conserva FAL_KEY o una chiave equivalente del provider sul server, mai nel codice del browser o dell’app mobile.

Pagina del modello GFPGAN su Replicate Pagina del modello CodeFormer su Replicate

I problemi che gli utenti incontrano ancora

Nei thread degli utenti, nei resoconti sulle installazioni e nelle segnalazioni di errori nell’upscaling recuperati, diverse persone descrivono un volto visivamente migliorato che però non sembra più appartenere alla stessa persona, oltre a errori d’integrazione in locale. Sono resoconti di workflow, non benchmark controllati.

“Secondo me CodeFormer tende a ‘inventare’ un volto invece di correggerlo.” — u/TheMemo, r/StableDiffusion

La lezione operativa è semplice: confronta i risultati su volti rappresentativi e blocca la configurazione dell’ambiente quando prepari una pipeline in batch.

FAQ: restauro dei volti con GFPGAN e CodeFormer

Per le foto vecchie è meglio GFPGAN o CodeFormer?

Come regola pratica, parti da GFPGAN per un volto riconoscibile e una pulizia naturale; scegli CodeFormer quando il degrado è severo o il controllo sulla somiglianza è più importante.

Quale valore di fedeltà di CodeFormer preserva l’identità?

Valori più alti di w privilegiano la fedeltà all’input, mentre valori più bassi tendono a produrre un risultato più pulito ma più inventato. Confronta 0.5, 0.7 e 0.9, poi conserva l’output che mantiene i tratti distintivi, non quello con gli occhi più nitidi.

Conviene restaurare prima di fare l’upscaling?

Come workflow pratico, inizia restaurando il volto su una copia e ingrandisci l’immagine finita in un secondo momento. Un flusso combinato come Real-ESRGAN con miglioramento facciale è un’eccezione, ma richiede comunque un controllo dell’identità e dei bordi tra volto e sfondo.

Questi modelli possono recuperare dettagli completamente sfocati?

No. Nessun modello può recuperare in modo affidabile informazioni che non sono mai state catturate. GFPGAN e CodeFormer possono generare dettagli facciali plausibili: un occhio o una bocca più nitidi non dimostrano quindi che il dettaglio originale sia stato davvero recuperato.

I modelli del 2026 sono pronti a sostituire GFPGAN o CodeFormer?

I paper collegati indicano direzioni importanti, tra deployment edge, condizionamento ad alta dimensionalità e riferimenti della stessa identità, ma non ancora un sostituto ampiamente disponibile con la stessa documentazione per workflow locali e online.

Posso usare commercialmente l’API Replicate di CodeFormer?

La pagina Replicate di CodeFormer afferma che la versione API non può essere utilizzata a fini commerciali. Il repository originale ha la propria NTU S-Lab License 1.0, mentre altri provider possono pubblicare condizioni diverse.

La scelta pratica è un compromesso tra invenzione e controllo

Seleziona tre crop rappresentativi: una sfocatura lieve, una sfocatura pesante e un ritratto graffiato a bassa risoluzione. Esegui GFPGAN e CodeFormer con w=0.5, 0.7 e 0.9, conserva l’originale accanto a ogni output e scarta qualsiasi risultato che modifichi i tratti fondamentali dell’identità. Quando anche lo sfondo ha bisogno di essere riparato, affida l’ingrandimento dell’intera immagine a un upscaler separato.

Per il passaggio successivo, consulta la guida al download e alla GUI di Real-ESRGAN e la guida agli upscaler video AI gratuiti.