InstantRestore for Core ML (Neural Engine, 6-bit palette) β€” non-commercial research only

A Core ML conversion of InstantRestore (Single-step personalized face restoration with shared-image attention, SIGGRAPH 2025; code, weights), a one-step face restoration model built on SD-Turbo that borrows detail from a reference face.

The iOS app Still (ν•œμ»·) downloads it on demand for an opt-in experiment in its developer menu. It is not part of the app's normal enhancement, and the app does not use it for any commercial purpose.

Restored detail is a prediction, not evidence of captured detail.

Files

Path Purpose
InstantRestoreReference.mlpackage/ Reference branch: encodes the reference face
InstantRestoreEncoder.mlpackage/ VAE encoder for the degraded face
InstantRestoreDenoiser.mlpackage/ One-step UNet with shared-image attention, one reference image
InstantRestoreDecoder.mlpackage/ VAE decoder
manifest.json Size and SHA-256 of every file in the four packages
LICENSE Creative Commons Attribution-NonCommercial 4.0 International

All four are ML Programs for iOS 18, FP16 compute, on aligned 512 Γ— 512 faces. The app's InstantRestorer.swift shows how they connect.

Measured on iPhone 14 Pro (A16, iOS 18.4), Neural Engine: 2.4–2.8 s and 216 MiB per face, of which about 1.2 s is computation. The first use compiles the packages on device in about 60 s.

Changes from the original weights

Modifications to the licensed material, indicated as Section 3(a)(1)(B) of CC BY-NC 4.0 requires. Starting from hwdz15508/InstantRestore:

  1. Converted from PyTorch to four Core ML ML Programs (reference, encoder, denoiser, decoder) with a fixed 512 px input and a single reference image. Two and more references did not load on the phone.
  2. Replaced torch.baddbmm and torch.empty in the attention with equivalent operations that convert. The scores are the same.
  3. Quantized weights to 6 bits with per-tensor k-means palettes (tensors over 2,048 weights). This reduces 3.4 GB to 1.4 GB. The outputs could not be told apart from the FP16 packages by measurement or by eye. 4-bit showed visible flaws.

The conversion scripts are in the app's repository (InstantRestorePhoneStudy: export.py, quantize.py).

License

The InstantRestore weights are Β© their authors and licensed under CC BY-NC 4.0 (LICENSE, https://creativecommons.org/licenses/by-nc/4.0/). This converted version is licensed under the same terms. Non-commercial use only. InstantRestore is built on SD-Turbo by Stability AI, whose license terms also apply to derivatives. This repository is not affiliated with or endorsed by the InstantRestore authors, Snap Inc. or Stability AI. No warranty is given.

Citation

@inproceedings{zhang2025instantrestore,
  title={Instantrestore: Single-step personalized face restoration with shared-image attention},
  author={Zhang, Howard and Alaluf, Yuval and Ma, Sizhuo and Kadambi, Achuta and Wang, Jian and Aberman, Kfir},
  booktitle={Proceedings of the Special Interest Group on Computer Graphics and Interactive Techniques Conference Conference Papers},
  year={2025}
}
Downloads last month
33
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for halfmoon-mind/still-instant-restore

Quantized
(1)
this model

Paper for halfmoon-mind/still-instant-restore