Blog / Engineering

Warum KI-restaurierte Gesichter wie Videospielfiguren aussehen

· aktualisiert am 24. August mit der quantitativen Ablation · Korpus: 11 Scans der Library of Congress, 35 Gesichter (visuelle Testreihe) + 4 gemeinfreie Porträts, 120 gemessene Läufe (metrische Testreihe)

Gesichtsrestaurierungsmodelle können ein Gesicht aus einem beschädigten Foto aussehen lassen wie ein Rendering aus einem alten Videospiel: Plastikhaut, gemalte Augen, ein Gesicht, das scharf ist, aber nicht ganz die Person. Wir haben acht Rendering-Varianten an 11 gemeinfreien Fotografien gebenchmarkt, um die Ursachen zu isolieren: Es sind drei, sie sind trennbar, und keine wird durch ein „besseres Modell“ behoben. Diese Überarbeitung ergänzt, was der ursprünglichen Testreihe fehlte: Zahlen. Die Nachmessung des gewählten Renderings mit einem Gesichtserkennungs-Embedding[4] bestätigt die Auswahl nach Augenmaß quantitativ (jeder Regler des „natürlichen“ Renderings kauft messbar Identität und halbiert die Identitätssteuer der Restaurierung), und ein vollständiger Durchlauf des Treue-Reglers zeigt, warum er bei 0,7 ausgeliefert wird, obwohl jede Kurve monoton Richtung 1,0 steigt.

3trennbare Ursachen des Plastik-Looksvollständiger Ersatz, Farbdrift, kleine Gesichter
0,950Identität des degradierten Inputsdie Messlatte für jede Restaurierung
0,868 → 0,909Identität, klassisches → natürliches Renderingdie Ablation, gemessen bei w = 0,7
−0,041Identitätssteuer des ausgelieferten Renderingshalb so viel wie die −0,082 des klassischen Renderers

Jede Zahl in dieser Notiz wurde mit dem Code der Produktions-Pipeline gemessen: dieselben Modelle, dieselbe Mathematik. Rohdaten pro Bild: e2v2_face.json · e2_face.json.

Weicher, körniger Schwarzweiß-Scan von 1862 mit drei Männern, die an einem Zelt stehenVorherDerselbe Scan restauriert: geschärfte Gesichter und zurückgewonnene Details mit natürlicher FarbeNachher
Abbildung 1. Eine Restaurierung durch das Tool dieser Seite an einer der Korpus-Fotografien (Lincoln bei Antietam, Scan der Library of Congress von 1862): Gesichter neu aufgebaut und das ganze Bild verbessert, wobei das eigene Korn und der Farbcharakter der Fotografie erhalten bleiben. August 2026.

1 · Die drei Ursachen

1. Vollständiger Ersatz. Die Standard-Pipeline klebt die Ausgabe des Modells mit 100 % Deckkraft über das Originalgesicht, sodass jedes restaurierte Gesicht vollständig vom Modell gezeichnet ist. Das Korn der Fotografie, die Papiertextur und der Charakter des Objektivs enden an einer unsichtbaren ovalen Grenze um jedes Gesicht.

2. Farbdrift. Das Gesichtsmodell gibt seine eigene Farbe aus, nicht die des Fotos. Auf unserer Testreihe gemessen, erfand es blaue Augen auf einer Ambrotypie aus den 1850ern und hellte den Hautton in einem Studioporträt eines Schwarzen aus dem 19. Jahrhundert auf, ein bekannter Fehlermodus von Gesichtsmodellen, die auf modernen, überwiegend hellhäutigen Fotokorpora trainiert wurden[2]. Jede Pipeline, die das Chroma des Modells behält, erbt seine Verzerrungen.

3. Kleine Gesichter sind Halluzinationen. Ein Gesicht, das weniger als etwa 100 px einnimmt, erreicht ein 512-px-Gesichtsmodell als 5–13-fache bilineare Vergrößerung, ein Schmierfleck. Das Modell erfindet dann ein plausibles Gesicht, statt das echte zurückzugewinnen. Das ist eine physikalische Grenze, keine Modellgrenze: Ein 40-px-Gesicht kann weich-aber-menschlich gemacht werden, nie scharf-und-originalgetreu.

