Det korta svaret
Araluma använder en hybridarkitektur: de flesta verktyg körs helt i din webbläsare utan någon uppladdning, och en handfull leder en enda nätverksbegäran genom vår egen infrastruktur när webbläsaren inte kan matcha kvaliteten, alltid med en osynlig reservväg på klientsidan. Vi talar om vilken väg du är på, i varje verktyg och på den här sidan.
Tabellen nedan är representativ, inte fullständig (katalogen fortsätter att växa). Den visar ett exempel på varje typ av väg:
| Exempelverktyg | Var arbetet sker |
|---|---|
| Cirkelbeskärning (endast webbläsare) | 100 % i din webbläsare, Canvas-API. Ingen uppladdning, fungerar offline. |
| Komprimeringsförhandsvisning (endast webbläsare) | 100 % i din webbläsare, canvas.toBlob. Ingen uppladdning. Reglaget förblir omedelbart. |
| Komprimeringsnedladdning (rör servern) | En tur och retur till vår tjänst på api.araluma.com (sharp plus libvips på en VPS i Tyskland), med en reservväg i webbläsaren. |
| Ta bort bakgrund (rör servern) | En tur och retur till en Cloudflare Worker som kör BiRefNet på edge-GPU:er, med en WebAssembly-reservväg i din webbläsare. |
Verktygen för beskärning, skalning, PDF och formatkonvertering (utom vägen med AVIF-utdata) ligger på sidan som endast använder webbläsaren. Komprimeringsnedladdning, bakgrundsborttagning, AI-uppskalning och konverteringar med AVIF-utdata ligger på den serverberörande sidan, var och en med en lokal reservväg.
Påståendena om endast webbläsaren kan du verifiera på ungefär 30 sekunder: öppna DevTools, gå till Nätverk-fliken, töm loggen och använd sedan ett valfritt verktyg som endast använder webbläsaren. Du kommer att se att ingen begäran med dina bildbyte lämnar sidan. För de serverberörande verktygen ser du exakt en uppladdning per åtgärd, till de namngivna slutpunkterna ovan.
Varför hybrid
De flesta bildverktyg på nätet ligger på en ytterlighet: 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 med kvalitet och hastighet i kodnings- och AI-stegen). Ingen ytterlighet vinner överallt.
Vi valde klientsidan överallt där webbläsare redan är utmärkta. <canvas>-elementet sköter
beskärning, rotation, skalning och den förlustfyllda förhandskodningen i JPG eller WebP, och
moderna webbläsare avkodar varje vanligt format nativt. Vi valde serversidan endast för de få
steg där webbläsaren fortfarande mätbart förlorar:
- Komprimering, vid den slutliga nedladdningen.
sharppluslibvipspå serversidan ger filer som är 10 till 15 % mindre byte för byte än webbläsarens kodare vid samma synliga kvalitet, och blottar inställningar för AVIF-hastighet och kroma som webbläsaren inte har. Reglaget och förhandsvisningen körs fortfarande i din webbläsare så att utprovningen förblir omedelbar. Endast trycket på “Ladda ner” går genom vår tjänst. - AI-bakgrundsborttagning, på standardvägen. BiRefNet-modellen som Cloudflares bildsegmentering kör (samma arkitektur som remove.bg) behöver en riktig GPU för att bli klar på en sekund eller två. Reservvägen i webbläsaren (ISNet via ONNX Runtime plus WebAssembly) fungerar, men tar betydligt längre tid och ger ett synligt grövre utsnitt vid hår, päls och fina kanter.
- AI-uppskalning, på standardvägen. Superupplösning i molnet återskapar detalj som en omsampling i webbläsaren inte kan, med en reservväg i webbläsaren när tjänsten inte går att nå.
Kostnaden vi accepterar för att vara på serversidan på de vägarna är en tur och retur per åtgärd. Kostnaden vi undviker genom att stanna på klientsidan överallt annars är just samma avgift på de delar av arbetsflödet som itererar snabbast.
Flödet, steg för steg
1. Du väljer en fil
Via filväljaren, dra-och-släpp eller inklistring ger webbläsaren JavaScript ett File-objekt.
JavaScript läser byten med FileReader eller Blob.arrayBuffer(). Vid ingen punkt i det här
steget skickas filen över nätverket, oavsett vilket verktyg du använder.
2. Webbläsaren avkodar bilden
Moderna webbläsare avkodar JPG, PNG, WebP, GIF och AVIF nativt. Vi använder
createImageBitmap() för att förvandla de råa byten 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, där vägarna delar sig
- Verktyg som endast använder webbläsaren (beskärning, skalning, komprimeringsförhandsvisningen och reglaget, PDF-sammanfogning och de flesta formatkonverteringar). Dessa körs som Canvas-pixeltransformer och
canvas.toBlob-omkodningar direkt på din maskin. Den interaktiva beskärningsramen använder Cropper.js. Inget lämnar sidan. - Komprimeringsnedladdning. När du trycker på “Ladda ner” går bilden en gång till
api.araluma.com(en Fastify-tjänst på en Hostinger-VPS i Tyskland, Node plussharpochlibvips, samma C-bibliotek som Squoosh använder på sin serverväg). Den kodas om med de parametrar du ställt in i förhandsvisningen, och byten strömmar tillbaka. Tjänsten håller en tenantisolerad, innehållsadresserad cache (en hash av indatabyten plus parametrar) så att en ny nedladdning av samma bild med samma inställningar spelar upp de cachade byten. Den cachen är inte indexerad efter dig, din IP eller filnamn. Om tjänsten inte går att nå faller verktyget tillbaka på förhandsvisningens blob i webbläsaren. - Bakgrundsborttagning, standardväg i molnet. Bilden laddas upp en gång till en Cloudflare Worker, mellanlagras i en privat R2-bucket, bearbetas av Cloudflares bildsegmentering med BiRefNet-modellen på edge-GPU:er, och utsnittet strömmar tillbaka. Det mellanlagrade objektet raderas inom en timme av en R2-livscykelregel, oavsett utfall. Ett typiskt foto blir klart på en sekund eller två. Dagliga gränser per IP och per uppladdningsstorlek håller gratisnivån hållbar.
- Bakgrundsborttagning, WebAssembly-reservväg. Om Worker:n inte går att nå (ditt nätverk faller bort, en sträng brandvägg blockerar den, dagskvoten är full, eller filen är för stor för molngränsen) växlar verktyget tyst till ISNet-modellen som körs lokalt via ONNX Runtime Web och WebAssembly. Den första körningen laddar ner modellen och tar längre tid, senare körningar går snabbare. Ingen uppladdning på den här vägen, verifierbart i DevTools.
- AI-uppskalning. Standardvägen skickar bilden en gång till en molntjänst för superupplösning och strömmar det förstorade resultatet tillbaka, med en reservväg i webbläsaren om tjänsten inte går att nå.
4. Du laddar ner resultatet
Utdatabitmappen kodas till en Blob, slås in i en objekt-URL och lämnas till din webbläsares
vanliga dialog för att spara filer. Filen hamnar på din disk.
Hur du verifierar det själv
Välj det du föredrar:
Metod 1. Titta på Nätverk-fliken
- Öppna Araluma i en ny flik och öppna DevTools, sedan Nätverk-fliken.
- Använd ett verktyg som endast använder webbläsaren som Cirkelbeskärning eller komprimeringsförhandsvisningens reglage. Du ser bara begäranden för HTML, CSS, JS och teckensnitt, plus de relevanta WebAssembly-modulerna vid första användningen. Ingen begäran bär dina bildbyte.
- Använd nu ett serverberörande verktyg som Komprimeringsnedladdning eller Ta bort bakgrund. Du ser exakt en
POSTsom bär din bild till den namngivna slutpunkten, och ett svar som kommer tillbaka med resultatet. Håll muspekaren över en begäran för att läsa dess storlek och tid.
Kolumnen “Initiator” talar om vilket skript som utlöste varje begäran, och kolumnen “Type” talar om vad som skickades. Vi döljer inget av dem.
Metod 2. Använd verktygen offline
- Ladda en valfri verktygssida i Araluma. Kör Ta bort bakgrund en gång på en liten bild så att ISNet-modellen i webbläsaren är cachad.
- Öppna DevTools, gå till Nätverk-fliken och kryssa i Offline (eller stäng av Wi-Fi).
- Ladda om sidan. De statiska resurserna är cachade, så den laddas fortfarande.
- Pröva verktygen:
- Verktyg som endast använder webbläsaren fortsätter att fungera. De behövde aldrig nätverket.
- Komprimeringsnedladdning faller tillbaka på förhandsvisningens blob i webbläsaren (en något mindre effektiv kodning, men fungerande).
- Ta bort bakgrund faller tillbaka på ISNet-WebAssembly-modellen och fungerar utan någon utgående begäran.
Om de verktygen fungerade offline (vissa nedtonade, de som endast använder webbläsaren identiska), då har per definition ingen server sett din bild.
Vad vi ser och vad vi inte ser
På vägarna som endast använder webbläsaren ser vi inget om din bild. Det finns ingen begäran att titta på, ingen cache att lagra den i, ingen loggrad att söka i.
På de serverberörande vägarna:
- Komprimeringsnedladdning ser bildbyten under kodningens varaktighet (oftast några hundra millisekunder), håller en innehållsadresserad cachepost under dess TTL, och det är allt. 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 delas över samma tenanter som v1 betjänade före övergången, med CORS per tenant, hastighetsgränser och HMAC-signerade kanoniska URL:er.
- Ta bort bakgrund ser bilden under mellanlagringens uppladdning och segmenteringsanropet (vanligen en sekund eller två), varefter den mellanlagrade kopian raderas av R2-livscykelregeln. Vi lämnar aldrig dina byte till en modellleverantör från tredje part. BiRefNet-modellen körs inom Cloudflares egen infrastruktur, inte på ett externt API i stil med remove.bg, fal.ai eller Replicate.
- AI-uppskalning ser bilden under superupplösningsanropet, returnerar resultatet och behåller inget som är knutet till dig.
På varje väg registrerar vår analysleverantör (Cloudflare Web Analytics) aggregerade siduppvisningsdata: URL, land, webbläsarfamilj, Core Web Vitals. Inga cookies, inga beständiga identifierare, inget som är knutet till en person.
För verktyg som laddar ner en WebAssembly-modul vid första användningen (HEIC-avkodaren, ISNet-ONNX-modellen) ser vår värdleverantör att någon hämtade modulen, på samma sätt som den ser att en CSS-fil hämtas. Modulen i sig bär ingen information om din bild.
Hela datainventeringen finns i vår integritetspolicy.
Teknikstacken
För de nyfikna:
- Astro, generatorn för statiska sidor. Varje sida levereras som ren HTML med progressivt förbättrade JavaScript-”öar” endast där interaktiva verktyg bor.
- Ren CSS med egna egenskaper, ingen Tailwind, ingen CSS-in-JS. Hela designsystemet är en enda
tokens.css-fil. canvas.toBloboch<canvas>, JPEG-, PNG-, WebP- och AVIF-kodningen för verktygen och förhandsvisningarna på webbläsarsidan.- Cropper.js, interaktionslagret för beskärningsrektangeln.
- ONNX Runtime Web, som kör ISNet-WebAssembly-reservvägen för Ta bort bakgrund.
- Cloudflare är värd för den statiska bygget och levererar det från edge, och kör Workers, R2 och bildsegmenteringskedjan (BiRefNet) bakom standardvägen för Ta bort bakgrund.
- Fastify med
sharpochlibvipspå Node, komprimeringsnedladdningens tjänst påapi.araluma.com, på en Hostinger-VPS i Tyskland. - Cloudflare Web Analytics, aggregerade, cookielösa siduppvisningar.
Webbläsarstöd
Varje verktyg fungerar på den nuvarande och föregående versionen av Chrome, Firefox, Safari och
Edge, på dator och mobil. Sidan använder progressiv förbättring: där en webbläsare stöder ett
nyare API (till exempel showSaveFilePicker eller OffscreenCanvas) använder vi det, och där
den inte gör det faller vi tillbaka på den äldre motsvarigheten. Det finns ingen “din webbläsare
stöds inte”-vägg.
De enda hårda kraven är JavaScript (för varje verktyg) och en nätverksanslutning (endast vid användning av en serverberörande väg, verktygen som endast använder webbläsaren körs helt offline efter den första sidladdningen).
Frågor
Något vi inte täckte? Mejla support@araluma.com. Tekniska frågor är välkomna.