Lyhyt vastaus
Araluma käyttää hybridiarkkitehtuuria: useimmat työkalut toimivat kokonaan selaimessasi ilman latausta, ja muutamat reitittävät yhden verkkopyynnön oman infrastruktuurimme kautta silloin, kun selain ei pysty vastaamaan laatua, aina näkymättömällä asiakaspuolen varajärjestelmällä. Kerromme sinulle, millä polulla olet, jokaisessa työkalussa ja tällä sivulla.
Alla oleva taulukko on edustava, ei tyhjentävä (valikoima kasvaa jatkuvasti). Se näyttää yhden esimerkin kustakin polkutyypistä:
| Esimerkkityökalu | Missä työ tapahtuu |
|---|---|
| Ympyrärajaus (vain selain) | 100 % selaimessasi, Canvas-rajapinta. Ei latausta, toimii offline-tilassa. |
| Pakkauksen esikatselu (vain selain) | 100 % selaimessasi, canvas.toBlob. Ei latausta. Liukusäädin pysyy välittömänä. |
| Pakkauslataus (koskettaa palvelinta) | Yksi edestakaisin palveluumme osoitteessa api.araluma.com (sharp ja libvips VPS:llä Saksassa), selaimen varajärjestelmällä. |
| Poista tausta (koskettaa palvelinta) | Yksi edestakaisin Cloudflare Workerille, joka ajaa BiRefNet-mallia reuna-GPU:illa, WebAssembly-varajärjestelmällä selaimessasi. |
Rajaamis-, koonmuutos-, PDF- ja muodonmuunnostyökalut (lukuun ottamatta AVIF-tulospolkua) ovat selainpuolella. Pakkauslataus, taustan poisto, tekoälyskaalaus ja AVIF-tulosmuunnokset ovat palvelinta koskettavalla puolella, kukin paikallisella varajärjestelmällä.
Voit varmistaa vain-selain-väitteet noin 30 sekunnissa: avaa DevTools, mene Verkko-paneeliin, tyhjennä loki ja käytä sitten mitä tahansa vain-selain-työkalua. Näet nolla pyyntöä, jotka kantavat kuvatavujasi sivulta pois. Palvelinta koskettaville työkaluille näet tarkalleen yhden latauksen toimintoa kohden, yllä nimettyihin päätepisteisiin.
Miksi hybridi
Useimmat verkon kuvatyökalut sijaitsevat yhdessä ääripäässä: lataa-kaikki-palvelimelle (odotat edestakaisia matkoja ja ylläpitäjä säilyttää tiedostosi), tai kaikki-selaimessa (maksat laadussa ja nopeudessa koodaus- ja tekoälyvaiheissa. Kumpikaan ääripää ei voita kaikkialla.
Valitsimme asiakaspuolen siellä, missä selaimet ovat jo erinomaisia. <canvas>-elementti
hoitaa rajaamisen, kierron, koonmuutoksen ja häviöllisen esikatselukoodauksen JPG- tai
WebP-muodossa, ja nykyaikaiset selaimet purkavat jokaisen yleisen muodon natiivisti.
Valitsimme palvelinpuolen vain niihin harvoihin vaiheisiin, joissa selain vielä häviää
mitattavasti:
- Pakkaaminen, lopullisessa latauksessa. Palvelinpuolen
sharpjalibvipstuottavat tiedostoja, jotka ovat 10 - 15 % pienempiä tavu tavulta kuin selainkoodaajat samalla visuaalisella laadulla, ja paljastavat AVIF-nopeuden ja krominanssin viritystä, jota selain ei tee. Liukusäädin ja esikatselu toimivat edelleen selaimessasi, jotta iterointi pysyy välittömänä. Vain “Lataa”-napautus kulkee palvelumme kautta. - Tekoälytaustan poisto, oletuspolulla. BiRefNet-malli, jota Cloudflaren kuvasegmentointi ajaa (sama arkkitehtuuri kuin remove.bg), tarvitsee oikean GPU:n valmistuakseen sekunnissa tai kahdessa. Selaimen varajärjestelmä (ISNet ONNX Runtimen ja WebAssemblyn kautta) toimii, mutta kestää paljon kauemmin ja tuottaa näkyvästi karkeamman irrotuksen hiuksissa, turkissa ja hienoissa reunoissa.
- Tekoälyskaalaus, oletuspolulla. Pilven superresoluutio palauttaa yksityiskohtia, joita selainpohjainen uudelleennäytteistys ei voi, selaimen varajärjestelmällä silloin kun palvelu ei ole tavoitettavissa.
Kustannus, jonka hyväksymme palvelinpuolella olemisesta näillä poluilla, on yksi edestakainen matka toimintoa kohden. Kustannus, jonka vältämme pysymällä asiakaspuolella kaikkialla muualla, on sama maksu niissä työnkulun osissa, jotka iteroivat nopeimmin.
Putki, vaihe vaiheelta
1. Valitset tiedoston
Tiedostonvalitsimen, vedä ja pudota -toiminnon tai liittämisen kautta selain antaa
JavaScriptille File-objektin. JavaScript lukee tavut käyttäen FileReader- tai
Blob.arrayBuffer()-rajapintaa. Missään tämän vaiheen kohdassa tiedostoa ei
lähetetä verkon yli, mitä tahansa työkalua käytätkin.
2. Selain purkaa kuvan
Nykyaikaiset selaimet purkavat JPG-, PNG-, WebP-, GIF- ja AVIF-muodot natiivisti.
Käytämme createImageBitmap()-rajapintaa muuttaaksemme raakatavut bittikartaksi,
jonka kanssa GPU voi työskennellä, pääsäikeen ulkopuolella. HEIC-muodolle selaimissa,
jotka eivät pura sitä natiivisti, palaamme WebAssembly-purkajaan, joka toimii
paikallisesti selaimessasi.
3. Työkalu tekee tehtävänsä, jossa polut eroavat
- Vain-selain-työkalut (rajaaminen, koonmuutos, pakkauksen esikatselu ja liukusäädin, PDF-kokoaminen ja useimmat muodonmuunnokset). Nämä toimivat Canvas-pikselimuunnoksina ja
canvas.toBlob-uudelleenkoodauksena suoraan koneellasi. Vuorovaikutteinen rajauskehys käyttää Cropper.js-kirjastoa. Mikään ei poistu sivulta. - Pakkauslataus. Kun napautat “Lataa”, kuva menee kerran osoitteeseen
api.araluma.com(Fastify-palvelu Hostinger-VPS:llä Saksassa, Node sekäsharpjalibvips, samat C-kirjastot, joita Squoosh käyttää palvelinpolullaan). Se koodataan uudelleen esikatselussa asettamillasi parametreilla, ja tavut virtaavat takaisin. Palvelu pitää vuokralaiseristettyä, sisältöosoitteista välimuistia (syötetavujen ja parametrien tiiviste), joten saman kuvan lataaminen uudelleen samoilla asetuksilla toistaa välimuistissa olevat tavut. Tätä välimuistia ei ole indeksoitu sinun, IP-osoitteesi tai tiedostonimen mukaan. Jos palvelu ei ole tavoitettavissa, työkalu palaa selaimen esikatselublobiin. - Taustan poisto, oletuspilvipolku. Kuva ladataan kerran Cloudflare Workerille, lavastetaan yksityiseen R2-säiliöön, käsitellään Cloudflaren kuvasegmentoinnilla, joka ajaa BiRefNet-mallia reuna-GPU:illa, ja irrotus virtaa takaisin. Lavastettu objekti poistetaan tunnin sisällä R2-elinkaarisäännöllä, lopputuloksesta riippumatta. Tyypillinen valokuva valmistuu sekunnissa tai kahdessa. Päivittäiset IP-kohtaiset ja latauskoon rajat pitävät ilmaistason kestävänä.
- Taustan poisto, WebAssembly-varajärjestelmä. Jos Worker ei ole tavoitettavissa (verkkosi katkeaa, tiukka palomuuri estää sen, päivittäinen kiintiö on täynnä, tai tiedosto on liian suuri pilvirajalle), työkalu vaihtaa hiljaa ISNet-malliin, joka toimii paikallisesti ONNX Runtime Web-kirjaston ja WebAssemblyn kautta. Ensimmäinen ajo lataa mallin ja kestää kauemmin, myöhemmät ajot ovat nopeampia. Ei latausta tällä polulla, varmistettavissa DevToolsissa.
- Tekoälyskaalaus. Oletuspolku lähettää kuvan kerran pilven superresoluutiopalveluun ja virtauttaa suurennetun tuloksen takaisin, selainpohjaisella varajärjestelmällä, jos palvelua ei tavoiteta.
4. Lataat tuloksen
Tuloskuva koodataan Blob-objektiksi, kääritään objekti-URL:iin ja luovutetaan
selaimesi tavalliselle tiedoston tallennusvalintaikkunalle. Tiedosto laskeutuu
levyllesi.
Miten varmistat sen itse
Valitse kumman tahansa haluat:
Tapa 1. Tarkkaile Verkko-välilehteä
- Avaa Araluma uudessa välilehdessä ja avaa DevTools, sitten Verkko-paneeli.
- Käytä vain-selain-työkalua kuten Ympyrärajausta tai pakkauksen esikatselun liukusäädintä. Näet pyyntöjä vain HTML:lle, CSS:lle, JS:lle ja fonteille, sekä asiaankuuluvat WebAssembly-moduulit ensimmäisellä käytöllä. Mikään pyyntö ei kanna kuvatavujasi.
- Käytä nyt palvelinta koskettavaa työkalua kuten Pakkauslatausta tai Poista tausta. Näet tarkalleen yhden
POST-pyynnön, joka kantaa kuvasi nimettyyn päätepisteeseen, ja yhden vastauksen, joka tulee takaisin tuloksen kanssa. Vie osoitin pyynnön päälle lukeaksesi sen koon ja ajoituksen.
“Initiator”-sarake kertoo, mikä skripti laukaisi kunkin pyynnön, ja “Type”-sarake kertoo, mitä lähetettiin. Emme piilota kumpaakaan.
Tapa 2. Käytä työkaluja offline-tilassa
- Lataa mikä tahansa Araluma-työkalusivu. Aja Poista tausta kerran pienelle kuvalle, jotta selaimen ISNet-malli tallentuu välimuistiin.
- Avaa DevTools, mene Verkkoon ja rastita Offline (tai kytke Wi-Fi pois).
- Lataa sivu uudelleen. Staattiset resurssit ovat välimuistissa, joten se latautuu silti.
- Kokeile työkaluja:
- Vain-selain-työkalut jatkavat toimintaansa. Ne eivät koskaan tarvinneet verkkoa.
- Pakkauslataus palaa selaimen esikatselublobiin (hieman vähemmän tehokas koodaus, mutta toimiva).
- Poista tausta palaa ISNet WebAssembly -malliin ja toimii ilman mitään lähtevää pyyntöä.
Jos nuo työkalut toimivat offline-tilassa (jotkin heikennettyinä, vain-selain-työkalut identtisinä), niin määritelmän mukaan mikään palvelin ei nähnyt kuvaasi.
Mitä näemme ja mitä emme
Vain-selain-poluilla emme näe mitään kuvastasi. Ei ole pyyntöä katsottavaksi, ei välimuistia tallentaa sitä, ei lokiriviä etsittäväksi.
Palvelinta koskettavilla poluilla:
- Pakkauslataus näkee kuvatavut koodauksen keston ajan (yleensä muutama sata millisekuntia), pitää sisältöosoitteisen välimuistimerkinnän sen TTL:n ajan, ja siinä se. Välimuistia ei ole indeksoitu käyttäjän, IP:n, tiedostonimen tai minkään tunnisteen mukaan, jolla voisimme löytää “sinun” kuvasi. Emme lokita kuvan sisältöä. Koodauspalvelu jaetaan samojen vuokralaisten kesken, joita v1 palveli ennen siirtoa, vuokralaiskohtaisella CORSilla, nopeusrajoituksilla ja HMAC-allekirjoitetuilla kanonisilla URL-osoitteilla.
- Poista tausta näkee kuvan lavastuslatauksen ja segmentointikutsun keston ajan (tyypillisesti sekunti tai kaksi), minkä jälkeen lavastettu kopio poistetaan R2-elinkaarisäännöllä. Emme koskaan luovuta tavujasi kolmannen osapuolen mallintarjoajalle. BiRefNet-malli toimii Cloudflaren oman infrastruktuurin sisällä, ei ulkoisessa remove.bg-, fal.ai- tai Replicate-tyyppisessä rajapinnassa.
- Tekoälyskaalaus näkee kuvan superresoluutiokutsun keston ajan, palauttaa tuloksen, eikä säilytä mitään sinuun sidottua.
Jokaisella polulla analytiikkapalveluntarjoajamme (Cloudflare Web Analytics) tallentaa koottua sivunäyttödataa: URL, maa, selainperhe, Core Web Vitals. Ei evästeitä, ei pysyviä tunnisteita, ei mitään henkilöön sidottua.
Työkaluille, jotka lataavat WebAssembly-moduulin ensimmäisellä käytöllä (HEIC-purkaja, ISNet ONNX -malli), isännöintipalveluntarjoajamme näkee, että joku haki moduulin, samaan tapaan kuin se näkee CSS-tiedoston haetuksi. Moduuli itse ei kanna mitään tietoa kuvastasi.
Täydellinen tietoluettelo on tietosuojakäytännössämme.
Teknologiapino
Uteliaille:
- Astro, staattinen sivustogeneraattori. Jokainen sivu toimitetaan pelkkänä HTML:nä progressiivisesti parannelluilla JavaScript-”saarekkeilla” vain siellä, missä vuorovaikutteiset työkalut asuvat.
- Vanilla CSS mukautetuilla ominaisuuksilla, ei Tailwindia, ei CSS-in-JS:ää. Koko suunnittelujärjestelmä on yksi
tokens.css-tiedosto. canvas.toBlobja<canvas>, JPEG-, PNG-, WebP- ja AVIF-koodaus selainpuolen työkaluille ja esikatseluille.- Cropper.js, rajaussuorakulmion vuorovaikutuskerros.
- ONNX Runtime Web, joka ajaa ISNet WebAssembly -varajärjestelmän Poista tausta -työkalulle.
- Cloudflare isännöi staattisen buildin ja tarjoilee sen reunalta, ja ajaa Workerit, R2:n ja kuvasegmentointiputken (BiRefNet) Poista tausta -oletuspolun takana.
- Fastify sekä
sharpjalibvipsNodella, pakkauslatauspalvelu osoitteessaapi.araluma.com, Hostinger-VPS:llä Saksassa. - Cloudflare Web Analytics, koottu, evästeetön sivunäyttölaskenta.
Selaintuki
Jokainen työkalu toimii Chromen, Firefoxin, Safarin ja Edgen nykyisessä ja
edellisessä versiossa, työpöydällä ja mobiilissa. Sivusto käyttää progressiivista
parantamista: missä selain tukee uudempaa rajapintaa (esimerkiksi
showSaveFilePicker tai OffscreenCanvas), käytämme sitä, ja missä se ei tue,
palaamme vanhempaan vastaavaan. Ei ole “selaintasi ei tueta” -seinää.
Ainoat kovat vaatimukset ovat JavaScript (mihin tahansa työkaluun) ja verkkoyhteys (vain palvelinta koskettavaa polkua käytettäessä, vain-selain-työkalut toimivat täysin offline-tilassa ensimmäisen sivunlatauksen jälkeen).
Kysymyksiä
Jäikö jotain käsittelemättä? Lähetä sähköpostia osoitteeseen support@araluma.com. Tekniset kysymykset ovat tervetulleita.