2 · Anatomie einer Gesichtsreparatur

Um zu sehen, wo die Regler sitzen, folge einem Gesicht durch die Pipeline. Die Erkennung (SCRFD, mit der Plausibilitätsprüfung) liefert fünf Landmarken. Die Ausrichtung löst die Ähnlichkeitstransformation nach kleinsten Quadraten (Skalierung s, Rotation θ, Translation t), die die erkannten Augen- und Mundpunkte pi auf die feste FFHQ-Vorlage[5] qi abbildet:

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

sodass jedes Gesicht mit 512×512 und Augen und Mund in kanonischer Position ins Netz gelangt. Das Modell, standardmäßig CodeFormer[1], das restauriert, indem es Gesichter in einem gelernten Codebuch nachschlägt, statt Pixel zu regressieren, und ein Treuegewicht w ∈ [0, 1] bietet, das zwischen seinem Prior (0) und deinem Input (1) steuert, erzeugt einen restaurierten Ausschnitt. Dann kommt der Teil, um den es in dieser Notiz geht: die Rückeinfügung. Das klassische Rezept setzt diesen Ausschnitt mit voller Deckkraft in den Farben des Modells ein. Unseres verzerrt ihn an seinen Platz zurück unter einem radialen weichen Rand m und setzt jedes Pixel zusammen als

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

mit blend = 0,75, wobei faceL⊕photoab bedeutet, dass das Modell nur Luminanz beisteuert (Lab L), während die Fotografie ihr eigenes Chroma behält, das exakte Spiegelbild unseres Kolorierers, der nur Chroma beisteuert und die Luminanz des Fotos behält. Kleine Gesichter bekommen vor der Restaurierung einen eigenen ×4-Super-Resolution-Durchgang auf ihrer Quellfläche, sodass das Modell zurückgewonnene Details sieht statt eines bilinearen Schmierflecks.

3 · Die visuelle Testreihe, die Variante H auswählte

Acht Varianten, jede ein vollständiger Pipeline-Lauf über den Korpus, mit Variation von Treuegewicht, Deckkraft der Rückeinfügung, Farbquelle und Kleingesicht-SR. Die Ausgaben wurden bei 100 % Zoom Seite an Seite mit den Originalen verglichen:

VarianteGewichtRückeinfügungFarbquelleKleingesicht-SR
A (damals aktuell)0,70100 %Modell
B0,90100 %Modell
C0,7070 %Modell
D0,70100 %Fotografie
E0,7075 %Fotografie
F0,8575 %Fotografie
G0,7050 %Fotografie
H (ausgewählt)0,7075 %Fotografieja

H wurde als Standard-Rendering ausgeliefert. Die Rückeinfügung nur über die Luminanz kostet weniger als eine halbe Sekunde pro Foto; der Kleingesicht-Durchgang kostet ein bis zwei Sekunden, und nur pro qualifizierendem Gesicht. Der ursprüngliche Abschnitt zu den Einschränkungen gab die offensichtliche Schwäche zu: Die Auswahl erfolgte nach menschlichem Urteil im Seite-an-Seite-Vergleich an 35 Gesichtern, nicht nach einer Metrik. Also haben wir die metrische Testreihe gebaut.

4 · Neu: die Ablation, quantifiziert

Eine Zahl rahmt alles ein: Der degradierte Input selbst erzielt 0,950 Identität gegenüber dem Original. ArcFace wurde unter starker Augmentierung trainiert, es sieht also durch Unschärfe und Rauschen hindurch; die Restaurierung bekommt deshalb keinen Bonus dafür, scharf zu sein; sie wird nur belastet, wenn sie verändert, wer auf dem Foto ist. Jeder Renderer zahlt einen Teil dieser Identitätssteuer. Die Frage ist, wie viel:

Rendering (alle bei w = 0,7)PSNR (dB)ArcFace-Id.IdentitätssteuerTenengrad-Verhältnis
Degradierter Input (Basislinie)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

