Free tool Β· runs on your device

Upscale 4Γ—.
Nothing Leaves Your Browser.

Real-ESRGAN runs inside this page. The model is downloaded once, then every image is processed by your own GPU or CPU β€” no server, no upload, no account, no wallet. This is the free tier of the OMC compute network: the same class of work the paid network settles on chain.

Inference happens on your device No payment, no signup
How this is honest. This page does not talk to the OMC network at all β€” there is no chain call, no escrow and no token involved. It is a plain client-side tool that happens to use the same model family the paid network runs. If you want the checkout, job records and provider collateral, that lives on the Compute Station.
Local only Your image is read into this tab and never uploaded. The only network request this page makes is the one-time download of the model file and the inference runtime.

1 Β· Pick an image

The model is 64 MB and is fetched once, then cached by the browser. Nothing runs until you ask it to.

Click to choose or drop an image here
PNG or JPG. Keep the long edge under 4096 px β€” a 4Γ— result is 16Γ— the pixels and a large photo will take minutes.
A big image is cut into tiles, upscaled one at a time and blended back with overlap. Tiles are why a modest device can still finish a large picture β€” they trade speed for memory.
Runtime
β€”
Model
β€”
Input
β€”
Output
β€”
Elapsed
β€”
Original
Upscaled
Original
Real-ESRGAN 4Γ—

What is actually happening

No black box β€” here is the whole pipeline, in order.

1
The model loads into this tab

A 64 MB Real-ESRGAN export is fetched once and handed to ONNX Runtime compiled to WebAssembly. It is then cached, so a second visit does not download it again.

2
Your image is decoded and cut into tiles

The file is drawn to a canvas, sliced into overlapping tiles and normalised to the float range the network expects. This all happens in memory inside the page.

3
Tiles are blended back into one picture

Each tile is upscaled 4Γ—, the overlap is cropped off, and neighbouring tiles are averaged so the seams do not show. Then you get a download button.

Why speed depends on your device

The same model runs on a phone and on a desktop GPU, and the difference is large. These are measured reference points, not promises about your machine.

InputOutputReference time
320 Γ— 2001280 Γ— 800~2 s
640 Γ— 4002560 Γ— 1600~8 s
1024 Γ— 6404096 Γ— 2560~23 s
Measured on a modest dedicated GPU. Integrated graphics and phones will be slower β€” often several times slower. A 12-megapixel phone photo is not a realistic input for this page; crop it first.

Free here, settled on chain there

Two different things, deliberately kept apart.

A
This page β€” free, no wallet

A convenience tool. Your device pays the compute cost in electricity and time. There is no job record and nothing to settle.

B
The network β€” paid, on chain

When you need a guaranteed run on someone else's GPU with verifiable output and a refund if it fails, that is a job on the Compute Station, settled in tOMC on BNB Smart Chain Testnet.

Need a guaranteed run, not a free tool? Open the Compute Station. β†’
Model and licence. Real-ESRGAN x4plus (RRDBNet, 23 blocks), exported to ONNX without weight changes. Licensed BSD-3-Clause, which permits commercial use. This page runs it unmodified; it is the same model family the paid network is benchmarked with.
On chain

Send this job to the network instead

The tool above spends your own device. This block spends tOMC: the escrow, the provider assignment, the delivery hash and the settlement are all recorded on BNB Smart Chain Testnet and can be checked in the explorer without trusting this page.

Escrow Β· assignment Β· settlement on chain
Wallet tOMC
β€”
Serviceable tier
β€”
Jobs so far
β€”
Protocol fee
β€”
Choose the image to send or drop it here
The image is hashed in this tab first. Only the hash goes into the job β€” the bytes travel separately, so the chain never stores your picture.
preview
The market can never charge more than this. Unused escrow comes back on settlement. Paying in tOMC takes 10% off the protocol fee.
Job state
β€”
Job id
β€”
Escrowed
β€”
Provider
β€”
File
β€”
Spec hash (chained)
β€”
What is on chain, and what is not

On chain: the escrow, which provider was assigned, the keccak256 of the result, the settlement and any slashing β€” all readable with one getJob(jobId) call. Not on chain: the image itself. No EVM can hold a megabyte of pixels, so the bytes travel out of band and the chain carries only their hash. Right now no provider process is serving testnet jobs, so a job you create will be escrowed and stay in ESCROWED until one is. The escrow is real and refundable through cancelJob; the transport is the piece still being built.

Boundaries

What this tool will and will not do

πŸ”’

It will not upload your image

There is no upload endpoint. The runtime and the model file are the only things fetched from the network, and both are static assets. You can watch the network tab and see for yourself.

🐒

It will not be fast on weak hardware

Speed is a property of your device, not of the page. If you are on integrated graphics, start with a small image and expect to wait. There is no server-side fallback here by design.

🧾

It will not pretend to be the network

No wallet, no token, no fake job counter. It is a tool, labelled as a tool. The chain-backed service is a separate page with its own escrow, verification and penalties.

Why build the free tool first. The network's honest weakness is that it has no jobs yet. A tool that is useful on its own β€” even with the chain switched off β€” earns attention before it asks anyone to trust a marketplace. This page is that first step; the paid side is built to be earned, not assumed.