Hur Araluma fungerar

Tekniska detaljer om vad varje verktyg gör, var det körs och hur du kan verifiera det själv.

Det korta svaret

Araluma använder en hybridarkitektur: två verktyg körs helt i din webbläsare utan uppladdning, och två verktyg skickar en enda nätverksbegäran via vår egen infrastruktur när webbläsaren inte kan matcha kvaliteten. Vi berättar vilket spår du befinner dig på, i varje verktyg och på den här sidan.

VerktygVar arbetet sker
Circle Crop100 % i din webbläsare, Canvas API. Ingen uppladdning, fungerar offline.
Compress förhandsgranskning (reglage + formatjämförelse)100 % i din webbläsare, canvas.toBlob. Ingen uppladdning.
Compress slutlig nedladdningEn tur-och-retur till vår tjänst på api.araluma.com (Fastify + sharp + libvips på en VPS i Tyskland).
Remove BackgroundEn tur-och-retur till en Cloudflare Worker som kör BiRefNet på Cloudflares edge-GPU:er, med en WebAssembly-reserv i din webbläsare om molnet är onåbart.

Du kan verifiera påståendena om klientsidan på ungefär 30 sekunder: öppna DevTools → Network, rensa loggen och använd sedan Circle Crop eller reglagets förhandsgranskning i Compress — du ser noll begäranden som bär dina bildbytes lämna sidan. För de två server-anslutna verktygen ser du exakt en uppladdning per operation, till de namngivna slutpunkterna ovan.

Varför hybrid

De flesta bildverktyg online befinner sig i ett av två extremlägen: ladda-upp-allt-till-en-server (du väntar på tur-och-retur och operatören behåller din fil), eller allt-i-webbläsaren (du betalar i kvalitet och hastighet på kodnings- och AI-stegen). Inget extremläge vinner överallt.

Vi valde klientsidan där webbläsare redan är utmärkta — elementet <canvas> hanterar beskärning, rotation och den förlorade förhandsgranskningskodningen i JPG/WebP — och serversidan där webbläsaren fortfarande märkbart tappar:

  • Bildkomprimering, vid slutlig nedladdning. Server-side sharp + libvips 8.17 producerar filer 10–15 % mindre byte-för-byte än webbläsarens kodare vid samma visuella kvalitet, och ger tillgång till AVIF speed/chroma-inställningar och JPEG XL-utdata som webbläsaren inte exponerar. Reglagets förhandsgranskning körs fortfarande i din webbläsare så att iteration förblir omedelbar; bara “Ladda ned”-trycket går via vår tjänst.
  • AI-bakgrundsborttagning, på standardspåret. BiRefNet-modellen som Cloudflares cf.image.segment kör (samma arkitektur som remove.bg) kräver en riktig GPU för att bli klar på 1–3 sekunder. Reserven i webbläsaren (ISNet via ONNX Runtime + WebAssembly) fungerar, tar 20–40 sekunder vid första körningen plus 2–10 sekunder därefter, och ger ett märkbart grövre urklipp på hår, päls och fina kanter.

Kostnaden vi accepterar för att vara server-side på dessa två spår är en tur-och-retur per operation. Kostnaden vi undviker genom att stanna på klientsidan på alla andra ställen (Circle Crop, Compress-förhandsgranskningen) är tur-och-retur-avgiften på de delar av arbetsflödet som itererar snabbast.

Pipeline:n, steg för steg

1. Du väljer en fil

Via filväljaren, dra och släpp eller klistra in skickar webbläsaren JavaScript ett File-objekt. JavaScript läser byten med FileReader eller Blob.arrayBuffer(). Vid inget tillfälle i det här steget skickas filen via nätverket, oavsett vilket verktyg du använder.

2. Webbläsaren avkodar bilden

Moderna webbläsare avkodar nativt JPG, PNG, WebP, GIF och AVIF. Vi använder createImageBitmap() för att omvandla rå bytes till en bitmapp som GPU:n kan arbeta med, utanför huvudtråden. För HEIC i webbläsare som inte avkodar det nativt faller vi tillbaka på en WebAssembly-avkodare som körs lokalt i din webbläsare.

