Cara kerja Araluma

Detail teknis tentang apa yang setiap alat lakukan, di mana ia berjalan, dan bagaimana Anda dapat memverifikasinya sendiri.

Jawaban singkatnya

Araluma menggunakan arsitektur hibrida: sebagian besar alat berjalan sepenuhnya di browser Anda tanpa unggahan, dan segelintir alat merutekan satu permintaan jaringan melalui infrastruktur kami sendiri ketika browser tidak dapat menandingi kualitasnya, selalu dengan fallback sisi klien yang tak terlihat. Kami memberi tahu Anda jalur mana yang sedang dipakai, di setiap alat dan di halaman ini.

Tabel di bawah ini representatif, bukan lengkap (katalognya terus bertambah). Tabel ini menampilkan satu contoh dari tiap jenis jalur:

Contoh alatTempat pemrosesan
Circle Crop (khusus browser)100% di browser Anda, Canvas API. Tanpa unggahan, dapat digunakan offline.
Compress preview (khusus browser)100% di browser Anda, canvas.toBlob. Tanpa unggahan. Slider tetap instan.
Compress download (menyentuh server)Satu kali pulang-pergi ke layanan kami di api.araluma.com (sharp plus libvips pada VPS di Jerman), dengan fallback browser.
Remove Background (menyentuh server)Satu kali pulang-pergi ke Cloudflare Worker yang menjalankan BiRefNet pada GPU edge, dengan fallback WebAssembly di browser Anda.

Alat pemotongan, pengubahan ukuran, PDF, dan konversi format (selain jalur keluaran AVIF) berada di sisi khusus browser. Unduhan kompresi, penghapusan latar belakang, peningkatan resolusi AI, dan konversi keluaran AVIF berada di sisi yang menyentuh server, masing-masing dengan fallback lokal.

Anda dapat memverifikasi klaim khusus browser dalam sekitar 30 detik: buka DevTools, masuk ke panel Network, kosongkan log, lalu gunakan alat khusus browser mana pun. 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 di atas.

Mengapa hibrida

Sebagian besar alat gambar online berada di salah satu ekstrem: unggah-semuanya-ke- server (Anda menunggu pulang-pergi dan operator menyimpan file Anda), atau semua-di-browser (Anda membayar dengan kualitas dan kecepatan pada langkah encode dan AI). Tidak ada ekstrem yang unggul di mana-mana.

Kami memilih sisi klien di mana browser sudah sangat baik. Elemen <canvas> menangani pemotongan, rotasi, pengubahan ukuran, dan encode pratinjau lossy dalam JPG atau WebP, dan browser modern mendekode setiap format umum secara native. Kami memilih sisi server hanya untuk beberapa langkah di mana browser masih terukur lebih lemah:

  • Kompresi, pada unduhan final. sharp plus libvips sisi server menghasilkan file 10 sampai 15% lebih kecil byte per byte dibanding encoder browser pada kualitas visual yang sama, dan membuka penyetelan kecepatan serta chroma AVIF yang tidak diberikan browser. Slider dan pratinjau tetap berjalan di browser Anda agar iterasi tetap instan. Hanya ketukan “Unduh” yang melewati layanan kami.
  • Penghapusan latar belakang berbasis AI, pada jalur default. Model BiRefNet yang dijalankan segmentasi gambar Cloudflare (arsitektur yang sama dengan remove.bg) membutuhkan GPU nyata agar selesai dalam satu atau dua detik. Fallback dalam browser (ISNet melalui ONNX Runtime plus WebAssembly) berfungsi, tetapi jauh lebih lama dan menghasilkan potongan yang secara kasat mata lebih kasar pada rambut, bulu, dan tepi halus.
  • Peningkatan resolusi AI, pada jalur default. Super-resolution cloud memulihkan detail yang tidak bisa dipulihkan resample sisi browser, dengan fallback browser ketika layanan tidak dapat dijangkau.

Biaya yang kami terima karena berada di sisi server pada jalur-jalur itu adalah satu pulang-pergi per operasi. Biaya yang kami hindari dengan tetap di sisi klien di tempat lain adalah biaya yang sama pada bagian alur kerja yang paling sering beriterasi.

Pipeline, langkah demi langkah

1. Anda memilih file

Melalui pemilih file, seret dan lepas, atau tempel, browser menyerahkan objek File ke JavaScript. JavaScript membaca byte-nya menggunakan FileReader atau Blob.arrayBuffer(). Pada titik mana pun dalam langkah ini, file tidak dikirim lewat jaringan, apa pun alat yang Anda gunakan.

2. Browser mendekode gambar

