Salt la conținutul principal
LibraTool logoLibraTool

Mărire imagini — gratuit

Mărește o fotografie de 4× cu un model AI care rulează pe propriul tău dispozitiv — margini mai clare și text lizibil, nu doar pixeli mai mari. Nimic nu se încarcă, fără cont și fără filigran.

Trage fișierele aici sau apasă pentru a răsfoi

PNG, JPG, WebP, AVIF, GIF, BMP, HEIC, HEIF · procesat pe dispozitivul tău

sau apăsați Ctrl+V pentru a lipi din clipboard

Poți trage mai multe fișiere deodată

Răsfoiește fișierele
Real-ESRGAN redesenează detaliul la 4× în loc să întindă pixelii. Modelul de 4,6 MB se descarcă o singură dată și apoi rulează în întregime pe acest dispozitiv — fotografia ta nu este încărcată niciodată.

Cum funcționează

Upscaler-ul rulează Real-ESRGAN general-x4v3 — o rețea convoluțională de super-rezoluție de 4,6 MB — prin onnxruntime-web în interiorul unui Web Worker pe propria ta mașină. Modelul este preluat o dată de la propriul nostru server, stocat în cache, și apoi folosit offline; fotografia ta este decodată la un canvas local și niciodată încărcată. Factorul de scală este fixat la 4×, deoarece este inclus permanent în graf în două locuri.

  1. 1
    Imaginea este tăiată în plăcuțe suprapuse
    Un rezultat 4× este de șaisprezece ori pixelii, astfel încât o fotografie de 4000×3000 ar fi 192 megapixeli — suficient pentru a bloca complet fila browser-ului mai degrabă decât să o încetinească doar. În schimb imaginea este împărțită în nuclee care o acoperă exact, iar fiecare nucleu este citit cu o margine suplimentară de context pe fiecare parte astfel încât stiva convoluțională (al cărei câmp receptiv este de 34 de pixeli) are pixeli vecini reali cu care să lucreze. Marginile sunt replicate la muchie, niciodată umplute cu zero, ceea ce altfel ar face modelul să ascută un chenar negru în jurul cadrului.
  2. 2
    Fiecare plăcuță este împachetată ca un tensor RGB planar
    O plăcuță devine un tensor float32 de forma [1, 3, H, W] cu canalele roșu, verde, și albastru stocate ca planuri separate și valorile pur și simplu împărțite la 255 — fără normalizare de medie/deviație standard de niciun fel. Fiecare plăcuță este umplută la exact aceeași dimensiune pătrată, deoarece backend-ul WebGPU recompilează shader-ele sale pentru fiecare formă nouă de intrare și un plan cu trei dimensiuni diferite de plăcuță ar plăti acel cost de trei ori.
  3. 3
    Inferența rulează pe WebGPU unde există, altfel pe CPU
    Sesiunea este creată mai întâi cu WebGPU și revine la WebAssembly cu un singur fir la orice eșec — driverele grafice anunță de obicei suport și apoi eșuează la jumătatea construirii grafului, iar mai lent este mai bine decât stricat. Deoarece revenirea schimbă mult limita realistă de dimensiune și timpul de rulare, unealta reverifică lucrarea față de furnizorul pe care l-a obținut de fapt înainte să ruleze prima dală și îți spune ulterior pe care l-a folosit.
  4. 4
    Plăcuțele sunt reasamblate cu tranziție încrucișată și limitate
    Îmbinarea plăcuțelor cap-la-cap lasă o grilă vizibilă, așa că contribuția fiecărei plăcuțe este ponderată de o rampă liniară de-a lungul benzii partajate. Cele două rampe sunt complemente exacte, astfel încât ponderile însumează precis 1 la fiecare pixel de ieșire și nicio linie luminoasă sau întunecată nu apare de-a lungul unei cusături. Ieșirea brută a modelului nu este tăiată în interiorul grafului — valorile măsurate variază de la aproximativ −0,18 la +1,19 — astfel încât fiecare eșantion este limitat la intervalul 0–255 înainte de conversia pe 8 biți, ceea ce previne pete de-a lungul marginilor de contrast ridicat. Alfa este reeșantionat separat și biliniar, deoarece rețeaua în sine nu are cale alfa.
  5. 5
    Rezultatul este codificat în worker
    Pixelii asamblați sunt desenați pe un OffscreenCanvas și codificați imediat în PNG, astfel încât apăsarea pe Descarcă nu are nicio întârziere asincronă. Comutarea la JPG recodifică din canvasul pe care worker-ul îl ține încă, în loc să ruleze din nou modelul. O mică decupare centrală este randată și la 100%, alături de aceeași regiune reeșantionată de browser, singura comparație la care o diferență 4× este de fapt vizibilă.

Greutățile modelului sunt descărcate o dată de la propriul nostru server și stocate în cache; imaginea ta este decodată, împărțită în dale, mărită și codificată în întregime în browserul tău, iar nicio parte din ea nu este trimisă nicăieri.

Instrumente similare

Întrebări frecvente