Sådan fungerer Araluma

Teknisk detalje om, hvad hvert værktøj gør, hvor det kører, og hvordan du selv kan verificere det.

Det korte svar

Araluma bruger en hybridarkitektur: de fleste værktøjer kører helt i din browser uden upload, og nogle få dirigerer en enkelt netværksanmodning gennem vores egen infrastruktur, når browseren ikke kan matche kvaliteten, altid med en usynlig reserve på klientsiden. Vi fortæller dig, hvilken vej du er på, i hvert værktøj og på denne side.

Tabellen nedenfor er repræsentativ, ikke udtømmende (kataloget bliver ved med at vokse). Den viser ét eksempel på hver slags vej:

EksempelværktøjHvor arbejdet sker
Cirkelbeskæring (kun browser)100 % i din browser, Canvas-API’et. Ingen upload, virker offline.
Forhåndsvisning af komprimering (kun browser)100 % i din browser, canvas.toBlob. Ingen upload. Skydeknappen forbliver øjeblikkelig.
Komprimeringsdownload (berører server)Én rundtur til vores tjeneste på api.araluma.com (sharp plus libvips på en VPS i Tyskland), med en browserreserve.
Fjern baggrund (berører server)Én rundtur til en Cloudflare Worker, der kører BiRefNet på kant-GPU’er, med en WebAssembly-reserve i din browser.

Værktøjerne til beskæring, størrelsesændring, PDF og formatkonvertering (bortset fra AVIF-outputvejen) sidder på browser-siden. Komprimeringsdownload, baggrundsfjernelse, AI-opskalering og AVIF-outputkonverteringer sidder på den serverberørende side, hver med en lokal reserve.

Du kan verificere kun-browser-påstandene på cirka 30 sekunder: åbn DevTools, gå til Netværk-panelet, ryd loggen, og brug derefter et hvilket som helst kun-browser-værktøj. Du vil se nul anmodninger, der bærer dine billed-bytes, forlade siden. For de serverberørende værktøjer vil du se præcis én upload per handling, til de navngivne endepunkter ovenfor.

Hvorfor hybrid

De fleste online billedværktøjer sidder ved et yderpunkt: upload-alt-til-en-server (du venter på rundture, og operatøren beholder din fil), eller alt-i-browseren (du betaler i kvalitet og hastighed på kodning- og AI-trinene). Ingen af yderpunkterne vinder overalt.

Vi valgte klientsiden, hvor browsere allerede er fremragende. <canvas>-elementet håndterer beskæring, rotering, størrelsesændring og forhåndsvisningskodningen med tab i JPG eller WebP, og moderne browsere afkoder alle almindelige formater nativt. Vi valgte serversiden kun til de få trin, hvor browseren stadig taber målbart:

  • Komprimering, på den endelige download. Serverbaseret sharp plus libvips producerer filer, der er 10 til 15 % mindre byte for byte end browserkodere ved samme visuelle kvalitet, og eksponerer AVIF-hastighed og kroma-justering, browseren ikke gør. Skydeknappen og forhåndsvisningen kører stadig i din browser, så gentagelserne forbliver øjeblikkelige. Kun “Download”-trykket går gennem vores tjeneste.
  • AI-baggrundsfjernelse, på standardvejen. BiRefNet-modellen, som Cloudflares billedsegmentering kører (den samme arkitektur som remove.bg), kræver en rigtig GPU for at fuldføre på et sekund eller to. Reserven i browseren (ISNet via ONNX Runtime plus WebAssembly) virker, men tager langt længere tid og producerer et synligt grovere udsnit på hår, pels og fine kanter.
  • AI-opskalering, på standardvejen. Superopløsning i skyen genskaber detaljer, som en browserbaseret omsampling ikke kan, med en browserreserve, når tjenesten ikke kan nås.

Den omkostning, vi accepterer for at være på serversiden på disse veje, er én rundtur per handling. Den omkostning, vi undgår ved at blive på klientsiden alle andre steder, er det samme gebyr på de dele af arbejdsgangen, der gentages hurtigst.

Pipelinen, trin for trin

1. Du vælger en fil

Gennem filvælgeren, træk-og-slip eller indsætning giver browseren JavaScript et File-objekt. JavaScript læser bytene med FileReader eller Blob.arrayBuffer(). På intet tidspunkt i dette trin sendes filen over netværket, uanset hvilket værktøj du bruger.

2. Browseren afkoder billedet