Die metrische Testreihe stimmt mit den Augen überein, Regler für Regler. Das Chroma der Fotografie zu behalten, kauft +0,014 Identität (die Farbdrift war real, und messbar). Die 75-%-Überblendung kauft weitere +0,019 und den größten Teil des PSNR: ein Viertel des echten Gesichts durchscheinen zu lassen, ist fast so viel wert wie die gesamte Treue-Einstellung des Gesichtsmodells. Zusammen halbieren sie die Identitätssteuer, von −0,082 auf −0,041, bei immer noch etwa 1,4-facher Schärfe des Inputs. Der eine ehrliche Preis: Das klassische Rendering ist nach Tenengrad „schärfer“ (0,373 vs. 0,307), eine Schärfe, die es teilweise für Textur ausgibt, die nicht die der Fotografie ist. Das ist der Perception-Distortion-Tradeoff[6], ins Rendering verlagert, und wir geben ihn für Identität aus.

Vier Tafeln mit dem Gesicht von Florence Owens Thompson: scharfes Original, degradierte Kopie, das klassische Rendering mit Plastikhaut und verschobener Farbe und das natürliche Rendering, das Korn und Ton bewahrt
Abbildung 2. Die Ablation in Person: Migrant Mother (Lange 1936). Klassisch v2 (drittes Bild): Plastikhaut und ein Farbstich, den die Fotografie nie hatte. Natürlich (viertes Bild): die Details des Modells unter dem eigenen Korn und Ton der Fotografie. Identität: 0,868 vs. 0,909 gegenüber dem Original.
Vier Tafeln von Lincolns Porträt: Original, degradiert, das klassische Rendering mit kaltem Farbstich und das natürliche Rendering, das den warmen Plattenton behält
Abbildung 3. Dieselbe Ablation, Lincoln O-77 (1863). Das klassische Rendering (drittes Bild) entzieht der Platte ihren warmen Ton und kühlt das ganze Gesicht ab: Ursache 2, Farbdrift, auf einen Blick. Das natürliche Rendering behält die Farbe der Fotografie per Konstruktion: Das Modell darf nur Luminanz beisteuern.

5 · Der Treue-Regler, von Ende zu Ende durchfahren

CodeFormers Gewicht w steuert zwischen dem Prior des Codebuchs (0) und der Rücksicht auf deinen Input (1)[1]. Wir haben es unter dem natürlichen Renderer in elf Schritten durchfahren:

0.60.70.80.9100.250.50.71CodeFormer-Treuegewicht wArcFace-Kosinus vs. Originaldegradierter InputProduktion
Abbildung 4. ArcFace-Identität vs. Treuegewicht unter dem ausgelieferten Renderer, Mittel aus vier Porträts, ×4-Degradation. Monoton von 0,710 (ein plausibler Fremder) bis 0,932, und nie bis zur gestrichelten Input-Basislinie bei 0,950: Der Regler setzt den Satz der Identitätssteuer, er kann die Steuer nicht negativ machen. PSNR (25,5 → 27,3 dB) und SSIM sind auf dieselbe Weise monoton.

Wir gingen hinein und erwarteten eine Tradeoff-Kurve mit einem inneren Optimum, das 0,7 als „das Knie“ rechtfertigen würde. Die Daten verweigerten sich: Nach den Zahlen dominiert w = 1,0, bei jedem Schweregrad:

×2 (mild)×4 (standard)×8 (severe)
0.50.60.70.80.9100.30.50.71CodeFormer-Treuegewicht wArcFace-Kosinus vs. OriginalProduktion
Abbildung 5. Die Wechselwirkung mit dem Schweregrad: Identität vs. Gewicht bei ×2 / ×4 / ×8 Degradation, natürlicher Renderer. Höheres w gewinnt überall, selbst bei ×8, wo die Input-Basislinie selbst auf 0,826 gefallen ist. Bei der Produktionseinstellung beträgt die Identitätssteuer −0,042 (leicht), −0,041 (Standard), −0,068 (schwer); bei w = 0 erreicht sie −0,27: Wenn wenig Information überlebt, füllt der Prior das Vakuum mit seinen eigenen Meinungen.

