The transfer, itemised
Two files would arrive, not one, and the smaller of them is the one nobody mentions. The weights are the product; no model is published for this build yet, so their size has not been measured, and early estimates of around ninety megabytes are only estimates. The runtime that executes them is a WebAssembly build just under fourteen megabytes — that figure is measured, it is the file this site serves — and without it the weights are an inert file. Both are paid for on the first pass and not again.
The weights would come from our model file server. That is a deliberate choice with a cost attached: it is a request to a second host. It is accepted because the alternative is a public model hub learning which of this site’s visitors is deblurring what. The request carries the file name and nothing about your photograph.
The runtime comes from this origin instead. Same-origin removes the cross-origin module failure entirely and keeps the count of other hosts this page talks to at exactly one, which is a sentence the privacy page can then write without hedging.
Nothing moves before a control says how much
The ordering is the point. A control naming the exact byte length is pressed, and only then does a byte move. A page that begins a hundred-megabyte transfer and mentions it afterwards has already spent somebody’s data allowance, and on a metered connection that is money.
Stopping it
Escape aborts a transfer in flight. Nothing partial is written: the cache entry is created after a complete body of the expected length has been read, and a body that finishes at the wrong length is refused rather than kept. A truncated graph served from disk for the life of a browser profile is a far worse problem than a download that plainly failed, and it is the reason the write happens last.
What this build has today
None of it, yet. No export is published for this build to fetch, so no control here offers a download and no figure is printed as though it had been read off a served file. The arithmetic pass on the instrument routes needs no transfer at all.


