Add README.md
Browse files
README.md
CHANGED
|
@@ -1,3 +1,52 @@
|
|
| 1 |
---
|
| 2 |
-
license:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
base_model:
|
| 4 |
+
- hustvl/Moebius
|
| 5 |
+
tags:
|
| 6 |
+
- executorch
|
| 7 |
+
- react-native
|
| 8 |
+
- on-device
|
| 9 |
+
- inpainting
|
| 10 |
+
- coreml
|
| 11 |
+
- xnnpack
|
| 12 |
---
|
| 13 |
+
|
| 14 |
+
# react-native-executorch demo models
|
| 15 |
+
|
| 16 |
+
ExecuTorch exports of models used in [react-native-executorch](https://github.com/software-mansion/react-native-executorch) demo apps.
|
| 17 |
+
|
| 18 |
+
## moebius-eraser
|
| 19 |
+
|
| 20 |
+
[Moebius](https://github.com/hustvl/Moebius) (Duan and Xu et al., ECCV 2026), a 0.22B latent-diffusion inpainting model from HUST and VIVO AI Lab, exported to ExecuTorch for on-device object removal.
|
| 21 |
+
|
| 22 |
+
| file | backend | precision | size |
|
| 23 |
+
|---|---|---|---|
|
| 24 |
+
| `moebius-eraser/coreml/moebius_vae_encoder.pte` | CoreML | fp16 | 69 MB |
|
| 25 |
+
| `moebius-eraser/coreml/moebius_unet.pte` | CoreML | fp16 | 447 MB |
|
| 26 |
+
| `moebius-eraser/coreml/moebius_vae_decoder.pte` | CoreML | fp16 | 100 MB |
|
| 27 |
+
| `moebius-eraser/xnnpack/moebius_vae_encoder.pte` | XNNPACK | fp32 | 137 MB |
|
| 28 |
+
| `moebius-eraser/xnnpack/moebius_unet.pte` | XNNPACK | fp32 | 905 MB |
|
| 29 |
+
| `moebius-eraser/xnnpack/moebius_vae_decoder.pte` | XNNPACK | fp32 | 198 MB |
|
| 30 |
+
|
| 31 |
+
The three graphs are meant to be driven by a DDIM sampling loop on the JavaScript side.
|
| 32 |
+
|
| 33 |
+
- `moebius_vae_encoder`: `(1,3,512,512)` image in [-1,1] -> `(1,4,64,64)` latents, already scaled by 0.13025
|
| 34 |
+
- `moebius_unet`: `(noisy_latents, mask64, masked_latents, timestep, guidance)` -> `(1,4,64,64)` predicted noise. Classifier-free guidance is baked into the graph as an internal batch of 2, so one call per denoising step.
|
| 35 |
+
- `moebius_vae_decoder`: `(1,4,64,64)` latents -> `(1,3,512,512)` image in [0,1]
|
| 36 |
+
|
| 37 |
+
Spatial dimensions are static at 512x512 (64x64 latent): the cross-attention positional embedding is a learned parameter tied to the training resolution.
|
| 38 |
+
|
| 39 |
+
Reference implementation, export script and sampler: [magic-eraser demo app](https://github.com/nklockiewicz/magic-eraser).
|
| 40 |
+
|
| 41 |
+
## License and credit
|
| 42 |
+
|
| 43 |
+
Moebius weights and code are Apache 2.0, and these exports inherit that license. The VAE comes from [PixelHacker](https://huggingface.co/hustvl/PixelHacker) by the same authors.
|
| 44 |
+
|
| 45 |
+
```
|
| 46 |
+
@inproceedings{DuanAndXu2026Moebius,
|
| 47 |
+
title={Moebius: 0.2B Lightweight Image Inpainting Framework with 10B-Level Performance},
|
| 48 |
+
author={Kangsheng Duan and Ziyang Xu and Wenyu Liu and Xiaohu Ruan and Xiaoxin Chen and Xinggang Wang},
|
| 49 |
+
year={2026},
|
| 50 |
+
booktitle={European Conference on Computer Vision (ECCV)}
|
| 51 |
+
}
|
| 52 |
+
```
|