Bring me the pic.
Images are decoded, processed and written entirely on this device. Nothing is uploaded — not the file, not the name, not a thumbnail.
Drop images here
Checking which formats this browser can decode…
Quick Start
Status
Recent Projects
Batch Queue
Per-image overrides survive batch operations. A failed job stays until you deal with it.
| Preview | Filename | Input | Output | Preset | Model | Backend | Status | Progress | Duration | Out size | Actions |
|---|
Queue is empty
Add images, then send them here from the editor or with Process All.
Export
Completed outputs only. Nothing is written until you choose a destination.
Destination
Settings Summary
Completed Outputs
—Nothing to export yet
Completed results appear here with their real dimensions and encoded size.
Model Manager
Two compact neural models are bundled with the app. Imported HPSR and ONNX files are stored for inspection only.
Settings
Everything here is stored locally and survives a reload.
General
Performance
Storage
Export Defaults
Interface
Privacy
There is no telemetry or analytics code in this application. Not disabled — absent. No image, filename, thumbnail, setting or diagnostic is transmitted anywhere.
Full copies store your source images in this browser's storage. The default keeps thumbnails and settings only.
Developer
Diagnostics
Everything below is probed on this device. Exports exclude image contents, and exclude filenames unless you opt in.
Unimplemented Adapters
Log
0 entriesHelp
What this does, what it cannot do, and what it never does.
A limitation worth reading
AI upscaling estimates missing detail. It cannot reliably reconstruct information that was never captured, and stronger restoration settings can create plausible but inaccurate textures. If the result matters — evidence, medical, archival, identification — treat every invented pixel as invented.
Getting Started
Import an image, pick a preset, press Process. The interface, runtime, and two release models are bundled together, so processing works locally without a model download.
Importing Images
Drag files onto the window, use Open Images, choose a folder where your browser supports it, or paste with Ctrl/Cmd+V. Accepted formats are probed at runtime and listed on the import panel — the app does not claim HEIC, TIFF, RAW or PSD support it does not have.
Choosing a Preset
Presets set a whole group of values at once. Adjusting any of them by hand switches the label to Custom; the underlying values are untouched.
Understanding Scale
Scale multiplies both dimensions. A 2× pass on a 1000×800 image produces 2000×1600 — four times the pixels. Models are trained at a fixed scale; other factors are reached by chaining passes or by a final resize, and the app tells you which happened.
AI Upscaling Versus Resize
Resize interpolates between pixels you already have. AI upscaling estimates what might have been there. Resize Only is honest and fast; AI is slower and invents.
Batch Processing
Add images to the queue, set per-image overrides where you need them, then Process All. A failed job never removes itself and never stops the queue.
Exporting
Export writes files through your browser. With File System Access you can pick a folder once and write straight into it. Everywhere else, files download individually or as a ZIP.
Model Management
Two compact neural models are bundled with the app. Imported HPSR and ONNX files are stored for inspection only. Imported models are validated structurally and stay disabled until you enable them.
Offline Use
Once the service worker has cached the application package, the interface, runtime, and bundled models work with no network. The Home page reports offline readiness only after the service worker controls the page.
Performance Tips
WebGPU is much faster than WebAssembly. Large images are processed in tiles; smaller tiles use less memory and take longer. If you hit an out-of-memory error, drop the tile size before anything else.
Browser Compatibility
WebGPU needs a secure context — HTTPS or localhost. File System Access is Chromium-only. Everything degrades to a working fallback; see Diagnostics for what this browser actually supports.
Troubleshooting
Start at Diagnostics. Run Quick Test, check the backend, then try Retry with WASM or a smaller tile size. Restart Worker clears a wedged pipeline without losing your project.
Privacy
No image, filename, thumbnail, setting or diagnostic ever leaves this device. There is no analytics code in this application — not disabled, not optional, absent.
Keyboard Shortcuts
| Ctrl/Cmd + O | Open images |
| Ctrl/Cmd + Shift + O | Open folder |
| Ctrl/Cmd + S | Save project |
| Ctrl/Cmd + Shift + S | Save project as |
| Ctrl/Cmd + Z | Undo |
| Ctrl/Cmd + Shift + Z | Redo |
| Space (hold) | Temporary pan tool |
| C | Crop tool |
| B | Toggle before / after |
| F | Fit to screen |
| 1 | Actual pixels |
| + / - | Zoom in / out |
| Enter | Process current image |
| Shift + Enter | Add current image to queue |
| Escape | Cancel tool or close dialog |
| Delete | Remove selected queue items |
| ? | Open this list |