3. Verktyget gör sitt jobb — här skiljer sig spåren åt

  • Circle Crop. En Canvas 2D-pixelomvandling med en cirkulär klippbana. Bitmappen ritas in i ett <canvas> vid vald rotation och zoom, den cirkulära klippningen tillämpas och insidan av cirkeln läses tillbaka som ImageData. Cropper.js hanterar den interaktiva beskärningsramen. Helt i din webbläsare.
  • Compress — förhandsgranskning och reglage. Kodar om JPG, PNG, WebP eller AVIF med canvas.toBlob så att förhandsgranskningen sida vid sida uppdateras när du drar kvalitetsreglagets. Helt i din webbläsare. Ingen uppladdning ännu.
  • Compress — Ladda ned. När du trycker på “Ladda ned” skickas bilden en gång till api.araluma.com (en Fastify-tjänst på en VPS i Tyskland som drivs av Hostinger, Node 24 + sharp 0.34 + libvips 8.17, samma C-bibliotek som Squoosh använder på sin serverväg). Den kodas om med samma parametrar du ställde in i förhandsgranskningen, och byten strömmas tillbaka till din webbläsare. Tjänsten har en tenant-isolerad, innehållsadresserad cache (en hash av indata-bytes + parametrar) begränsad till 500 MB, så att en ny nedladdning av samma bild med samma inställningar spelar upp cachade bytes — cachen är inte indexerad efter dig, IP eller filnamn. Om tjänsten är onåbar faller verktyget tillbaka på förhandsgransknings-blobben i webbläsaren.
  • Remove Background — standardspåret via molnet. Bilden laddas upp en gång till en Cloudflare Worker (araluma-bg-remover), lagras tillfälligt i en privat R2-bucket (araluma-bg-temp), bearbetas av Cloudflares cf.image.segment-transformation som kör BiRefNet-modellen på Cloudflares edge-GPU:er, och urklippet strömmas tillbaka. Det tillfälliga R2-objektet raderas inom en timme av en R2-livscykelregel, oavsett utfall. Ett typiskt foto är klart på 1–3 sekunder. Dagliga per-IP- och 5 MB-uppladdningsgränser håller gratistjänsten hållbar.
  • Remove Background — WebAssembly-reserv. Om Worker:n är onåbar (din nätverksanslutning försvinner, du befinner dig bakom en strikt brandvägg, den dagliga kvoten är full eller filen överstiger molngränsen på 5 MB) byter verktyget transparent till ISNet-modellen som körs lokalt i din webbläsare via ONNX Runtime Web med WebAssembly. Vid första körningen laddas modellen (~80 MB) ned och tar 20–40 sekunder; efterföljande körningar tar 2–10 sekunder. Ingen uppladdning på det här spåret — du kan verifiera det i DevTools.

4. Du laddar ned resultatet

Utmatningsbitmappen kodas till en Blob, lindas in i en object URL och erbjuds till webbläsarens standarddialog för att spara filer. Filen visas på din disk.

Hur du verifierar det själv

Välj vilken metod du föredrar:

Metod 1 — Titta på nätverksfliken

  1. Öppna Araluma i en ny flik och öppna DevTools → Network.
  2. Använd Circle Crop eller Compress-förhandsgranskningens reglage. Du ser begäranden för HTML/CSS/JS/typsnitt endast, plus relevanta WebAssembly-moduler vid första användning. Ingen begäran bär dina bildbytes.
  3. Använd nu Compress → Ladda ned eller Remove Background. Du ser exakt en POST till api.araluma.com (Compress) eller till Remove Background Worker, som bär din bild — och ett svar som kommer tillbaka med resultatet. Håll muspekaren över en begäran för att se storlek och tidpunkt.

Kolumnen “Initiator” berättar vilket skript som utlöste varje begäran, och kolumnen “Type” berättar vad som skickades. Vi döljer ingendera.

Metod 2 — Använd verktygen offline

  1. Läs in en valfri Araluma-verktygssida. Använd Remove Background en gång på en liten bild så att ISNet-modellen i webbläsaren är cachad.
  2. Öppna DevTools → Network → markera Offline (eller stäng av Wi-Fi).
  3. Läs om sidan; de statiska filerna är cachade, så den läser ändå in sig.
  4. Prova varje verktyg:
    • Circle Crop och Compress-förhandsgranskningen fortsätter fungera — de behövde aldrig nätverket.
    • Compress Ladda ned faller tillbaka på förhandsgransknings-blobben i webbläsaren (något mindre effektiv kodning, men funktionell).
    • Remove Background faller tillbaka på ISNet WebAssembly-modellen och fungerar utan någon utgående begäran.

