Gå til hovedindhold

Gratis Billedforstørrer

Forstør et foto 4× med en AI-model, der kører på din egen enhed — skarpere kanter og læsbar tekst, ikke bare større pixels. Intet uploades, ingen konto, intet vandmærke.

Slip filer her, eller klik for at gennemse

PNG, JPG, WebP, AVIF, GIF, BMP, HEIC, HEIF · behandles på din enhed

eller tryk Ctrl+V for at indsætte fra udklipsholderen

Du kan slippe flere filer på én gang

Gennemse filer
Real-ESRGAN gentegner detaljer ved 4× i stedet for at strække pixels. Modellen på 4,6 MB hentes én gang og kører derefter helt på denne enhed — dit foto uploades aldrig.

Sådan fungerer det

Opskaleringen kører Real-ESRGAN general-x4v3 — et konvolutionelt super-resolution-netværk på 4,6 MB — via onnxruntime-web i en Web Worker på din egen maskine. Modellen hentes én gang fra vores egen server, gemmes og bruges derefter offline; dit foto afkodes til et lærred lokalt og uploades aldrig. Skalafaktoren er fast 4×, fordi den er bagt ind i grafen to steder.

  1. 1
    Billedet skæres i overlappende felter
    Et 4×-resultat har seksten gange så mange pixels, så et foto på 4000×3000 ville blive 192 megapixel — nok til at få browserfanen til at gå ned i stedet for blot at blive langsom. I stedet opdeles billedet i kerner, der dækker det præcist, og hver kerne læses med en ekstra kontekstmargen på alle sider, så konvolutionsstakken (hvis receptive felt er 34 pixels) har rigtige nabopixels at arbejde med. Kanter udfyldes ved at gentage kantpixels, aldrig med nuller, som ellers ville få modellen til at skærpe en sort kant rundt om billedet.
  2. 2
    Hvert felt pakkes som en plan RGB-tensor
    Et felt bliver til en float32-tensor med formen [1, 3, H, W], hvor rød, grøn og blå kanal gemmes som separate planer, og værdierne blot divideres med 255 — ingen normalisering med gennemsnit/standardafvigelse af nogen art. Hvert felt udfyldes til præcis samme kvadratiske størrelse, fordi WebGPU-backend'en genkompilerer sine shaders for hver ny inputform, og en plan med tre forskellige feltstørrelser ville betale den pris tre gange.
  3. 3
    Inferensen kører på WebGPU, hvor den findes, ellers på CPU'en
    Sessionen oprettes først med WebGPU og falder tilbage til enkelttrådet WebAssembly ved enhver fejl — grafikdrivere melder ofte understøttelse og fejler så halvvejs gennem opbygningen af grafen, og langsomt er bedre end i stykker. Da reserveløsningen ændrer den realistiske størrelsesgrænse og kørselstiden markant, tjekker værktøjet opgaven igen mod den udbyder, det faktisk fik, før det første felt kører, og fortæller dig bagefter, hvilken det brugte.
  4. 4
    Felterne tones over i hinanden og begrænses
    Felter, der blot stødes sammen, efterlader et synligt gitter, så hvert felts bidrag vægtes med en lineær rampe hen over den fælles stribe. De to ramper er præcise komplementer, så vægtene summerer til præcis 1 i hver outputpixel, og der opstår ingen lys eller mørk linje langs en samling. Modellens rå output beskæres ikke inde i grafen — målte værdier går fra ca. −0,18 til +1,19 — så hver sample begrænses til intervallet 0–255 før omregningen til 8 bit, hvilket forhindrer prikker langs kanter med høj kontrast. Alfa resamples separat og bilineært, fordi netværket ikke selv har nogen alfakanal.
  5. 5
    Resultatet kodes i workeren
    De samlede pixels tegnes på et OffscreenCanvas og kodes straks til PNG, så der ikke er noget asynkront hul, når du trykker Download. Skift til JPG genkoder fra det lærred, workeren stadig holder, i stedet for at køre modellen igen. Et lille udsnit fra midten vises også i 100 % ved siden af samme område resamplet af browseren — den eneste sammenligning, hvor en 4×-forskel faktisk er synlig.

Modelvægtene hentes én gang fra vores egen server og gemmes; dit billede afkodes, opdeles, opskaleres og kodes udelukkende i din browser, og ingen del af det sendes nogensinde nogen steder hen.

Relaterede værktøjer

Ofte stillede spørgsmål