Det korte svaret
RoundCut bruker en hybrid arkitektur: de fleste verktøyene kjører helt i nettleseren din uten opplasting, og noen få sender én enkelt nettverksforespørsel gjennom vår egen infrastruktur når nettleseren ikke kan matche kvaliteten, alltid med en usynlig reserveløsning på klientsiden. Vi forteller deg hvilken vei du er på, i hvert verktøy og på denne siden.
Tabellen nedenfor er representativ, ikke uttømmende (nye verktøy lanseres jevnlig). Den viser ett eksempel på hver type vei:
| Eksempelverktøy | Hvor arbeidet skjer |
|---|---|
| Sirkelbeskjæring (kun nettleser) | 100 prosent i nettleseren din, Canvas API. Ingen opplasting, fungerer frakoblet. |
| Compress-forhåndsvisning (kun nettleser) | 100 prosent i nettleseren din, canvas.toBlob. Ingen opplasting. Glideren forblir umiddelbar. |
| Compress endelig nedlasting (berører serveren) | Én rundtur til tjenesten vår på api.roundcut.com.br (Fastify, sharp, libvips på en VPS i Tyskland), med en reserveløsning i nettleseren. |
| Fjern bakgrunn (berører serveren) | Én rundtur til en Cloudflare Worker som kjører BiRefNet på Cloudflares edge-GPU-er, med en WebAssembly-reserve i nettleseren din når skyen ikke er tilgjengelig. |
Beskjæring, størrelsesendring, formatkonvertering (bortsett fra AVIF-koding) og Compress-forhåndsvisningen kjører alle fullt ut i nettleseren din. Fjerning av bakgrunn, Compress-nedlastingen, AI-oppskalering, AVIF-koding og PDF med flere bilder sender hver én forespørsel og faller tilbake til nettleseren når skyen ikke er tilgjengelig.
Du kan bekrefte påstandene om klientsiden på cirka 30 sekunder: åpne DevTools → Network, tøm loggen, og bruk så et verktøy som kun bruker nettleseren, som Sirkelbeskjæring eller Compress-forhåndsvisningsglideren, du vil se null forespørsler som bærer bildebytene dine forlate siden. For verktøyene som berører serveren vil du se nøyaktig én opplasting per operasjon, til navngitte endepunkter.
Hvorfor hybrid
De fleste nettbaserte bildeverktøy ligger på ett ytterpunkt: last-alt-opp-til-en-server (du venter på rundturer og operatøren beholder filen din), eller alt-i-nettleseren (du betaler i kvalitet og hastighet på koding- og AI-trinnene). Ingen av ytterpunktene vinner overalt.
Vi valgte klientsiden der nettlesere allerede er utmerkede, <canvas>-elementet
håndterer beskjæring, rotering, størrelsesendring og den tapsbaserte
forhåndsvisningskodingen i JPG/WebP, og serversiden der nettleseren fortsatt taper
målbart:
- Bildekomprimering, på den endelige nedlastingen.
sharp+libvips 8.17på serversiden produserer filer som er 10 til 15 prosent mindre byte for byte enn nettleserkodere ved samme visuelle kvalitet, og gir tilgang til hastighets- og kromatuning for AVIF og JPEG XL-utdata som nettleseren ikke eksponerer. Glideren og forhåndsvisningen kjører fortsatt i nettleseren din slik at justering forblir umiddelbar, kun trykket på “Last ned” går gjennom tjenesten vår. - AI-fjerning av bakgrunn og AI-oppskalering, på standardveien. Modellene (BiRefNet for segmentering, superoppløsning for oppskalering) trenger en ekte GPU for å bli ferdig på sekunder. Reserveløsningene i nettleseren fungerer, men er tregere og gir et synlig grovere resultat på hår, pels og fine kanter.
- AVIF-koding, på konvertering. AVIF-koderen i nettleseren er treg på enkelte enheter, så AVIF-utdata sender én forespørsel til komprimerings-Worker-en, med en koding i nettleserens hovedtråd som reserve.
Kostnaden vi godtar for å være på serversiden på disse veiene er én rundtur per operasjon. Kostnaden vi unngår ved å holde oss på klientsiden overalt ellers er rundtursavgiften på de delene av arbeidsflyten som justeres raskest.
Rørledningen, steg for steg
1. Du velger en fil
Gjennom filvelgeren, dra-og-slipp eller lim inn, gir nettleseren JavaScript et
File-objekt. JavaScript leser bytene med FileReader eller Blob.arrayBuffer().
På ingen punkt 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() for å gjøre de rå bytene om til et bitkart GPU-en kan jobbe
med, utenfor hovedtråden. For HEIC på 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, dette er der veiene skiller lag
- Verktøy kun for nettleser (beskjæring, størrelsesendring, formatkonvertering til PNG/JPEG/WebP, Compress-forhåndsvisningen). En Canvas 2D-pikseltransformasjon eller en WebAssembly-kodek koder bitkartet på nytt lokalt. Resultatet er klart uten noen opplasting. Cropper.js håndterer den interaktive beskjæringsrammen for beskjæringsverktøyene, og
canvas.toBlobhåndterer forhåndsvisningskodingen. Helt i nettleseren din. - Compress, nedlasting. Når du trykker “Last ned”, sendes bildet én gang til
api.roundcut.com.br(en Fastify-tjeneste som kjører på en VPS i Tyskland driftet av Hostinger, Node 24,sharp 0.34,libvips 8.17, de samme C-bibliotekene Squoosh bruker på serverveien sin). Det kodes på nytt med de samme parameterne du satte i forhåndsvisningen, og bytene strømmes tilbake til nettleseren din. Tjenesten holder en leietaker-isolert, innholdsadressert hurtigbuffer (en hash av inndatabytene og parameterne) begrenset til 500 MB, slik at gjenopplasting av samme bilde med samme innstillinger spiller av de bufrede bytene, hurtigbufferen er ikke indeksert etter deg, IP eller filnavn. Hvis tjenesten ikke er tilgjengelig, faller verktøyet tilbake til forhåndsvisnings-blob-en i nettleseren. - Fjern bakgrunn, standard skyvei. Bildet lastes opp én gang til en Cloudflare Worker, mellomlagres i en privat R2-bøtte, behandles av Cloudflares
cf.image.segment-transformasjon som kjører BiRefNet-modellen på Cloudflares edge-GPU-er, og utklippet strømmes tilbake. Det mellomlagrede R2-objektet slettes innen én time av en R2-livssyklusregel, uansett utfall. Et typisk bilde blir ferdig på 1 til 3 sekunder. Daglige grenser per IP og 5 MB opplastingsgrense holder gratisnivået bærekraftig. - Andre skystøttede verktøy (AI-oppskalering, AVIF-koding, PDF med flere bilder) følger samme form: én forespørsel til navngitt infrastruktur (et sky-bilde-API for superoppløsning, komprimerings-Worker-en for AVIF-koding, VPS-tjenesten vår for PDF med flere bilder), resultat strømmet tilbake, og en usynlig reserveløsning i nettleseren hvis den forespørselen feiler.
- WebAssembly-reserve. Hvis den relevante skyveien ikke er tilgjengelig (nettverket ditt faller ut, du er bak en streng brannmur, den daglige kvoten er full, eller filen overstiger skygrensen), bytter verktøyet usynlig til en lokal modell eller kodek som kjører i nettleseren din, for eksempel bakgrunnsfjerningsmodellen ISNet via ONNX Runtime Web med WebAssembly. Den første kjøringen laster ned modellen og er tregere, påfølgende kjøringer er raskere. Ingen opplasting på disse reserveveiene, du kan bekrefte det i DevTools.
4. Du laster ned resultatet
Utdatabitkartet kodes til en Blob, pakkes inn i en object URL, og tilbys til
nettleserens standard fillagringsdialog. Filen dukker opp på disken din.
Hvordan bekrefte det selv
Velg det du foretrekker:
Metode 1. Følg med på Network-fanen
- Åpne RoundCut i en ny fane og åpne DevTools → Network.
- Bruk et verktøy kun for nettleser, Sirkelbeskjæring eller Compress-forhåndsvisningsglideren. Du vil se forespørsler for HTML/CSS/JS/skrifttyper kun, pluss de relevante WebAssembly-modulene ved første bruk. Ingen forespørsel vil bære bildebytene dine.
- Bruk nå et verktøy som berører serveren, Compress → Last ned eller Fjern bakgrunn. Du vil se nøyaktig én
POSTsom bærer bildet ditt, og ett svar som kommer tilbake med resultatet. Hold pekeren over en forespørsel for å se størrelse og timing.
“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 RoundCut-verktøyside. Bruk Fjern bakgrunn én gang på et lite bilde slik at ISNet-modellen i nettleseren bufres.
- Åpne DevTools → Network → 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:
- Verktøy kun for nettleser (Sirkelbeskjæring, størrelsesendring, Compress-forhåndsvisningen) fortsetter å fungere, de trengte aldri nettverket.
- Compress-nedlasting faller tilbake til forhåndsvisnings-blob-en i nettleseren (litt mindre effektiv koding, men funksjonell).
- Fjern bakgrunn faller tilbake til ISNet WebAssembly-modellen og fungerer uten noen utgående forespørsel.
Hvis verktøyene fungerte frakoblet (de skystøttede litt forringet, de kun for nettleser identiske), så har per definisjon ingen server sett bildet ditt.
Hva vi ser, og hva vi ikke ser
På veiene kun for nettleser ser vi ingenting om bildet ditt. Det finnes ingen forespørsel å se på, ingen hurtigbuffer å lagre det i, ingen loggjelinje å gjennomsøke.
På veiene på serversiden:
- Komprimerings- og PDF-tjenesten ser bildebytene under kodingen (vanligvis noen få hundre millisekunder), holder en innholdsadressert hurtigbufferoppføring i hurtigbufferens TTL, 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 to leietakerne v1 betjente før overgangen, med CORS per leietaker, rategrenser og HMAC-signerte kanoniske URL-er.
- Fjern bakgrunn og de andre AI-veiene ser bildet under mellomlagringsopplastingen og modellkallet (vanligvis noen sekunder), hvoretter den mellomlagrede kopien slettes av en R2-livssyklusregel. BiRefNet-modellen kjører inne i Cloudflares egen infrastruktur, ikke på et eksternt API av typen remove.bg / fal.ai / Replicate.
På hver vei registrerer analyseleverandøren vår (Cloudflare Web Analytics) aggregerte data om sidevisninger. 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 vertsleverandøren vår at noen hentet modulen, på samme måte som den ser dem hente CSS-filen. Selve modulen inneholder ingen informasjon om bildet ditt.
Den fulle datafortegnelsen finnes i personvernerklæringen vår.
Teknologistakken
For de nysgjerrige:
- Astro, den statiske nettstedsgeneratoren. Hver side leveres som ren HTML med progressivt forbedrede JavaScript-”øyer” kun der interaktive verktøy bor.
- Vanilla CSS med egendefinerte egenskaper, ingen Tailwind, ingen CSS-in-JS. Hele designsystemet er én enkelt
tokens.css-fil. canvas.toBlob/<canvas>. JPEG, PNG, WebP, AVIF-koding (der nettleseren støtter det) i verktøyene kun for nettleser, og alt beskjærings- og størrelsesarbeidet.- Cropper.js, interaksjonslaget for beskjæringsrektangelet.
- ONNX Runtime Web, kjører ISNet WebAssembly-reserven for Fjern bakgrunn.
- Cloudflare Pages, vert for det statiske bygget, serverer det fra edge.
- Cloudflare Workers + R2 +
cf.image.segment(BiRefNet), standardrørledningen for Fjern bakgrunn. - Fastify +
sharp 0.34+libvips 8.17på Node 24, komprimerings- og PDF-tjenesten påapi.roundcut.com.br, på en Hostinger-VPS i Tyskland. - Cloudflare Web Analytics, aggregerte, informasjonskapselfrie tellinger av sidevisninger.
Nettleserstøtte
Hvert verktøy fungerer på den nyeste og forrige versjonen av Chrome, Firefox, Safari
og Edge, både stasjonær og mobil. Nettstedet bruker progressiv forbedring: der en
nettleser støtter et nyere API (for eksempel showSaveFilePicker,
OffscreenCanvas), bruker vi det, der den ikke gjør det, faller vi tilbake til den
eldre ekvivalenten. Det finnes ingen “nettleseren din støttes ikke”-vegg.
De eneste harde kravene er JavaScript (for ethvert verktøy) og en nettverksforbindelse (kun når du bruker et skystøttet verktøy på standardveien, verktøyene kun for nettleser kjører fullt ut frakoblet etter første sidelasting).
Spørsmål
Noe vi ikke dekket? Send e-post til support@roundcut.app. Tekniske spørsmål er velkomne.