Blog / Ingénierie

Pourquoi les visages restaurés par IA ressemblent à des personnages de jeu vidéo

· mis à jour le 24 août avec l'ablation quantitative · corpus : 11 scans de la Bibliothèque du Congrès, 35 visages (banc visuel) + 4 portraits du domaine public, 120 exécutions mesurées (banc métrique)

Les modèles de restauration de visages peuvent donner à un visage tiré d'une photo abîmée l'allure d'un rendu de vieux jeu vidéo : peau plastique, yeux peints, un visage net mais pas tout à fait la personne. Nous avons comparé huit variantes de rendu sur 11 photographies du domaine public pour isoler les causes : il y en a trois, elles sont séparables, et aucune n'est corrigée par un « meilleur modèle ». Cette révision ajoute ce qui manquait au banc d'origine : des chiffres. Remesurer le rendu retenu avec un plongement de reconnaissance faciale[4] confirme quantitativement la sélection à l'œil (chaque réglage du rendu « naturel » achète une identité mesurable, divisant par deux la taxe d'identité de la restauration), et un balayage complet du curseur de fidélité montre pourquoi il est livré à 0,7 alors que chaque courbe est monotone vers 1,0.

3causes séparables de l'aspect plastiqueremplacement total, dérive de couleur, petits visages
0,950identité de l'entrée dégradéela barre à laquelle toute restauration doit se mesurer
0,868 → 0,909identité, rendu classique → naturell'ablation, mesurée à w = 0,7
−0,041taxe d'identité du rendu livréla moitié des −0,082 du rendu classique

Chaque chiffre de cette note a été mesuré sur le code du pipeline de production : mêmes modèles, mêmes calculs. Données brutes par image : e2v2_face.json · e2_face.json.

Scan noir et blanc de 1862, doux et granuleux, de trois hommes debout devant une tenteAvantLe même scan restauré : visages nets et détails récupérés, avec une couleur naturelleAprès
Figure 1. Une restauration par l'outil de ce site sur l'une des photographies du corpus (Lincoln à Antietam, scan de 1862 de la Bibliothèque du Congrès) : visages reconstruits et image entière améliorée, avec le grain et le caractère colorimétrique propres à la photographie préservés. Août 2026.

1 · Les trois causes

1. Le remplacement total. Le pipeline standard colle la sortie du modèle par-dessus le visage d'origine à 100 % d'opacité, si bien que chaque visage restauré est entièrement dessiné par le modèle. Le grain de la photographie, la texture du papier et le caractère de l'objectif s'arrêtent à une frontière ovale invisible autour de chaque visage.

2. La dérive de couleur. Le modèle de visages produit sa propre couleur, pas celle de la photo. Mesuré sur notre banc, il a inventé des yeux bleus sur un ambrotype des années 1850 et éclairci la carnation d'un portrait de studio du XIXe siècle d'un sujet noir, un mode d'échec connu des modèles de visages entraînés sur des corpus modernes, majoritairement à peau claire[2]. Tout pipeline qui conserve la chrominance du modèle hérite de ses biais.

3. Les petits visages sont des hallucinations. Un visage qui occupe moins d'environ 100 px arrive dans un modèle de visages de 512 px sous la forme d'un agrandissement bilinéaire de 5 à 13×, une bouillie. Le modèle invente alors un visage plausible au lieu de récupérer le vrai. C'est une limite physique, pas une limite du modèle : un visage de 40 px peut être rendu doux-mais-humain, jamais net-et-fidèle.

2 · Anatomie d'une réparation de visage

Pour voir où se trouvent les réglages, suivons un visage à travers le pipeline. La détection (SCRFD, avec le filtre de plausibilité) fournit cinq points de repère. L'alignement résout la transformation de similitude aux moindres carrés (échelle s, rotation θ, translation t) qui envoie les points des yeux et de la bouche détectés pi sur le gabarit FFHQ fixe[5] qi :

argmins,θ,t Σi ‖ sR(θ)pi + t − qi ‖²(1)

de sorte que chaque visage entre dans le réseau en 512×512 avec les yeux et la bouche en position canonique. Le modèle, CodeFormer par défaut[1], qui restaure en cherchant les visages dans un codebook appris plutôt qu'en régressant des pixels, et expose un poids de fidélité w ∈ [0, 1] qui arbitre entre son a priori (0) et ton entrée (1), produit un recadrage restauré. Vient ensuite la partie dont traite cette note : la réinsertion. La recette classique composite ce recadrage à pleine opacité, dans les couleurs propres du modèle. La nôtre le déforme vers sa place d'origine sous un dégradé radial m et composite chaque pixel comme

out = blend · m · faceL⊕photoab + (1 − blend · m) · photo(2)

avec blend = 0,75, et faceL⊕photoab signifiant que le modèle n'apporte que la luminance (le L de Lab) tandis que la photographie garde sa propre chrominance, l'exact miroir de notre modèle de colorisation, qui n'apporte que la chrominance et garde la luminance de la photo. Les petits visages reçoivent une passe de super-résolution ×4 dédiée sur leur empreinte source avant restauration, pour que le modèle voie des détails récupérés au lieu d'une bouillie bilinéaire.

3 · Le banc visuel qui a retenu la variante H

Huit variantes, chacune une exécution complète du pipeline sur le corpus, en faisant varier le poids de fidélité, l'opacité de la réinsertion, la source de couleur et la SR des petits visages. Les sorties ont été comparées côte à côte aux originaux à 100 % de zoom :

VariantePoidsRéinsertionSource de couleurSR petits visages
A (alors en production)0,70100 %modèle
B0,90100 %modèle
C0,7070 %modèle
D0,70100 %photographie
E0,7075 %photographie
F0,8575 %photographie
G0,7050 %photographie
H (retenue)0,7075 %photographieoui

H est devenue le rendu par défaut. La réinsertion en luminance seule ajoute moins d'une demi-seconde par photo ; la passe petits visages ajoute une à deux secondes par visage concerné seulement. La section sur les limites d'origine admettait la faiblesse évidente : la sélection reposait sur un jugement humain côte à côte sur 35 visages, pas sur une métrique. Alors nous avons construit le banc métrique.

4 · Nouveau : l'ablation, quantifiée

Un chiffre cadre tout le reste : l'entrée dégradée elle-même obtient 0,950 d'identité contre l'original. ArcFace a été entraîné sous forte augmentation, donc il voit à travers le flou et le bruit ; la restauration n'est donc pas créditée d'être nette ; elle n'est débitée que lorsqu'elle change qui est sur la photo. Chaque moteur de rendu paie une part de cette taxe d'identité. La question est : combien ?

Rendu (tous à w = 0,7)PSNR (dB)id ArcFacetaxe d'identitératio Tenengrad
Entrée dégradée (référence)27.320.9500.217
Classic v2 (100% paste, model colour)26.680.8680.0820.373
+ luma-only (photo keeps its chroma)26.720.8820.0680.376
+ 75% blend (grain shows through)27.060.9010.0490.304
Natural (shipped: both + small-face SR)27.090.9090.0410.307

Le banc métrique est d'accord avec les yeux, réglage par réglage. Garder la chrominance de la photographie rapporte +0,014 d'identité (la dérive de couleur était réelle, et mesurable). La fusion à 75 % rapporte encore +0,019 et l'essentiel du PSNR : laisser transparaître un quart du vrai visage vaut presque autant que tout le réglage de fidélité du modèle de visages. Ensemble, ils divisent la taxe d'identité par deux, de −0,082 à −0,041, tout en restant à environ 1,4× la netteté de l'entrée. Le seul coût honnête : le rendu classique est « plus net » selon Tenengrad (0,373 contre 0,307), une netteté qu'il dépense en partie en texture qui n'est pas celle de la photographie. C'est le compromis perception-distorsion[6] déplacé dans le rendu, et nous le dépensons en identité.

Quatre panneaux du visage de Florence Owens Thompson : original net, copie dégradée, le rendu classique à la peau plastique et à la couleur décalée, et le rendu naturel préservant grain et ton
Figure 2. L'ablation en personne : Migrant Mother (Lange 1936). Classique v2 (troisième) : peau plastique et une dominante de couleur que la photographie n'a jamais eue. Naturel (quatrième) : les détails du modèle sous le grain et le ton propres de la photographie. Identité : 0,868 contre 0,909 par rapport à l'original.
Quatre panneaux du portrait de Lincoln : original, dégradé, le rendu classique avec un décalage de couleur froid, et le rendu naturel gardant le ton chaud de la plaque
Figure 3. Même ablation, Lincoln O-77 (1863). Le rendu classique (troisième) vide le ton chaud de la plaque et refroidit tout le visage : la cause 2, la dérive de couleur, en un regard. Le rendu naturel garde la couleur de la photographie par construction : le modèle n'est autorisé à apporter que la luminance.

5 · Le curseur de fidélité, balayé de bout en bout

Le poids w de CodeFormer arbitre entre l'a priori du codebook (0) et la déférence envers ton entrée (1)[1]. Nous l'avons balayé en onze pas sous le rendu naturel :

0.60.70.80.9100.250.50.71poids de fidélité CodeFormer wcosinus ArcFace vs originalentrée dégradéeproduction
Figure 4. Identité ArcFace en fonction du poids de fidélité sous le rendu livré, moyenne de quatre portraits, dégradation ×4. Monotone de 0,710 (un inconnu plausible) à 0,932, sans jamais atteindre la référence d'entrée en pointillés à 0,950 : le curseur fixe le taux de la taxe d'identité, il ne peut pas rendre la taxe négative. Le PSNR (25,5 → 27,3 dB) et le SSIM sont monotones de la même façon.

Nous nous attendions à une courbe de compromis avec un optimum intérieur qui justifierait 0,7 comme « le coude ». Les données ont refusé : sur les chiffres, w = 1,0 domine, à chaque sévérité :

×2 (mild)×4 (standard)×8 (severe)
0.50.60.70.80.9100.30.50.71poids de fidélité CodeFormer wcosinus ArcFace vs originalproduction
Figure 5. L'interaction avec la sévérité : identité en fonction du poids à ×2 / ×4 / ×8 de dégradation, rendu naturel. Un w plus élevé gagne partout, même à ×8 où la référence d'entrée elle-même est tombée à 0,826. Au réglage de production, la taxe d'identité vaut −0,042 (légère), −0,041 (standard), −0,068 (sévère) ; à w = 0 elle atteint −0,27 : quand peu d'information survit, l'a priori comble le vide avec ses propres opinions.

Alors pourquoi livrer 0,7 plutôt que 1,0 ? Parce que les métriques sont nécessaires, pas suffisantes. ArcFace mesure qui ; il est presque aveugle à l'âge et à la texture ; le même entraînement qui le rend robuste au flou le rend indulgent envers le lissage. L'observation d'origine du banc tient sur ses propres preuves : au 0,5 habituel du modèle, les pattes-d'oie s'adoucissent visiblement sur Migrant Mother : Florence Owens Thompson avait 32 ans et portait la Grande Dépression sur son visage, et l'a priori préférerait que non. À w = 1,0, le codebook s'en remet tellement à une entrée ruinée que des déchets de compression commencent à survivre. 0,7 conserve presque toute la valeur métrique (0,909 contre 0,932) tandis que les images gardent leur âge. Et le panneau s8 ci-dessous est l'argument pour ne jamais laisser w approcher 0 sur des photos patrimoniales abîmées :

Trois panneaux : Lincoln sévèrement dégradé, un visage lisse, plus jeune et presque méconnaissable au poids zéro, et une ressemblance plus proche au poids un
Figure 6. Dégradation ×8, Lincoln. À partir de cette entrée (gauche), w = 0 (milieu) reconstruit avec assurance un homme plus lisse, plus jeune, différent : identité 0,585, proche du pile ou face. w = 1 (droite) reste reconnaissable comme Lincoln à 0,788. Quand les indices sont minces, les opinions de l'a priori dominent, exactement quand on veut le curseur haut.

6 · Les autres modèles, même rendu

Modèle de visagesPSNR (dB)id ArcFaceratio Tenengradms / visage*
CodeFormer (w = 0.7, default)27.090.9090.3077200
GFPGAN 1.427.130.9100.3286046
GPEN-BFR-25626.680.9270.3222633

*Temps écoulé médian d'une passe complète (détection comprise) sur la machine de test à 2 vCPU. Sous le rendu naturel, les trois modèles[1][2][3] convergent à 0,02 d'identité les uns des autres : le rendu, pas le modèle, est désormais le terme dominant, ce qui est en soi un résultat : l'aspect « jeu vidéo » n'a jamais vraiment dépendu du réseau utilisé. CodeFormer reste le défaut pour sa robustesse sur les dommages sévères et pour le curseur auquel cette note vient de consacrer deux sections ; GPEN reste le choix de la vitesse à 2,6 s par visage.

7 · Limites

  • Le banc visuel compte 35 visages ; le banc métrique 4 portraits × 120 exécutions. Les formes monotones ont tenu sur chaque portrait individuellement ; c'est l'affirmation sur laquelle nous nous appuyons ; les valeurs absolues varieront avec le sujet et le scan.
  • ArcFace est un seul arbitre, l'arbitre standard, avec la tolérance au flou que nous exploitons comme référence. Une étude perceptuelle humaine sur des milliers de visages est l'instrument manquant, et l'observation sur les rides repose sur les yeux, pas sur des plongements.
  • Dégradation synthétique. Les vrais dommages de boîte à chaussures ajoutent rayures et miroir d'argent que la pile de corruption ne modélise pas ; l'étape de réparation des dommages les traite séparément.
  • La limite des petits visages tient : sous environ 40 px de visage, aucun réglage ne produit un visage net et fidèle, et la sortie honnête est un visage doux.

Références

  1. Zhou, S., Chan, K. C. K., Li, C., & Loy, C. C. (2022). Towards Robust Blind Face Restoration with Codebook Lookup Transformer. NeurIPS 35. arXiv:2206.11253. arxiv.org
  2. Wang, X., Li, Y., Zhang, H., & Shan, Y. (2021). Towards Real-World Blind Face Restoration with Generative Facial Prior. CVPR. arXiv:2101.04061. arxiv.org
  3. Yang, T., Ren, P., Xie, X., & Zhang, L. (2021). GAN Prior Embedded Network for Blind Face Restoration in the Wild. CVPR. arXiv:2105.06070. arxiv.org
  4. Deng, J., Guo, J., Xue, N., & Zafeiriou, S. (2019). ArcFace: Additive Angular Margin Loss for Deep Face Recognition. CVPR. arXiv:1801.07698. arxiv.org
  5. Karras, T., Laine, S., & Aila, T. (2019). A Style-Based Generator Architecture for Generative Adversarial Networks (the FFHQ alignment template). CVPR. arXiv:1812.04948. arxiv.org
  6. Blau, Y., & Michaeli, T. (2018). The Perception-Distortion Tradeoff. CVPR. arXiv:1711.06077. arxiv.org
  7. FaceFusion (open-source face processing platform): the reference implementation our SCRFD decode and model preprocessing are ported from, 1:1. github.com
  8. Lange, D. (1936). “Migrant Mother” (Destitute pea pickers in California), Farm Security Administration. Public domain, via Wikimedia Commons. commons.wikimedia.org
  9. Gardner, A. (1863). Abraham Lincoln, portrait O-77. Public domain, via Wikimedia Commons. commons.wikimedia.org
  10. ONNX Runtime: the inference engine both our server (CPU) and in-browser (WebGPU/WASM) engines run on. onnxruntime.ai