ECCV 2026

ID-PreFeR

ID-Preserving Face Restoration with Mixed Data Quality

Give the model a few of the person's own photos — some sharp, some not. It learns who they are from all of them, and separately learns how each one was degraded, so that part can be discarded at restoration time.

1Peking University  ·  2vivo BlueImage Lab  ·  3Ant Group  ·  4National Institute of Informatics, Japan
Work done during an internship at vivo  ·  *Corresponding authors

A severely degraded photograph of a face. The same photograph restored by ID-PreFeR. What it was given ID-PreFeR
A sharp reference photo of the same person.
HQ
A blurred reference photo of the same person.
LQ
A dark, blurred reference photo of the same person.
LQ
A soft, low-resolution reference photo of the same person.
LQ
A blurred reference photo of the same person.
LQ
The five photos it learned from. One is sharp; four are not. No other information about this person is used — no captions, no extra data, no curated regularization set.

The problem

Sharpen a ruined photo and the identity drifts away.

A degraded face is consistent with many plausible sharp faces. A restorer that does not know who it is looking at will produce a convincing one, and it will not be the right person. The obvious fix is to show it other photos of the person — but the methods that do this either need a sharp reference to work from, or hours of training and hundreds of megabytes per person.

One input, many faces

Restoration is ill-posed. Generative priors fill in detail that is convincing in general but wrong in particular: the eyes, the corners of the mouth, the shape of a nose all drift toward a population average instead of a specific person.

Personalization is expensive

Tuning a diffusion model per identity normally means a regularization image set to keep it from forgetting everything else, long training, and a large checkpoint stored for every person you care about.

Your other photos are bad too

Reference-based restorers assume clean references. A real phone album rarely has them. Methods that rely on a sharp reference lose most of their advantage when the album contains only one.

Three panels — blurring, noise and resolution loss. In each, identity similarity is plotted against degradation strength for ID-PreFeR, a reference-free restorer and the raw input, above a grid of example restorations.
Fig. 1As blur, noise or downsampling gets worse, a reference-free restorer’s identity score falls away from the truth while ID-PreFeR stays flat. The three degradations are swept independently.

Measured against the degraded input itself

ArcFace1 similarity to the real person, on CelebRef2. The dashed line is not a baseline we chose — it is the score the degraded input itself gets. Bars to its right are restorers that made the identity more recognisable; bars to its left made it less. Five of the ten prior methods never get past the line.

scroll the chart →

0.45 0.55 0.65 0.75 0.613 — what the ruined input already scores Made it worse InstantRestore +0.156 ID-PreFeR +0.154 FaceMe +0.091 ReF-LDM +0.082 AuthFace +0.036 DMDNet +0.022 GFPGAN ±0.000 CodeFormer -0.027 DiffBIR -0.051 RestorerID -0.091 Gen2Res -0.167

A restorer that returns a sharp, plausible, slightly different person scores worse on identity than the blurred original it replaced. ID-PreFeR gains +0.154; FaceMe, the strongest prior method that also reads mixed-quality references, gains 0.091; Gen2Res loses 0.167.

no reference photos needs sharp reference photos reads mixed-quality references

What it asks for

Five photos of the person, not all of them sharp.

Every reference-based method here is given the same album. What differs is what happens as the sharp photos are taken out of it. Methods that need a clean reference degrade with the album; ID-PreFeR barely changes, because it has learned the degradation as a separate, discardable component.

scroll the chart →

Identity match · ArcFace cosine0.600.650.700.750.55+0.19ID-PreFeR0.7670.761FaceMeGen2Res531sharp reference photos in the album, out of five

Switch the album and compare the row. All restorers see the same degraded input.

The degraded input photograph.
Inputwhat it must restore
The album of five reference photos, with the sharp ones marked.
The albumreferences supplied
DMDNet's restoration.
DMDNetneeds sharp refs
FaceMe's restoration.
FaceMereads mixed refs
Gen2Res's restoration.
Gen2Resreads mixed refs
ID-PreFeR's restoration.
ID-PreFeRreads mixed refs

