Liigu põhisisu juurde

Pildi suurendaja tasuta

Suurendage fotot 4× tehisintellekti mudeliga, mis töötab teie enda seadmes — teravamad servad ja loetav tekst, mitte lihtsalt suuremad pikslid. Midagi ei laadita üles, ei kontot ega vesimärki.

Lohista failid siia või klõpsa sirvimiseks

PNG, JPG, WebP, AVIF, GIF, BMP, HEIC, HEIF · töödeldakse sinu seadmes

või vajutage lõikelaualt kleepimiseks Ctrl+V

Saad korraga lohistada mitu faili

Sirvi faile
Real-ESRGAN joonistab detailid 4× suuruses uuesti, selle asemel et piksleid venitada. 4,6 MB mudel laaditakse alla üks kord ja töötab seejärel täielikult selles seadmes — sinu fotot ei laadita kunagi üles.

Kuidas see töötab

Skaleerija käivitab Real-ESRGAN general-x4v3 — 4,6 MB konvolutsiooniline superresolutsiooni võrk — onnxruntime-web abil Web Worker'is sinu enda masinas. Mudel tuuakse üks kord meie enda serverist, salvestatakse vahemällu ja kasutatakse seejärel võrguväliselt; su foto dekodeeritakse lõuendile kohapeal ega laadita kunagi üles. Skaalategur on fikseeritud 4×-le, kuna see on kõva-küpsetatud graafi kahte kohta.

  1. 1
    Pilt lõigatakse kattuvateks plaatideks
    4× tulemus on kuusteist korda rohkem piksleid, seega 4000×3000 foto oleks 192 megapikslit — piisav, et lihtsalt kohe tappa brauseri vahekaart, mitte lihtsalt aeglustada. Selle asemel jaotatakse pilt tuumadeks, mis katavad seda täpselt, ja iga tuum loetakse lisamarginaali konteksti abil igal küljel, nii et konvolutsioonipinu (mille retseptiivväli on 34 pikslit) saab päris naaberpikslitega töötada. Servad on servareplikeeritud, mitte kunagi nullitäidetud, mis muidu teraviks muudaks musta äärise ümber raami.
  2. 2
    Iga plaat pakitakse tasapinnalise RGB tensorina
    Plaat muutub float32 tensoriks kujuga [1, 3, H, W], punase, rohelise ja sinise kanaliga eraldi tasapindadena salvestatuna ja väärtused lihtsalt jagatud 255-ga — keskmise/standardhälbe normaliseerimist pole. Iga plaat on täidetud täpselt samale ruudukujulisele suurusele, sest WebGPU backend rekompileerib oma shader'id iga uue sisendikuju jaoks ja plaan kolme erineva plaadisuurusega maksaks selle kulu kolm korda.
  3. 3
    Järeldus töötab WebGPU-l, kus see eksisteerib, muidu protsessoril
    Sessioon luuakse esmalt WebGPU-ga ja langeb mis tahes tõrke korral tagasi ühelõimeliseks WebAssembly-ks — graafikadraiverid tihti reklaamivad tuge ja seejärel ebaõnnestuvad graafi ehitamise keskel, ning aeglane võidab katkise. Kuna tagavara muudab realistlikku suuruspiirangut ja käitusaega suure teguriga, kontrollib tööriist töö uuesti tegeliku saadud pakkuja vastu enne esimese plaadi käivitumist, ja ütleb sulle pärast, kumba kasutas.
  4. 4
    Plaadid ühendatakse tagasi ristfundetusega ja piiratakse
    Serv-serv-vastu ühendamine jätab nähtava võrgustiku, seega iga plaadi panus on kaalutud lineaarse rambiga üle jagatud riba. Kaks ramba on täpsed täiendused, seega kaalud summeeruvad täpselt 1-ks igal väljundpikslil ja ühtegi heledat või tumedat joont ei ilmu õmbluse ääres. Mudeli toores väljund pole graafi sees lõigatud — mõõdetud väärtused ulatuvad umbes −0,18-st kuni +1,19-ni — seega iga näidis piiratakse 0–255 vahemikuni enne 8-bitist ümbermuundamist, mis on see, mis takistab täppimist kõrge kontrastiga servade juures. Alfa reediskreetitakse eraldi ja bilineaarselt, sest võrgul endal alfarada pole.
  5. 5
    Tulemus kodeeritakse workeris
    Koostatud pikslid joonistatakse OffscreenCanvasele ja kodeeritakse kohe PNG-ks, seega Laadi alla vajutamisel pole ühtegi asünkroonset vahet ees. JPG-le vahetamine kodeerib uuesti lõuendist, mida worker ikka veel hoiab, selle asemel et mudelit uuesti käivitada. Väike keskserv renderdatakse ka 100% juures koos brauseri poolt reediskreetitud sama piirkonnaga, mis on ainus võrdlus, kus 4× erinevus on tegelikult nähtav.

Mudeli kaalud laaditakse alla üks kord meie enda serverist ja salvestatakse vahemällu; su pilt dekodeeritakse, plaaditakse, skaleeritakse ja kodeeritakse täielikult sinu brauseri sees, ja ükski selle osa ei saadeta kunagi kuhugi.

Seotud tööriistad

Korduma kippuvad küsimused