Moderne browsere afkoder JPG, PNG, WebP, GIF og AVIF nativt. Vi bruger createImageBitmap() til at gøre de rå bytes om til et bitmap, GPU’en kan arbejde med, uden for hovedtråden. For HEIC i browsere, der ikke afkoder det nativt, falder vi tilbage til en WebAssembly-afkoder, der kører lokalt i din browser.

3. Værktøjet gør sit, hvor vejene skiller sig

  • Kun-browser-værktøjer (beskæring, størrelsesændring, forhåndsvisning og skydeknap til komprimering, PDF-samling og de fleste formatkonverteringer). Disse kører som Canvas-pixeltransformationer og canvas.toBlob-omkodning lige på din maskine. Den interaktive beskæringsramme bruger Cropper.js. Intet forlader siden.
  • Komprimeringsdownload. Når du trykker “Download”, går billedet én gang til api.araluma.com (en Fastify-tjeneste på en Hostinger-VPS i Tyskland, Node plus sharp og libvips, de samme C-biblioteker, Squoosh bruger på sin servervej). Det kodes om med de parametre, du satte i forhåndsvisningen, og bytene strømmer tilbage. Tjenesten holder en lejer-isoleret, indholdsadresseret cache (en hash af input-bytene plus parametre), så gentagne downloads af samme billede med samme indstillinger afspiller cachede bytes. Den cache er ikke indekseret efter dig, din IP eller filnavn. Hvis tjenesten ikke kan nås, falder værktøjet tilbage til forhåndsvisnings-bloben i browseren.
  • Baggrundsfjernelse, standard skyvej. Billedet uploades én gang til en Cloudflare Worker, mellemlagres i en privat R2-spand, behandles af Cloudflares billedsegmentering, der kører BiRefNet-modellen på kant-GPU’er, og udsnittet strømmer tilbage. Det mellemlagrede objekt slettes inden for én time af en R2-livscyklusregel, uanset udfald. Et typisk foto fuldføres på et sekund eller to. Daglige grænser per IP og per uploadstørrelse holder gratis-niveauet bæredygtigt.
  • Baggrundsfjernelse, WebAssembly-reserve. Hvis Workeren ikke kan nås (dit netværk falder ud, en streng firewall blokerer den, den daglige kvote er fuld, eller filen er for stor til skygrænsen), skifter værktøjet stille til ISNet-modellen, der kører lokalt via ONNX Runtime Web og WebAssembly. Den første kørsel downloader modellen og tager længere tid, senere kørsler er hurtigere. Ingen upload på denne vej, verificerbart i DevTools.
  • AI-opskalering. Standardvejen sender billedet én gang til en superopløsningstjeneste i skyen og strømmer det forstørrede resultat tilbage, med en browserbaseret reserve, hvis tjenesten ikke kan nås.

4. Du downloader resultatet

Output-bitmappet kodes til en Blob, pakkes ind i en objekt-URL og overdrages til browserens standard fil-gem-dialog. Filen lander på din disk.

Sådan verificerer du det selv

Vælg det, du foretrækker:

Metode 1. Hold øje med Netværk-fanen

  1. Åbn Araluma i en frisk fane og åbn DevTools, og derefter Netværk-panelet.
  2. Brug et kun-browser-værktøj som Cirkelbeskæring eller skydeknappen til forhåndsvisning af komprimering. Du vil kun se anmodninger om HTML, CSS, JS og fonte, plus de relevante WebAssembly-moduler ved første brug. Ingen anmodning vil bære dine billed-bytes.
  3. Brug nu et serverberørende værktøj som Komprimeringsdownload eller Fjern baggrund. Du vil se præcis én POST, der bærer dit billede til det navngivne endepunkt, og ét svar, der kommer tilbage med resultatet. Hold markøren over en anmodning for at læse dens størrelse og timing.

“Initiator”-kolonnen fortæller dig, hvilket script der udløste hver anmodning, og “Type”-kolonnen fortæller dig, hvad der blev sendt. Vi skjuler ingen af delene.

Metode 2. Brug værktøjerne offline

  1. Indlæs en hvilken som helst Araluma-værktøjsside. Kør Fjern baggrund én gang på et lille billede, så ISNet-modellen i browseren caches.
  2. Åbn DevTools, gå til Netværk, og kryds Offline af (eller sluk for Wi-Fi).
  3. Genindlæs siden. De statiske ressourcer er cachede, så den indlæses stadig.
  4. Prøv værktøjerne:
    • Kun-browser-værktøjer bliver ved med at virke. De havde aldrig brug for netværket.
    • Komprimeringsdownload falder tilbage til forhåndsvisnings-bloben i browseren (en lidt mindre effektiv kodning, men funktionel).
    • Fjern baggrund falder tilbage til ISNet WebAssembly-modellen og virker uden nogen udgående anmodning.