From Fig. 4 of the paper. Ground truth for this identity: view the reference photograph.

The approach

Learn who they are, learn how badly they were photographed, then throw the second part away.

Three components, each inexpensive. A rank-16 adapter on the decoder's cross-attention is the only part that is trained — 6.41 M parameters, 0.25% of SDXL3, about 13 MB in FP16. A second, frozen copy of the same backbone provides the regularization target, so no extra images are collected. At sampling time, the predicted noise is nudged toward the face in the reference, once per step over the last few steps.

The ID-PreFeR pipeline. Left: training, where reference images labelled HQ or LQ drive a LoRA on the SDXL decoder's cross-attention under a diffusion loss and a latent prior loss against the frozen backbone. Right: inference, where the degraded input conditions the frozen backbone plus the stored adapter, with identity-preserving sampling on the last steps.
Fig. 3Training, then inference. Everything drawn in outline is frozen; only the adapter and the three prompt tokens are trained.
Training · the adapter

One adapter per person, and no regularization images to collect.

A LoRA4 of rank 16 (α = 16) is attached to the cross-attention layers of the U-Net decoder only, and trained on the reference set with the diffusion loss. Nothing else in the backbone is updated.

Fine-tuning a diffusion model on five photos of one person causes language drift: the model forgets how to render anything else. DreamBooth5-style fixes address this with a collected set of class images. We collect nothing. Instead, the same backbone, frozen, is run a second time on the class prompt — a face instead of a [V] face — and its noise prediction becomes the target.

reg = εθ(zt, t, τ(y*)) − εθ*(zt, t, τ(y*))2 The same noisy latent and the same class prompt, pushed through the tuned network and the frozen copy. Regularizing on the predicted noise rather than on attention maps or text embeddings keeps the constraint in the latent domain, where distance tracks pixel error.
6.41 M trainable 0.25% of SDXL ≈13 MB, FP16 500 steps no regularization set
Identity prompt a [Q] [V] face U-Net θ (z_t, t) encoder mid LoRA r=16 decoder cross-attention Prior prompt a face the same θ*, frozen no LoRA · no updates L_diff predict the added noise L_reg stay close to the frozen twin
Two passes, one backbone. The dashed path is frozen and carries no gradient.
Training · the objective

Give “badly photographed” its own word, then delete the word.

An MLLM labels each reference HQ or LQ. Two learnable quality tokens — [QHQ] and [QLQ], initialised from the embeddings of sharp and blurry — are trained alongside the identity token in prompts of the form a [Q] [V] face. At inference the quality tokens are dropped. Whatever the degradation explained leaves with them; [V] retains only what all five photos agree on.

A subtler version of the same problem remains. Write an LQ reference as the shared identity latent plus a per-photo residual, zLQ(i) = zHQ + εdeg(i), and the forward process folds that residual into the noise the network is asked to predict:

zt = √ᾱt zHQ + √(1−ᾱt) (ε + ωtεdeg), ωt = (ᾱt / (1−ᾱt))1/2 At high timesteps ωt → 0 and the degradation term is negligible next to ε. The damage is done at low timesteps, where the SNR ωt2 is high and the term is loudest — exactly where the adapter would otherwise learn to reproduce the blur.
LDM = min(γ · ωt−2, 1) · εεθ(zt, t, τ(y))2 Min-SNR-γ6 weighting, γ = 5 (swept over {1, 2, 5, 10}), caps the loss precisely where the SNR exceeds γ — the clean end of the schedule.
2 quality tokens dropped at inference MLLM label: HQ / LQ Min-SNR-γ, γ = 5
Five references · labelled by an MLLM HQLQHQLQHQ a [Q] [V] face [V] who this is kept [Q] how it looked dropped
Five references, split by quality. One token keeps the person; the other absorbs the damage and is discarded.
The denoising schedulelearned as usualhigh SNR here — the degradation termis loudest, so the loss weight drops to γ/SNRγ = 5 · wherever SNR > γt = 0 · nearly cleant = T · pure noise
Sampling · the guidance

