Siirry pääsisältöön

Kuvan suurentaja ilmaiseksi

Suurenna valokuva nelinkertaiseksi tekoälymallilla, joka toimii omalla laitteellasi — terävämmät reunat ja luettava teksti, ei pelkästään isompia pikseleitä. Mitään ei lähetetä, ei tiliä eikä vesileimaa.

Pudota tiedostot tähän tai napsauta selataksesi

PNG, JPG, WebP, AVIF, GIF, BMP, HEIC, HEIF · käsitellään laitteellasi

tai liitä leikepöydältä painamalla Ctrl+V

Voit pudottaa useita tiedostoja kerralla

Selaa tiedostoja
Real-ESRGAN piirtää yksityiskohdat uudelleen 4× kokoon sen sijaan, että venyttäisi pikseleitä. 4,6 MB:n malli ladataan kerran ja toimii sen jälkeen kokonaan tällä laitteella — kuvaasi ei lähetetä koskaan verkkoon.

Miten se toimii

Suurentaja ajaa Real-ESRGAN general-x4v3:aa — 4,6 Mt:n konvolutionaalista superresoluutioverkkoa — onnxruntime-web-kirjaston kautta Web Workerissa omalla koneellasi. Malli haetaan kerran omalta palvelimeltamme, välimuistiin tallennettuna, ja käytetään sitten offline-tilassa; kuvasi puretaan kanvaaseen paikallisesti eikä sitä koskaan ladata palvelimelle. Skaalauskerroin on kiinteä 4×, koska se on kovakoodattu graafiin kahdessa paikassa.

  1. 1
    Kuva leikataan päällekkäisiin ruutuihin
    4×-tulos on kuusitoista kertaa pikselit, joten 4000×3000 valokuva olisi 192 megapikseliä — riittävästi tappamaan selainvälilehden kokonaan sen sijaan, että vain hidastaisi sitä. Sen sijaan kuva jaetaan ytimiin, jotka laatoittavat sen tarkasti, ja jokainen ydin luetaan ylimääräisellä konteksti­marginaalilla joka puolelta, jotta konvoluutiopino (jonka vastaanottavan kentän koko on 34 pikseliä) saa käyttöönsä todellisia naapuripikseleitä. Reunat monistetaan, ei koskaan nollatäytetä, mikä muuten saisi mallin terävöittämään mustan reunan kehyksen ympärille.
  2. 2
    Jokainen ruutu pakataan tasoittaisena RGB-tensorina
    Ruudusta tulee float32-tensori muodossa [1, 3, H, W], jossa punainen, vihreä ja sininen kanava tallennetaan erillisinä tasoina ja arvot jaetaan yksinkertaisesti 255:llä — ei minkäänlaista keskiarvo/keskihajontanormalisointia. Jokainen ruutu täytetään täsmälleen samaan neliökokoon, koska WebGPU-taustajärjestelmä kääntää shaderinsa uudelleen jokaiselle uudelle syötemuodolle, ja suunnitelma kolmella eri ruutukoolla maksaisi tämän kustannuksen kolme kertaa.
  3. 3
    Päättely toimii WebGPU:lla missä se on saatavilla, muuten suorittimella
    Istunto luodaan ensin WebGPU:lla ja palaa yksisäikeiseen WebAssemblyyn minkä tahansa virheen sattuessa — grafiikka-ajurit mainostavat säännöllisesti tukea ja epäonnistuvat sitten kesken graafin rakentamisen, ja hitaampi voittaa rikkinäisen. Koska varajärjestely muuttaa realistista kokorajaa ja ajoaikaa suurella kertoimella, työkalu tarkistaa työn uudelleen sitä toimittajaa vasten, jonka se todella sai ennen ensimmäisen ruudun ajamista, ja kertoo sinulle sen jälkeen kumpaa se käytti.
  4. 4
    Ruudut ristihäivytetään takaisin yhteen ja rajataan
    Ruutujen liittäminen reunasta reunaan jättäisi näkyvän ruudukon, joten jokaisen ruudun panos painotetaan lineaarisella rampilla jaetun kaistan yli. Kaksi ramppia ovat tarkkoja komplementteja, joten painot summautuvat täsmälleen 1:ksi jokaisessa tulostepikselissä, eikä saumaan ilmesty vaaleaa tai tummaa viivaa. Mallin raakatuloste ei ole rajattu graafin sisällä — mitatut arvot vaihtelevat noin −0,18:sta +1,19:ään — joten jokainen näyte rajataan 0–255-alueelle ennen 8-bittistä muunnosta, mikä estää kohinan ilmestymisen korkeakontrastisten reunojen varrella. Alfa uudelleennäytteistetään erikseen ja bilineaarisesti, koska itse verkolla ei ole alfapolkua.
  5. 5
    Tulos koodataan workerissa
    Kootut pikselit piirretään OffscreenCanvasille ja koodataan välittömästi PNG:ksi, joten Lataa-painikkeen painamisella ei ole asynkronista viivettä edessään. Vaihtaminen JPG:hen koodaa uudelleen kanvaasta, jota worker yhä pitää hallussaan, sen sijaan että ajaisi mallin uudelleen. Pieni keskikohdan rajaus piirretään myös 100 %:iin saman alueen rinnalle, jonka selain on uudelleennäytteistänyt, mikä on ainoa vertailu, jossa 4×-ero on todellisuudessa nähtävissä.

Mallin painot ladataan kerran omalta palvelimeltamme ja tallennetaan välimuistiin; kuvasi puretaan, laatoitetaan, suurennetaan ja koodataan kokonaan selaimessasi, eikä mitään siitä koskaan lähetetä minnekään.

Liittyvät työkalut

Usein kysytyt kysymykset