Warum also 0,7 ausliefern statt 1,0? Weil die Metriken notwendig sind, nicht hinreichend. ArcFace misst, wer; für Alter und Textur ist es nahezu blind; dasselbe Training, das es robust gegen Unschärfe macht, macht es nachsichtig gegenüber Glättung. Die ursprüngliche Beobachtung der Testreihe steht auf eigenen Beinen: Beim üblichen Wert 0,5 des Modells werden die Krähenfüße auf Migrant Mother sichtbar weicher: Florence Owens Thompson war 32 und trug die Depression im Gesicht, und der Prior hätte es lieber, sie täte es nicht. Bei w = 1,0 gibt das Codebuch so weit einem ruinierten Input nach, dass Kompressionsmüll zu überleben beginnt. 0,7 behält fast den gesamten metrischen Wert (0,909 vs. 0,932), während die Bilder ihr Alter behalten. Und die s8-Tafel unten ist das Argument dafür, w bei beschädigten historischen Fotos nie in die Nähe von 0 zu lassen:

Drei Tafeln: stark degradierter Lincoln, ein fast unkenntliches glattes jüngeres Gesicht bei Gewicht null und eine engere Ähnlichkeit bei Gewicht eins
Abbildung 6. ×8-Degradation, Lincoln. Aus diesem Input (links) rekonstruiert w = 0 (Mitte) selbstbewusst einen glatteren, jüngeren, anderen Mann: Identität 0,585, nahe am Münzwurf. w = 1 (rechts) bleibt mit 0,788 erkennbar Lincoln. Wenn die Evidenz dünn ist, dominieren die Meinungen des Priors, genau dann, wenn man den Regler hoch haben will.

6 · Die anderen Modelle, derselbe Renderer

GesichtsmodellPSNR (dB)ArcFace-Id.Tenengrad-Verhältnisms / Gesicht*
CodeFormer (w = 0.7, default)27.090.9090.3077200
GFPGAN 1.427.130.9100.3286046
GPEN-BFR-25626.680.9270.3222633

*Median der Laufzeit des vollen Durchgangs (inklusive Erkennung) auf dem 2-vCPU-Testrechner. Unter dem natürlichen Renderer konvergieren die drei Modelle[1][2][3] auf 0,02 Identität zueinander: Der Renderer, nicht das Modell, ist jetzt der dominante Term, was selbst ein Befund ist: Der „Videospiel“-Look hatte nie wirklich damit zu tun, welches Netz man laufen lässt. CodeFormer bleibt der Standard wegen seiner Robustheit bei schweren Schäden und wegen des Reglers, dem diese Notiz gerade zwei Abschnitte gewidmet hat; GPEN bleibt mit 2,6 s pro Gesicht die Wahl für Geschwindigkeit.

7 · Einschränkungen

  • Die visuelle Testreihe umfasst 35 Gesichter; die metrische Testreihe 4 Porträts × 120 Läufe. Die monotonen Verläufe galten für jedes Porträt einzeln; das ist die Behauptung, auf die wir uns stützen; absolute Werte werden mit Motiv und Scan schwanken.
  • ArcFace ist ein einzelner Schiedsrichter, der Standard-Schiedsrichter, mit dem Vorbehalt der Unschärfetoleranz, den wir als Basislinie ausnutzen. Eine menschliche Wahrnehmungsstudie über Tausende von Gesichtern ist das fehlende Instrument, und die Beobachtung zu den Altersfalten beruht auf Augen, nicht auf Embeddings.
  • Synthetische Degradation. Echte Schuhkarton-Schäden bringen Kratzer und Versilberung mit, die der Korruptions-Stack nicht modelliert; die Schadensstufe behandelt diese separat.
  • Die Kleingesicht-Grenze bleibt bestehen: Unter etwa 40 px Gesicht erzeugt keine Einstellung ein originalgetreues scharfes Gesicht, und die ehrliche Ausgabe ist ein weiches.

Quellen

  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