Then aim the last few steps at the face itself.

Late in denoising, decode a one-step preview of the latent, measure ArcFace cosine similarity against a chosen reference, and take a single gradient-ascent step on the predicted noise. The reference used is the one closest to the input in face-embedding space, or the best HQ reference when one exists.

ε(k+1) = ε(k) + δ ∇ε fface(D((ε(k)))), fface(xref) KID = 1, δ = 0.05, applied only to the last few steps. The gradient runs back through the VAE decoder and the frozen recognition network; the diffusion prior still governs the synthesis.

It is the most expensive component and the easiest to remove: disabling it cuts inference from 29.0 s to 5.6 s and VRAM from 34.8 GB to 24 GB, at a cost of 0.033 identity.

KID = 1 δ = 0.05 last steps only frozen ArcFace optional
Last few denoising steps the degraded photo, via ControlNet ε VAE-decode a preview of the face it implies frozen ArcFace: is this the person in the reference? push ε up this gradient — one step, δ = 0.05
One gradient step per denoising step, through the decoder and the frozen face network.

Qualitative

Drag the handle. The restored face is still theirs.

Eight cases, six restorers, and the same degraded input on the left of every handle. The first four are CelebRef portraits degraded by the shared evaluation pipeline, so ground truth exists. The last four are in-the-wild photographs — two from the internet, two captured on a phone — where the only thing to check against is the person’s other photos.

The degraded input photograph. The restored photograph produced by the selected method. Input ID-PreFeR
The album it read The five reference photographs supplied for this identity.

Five references. The framed one is the photo chosen for identity-preserving sampling.

Ground truth The undegraded photograph.
Case
Restored by

Panels are taken unaltered from Figs. 5 and 6 of the paper. Every method sees the same input and, where it accepts them, the same references.

Five of ten published restorers do no better on identity than the degraded input they were handed.

CelebRef · ArcFace cosine · Table 1

Benchmarks

Everyone else trades identity against quality. The corner where both hold was empty.

Two axes, both from Table 1: how well a restoration matches the real person, and how good the image looks on its own. Sharpen aggressively and identity suffers; protect identity and the image stays soft. No prior method reached 0.70 identity and 0.60 quality at the same time.

scroll the chart →

identity 0.70+ · quality 0.60+0.350.450.550.650.450.550.650.75the degraded input already scores 0.613Gen2ResCodeFormerGFPGANDiffBIRAuthFaceDMDNetFaceMeInstantRestoreRestorerIDReF-LDMID-PreFeR0.767 identity · 0.649 qualityidentity match to the real person (ArcFace cosine) →image quality (MANIQA) →

Table 1 Marker shape shows what each method requires: ◆ no reference photos, ● sharp references, ■ mixed-quality references. Quality is MANIQA; identity is ArcFace cosine against the ground-truth portrait.

CelebRef — ten prior methods, one degradation pipeline

◆ no refs  ● sharp refs  ■ mixed refs  ·  best second
Quantitative comparison on CelebRef
Method Reads PSNR ↑ SSIM ↑ LPIPS7 CLIPIQA8 MANIQA9 Identity ↑
GFPGAN1025.500.7480.3010.5030.4490.613
CodeFormer1125.070.7260.3880.5980.4290.586
DiffBIR1225.290.6900.4010.6150.5040.562
AuthFace1325.320.6830.2940.6990.6430.649
DMDNet225.040.7120.3160.6130.4910.635
FaceMe1425.820.7240.2650.6460.5040.704
Gen2Res1524.300.7480.4240.4910.3310.446
InstantRestore1624.650.7220.2970.5610.4880.769
RestorerID1722.720.6360.4340.7170.5740.522
ReF-LDM1823.580.6760.2440.6690.5620.695
ID-PreFeR25.510.7290.2420.7010.6490.767
The degraded input24.580.7140.6720.3090.1440.613
The real photograph1.0000.0000.6500.5461.000

