Det korte svaret
Araluma bruker en hybridarkitektur: de fleste verktøy kjører helt i nettleseren din uten opplasting, og noen få ruter en enkelt nettverksforespørsel gjennom vår egen infrastruktur når nettleseren ikke kan matche kvaliteten, alltid med en usynlig reserve på klientsiden. Vi forteller deg hvilken vei du er på, i hvert verktøy og på denne siden.
Tabellen under er representativ, ikke uttømmende (katalogen fortsetter å vokse). Den viser ett eksempel på hver type vei:
| Eksempelverktøy | Hvor arbeidet skjer |
|---|---|
| Sirkelbeskjæring (kun nettleser) | 100 % i nettleseren din, Canvas-APIet. Ingen opplasting, fungerer frakoblet. |
| Forhåndsvisning av komprimering (kun nettleser) | 100 % i nettleseren din, canvas.toBlob. Ingen opplasting. Glidebryteren forblir umiddelbar. |
| Komprimeringsnedlasting (berører server) | Én rundtur til tjenesten vår på api.araluma.com (sharp pluss libvips på en VPS i Tyskland), med en nettleserreserve. |
| Fjern bakgrunn (berører server) | Én rundtur til en Cloudflare Worker som kjører BiRefNet på kant-GPUer, med en WebAssembly-reserve i nettleseren din. |
Verktøyene for beskjæring, størrelsesendring, PDF og formatkonvertering (bortsett fra AVIF-utdataveien) ligger på nettleser-siden. Komprimeringsnedlasting, bakgrunnsfjerning, KI-oppskalering og AVIF-utdatakonverteringer ligger på den serverberørende siden, hver med en lokal reserve.
Du kan verifisere kun-nettleser-påstandene på omtrent 30 sekunder: åpne DevTools, gå til Nettverk-panelet, tøm loggen, og bruk deretter et hvilket som helst kun-nettleser-verktøy. Du vil se null forespørsler som bærer bildebytene dine forlate siden. For de serverberørende verktøyene vil du se nøyaktig én opplasting per operasjon, til de navngitte endepunktene over.
Hvorfor hybrid
De fleste bildeverktøy på nettet ligger på ett ytterpunkt: last-opp-alt-til-en-server (du venter på rundturer og operatøren beholder filen din), eller alt-i-nettleseren (du betaler i kvalitet og fart på koding- og KI-stegene). Ingen av ytterpunktene vinner overalt.
Vi valgte klientsiden der nettlesere allerede er utmerkede. <canvas>-elementet
håndterer beskjæring, rotering, størrelsesendring og forhåndsvisningskodingen med tap
i JPG eller WebP, og moderne nettlesere dekoder alle vanlige formater nativt. Vi
valgte serversiden kun for de få stegene der nettleseren fortsatt taper målbart:
- Komprimering, på den endelige nedlastingen. Serverbasert
sharpplusslibvipsproduserer filer som er 10 til 15 % mindre byte for byte enn nettleserkodere ved samme visuelle kvalitet, og eksponerer AVIF-fart og kroma-justering nettleseren ikke gjør. Glidebryteren og forhåndsvisningen kjører fortsatt i nettleseren din slik at gjentakelsene forblir umiddelbare. Kun “Last ned”-trykket går gjennom tjenesten vår. - KI-bakgrunnsfjerning, på standardveien. BiRefNet-modellen som Cloudflares bildesegmentering kjører (den samme arkitekturen som remove.bg) trenger en ekte GPU for å fullføre på et sekund eller to. Reserven i nettleseren (ISNet via ONNX Runtime pluss WebAssembly) fungerer, men tar langt lengre tid og produserer et synlig grovere utsnitt på hår, pels og fine kanter.
- KI-oppskalering, på standardveien. Superoppløsning i skyen gjenoppretter detaljer som en nettleserbasert omsampling ikke kan, med en nettleserreserve når tjenesten ikke er tilgjengelig.
Kostnaden vi godtar for å være på serversiden på disse veiene er én rundtur per operasjon. Kostnaden vi unngår ved å bli på klientsiden overalt ellers er den samme avgiften på de delene av arbeidsflyten som gjentas raskest.
Rørledningen, steg for steg
1. Du velger en fil
Gjennom filvelgeren, dra-og-slipp eller liming gir nettleseren JavaScript et
File-objekt. JavaScript leser bytene med FileReader eller Blob.arrayBuffer().
På intet tidspunkt i dette steget sendes filen over nettverket, uansett hvilket
verktøy du bruker.
2. Nettleseren dekoder bildet
Moderne nettlesere dekoder JPG, PNG, WebP, GIF og AVIF nativt. Vi bruker
createImageBitmap() til å gjøre de rå bytene om til et punktgrafikkbilde GPUen kan
arbeide med, utenfor hovedtråden. For HEIC i nettlesere som ikke dekoder det nativt,
faller vi tilbake til en WebAssembly-dekoder som kjører lokalt i nettleseren din.
3. Verktøyet gjør sitt, der veiene skiller lag
- Kun-nettleser-verktøy (beskjæring, størrelsesendring, forhåndsvisning og glidebryter for komprimering, PDF-sammenstilling og de fleste formatkonverteringer). Disse kjører som Canvas-pikseltransformasjoner og
canvas.toBlob-omkoding rett på maskinen din. Den interaktive beskjæringsrammen bruker Cropper.js. Ingenting forlater siden. - Komprimeringsnedlasting. Når du trykker “Last ned”, går bildet én gang til
api.araluma.com(en Fastify-tjeneste på en Hostinger-VPS i Tyskland, Node plusssharpoglibvips, de samme C-bibliotekene Squoosh bruker på serverveien sin). Det kodes om med parameterne du satte i forhåndsvisningen, og bytene strømmer tilbake. Tjenesten holder en leietakerisolert, innholdsadressert hurtigbuffer (en hash av inndatabytene pluss parametere) slik at gjentatt nedlasting av samme bilde med samme innstillinger spiller av bufrede byte. Den hurtigbufferen er ikke indeksert etter deg, IP-en din eller filnavn. Hvis tjenesten ikke er tilgjengelig, faller verktøyet tilbake til forhåndsvisningsbloben i nettleseren. - Bakgrunnsfjerning, standard skyvei. Bildet lastes opp én gang til en Cloudflare Worker, mellomlagres i en privat R2-bøtte, behandles av Cloudflares bildesegmentering som kjører BiRefNet-modellen på kant-GPUer, og utsnittet strømmer tilbake. Det mellomlagrede objektet slettes innen én time av en R2-livssyklusregel, uansett utfall. Et typisk bilde fullføres på et sekund eller to. Daglige grenser per IP og per opplastingsstørrelse holder gratisnivået bærekraftig.
- Bakgrunnsfjerning, WebAssembly-reserve. Hvis Workeren ikke er tilgjengelig (nettverket ditt faller ut, en streng brannmur blokkerer den, den daglige kvoten er full, eller filen er for stor for skygrensen), bytter verktøyet stille til ISNet-modellen som kjører lokalt via ONNX Runtime Web og WebAssembly. Den første kjøringen laster ned modellen og tar lengre tid, senere kjøringer er raskere. Ingen opplasting på denne veien, verifiserbart i DevTools.
- KI-oppskalering. Standardveien sender bildet én gang til en superoppløsningstjeneste i skyen og strømmer det forstørrede resultatet tilbake, med en nettleserbasert reserve hvis tjenesten ikke kan nås.
4. Du laster ned resultatet
Utdatabildet kodes om til en Blob, pakkes inn i en objekt-URL og gis til
nettleserens vanlige fillagringsdialog. Filen lander på disken din.
Hvordan du verifiserer det selv
Velg det du foretrekker:
Metode 1. Følg med på Nettverk-fanen
- Åpne Araluma i en frisk fane og åpne DevTools, og deretter Nettverk-panelet.
- Bruk et kun-nettleser-verktøy som Sirkelbeskjæring eller glidebryteren for forhåndsvisning av komprimering. Du vil se forespørsler om HTML, CSS, JS og fonter kun, pluss de relevante WebAssembly-modulene ved første bruk. Ingen forespørsel vil bære bildebytene dine.
- Bruk nå et serverberørende verktøy som Komprimeringsnedlasting eller Fjern bakgrunn. Du vil se nøyaktig én
POSTsom bærer bildet ditt til det navngitte endepunktet, og ett svar som kommer tilbake med resultatet. Hold pekeren over en forespørsel for å lese størrelsen og tidsbruken.
“Initiator”-kolonnen forteller deg hvilket skript som utløste hver forespørsel, og “Type”-kolonnen forteller deg hva som ble sendt. Vi skjuler ingen av delene.
Metode 2. Bruk verktøyene frakoblet
- Last inn en hvilken som helst Araluma-verktøyside. Kjør Fjern bakgrunn én gang på et lite bilde slik at ISNet-modellen i nettleseren bufres.
- Åpne DevTools, gå til Nettverk og kryss av for Offline (eller slå av Wi-Fi).
- Last inn siden på nytt. De statiske ressursene er bufret, så den lastes fortsatt.
- Prøv verktøyene:
- Kun-nettleser-verktøy fortsetter å fungere. De trengte aldri nettverket.
- Komprimeringsnedlasting faller tilbake til forhåndsvisningsbloben i nettleseren (en litt mindre effektiv koding, men funksjonell).
- Fjern bakgrunn faller tilbake til ISNet WebAssembly-modellen og fungerer uten noen utgående forespørsel.
Hvis de verktøyene fungerte frakoblet (noen forringet, kun-nettleser-verktøyene identiske), så har per definisjon ingen server sett bildet ditt.
Hva vi ser, og hva vi ikke ser
På kun-nettleser-veiene ser vi ingenting om bildet ditt. Det finnes ingen forespørsel å se på, ingen hurtigbuffer å lagre det i, ingen loggrad å gjennomsøke.
På de serverberørende veiene:
- Komprimeringsnedlasting ser bildebytene i den tiden kodingen varer (vanligvis noen hundre millisekunder), holder en innholdsadressert bufferoppføring i levetiden sin, og det er det. Hurtigbufferen er ikke indeksert etter bruker, IP, filnavn eller noen identifikator vi kunne bruke til å finne “dine” bilder. Vi logger ikke bildeinnhold. Kodingstjenesten deles på tvers av de samme leietakerne v1 betjente før overgangen, med CORS, ratebegrensninger og HMAC-signerte kanoniske URLer per leietaker.
- Fjern bakgrunn ser bildet i den tiden mellomlagringsopplastingen og segmenteringskallet varer (vanligvis et sekund eller to), hvoretter den mellomlagrede kopien slettes av R2-livssyklusregelen. Vi overleverer aldri bytene dine til en tredjeparts modellleverandør. BiRefNet-modellen kjører inne i Cloudflares egen infrastruktur, ikke på et eksternt remove.bg-, fal.ai- eller Replicate-lignende API.
- KI-oppskalering ser bildet i den tiden superoppløsningskallet varer, returnerer resultatet, og beholder ingenting knyttet til deg.
På hver vei registrerer analyseleverandøren vår (Cloudflare Web Analytics) aggregerte sidevisningsdata: URL, land, nettleserfamilie, Core Web Vitals. Ingen informasjonskapsler, ingen vedvarende identifikatorer, ingenting knyttet til en person.
For verktøy som laster ned en WebAssembly-modul ved første bruk (HEIC-dekoderen, ISNet ONNX-modellen), ser vertstjenesten vår at noen hentet modulen, på samme måte som den ser en CSS-fil hentet. Modulen selv bærer ingen informasjon om bildet ditt.
Hele datainventaret er i personvernerklæringen vår.
Teknologistabelen
For de nysgjerrige:
- Astro, den statiske nettstedsgeneratoren. Hver side leveres som ren HTML med progressivt forbedrede JavaScript-”øyer” kun der interaktive verktøy bor.
- Vanlig CSS med egendefinerte egenskaper, ingen Tailwind, ingen CSS-in-JS. Hele designsystemet er en enkelt
tokens.css-fil. canvas.toBlobog<canvas>, JPEG-, PNG-, WebP- og AVIF-kodingen for verktøyene og forhåndsvisningene på nettlesersiden.- Cropper.js, interaksjonslaget for beskjæringsrektangelet.
- ONNX Runtime Web, som kjører ISNet WebAssembly-reserven for Fjern bakgrunn.
- Cloudflare er vert for det statiske bygget og serverer det fra kanten, og kjører Workers, R2 og bildesegmenteringsrørledningen (BiRefNet) bak standardveien for Fjern bakgrunn.
- Fastify med
sharpoglibvipspå Node, komprimeringsnedlastingstjenesten påapi.araluma.com, på en Hostinger-VPS i Tyskland. - Cloudflare Web Analytics, aggregerte sidevisningstall uten informasjonskapsler.
Nettleserstøtte
Hvert verktøy fungerer på gjeldende og forrige versjon av Chrome, Firefox, Safari og
Edge, stasjonær og mobil. Nettstedet bruker progressiv forbedring: der en nettleser
støtter et nyere API (for eksempel showSaveFilePicker eller OffscreenCanvas),
bruker vi det, og der den ikke gjør det, faller vi tilbake til det eldre
ekvivalentet. Det finnes ingen “nettleseren din støttes ikke”-vegg.
De eneste harde kravene er JavaScript (for ethvert verktøy) og en nettverkstilkobling (kun ved bruk av en serverberørende vei, kun-nettleser-verktøyene kjører helt frakoblet etter den første sidelastingen).
Spørsmål
Noe vi ikke dekket? Send e-post til support@araluma.com. Tekniske spørsmål er velkomne.