Jawaban singkatnya
RoundCut memakai arsitektur hibrida: sebagian besar alat berjalan sepenuhnya di peramban Anda tanpa unggahan, dan segelintir alat meneruskan satu permintaan jaringan melalui infrastruktur kami sendiri ketika peramban tidak bisa menyamai kualitasnya, selalu dengan cadangan sisi-klien yang tak terlihat. Kami memberitahu Anda sedang di jalur yang mana, di setiap alat dan di halaman ini.
Tabel di bawah ini representatif, bukan menyeluruh (alat baru dirilis secara berkala). Ia menunjukkan satu contoh untuk tiap jenis jalur:
| Contoh alat | Tempat pekerjaan berlangsung |
|---|---|
| Circle Crop (khusus-peramban) | 100% di peramban Anda, Canvas API. Tanpa unggahan, bekerja luring. |
| Pratinjau Compress (khusus-peramban) | 100% di peramban Anda, canvas.toBlob. Tanpa unggahan. Penggeser tetap seketika. |
| Unduhan akhir Compress (menyentuh server) | Satu putaran ke layanan kami di api.roundcut.com.br (Fastify + sharp + libvips pada VPS di Jerman), dengan cadangan peramban. |
| Remove Background (menyentuh server) | Satu putaran ke Cloudflare Worker yang menjalankan BiRefNet di GPU tepi Cloudflare, dengan cadangan WebAssembly di peramban Anda saat awan tak terjangkau. |
Memotong, mengubah ukuran, konversi format (kecuali pengodean AVIF), dan pratinjau Compress semuanya berjalan penuh di peramban Anda. Hapus latar belakang, unduhan Compress, perbesaran AI, pengodean AVIF, dan PDF banyak gambar masing-masing meneruskan satu permintaan dan beralih ke peramban saat awan tak terjangkau.
Anda bisa memverifikasi klaim sisi-klien dalam sekitar 30 detik: buka DevTools → Network, bersihkan log, lalu pakai alat khusus-peramban seperti Circle Crop atau penggeser pratinjau Compress, Anda akan melihat nol permintaan yang membawa byte gambar Anda keluar dari halaman. Untuk alat yang menyentuh server, Anda akan melihat tepat satu unggahan per operasi, ke endpoint bernama.
Mengapa hibrida
Sebagian besar alat gambar daring berada di salah satu ujung ekstrem: unggah-semuanya-ke-server (Anda menunggu putaran dan operatornya menyimpan berkas Anda), atau semua-di-peramban (Anda membayar dengan kualitas dan kecepatan pada langkah pengodean/AI). Tak satu pun ujung ekstrem yang menang di mana-mana.
Kami memilih sisi-klien di tempat peramban sudah unggul, elemen <canvas>
menangani pemotongan, perputaran, pengubahan ukuran, dan pengodean pratinjau lossy
dalam JPG/WebP, dan sisi-server di tempat peramban masih kalah secara terukur:
- Kompresi gambar, pada unduhan akhir.
sharp+libvips 8.17di sisi server menghasilkan berkas 10-15% lebih kecil byte demi byte dibanding encoder peramban pada kualitas visual yang sama, dan memberi akses ke penyetelan kecepatan/chroma AVIF serta keluaran JPEG XL yang tidak diekspos peramban. Penggeser/pratinjau tetap berjalan di peramban Anda agar setiap percobaan terasa seketika, hanya ketukan “Unduh” yang melewati layanan kami. - Hapus latar belakang AI dan perbesaran AI, pada jalur bawaan. Model (BiRefNet untuk segmentasi, super-resolusi untuk perbesaran) butuh GPU sungguhan agar selesai dalam hitungan detik. Cadangan dalam peramban berfungsi tetapi lebih lambat dan menghasilkan hasil yang terlihat lebih kasar pada rambut, bulu, dan tepi halus.
- Pengodean AVIF, pada konversi. Encoder AVIF dalam peramban lambat di sebagian perangkat, jadi keluaran AVIF meneruskan satu permintaan ke Worker kompresi, dengan pengodean di thread utama peramban sebagai cadangan.
Biaya yang kami terima karena memilih sisi-server pada jalur itu adalah satu putaran per operasi. Biaya yang kami hindari dengan tetap di sisi-klien di tempat lain adalah ongkos putaran pada bagian alur kerja yang paling sering diulang.
Pipeline, langkah demi langkah
1. Anda memilih berkas
Lewat pemilih berkas, seret-dan-lepas, atau tempel, peramban menyerahkan objek
File ke JavaScript. JavaScript membaca byte memakai FileReader atau
Blob.arrayBuffer(). Pada titik mana pun di langkah ini berkas tidak dikirim
lewat jaringan, apa pun alat yang Anda pakai.
2. Peramban mendekode gambar
Peramban modern mendekode JPG, PNG, WebP, GIF, dan AVIF secara native. Kami memakai
createImageBitmap() untuk mengubah byte mentah menjadi bitmap yang bisa diolah
GPU, di luar thread utama. Untuk HEIC pada peramban yang tidak mendekodenya secara
native, kami beralih ke dekoder WebAssembly yang berjalan lokal di peramban Anda.
3. Alat melakukan tugasnya, di sinilah jalur bercabang
- Alat khusus-peramban (memotong, mengubah ukuran, konversi format ke PNG/JPEG/WebP, pratinjau Compress). Sebuah transformasi piksel Canvas 2D atau codec WebAssembly mengkodekan ulang bitmap secara lokal. Hasilnya siap tanpa unggahan apa pun. Cropper.js menangani bingkai potong interaktif untuk alat potong, dan
canvas.toBlobmenangani pengodean ulang pratinjau. Sepenuhnya di peramban Anda. - Compress, unduh. Saat Anda mengetuk “Unduh”, gambar dikirim sekali ke
api.roundcut.com.br(layanan Fastify yang berjalan di VPS di Jerman yang dioperasikan Hostinger, Node 24 +sharp 0.34+libvips 8.17, pustaka C yang sama yang dipakai Squoosh di jalur servernya). Ia dikodekan ulang dengan parameter yang sama yang Anda atur di pratinjau, dan byte-nya dialirkan kembali ke peramban Anda. Layanan menyimpan cache terisolasi per tenant dan beralamat-konten (hash dari byte masukan + parameter) dibatasi 500 MB sehingga mengunduh ulang gambar yang sama dengan pengaturan yang sama akan memutar byte yang sudah dicache, cache tidak diindeks berdasarkan Anda, IP, atau nama berkas. Jika layanan tak terjangkau, alat beralih ke blob pratinjau dalam peramban. - Remove Background, jalur awan bawaan. Gambar diunggah sekali ke Cloudflare Worker, disinggahkan di bucket R2 privat, diproses oleh transformasi
cf.image.segmentCloudflare yang menjalankan model BiRefNet di GPU tepi Cloudflare, dan potongannya dialirkan kembali. Objek R2 yang disinggahkan dihapus dalam satu jam oleh aturan daur hidup R2, apa pun hasilnya. Foto biasa selesai dalam 1-3 detik. Batas harian per-IP dan unggahan 5 MB menjaga tingkat gratis tetap lestari. - Alat berbasis awan lainnya (perbesaran AI, pengodean AVIF, PDF banyak gambar) mengikuti bentuk yang sama: satu permintaan ke infrastruktur bernama (API gambar awan untuk super-resolusi, Worker kompresi untuk pengodean AVIF, layanan VPS kami untuk PDF banyak gambar), hasil dialirkan kembali, dan cadangan dalam peramban yang tak terlihat jika permintaan itu gagal.
- Cadangan WebAssembly. Jika jalur awan terkait tak terjangkau (jaringan putus, Anda di balik firewall ketat, kuota harian penuh, atau berkas melampaui batas awan), alat beralih tanpa terlihat ke model atau codec lokal yang berjalan di peramban Anda, misalnya model hapus-latar-belakang ISNet via ONNX Runtime Web dengan WebAssembly. Jalannya yang pertama mengunduh model dan lebih lambat, jalan berikutnya lebih cepat. Tanpa unggahan pada jalur cadangan ini, Anda bisa memverifikasinya di DevTools.
4. Anda mengunduh hasilnya
Bitmap keluaran dikodekan menjadi Blob, dibungkus dalam object URL, dan
ditawarkan ke dialog simpan-berkas standar peramban Anda. Berkas muncul di disk
Anda.
Cara memverifikasinya sendiri
Pilih mana saja yang Anda suka:
Metode 1. Pantau tab Network
- Buka RoundCut di tab baru dan buka DevTools → Network.
- Pakai alat khusus-peramban, Circle Crop atau penggeser pratinjau Compress. Anda akan melihat permintaan untuk HTML/CSS/JS/font saja, ditambah modul WebAssembly terkait pada pemakaian pertama. Tidak ada permintaan yang membawa byte gambar Anda.
- Sekarang pakai alat menyentuh server, Compress → Unduh atau Remove Background. Anda akan melihat tepat satu
POSTyang membawa gambar Anda, dan satu respons yang kembali dengan hasilnya. Arahkan kursor ke permintaan mana pun untuk melihat ukuran dan waktunya.
Kolom “Initiator” memberitahu skrip mana yang memicu tiap permintaan, dan kolom “Type” memberitahu apa yang dikirim. Kami tidak menyembunyikan keduanya.
Metode 2. Pakai alat secara luring
- Muat halaman alat RoundCut mana pun. Pakai Remove Background sekali pada gambar kecil agar model ISNet dalam peramban tersimpan di cache.
- Buka DevTools → Network → centang Offline (atau matikan Wi-Fi).
- Muat ulang halaman, aset statis tersimpan di cache, jadi ia tetap termuat.
- Coba alat-alatnya:
- Alat khusus-peramban (Circle Crop, ubah ukuran, pratinjau Compress) tetap bekerja, mereka memang tak pernah butuh jaringan.
- Unduhan Compress beralih ke blob pratinjau dalam peramban (pengodean sedikit kurang efisien, tetapi tetap berfungsi).
- Remove Background beralih ke model WebAssembly ISNet dan bekerja tanpa permintaan keluar apa pun.
Jika alat bekerja secara luring (yang berbasis awan sedikit menurun, yang khusus-peramban identik), maka menurut definisinya tidak ada server yang melihat gambar Anda.
Apa yang kami lihat, dan apa yang tidak
Pada jalur sisi-klien, kami tidak melihat apa pun tentang gambar Anda. Tidak ada permintaan untuk dilihat, tidak ada cache untuk menyimpannya, tidak ada baris log untuk di-grep.
Pada jalur sisi-server:
- Layanan kompresi dan PDF melihat byte gambar selama durasi pengodean (biasanya beberapa ratus milidetik), menyimpan satu entri cache beralamat-konten selama cache TTL, dan hanya itu. Cache tidak diindeks berdasarkan pengguna, IP, nama berkas, atau pengenal apa pun yang bisa kami pakai untuk menemukan gambar “Anda”. Kami tidak mencatat isi gambar. Layanan pengodean dipakai bersama dua tenant yang sama yang dilayani v1 sebelum cutover, dengan CORS per-tenant, pembatasan laju, dan URL kanonik bertanda-tangan HMAC.
- Remove Background dan jalur AI lainnya melihat gambar selama durasi unggahan singgah dan panggilan model (biasanya beberapa detik), setelah itu salinan singgah dihapus oleh aturan daur hidup R2. Model BiRefNet berjalan di dalam infrastruktur Cloudflare sendiri, bukan di API eksternal bergaya remove.bg / fal.ai / Replicate.
Pada setiap jalur, penyedia analitik kami (Cloudflare Web Analytics) mencatat data tampilan halaman secara agregat. URL, negara, keluarga peramban, Core Web Vitals. Tanpa cookie, tanpa pengenal permanen, tidak ada yang terkait dengan seseorang.
Untuk alat yang mengunduh modul WebAssembly pada pemakaian pertama (dekoder HEIC, model ONNX ISNet), penyedia hosting kami melihat bahwa seseorang mengambil modul itu, sama seperti ia melihat mereka mengambil berkas CSS. Modul itu sendiri tidak memuat informasi apa pun tentang gambar Anda.
Inventaris data lengkap ada di kebijakan privasi kami.
Tumpukan teknologi
Bagi yang penasaran:
- Astro, generator situs statis. Setiap halaman dirilis sebagai HTML biasa dengan “pulau” JavaScript yang ditingkatkan secara progresif hanya di tempat alat interaktif berada.
- CSS vanila dengan custom property, tanpa Tailwind, tanpa CSS-in-JS. Seluruh sistem desain adalah satu berkas
tokens.css. canvas.toBlob/<canvas>. Pengodean JPEG, PNG, WebP, AVIF (yang didukung peramban) pada alat khusus-peramban, dan semua pekerjaan potong serta ubah ukuran.- Cropper.js, lapisan interaksi kotak-potong.
- ONNX Runtime Web, menjalankan cadangan WebAssembly ISNet untuk Remove Background.
- Cloudflare Pages, meng-host build statis, menyajikannya dari tepi.
- Cloudflare Workers + R2 +
cf.image.segment(BiRefNet), pipeline Remove Background bawaan. - Fastify +
sharp 0.34+libvips 8.17pada Node 24, layanan kompresi dan PDF diapi.roundcut.com.br, pada VPS Hostinger di Jerman. - Cloudflare Web Analytics, hitungan tampilan halaman agregat tanpa cookie.
Dukungan peramban
Setiap alat bekerja pada versi saat ini dan sebelumnya dari Chrome, Firefox,
Safari, dan Edge, desktop maupun seluler. Situs memakai peningkatan progresif: di
tempat peramban mendukung API yang lebih baru (mis. showSaveFilePicker,
OffscreenCanvas), kami memakainya, di tempat ia tidak mendukung, kami beralih ke
padanan lama. Tidak ada dinding “peramban Anda tidak didukung”.
Satu-satunya syarat keras adalah JavaScript (untuk alat apa pun) dan koneksi jaringan (hanya ketika memakai alat berbasis awan pada jalur bawaannya, alat khusus-peramban berjalan sepenuhnya luring setelah pemuatan halaman pertama).
Pertanyaan
Ada yang belum kami bahas? Kirim email ke support@roundcut.app. Pertanyaan teknis disambut baik.