Browser modern mendekode JPG, PNG, WebP, GIF, dan AVIF secara native. Kami menggunakan createImageBitmap() untuk mengubah byte mentah menjadi bitmap yang dapat diolah GPU, di luar thread utama. Untuk HEIC pada browser yang tidak mendekodenya secara native, kami menggunakan decoder WebAssembly yang berjalan secara lokal di browser Anda.

3. Alat melakukan tugasnya, di sinilah jalur bercabang

  • Alat khusus browser (pemotongan, pengubahan ukuran, pratinjau dan slider kompresi, penyusunan PDF, dan sebagian besar konversi format). Semua berjalan sebagai transformasi piksel Canvas dan encode ulang canvas.toBlob langsung di mesin Anda. Bingkai potong interaktif memakai Cropper.js. Tidak ada yang meninggalkan halaman.
  • Unduhan kompresi. Ketika Anda mengetuk “Unduh”, gambar dikirim sekali ke api.araluma.com (layanan Fastify pada VPS Hostinger di Jerman, Node plus sharp dan libvips, pustaka C yang sama yang digunakan Squoosh pada jalur servernya). Gambar dikodekan ulang dengan parameter yang Anda atur di pratinjau, dan byte-nya dialirkan kembali. Layanan ini menyimpan cache content-addressed yang terisolasi per tenant (hash dari byte input plus parameter) sehingga mengunduh ulang gambar yang sama dengan pengaturan yang sama akan memutar byte tersimpan. Cache itu tidak diindeks berdasarkan Anda, IP, atau nama file. Jika layanan tidak dapat dijangkau, alat akan fallback ke blob pratinjau di browser.
  • Penghapusan latar belakang, jalur cloud default. Gambar diunggah sekali ke Cloudflare Worker, disimpan sementara di bucket R2 privat, diproses oleh segmentasi gambar Cloudflare yang menjalankan model BiRefNet pada GPU edge, dan potongannya dialirkan kembali. Objek tersimpan dihapus dalam satu jam oleh aturan lifecycle R2, terlepas dari hasilnya. Foto tipikal selesai dalam satu atau dua detik. Batas harian per-IP dan ukuran unggahan menjaga keberlanjutan tier gratis.
  • Penghapusan latar belakang, fallback WebAssembly. Jika Worker tidak dapat dijangkau (jaringan Anda putus, firewall ketat memblokirnya, kuota harian penuh, atau file terlalu besar untuk batas cloud), alat diam-diam beralih ke model ISNet yang berjalan secara lokal melalui ONNX Runtime Web dan WebAssembly. Eksekusi pertama mengunduh model dan butuh lebih lama, eksekusi berikutnya lebih cepat. Tidak ada unggahan pada jalur ini, dapat diverifikasi di DevTools.
  • Peningkatan resolusi AI. Jalur default mengirim gambar sekali ke layanan super-resolution cloud dan mengalirkan hasil yang diperbesar kembali, dengan fallback sisi browser jika layanan tidak dapat dijangkau.

4. Anda mengunduh hasilnya

Bitmap keluaran dikodekan ke dalam Blob, dibungkus dalam object URL, dan diserahkan ke dialog simpan file standar browser Anda. File muncul di disk Anda.

Cara memverifikasi sendiri

Pilih mana yang Anda sukai:

Metode 1. Pantau tab Network

  1. Buka Araluma di tab baru lalu buka DevTools, kemudian panel Network.
  2. Gunakan alat khusus browser seperti Circle Crop atau slider pratinjau Compress. Anda akan melihat permintaan untuk HTML, CSS, JS, dan font saja, ditambah modul WebAssembly terkait pada penggunaan pertama. Tidak ada permintaan yang membawa byte gambar Anda.
  3. Sekarang gunakan alat yang menyentuh server seperti Compress Download atau Remove Background. Anda akan melihat tepat satu POST yang membawa gambar Anda ke endpoint bernama, dan satu respons yang mengembalikan hasilnya. Arahkan kursor ke permintaan mana pun untuk membaca ukuran dan waktunya.

Kolom “Initiator” memberi tahu Anda skrip mana yang memicu setiap permintaan, dan kolom “Type” memberi tahu Anda apa yang dikirim. Kami tidak menyembunyikan keduanya.

