Transform your low-resolution images into stunning, high-quality, higher dpi images directly in your browser.
- 🖼️ AI-Powered Upscaling: Increase image resolution by 4x with no hallucination
- ⚡ Browser-Native: Runs entirely in your browser using ONNX Runtime Web
- 🎯 GPU Acceleration: Leverages WebGPU for lightning-fast processing
- 🧩 Tile-Based Processing: Handles large images efficiently with smart tiling
- 📱 Responsive Design: Works seamlessly on desktop and mobile devices
- 🔒 Privacy First: Your images never leave your device
The application uses an ML trained vision model trained for super-resolution tasks. See distillsr repo for more info.
When you upload an image:
- Image Analysis - The image is analyzed and divided into optimized tiles
- Processing - Each tile is processed through the neural network
- Smart Stitching - Tiles are seamlessly blended together with overlap handling
- 4x Upscaling - The result is a high-resolution image with enhanced details
- Frontend Framework: Vue.js with Composition API
- AI Inference: ONNX Runtime Web with WebGPU/WASM backends
- Styling: Beautiful, responsive design with Tailwind CSS
- Image Processing: Canvas API for pixel-perfect preview & comparison
- Routing: Vue Router
For dev...
- Node.js 20+
- npm (or better, pnpm)
- Modern browser with WebGPU support (optional but recommended)
# Clone the repository
git clone https://github.com/hirako2000/distillsr-web.git
# Navigate to project directory
cd distillsr-web
# Install dependencies
pnpm install # or npm
# Start development server
pnpm run devpnpm run build- Upload - Click & Select any image from your device, or drop it
- Process - Click to process and watch the magic happen
- Download - Save your enhanced image
There are things the model itself cannot do, so this is done on the browser. Nothing is done on a server, other than serving the static files.
- Dynamic tile sizing based on image dimensions
- Overlap handling to eliminate visible seams
- Progress tracking with percentage completion
- Small Images (< 512x512): 1-6 seconds
- Medium Images (512x512 - 1024x1024): 4-12 seconds
- Large Images (> 1024x1024): 10-20 seconds
Performance varies based on hardware and image complexity, and that's assuming GPUs enabled
Images greater than 1200px are scaled down before processing. It's an upscaler, so the output will be 4 times 1200x1200px for large drops.
| Browser | WebGPU | WebAssembly |
|---|---|---|
| Chrome | ✅ | ✅ |
| Brave | ✅ | ✅ |
| Edge 113+ | ? | ? |
| Firefox | ? | ? |
| Safari | ? | ? |
It may work on other browsers. But I admit I have no patience to see how Safari or IE would handle subtleties. If you raise an issue for those, I may respond to use a Chrome based browser such as Brave, or Vivaldi.
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
- Share — copy and redistribute the material in any medium or format
- Adapt — remix, transform, and build upon the material
-
Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
-
NonCommercial — You may not use the material for commercial purposes.
-
No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
For the complete license details, visit creativecommons.org/licenses/by-nc/4.0
| Permissions | Restrictions |
|---|---|
| ✓ Sharing | ✗ Commercial use |
| ✓ Adaptation | ✗ Additional restrictions |
| ✓ Modification | All you want |
- Built with the amazing ONNX Runtime Web library
- Inspired by the need for privacy-focused, client-side AI tools
Made with ❤️ for the open-source community
⭐ Star this repository if you find it useful!
