|
Download README.md from toolsmonk/lama-webgpu: direct link, hf CLI and curl.
- Browser
- Download file 1.94 kB
-
https://huggingface.co/toolsmonk/lama-webgpu/resolve/main/README.md
- Command line
-
hf download hf://toolsmonk/lama-webgpu/README.md
-
curl -L -o README.md https://huggingface.co/toolsmonk/lama-webgpu/resolve/main/README.md
1.94 kB
| license: apache-2.0 | |
| library_name: onnxruntime | |
| pipeline_tag: image-to-image | |
| tags: | |
| - inpainting | |
| - object-removal | |
| - lama | |
| - onnx | |
| - webgpu | |
| # LaMa inpainting, WebGPU-ready ONNX | |
| LaMa ("Resolution-robust Large Mask Inpainting with Fourier Convolutions", Suvorov et al., WACV 2022) | |
| as a single fp32 ONNX graph that runs on **onnxruntime-web's WebGPU execution provider**. It is used by | |
| the on-device AI eraser of the ToolsMonk Photo Editor and Background Remover. | |
| ## Why this build exists | |
| The published LaMa ONNX exports run in the browser on WASM only. On WebGPU (onnxruntime-web 1.30) every | |
| run fails inside the Fourier unit ("Failed to run JSEP kernel"). This file is the same model with three | |
| **numerically equivalent** graph rewrites: | |
| 1. constant folding at a fixed batch of 1, so the DFT matrices the export builds at run time become constants; | |
| 2. every `Einsum` (`ij,jk->ik`, 216 nodes) rewritten as `MatMul`; | |
| 3. every negative-step `Slice` (72 nodes) rewritten as `Gather` with constant reversed indices. | |
| Maximum output difference against the source on a 512x512 test input: 0.00026 on the 0..255 scale. | |
| Measured in Chrome: ~1.7-2.2 s per 512x512 inpaint on WebGPU, against ~30 s on single-threaded WASM. | |
| ## Inputs and outputs | |
| - `image`: float32 `[1, 3, 512, 512]`, RGB in 0..1 | |
| - `mask`: float32 `[1, 1, 512, 512]`, 1 = area to fill, 0 = keep | |
| - `output`: float32 `[1, 3, 512, 512]`, RGB in 0..255 | |
| ## Provenance and licence | |
| - Model: [advimman/lama](https://github.com/advimman/lama), Apache-2.0. | |
| - Source ONNX: [Carve/LaMa-ONNX](https://huggingface.co/Carve/LaMa-ONNX) `lama_fp32.onnx`, Apache-2.0 | |
| (sha256 `1faef5301d78db7dda502fe59966957ec4b79dd64e16f03ed96913c7a4eb68d6`). | |
| - Conversion script: `build-lama-webgpu.py` in this repository (requires `onnx`, `onnxruntime`, `numpy`). | |
| This derivative is distributed under the same Apache-2.0 licence. The rewrites change the graph's | |
| structure, not its weights. | |