The last two rows are not methods: they are the degraded input and the ground-truth photograph, included so that every column has a floor and a ceiling. Note where the input already sits on identity — 0.613 — and that ID-PreFeR is the only row that is best or second on all six metrics — two firsts and four seconds. No other method is placed twice.

On photographs nobody degraded on purpose

The synthetic benchmark controls the degradation; real phone photographs do not. Blur, noise and compression arrive together, and there is no clean original to score against. We therefore measure identity twice — once with a face recognizer, and once with a vision–language judge asked how much the restored face still looks like the person — because ArcFace embeddings themselves become unreliable under heavy mixed degradation.

Real-world mobile captures — no ground truth exists

identity scored twice  ·  best second
Method Reads LIQE19 CLIPIQA ↑ MANIQA ↑ ArcFace ↑ VLM judge ↑
Gen2Res3.84910.62030.63750.50137.10
FaceMe4.59240.55030.51730.57507.62
InstantRestore4.07220.50720.43070.60936.84
RestorerID4.30600.74040.55940.56215.74
ReF-LDM4.89250.67570.57570.59698.86
ID-PreFeR4.89270.68500.65280.59728.92

LIQE separates ID-PreFeR from ReF-LDM by 0.0002, effectively a tie; both are at the top, and the two identity measures agree on which one preserves the person better. The judge is Gemini 3 Pro, rating 1–10 against a held-out photo of the same person. Per-sample ArcFace spread is comparable across the field — 0.0192 for ID-PreFeR, 0.0181 to 0.0210 for the rest — so the ordering is not an artefact of one lucky subject.

Take one away

Each component fails in its own way, and the failure is visible.

The three components together account for the same 6.41 M parameters, so the ablations are not a size argument. They are a behaviour argument: remove a component, and the failure it was holding back returns — each with its own signature.

As the sharp photos are removed from the album, the ablated models degrade faster than the complete one. Each panel shows a face with a detail crop below it.

Without the latent prior loss

Colour drifts — usually toward magenta — and small facial artefacts appear. This is the adapter forgetting what faces look like in general while it learns what this face looks like in particular. The drift gets worse as sharp references grow scarcer.

The degraded input.
The input
Restoration without the latent prior loss, showing a magenta colour cast.
W/o prior loss
The complete ID-PreFeR restoration.
Complete model
The ground-truth photograph.
Ground truth

Without ID–quality disentanglement

Without the quality tokens and the Min-SNR-γ cap, the model has no way to tell “this is what she looks like” from “this photo was taken badly,” and it learns both. The results become visibly blurrier, most strongly when almost every reference is degraded. The identity score barely moves — this component buys detail, not recognisability.

The degraded input.
The input
Restoration without ID-quality disentanglement, visibly blurrier.
W/o disentanglement
The complete ID-PreFeR restoration.
Complete model
The ground-truth photograph.
Ground truth

Without ID-preserving sampling

The face stays sharp and plausible, but the details that make it this person go soft — iris colour is the easiest to spot. This is the single largest identity component: 0.767 drops to 0.734. It is also the most expensive one, which is worth stating plainly.

The degraded input.
The input
Restoration without identity-preserving sampling; iris colour drifts.
W/o ID sampling
The complete ID-PreFeR restoration.
Complete model
The ground-truth photograph.
Ground truth

Fig. 4 Rows one to three of the paper’s ablation figure, split so each variant can be compared against the complete model at the same reference budget.

The same ablations, counted

CelebRef  ·  best second
VariantParamsPSNR ↑ SSIM ↑LPIPS ↓ CLIPIQA ↑MANIQA ↑ Identity ↑
W/o prior preservation6.41 M25.520.7310.2450.6990.6240.746
W/o ID–quality disent.6.41 M25.570.6980.2790.6740.5550.766
W/o ID-preserving samp.6.41 M25.070.6960.2810.6660.5540.734
LoRA on all cross-attention11.82 M25.340.7090.2890.6210.4890.745
LoRA on all attention12.57 M25.450.7200.2900.5990.4720.756
ID-PreFeR, complete6.41 M25.510.7290.2420.7010.6490.767

