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

Input Output Size Est. out Alpha Profile
Zoom Preset Model Backend Memory
0 images

Batch Queue

Per-image overrides survive batch operations. A failed job stays until you deal with it.

Preview FilenameInputOutputPresetModelBackend StatusProgressDurationOut sizeActions

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

Where files go

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

Auto-save interval60s
Language

Performance

Default backend
GPU power preference
WASM threads1 (fixed)
Default tile size
Default overlap24px

Storage

Maximum preview cache256 MB

Export Defaults

Format
Quality92
Metadata policy
Color profile policy
Transparency policy
ZIP warning threshold512 MB

Interface

Theme
Accent
Density
Thumbnail size152px
Inspector side

Privacy

There is no telemetry or analytics code in this application. Not disabled — absent. No image, filename, thumbnail, setting or diagnostic is transmitted anywhere.

Project retention

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 entries

    Help

    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 + OOpen images
    Ctrl/Cmd + Shift + OOpen folder
    Ctrl/Cmd + SSave project
    Ctrl/Cmd + Shift + SSave project as
    Ctrl/Cmd + ZUndo
    Ctrl/Cmd + Shift + ZRedo
    Space (hold)Temporary pan tool
    CCrop tool
    BToggle before / after
    FFit to screen
    1Actual pixels
    + / -Zoom in / out
    EnterProcess current image
    Shift + EnterAdd current image to queue
    EscapeCancel tool or close dialog
    DeleteRemove selected queue items
    ?Open this list

    Version