Om de fyra verktygen fungerade offline (ett något försämrat, tre identiska) såg per definition ingen server din bild.

Vad vi ser — och vad vi inte ser

klientsidans spår ser vi ingenting om din bild. Det finns ingen begäran att titta på, ingen cache att lagra den i, ingen loggpost att söka i.

serversidans spår:

  • Compress Ladda ned ser bildbytes under kodningens varaktighet (typiskt några hundra millisekunder), behåller en innehållsadresserad cache-post under cache-TTL, och det är det. Cachen är inte indexerad efter användare, IP, filnamn eller någon identifierare vi skulle kunna använda för att hitta “dina” bilder. Vi loggar inte bildinnehåll. Kodningstjänsten är delad över samma två tenants som v1 servade före övergången, med per-tenant CORS, hastighetsgränser och HMAC-signerade kanoniska URL:er.
  • Remove Background ser bilden under staginguppladdningens och segmenteringskallens varaktighet (typiskt totalt 1–3 sekunder), varefter den tillfälliga kopian raderas av R2-livscykelregeln. Vi skickar aldrig dina bytes till någon tredjepartsmodellsleverantör — BiRefNet-modellen körs inom Cloudflares egen infrastruktur, inte på ett externt API i stil med remove.bg / fal.ai / Replicate.

På alla spår registrerar vår analysleverantör (Cloudflare Web Analytics) aggregerade sidvisningsdata — URL, land, webbläsarfamilj, Core Web Vitals. Inga cookies, inga beständiga identifierare, ingenting kopplat till en person.

För verktyg som laddar ned en WebAssembly-modul vid första användning (HEIC-avkodaren, ISNet ONNX-modellen) ser vår hostingleverantör att någon hämtade modulen — på samma sätt som den ser att de hämtar CSS-filen. Modulen innehåller ingen information om din bild.

Den fullständiga datainventeringen finns i vår integritetspolicy.

Teknikstacken

För de nyfikna:

  • Astro — den statiska webbplatsgeneratorn. Varje sida levereras som vanlig HTML med progressivt förbättrade JavaScript-”islands” bara där interaktiva verktyg finns.
  • Vanilla CSS med anpassade egenskaper — ingen Tailwind, inget CSS-in-JS. Hela designsystemet är en enda fil tokens.css.
  • canvas.toBlob / <canvas> — JPEG, PNG, WebP, AVIF (webbläsarstödd) kodning i Compress-förhandsgranskningen och hela Circle Crop.
  • Cropper.js — interaktionslagret för beskärningsrektangeln.
  • ONNX Runtime Web — kör ISNet WebAssembly-reserven för Remove Background.
  • Cloudflare Pages — är värd för den statiska builden och levererar den från edge.
  • Cloudflare Workers + R2 + cf.image.segment (BiRefNet) — standardpipelinen för Remove Background.
  • Fastify + sharp 0.34 + libvips 8.17 på Node 24 — Compress-nedladdningstjänsten på api.araluma.com, på en Hostinger VPS i Tyskland.
  • Cloudflare Web Analytics — aggregerade, cookie-fria sidvisningsräkningar.

Webbläsarstöd

Alla verktyg fungerar i den aktuella och föregående versionen av Chrome, Firefox, Safari och Edge — dator och mobil. Webbplatsen använder progressiv förbättring: där en webbläsare stöder ett nyare API (t.ex. showSaveFilePicker, OffscreenCanvas) använder vi det; där inte faller vi tillbaka på det äldre alternativet. Det finns ingen “din webbläsare stöds inte”-vägg.

De enda hårda kraven är JavaScript (för alla verktyg) och en nätverksanslutning (bara vid användning av Compress Ladda ned eller standardspåret för Remove Background — de andra spåren körs helt offline efter den första sidinläsningen).

Frågor

Något vi inte täckt? Maila support@araluma.com. Tekniska frågor är välkomna.