Metode 2. Gunakan alat secara offline

  1. Muat halaman alat Araluma mana pun. Jalankan Remove Background sekali pada gambar kecil agar model ISNet dalam browser ter-cache.
  2. Buka DevTools, masuk ke Network, dan centang Offline (atau matikan Wi-Fi).
  3. Muat ulang halaman. Aset statis ter-cache sehingga halaman tetap termuat.
  4. Coba alat-alatnya:
    • Alat khusus browser tetap berfungsi. Mereka tidak pernah membutuhkan jaringan.
    • Compress Download fallback ke blob pratinjau dalam browser (encode sedikit kurang efisien, tapi tetap berfungsi).
    • Remove Background fallback ke model ISNet WebAssembly dan bekerja tanpa permintaan keluar apa pun.

Jika alat-alat itu berfungsi offline (sebagian terdegradasi, yang khusus browser identik), maka menurut definisi tidak ada server yang melihat gambar Anda.

Apa yang kami lihat, dan apa yang tidak

Pada jalur khusus browser, kami tidak melihat apa pun tentang gambar Anda. Tidak ada permintaan untuk dilihat, tidak ada cache untuk menyimpannya, tidak ada baris log untuk ditelusuri.

Pada jalur yang menyentuh server:

  • Compress Download melihat byte gambar selama durasi encode (biasanya beberapa ratus milidetik), menyimpan satu entri cache content-addressed selama TTL-nya, dan hanya itu. Cache tidak diindeks berdasarkan pengguna, IP, nama file, atau pengenal apa pun yang dapat kami pakai untuk menemukan gambar “Anda”. Kami tidak mencatat konten gambar. Layanan encode dibagi di antara tenant yang sama seperti yang dilayani v1 sebelum cutover, dengan CORS, batas laju, dan URL kanonis bertanda HMAC per tenant.
  • Remove Background melihat gambar selama durasi unggahan sementara dan panggilan segmentasi (biasanya satu atau dua detik), setelah itu salinan sementara dihapus oleh aturan lifecycle R2. Kami tidak pernah menyerahkan byte Anda ke penyedia model pihak ketiga. Model BiRefNet berjalan di dalam infrastruktur Cloudflare sendiri, bukan pada API eksternal bergaya remove.bg, fal.ai, atau Replicate.
  • Peningkatan resolusi AI melihat gambar selama durasi panggilan super-resolution, mengembalikan hasilnya, dan tidak menyimpan apa pun yang terkait dengan Anda.

Pada setiap jalur, penyedia analitik kami (Cloudflare Web Analytics) mencatat data tampilan halaman agregat: URL, negara, keluarga browser, Core Web Vitals. Tanpa cookie, tanpa pengenal persisten, tanpa apa pun yang terkait dengan seseorang.

Untuk alat yang mengunduh modul WebAssembly pada penggunaan pertama (decoder HEIC, model ONNX ISNet), penyedia hosting kami melihat bahwa seseorang mengambil modul itu, sama seperti melihat file CSS diambil. Modul itu sendiri tidak membawa 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 dikirim sebagai HTML biasa dengan “islands” JavaScript yang ditingkatkan secara progresif hanya di tempat alat interaktif berada.
  • CSS vanilla dengan properti kustom, tanpa Tailwind, tanpa CSS-in-JS. Seluruh sistem desain adalah satu file tokens.css.
  • canvas.toBlob dan <canvas>, pengkodean JPEG, PNG, WebP, dan AVIF untuk alat sisi browser dan pratinjau.
  • Cropper.js, lapisan interaksi bingkai potong.
  • ONNX Runtime Web, yang menjalankan fallback WebAssembly ISNet untuk Remove Background.
  • Cloudflare menghosting build statis dan menyajikannya dari edge, serta menjalankan Workers, R2, dan pipeline segmentasi gambar (BiRefNet) di balik jalur Remove Background default.
  • Fastify dengan sharp dan libvips pada Node, layanan unduhan Compress di api.araluma.com, pada VPS Hostinger di Jerman.
  • Cloudflare Web Analytics, hitungan tampilan halaman agregat tanpa cookie.

Dukungan browser

Setiap alat berfungsi pada versi saat ini dan sebelumnya dari Chrome, Firefox, Safari, dan Edge, desktop dan mobile. Situs ini menggunakan peningkatan progresif: di mana browser mendukung API yang lebih baru (misalnya showSaveFilePicker atau OffscreenCanvas), kami memakainya, dan di mana tidak, kami menggunakan padanan lama. Tidak ada tembok “browser Anda tidak didukung”.

Satu-satunya persyaratan wajib adalah JavaScript (untuk alat apa pun) dan koneksi jaringan (hanya saat memakai jalur yang menyentuh server, alat khusus browser berjalan sepenuhnya offline setelah pemuatan halaman pertama).

Pertanyaan

Ada yang belum kami bahas? Email support@araluma.com. Pertanyaan teknis disambut baik.