Hvis de værktøjer virkede offline (nogle forringet, kun-browser-værktøjerne identiske), så har ingen server per definition set dit billede.

Hvad vi ser, og hvad vi ikke ser

kun-browser-vejene ser vi intet om dit billede. Der findes ingen anmodning at se på, ingen cache at gemme det i, ingen logrække at gennemsøge.

På de serverberørende veje:

  • Komprimeringsdownload ser billed-bytene i den tid, kodningen varer (normalt nogle få hundrede millisekunder), holder en indholdsadresseret cacheindgang i dens TTL, og det er det. Cachen er ikke indekseret efter bruger, IP, filnavn eller nogen identifikator, vi kunne bruge til at finde “dine” billeder. Vi logger ikke billedindhold. Kodningstjenesten deles på tværs af de samme lejere, v1 betjente før overgangen, med CORS, ratebegrænsninger og HMAC-signerede kanoniske URL’er per lejer.
  • Fjern baggrund ser billedet i den tid, mellemlagrings-uploaden og segmenteringskaldet varer (typisk et sekund eller to), hvorefter den mellemlagrede kopi slettes af R2-livscyklusreglen. Vi overdrager aldrig dine bytes til en tredjeparts modeludbyder. BiRefNet-modellen kører inde i Cloudflares egen infrastruktur, ikke på et eksternt remove.bg-, fal.ai- eller Replicate-lignende API.
  • AI-opskalering ser billedet i den tid, superopløsningskaldet varer, returnerer resultatet og beholder intet knyttet til dig.

På hver vej registrerer vores analyseudbyder (Cloudflare Web Analytics) aggregerede sidevisningsdata: URL, land, browserfamilie, Core Web Vitals. Ingen cookies, ingen vedvarende identifikatorer, intet knyttet til en person.

For værktøjer, der downloader et WebAssembly-modul ved første brug (HEIC-afkoderen, ISNet ONNX-modellen), ser vores hostingudbyder, at nogen hentede modulet, på samme måde som den ser en CSS-fil hentet. Modulet selv bærer ingen information om dit billede.

Det fulde datainventar er i vores privatlivspolitik.

Teknologistakken

For de nysgerrige:

  • Astro, den statiske sitegenerator. Hver side leveres som ren HTML med progressivt forbedrede JavaScript-”øer” kun der, hvor interaktive værktøjer bor.
  • Vanilla CSS med brugerdefinerede egenskaber, ingen Tailwind, ingen CSS-in-JS. Hele designsystemet er en enkelt tokens.css-fil.
  • canvas.toBlob og <canvas>, JPEG-, PNG-, WebP- og AVIF-kodningen til værktøjerne og forhåndsvisningerne på browsersiden.
  • Cropper.js, interaktionslaget til beskæringsrektanglet.
  • ONNX Runtime Web, der kører ISNet WebAssembly-reserven til Fjern baggrund.
  • Cloudflare hoster den statiske build og serverer den fra kanten og kører Workers, R2 og billedsegmenteringspipelinen (BiRefNet) bag standardvejen til Fjern baggrund.
  • Fastify med sharp og libvips på Node, komprimeringsdownloadtjenesten på api.araluma.com, på en Hostinger-VPS i Tyskland.
  • Cloudflare Web Analytics, aggregerede sidevisningstal uden cookies.

Browserunderstøttelse

Hvert værktøj virker på den nuværende og forrige version af Chrome, Firefox, Safari og Edge, desktop og mobil. Sitet bruger progressiv forbedring: hvor en browser understøtter et nyere API (for eksempel showSaveFilePicker eller OffscreenCanvas), bruger vi det, og hvor den ikke gør, falder vi tilbage til den ældre ækvivalent. Der findes ingen “din browser understøttes ikke”-mur.

De eneste hårde krav er JavaScript (til ethvert værktøj) og en netværksforbindelse (kun ved brug af en serverberørende vej, kun-browser-værktøjerne kører helt offline efter den første sideindlæsning).

Spørgsmål

Noget vi ikke dækkede? Send en e-mail til support@araluma.com. Tekniske spørgsmål er velkomne.