Inpainting and Upscaling in the Browser: No Server, No Upload, No Problem
You've got a photo with an unwanted object in it, or maybe an old image that's looking a bit soft. The usual move is to find some web service, upload your file, wait for it to process on someone else's server, and hope they don't do anything weird with your data. What if you could do all of that locally, right in your browser, without sending a single byte anywhere? That's the idea behind Inpaint-web, an open-source tool that brings inpainting and image upscaling to the browser using WebGPU and WASM.
What It Does
Inpaint-web is a free, open-source inpainting and image-upscaling tool that runs entirely in your browser. Inpainting, if you're not familiar, is the process of removing unwanted elements from an image and filling in the gap with something that looks natural. Upscaling, or super-resolution, is exactly what it sounds like — taking a low-resolution image and making it bigger while trying to preserve or even improve detail.
The project is built on WebGPU and WASM, which is what allows it to do this kind of heavy lifting client-side. No backend, no uploads, no waiting for a remote server. The frontend code is adapted from cleanup.pictures, and the underlying model comes from Picsart AI Research's MI-GAN. It's a nice combination of proven UI patterns and a solid research model, all packaged into something you can run locally.
There's a live demo available at inpaintweb.lxfater.com if you want to see it in action before diving into the code.
Why It's Cool
-
It runs entirely in your browser. This is the headline feature, and it's not just a technical curiosity. It means your images never leave your machine. For anyone working with sensitive or personal photos, that's a meaningful difference from the typical cloud-based alternative. You don't have to trust a third party with your files because there's no third party involved.
-
WebGPU and WASM together. WebGPU is still relatively new territory for a lot of developers, and seeing it used in a practical, real-world application like this is genuinely useful. It's one thing to read about the spec; it's another to see a working implementation you can learn from. The WASM side handles the model inference, and WebGPU accelerates the parts that benefit from GPU compute.
-
A clear roadmap with real substance. The project has already checked off image modification history, model optimization, integrated post-processing, and image upscaling. What's still on the list is arguably more interesting: integrating Segment Anything for quick selection and removal, and Stable Diffusion for image replacement. Those are ambitious goals, and if they land, this becomes a much more powerful tool. Even as-is, the current feature set is solid.
-
It's honest about its lineage. The README credits cleanup.pictures for the frontend and MI-GAN for the model. That kind of transparency is refreshing. You know exactly what you're building on and where to look if you want to understand the underlying pieces.
-
Simple setup. Two commands. That's it.
npm installandnpm run start. No complex build pipeline, no Docker, no environment variables to configure. For a project dealing with GPU compute and machine learning models, that's remarkably approachable.
How to Try It
The quickest way to see what it can do is to head over to the demo link:
https://inpaintweb.lxfater.com/
If you want to run it locally or contribute, clone the repository and install the dependencies:
git clone https://github.com/lxfater/inpaint-web
cd inpaint-web
npm install
Then start the development server:
npm run start
That's the whole setup. From there you can open the app in your browser, load an image, and start experimenting with inpainting and upscaling. The project also has translations set up through inlang's Fink editor, so if you're interested in localization, there's a clear path to contribute there as well.
You can find the full repository at github.com/lxfater/inpaint-web.
Final Thoughts
Inpaint-web is a practical, well-scoped tool that does two things and does them without asking you to upload your images to a server. It's not trying to be Photoshop, and it's not pretending to be. If you need to quickly remove an object from a photo or upscale something without leaving your browser, this is a solid option. If you're a developer curious about WebGPU or running ML models client-side, the codebase is worth a look — especially with Segment Anything and Stable Diffusion integration on the roadmap. The project is actively maintained, the setup is trivial, and the demo is right there if you want to kick the tires first.
Follow @githubprojects for more developer tools and open source projects.