The two grey rows are the opposite experiment: spending more parameters by placing the LoRA on every cross-attention layer, or on every attention layer. Both are roughly twice the size, and both score worse on perceptual quality and identity than the decoder-only adapter. PSNR and SSIM disagree with the perceptual metrics here, as they often do7 — the identity column is what the method is for.

Identity as the album degrades

five references throughout, only the sharp count changes
MethodID, 5 sharpID, 3 sharp ID, 1 sharpTrain InferenceVRAM
Gen2Res0.55760.56010.567611.4 min8.9 s3.26 GB
FaceMe0.57120.57220.5688tuning-free6.6 s10.78 GB
ID-PreFeR0.76710.76410.76134.2 min29.0 s34.8 GB
… w/o ID–quality disent.0.76640.76310.76324.2 min29.2 s34.8 GB
… w/o ID-preserving samp.0.73380.73250.73174.3 min5.6 s24 GB

At the hardest setting, the disentanglement-free variant actually edges the full model out on identity, 0.7632 against 0.7613. We report it as is, because it shows what the component is for: disentanglement buys perceptual quality when sharp references are scarce, not the identity number itself. The two prior methods stay near 0.57 regardless of how many sharp photos they are given.

What it costs

Four minutes per person, thirteen megabytes to keep.

Per-person tuning is the part one expects to be expensive, so it is worth being precise about. The adapter is small enough to store next to the album, and quick enough to train while the phone is on the charger.

4.2 min
To learn one person

500 steps at batch 4 on a single GPU. Gen2Res, the other per-person method in Table 4, needs 11.4 min.

6.41 M
Trainable parameters

0.25% of SDXL3. The backbone is never updated, so a single copy of it serves every person you enrol.

13 MB
Stored per identity

FP16. That is the whole personal footprint — a rank-16 adapter plus a handful of learned tokens, small enough to sit beside the photos it came from.

29.0 s
To restore one photo

5.6 s if you drop identity-preserving sampling, which also drops identity from 0.767 to 0.734. The extra 23 seconds are what recover details like iris colour.

The number that is not flattering

Peak VRAM is 34.8 GB, against 3.26 GB for Gen2Res and 10.78 GB for FaceMe. Identity-preserving sampling is the reason: it differentiates the face-recognition score through the VAE decoder, so the graph for a decoded latent must be held in memory. Disabling it brings the requirement down to 24 GB and the latency to 5.6 s, at a real cost in identity. As it stands, this is a server-side method, and the guidance step is the first thing to optimize if that has to change.

Where it breaks

It learns what the references share. Anything they disagree about, it averages away.

This is the mechanism working as designed, but it has an edge case users will hit. When the references differ in makeup, jewellery, or glasses, those features cancel out during training — the adapter keeps only the shared identity. ID-PreFeR may then vary in exactly those attributes rather than follow any single reference.

Filter the set

Restrict the references to a consistent look before training. The cheapest fix, though it costs references you may have wanted to keep.

Mask the accessories

Exclude jewellery and non-facial regions from the loss so they never enter the average in the first place.

Caption them

Describe the varying attributes in each reference’s prompt, so they are conditioned on explicitly instead of averaged away.

All three are partial mitigations. A thorough study is left to future work.

