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:
- 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.
- Replaced
torch.baddbmmandtorch.emptyin the attention with equivalent operations that convert. The scores are the same. - 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
Model tree for halfmoon-mind/still-instant-restore
Base model
hwdz15508/InstantRestore