References cited on this page
  1. Deng, J., Guo, J., Niannan, X., Zafeiriou, S.: ArcFace: additive angular margin loss for deep face recognition. CVPR (2019)
  2. Li, X., Zhang, S., Zhou, S., Zhang, L., Zuo, W.: Learning dual memory dictionaries for blind face restoration. TPAMI (2022)
  3. Podell, D., English, Z., Lacey, K., Blattmann, A., Dockhorn, T., Müller, J., Penna, J., Rombach, R.: SDXL: improving latent diffusion models for high-resolution image synthesis. arXiv:2307.01952 (2023)
  4. Hu, E.J., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., Wang, L., Chen, W.: LoRA: low-rank adaptation of large language models. arXiv:2106.09685 (2021)
  5. Ruiz, N., Li, Y., Jampani, V., Pritch, Y., Rubinstein, M., Aberman, K.: DreamBooth: fine tuning text-to-image diffusion models for subject-driven generation. CVPR (2023)
  6. Hang, T., Gu, S., Li, C., Bao, J., Chen, D., Hu, H., Geng, X., Guo, B.: Efficient diffusion training via Min-SNR weighting strategy. ICCV (2023)
  7. Zhang, R., Isola, P., Efros, A.A., Shechtman, E., Wang, O.: The unreasonable effectiveness of deep features as a perceptual metric. CVPR (2018)
  8. Wang, J., Chan, K.C.K., Loy, C.C.: Exploring CLIP for assessing the look and feel of images. AAAI (2023)
  9. Yang, S., Wu, T., Shi, S., Lao, S., Gong, Y., Cao, M., Wang, J., Yang, Y.: MANIQA: multi-dimension attention network for no-reference image quality assessment. CVPR (2022)
  10. Wang, X., Li, Y., Zhang, H., Shan, Y.: Towards real-world blind face restoration with generative facial prior. CVPR (2021)
  11. Zhou, S., Chan, K.C.K., Li, C., Loy, C.C.: Towards robust blind face restoration with codebook lookup transformer. NeurIPS (2022)
  12. Lin, X., He, J., Chen, Z., Lyu, Z., Dai, B., Yu, F., Qiao, Y., Ouyang, W., Dong, C.: DiffBIR: toward blind image restoration with generative diffusion prior. ECCV (2024)
  13. Liang, G., Fan, Q., Fu, B., Chen, J., Gu, H., Wang, L.: AuthFace: towards authentic blind face restoration with face-oriented generative diffusion prior. arXiv:2410.09864 (2024)
  14. Liu, S., Duan, Z.-P., OuYang, J., Fu, J., Park, H., Liu, Z., Guo, C., Li, C.: FaceMe: robust blind face restoration with personal identification. AAAI (2025)
  15. Ding, Z., Zhang, X., Tu, Z., Xia, Z.: Restoration by generation with constrained priors. CVPR (2024)
  16. Zhang, H., Alaluf, Y., Ma, S., Kadambi, A., Wang, J., Aberman, K.: InstantRestore: single-step personalized face restoration with shared-image attention. SIGGRAPH (2025)
  17. Ying, J., Liu, M., Wu, Z., Zhang, R., Yu, Z., Fu, S., Cao, S.-Y., Wu, C., Yu, Y., Shen, H.-L.: RestorerID: towards tuning-free face restoration with ID preservation. arXiv:2411.14125 (2024)
  18. Hsiao, C.-W., Liu, Y.-L., Yang, C.-K., Kuo, S.-P., Jou, K., Chen, C.-P.: ReF-LDM: a latent diffusion model for reference-based face image restoration. NeurIPS (2024)
  19. Zhang, W., Zhai, G., Wei, Y., Yang, X., Ma, K.: Blind image quality assessment via vision-language correspondence: a multitask learning perspective. CVPR (2023)

Cite

ID-PreFeR

ID-Preserving Face Restoration with Mixed Data Quality. European Conference on Computer Vision (ECCV), 2026.

@inproceedings{zhu2026idprefer,
  title     = {{ID-PreFeR}: {ID}-Preserving Face Restoration with Mixed Data Quality},
  author    = {Zhu, Chengxuan and Hong, Yuchen and Zhang, Qi and Fu, Bingtao and
               Liang, Jinxiu and Chen, Jinwei and Zhang, Huaqi and Xu, Chao and
               Shi, Boxin and Fan, Qingnan},
  booktitle = {European Conference on Computer Vision (ECCV)},
  year      = {2026}
}