Cara Araluma berfungsi

Butiran teknikal tentang apa yang setiap alat lakukan, tempat ia berjalan, dan bagaimana anda boleh mengesahkannya sendiri.

Jawapan ringkasnya

Araluma menggunakan seni bina hibrid: dua alat berjalan sepenuhnya dalam pelayar anda tanpa sebarang muat naik, dan dua alat lagi menghantar satu permintaan rangkaian melalui infrastruktur kami sendiri apabila pelayar tidak mampu menandingi kualiti yang diperlukan. Kami memberitahu anda laluan mana yang sedang anda gunakan, dalam setiap alat dan di halaman ini.

AlatDi mana kerja berlaku
Circle Crop100% dalam pelayar anda, Canvas API. Tiada muat naik, berfungsi tanpa talian.
Compress pratonton (gelangsar + perbandingan format)100% dalam pelayar anda, canvas.toBlob. Tiada muat naik.
Compress muat turun akhirSatu perjalanan pergi balik ke perkhidmatan kami di api.araluma.com (Fastify + sharp + libvips pada VPS di Jerman).
Remove BackgroundSatu perjalanan pergi balik ke Cloudflare Worker yang menjalankan BiRefNet pada GPU edge Cloudflare, dengan sandaran WebAssembly dalam pelayar anda apabila awan tidak dapat dicapai.

Anda boleh mengesahkan dakwaan sisi klien dalam masa kira-kira 30 saat: buka DevTools → Network, kosongkan log, kemudian gunakan Circle Crop atau gelangsar pratonton Compress — anda tidak akan melihat sebarang permintaan yang membawa bait imej anda meninggalkan halaman. Untuk dua alat yang menyentuh pelayan, anda akan melihat tepat satu muat naik setiap operasi, ke titik akhir yang dinyatakan di atas.

Mengapa hibrid

Kebanyakan alat imej dalam talian berada di satu daripada dua hujung: muat naik semua ke pelayan (anda menunggu perjalanan pergi balik dan pengendali menyimpan fail anda), atau semuanya dalam pelayar (anda menanggung kualiti dan kelajuan yang lebih rendah pada langkah pengekodan/AI). Tiada satu hujung pun menang di semua situasi.

Kami memilih sisi klien di mana pelayar sudah cemerlang — elemen <canvas> mengendalikan pemangkasan, putaran, dan pengekodan semula pratonton lossy dalam JPG/WebP — dan sisi pelayan di mana pelayar masih ketinggalan secara ketara:

  • Pemampatan imej, pada muat turun akhir. sharp + libvips 8.17 sisi pelayan menghasilkan fail 10-15% lebih kecil bait demi bait berbanding pengekodan pelayar pada kualiti visual yang sama, serta memberi akses kepada penalaan kelajuan/kroma AVIF dan output JPEG XL yang tidak didedahkan oleh pelayar. Gelangsar/pratonton masih berjalan dalam pelayar anda supaya lelaran kekal segera; hanya ketukan “Muat Turun” yang melalui perkhidmatan kami.
  • Penyingkiran latar belakang AI, pada laluan lalai. Model BiRefNet yang dijalankan oleh cf.image.segment Cloudflare (seni bina yang sama seperti remove.bg) memerlukan GPU sebenar untuk selesai dalam 1-3 saat. Sandaran dalam pelayar (ISNet melalui ONNX Runtime + WebAssembly) berfungsi, mengambil masa 20-40 saat pada larian pertama ditambah 2-10 saat selepas itu, dan menghasilkan potongan yang ketara lebih kasar pada rambut, bulu, dan tepi halus.

Kos yang kami terima kerana berada di sisi pelayan pada dua laluan tersebut ialah satu perjalanan pergi balik setiap operasi. Kos yang kami elakkan dengan kekal di sisi klien di tempat lain (Circle Crop, pratonton Compress) ialah yuran perjalanan pergi balik pada bahagian aliran kerja yang paling kerap berulang.

Saluran paip, langkah demi langkah

1. Anda memilih fail

Melalui pemilih fail, seret dan lepas, atau tampal, pelayar menyerahkan objek File kepada JavaScript. JavaScript membaca bait menggunakan FileReader atau Blob.arrayBuffer(). Pada mana-mana titik dalam langkah ini, fail tidak dihantar melalui rangkaian, tanpa mengira alat yang sedang anda gunakan.

2. Pelayar menyahkod imej

Pelayar moden menyahkod JPG, PNG, WebP, GIF, dan AVIF secara asli. Kami menggunakan createImageBitmap() untuk menukar bait mentah kepada bitmap yang boleh digunakan GPU, di luar benang utama. Untuk HEIC pada pelayar yang tidak menyahkodnya secara asli, kami menggunakan penyahkod WebAssembly yang berjalan secara tempatan dalam pelayar anda.

3. Alat melakukan tugasnya — di sinilah laluan-laluan berbeza

  • Circle Crop. Transformasi piksel Canvas 2D dengan laluan klip bulatan. Bitmap dilukis ke dalam <canvas> pada putaran dan zum yang dipilih, klip bulatan digunakan, dan bahagian dalam bulatan dibaca semula sebagai ImageData. Cropper.js mengendalikan bingkai tanaman interaktif. Sepenuhnya dalam pelayar anda.
  • Compress — pratonton dan gelangsar. Mengekodsemula JPG, PNG, WebP, atau AVIF menggunakan canvas.toBlob supaya pratonton berdampingan dikemas kini semasa anda menggerakkan gelangsar kualiti. Sepenuhnya dalam pelayar anda. Tiada muat naik lagi.
  • Compress — Muat Turun. Apabila anda mengetuk “Muat Turun”, imej dihantar sekali ke api.araluma.com (perkhidmatan Fastify yang berjalan pada VPS di Jerman yang dikendalikan oleh Hostinger, Node 24 + sharp 0.34 + libvips 8.17, perpustakaan C yang sama digunakan oleh Squoosh pada laluan pelayannya). Ia dikodkan semula dengan parameter yang sama yang anda tetapkan dalam pratonton, dan bait distrima semula ke pelayar anda. Perkhidmatan ini menyimpan cache berasaskan kandungan yang diasingkan mengikut penyewa (hash bait input + parameter) yang dihadkan pada 500 MB supaya memuat turun semula imej yang sama dengan tetapan yang sama memainkan semula bait yang dicache — cache tidak diindeks mengikut identiti anda, IP, atau nama fail. Jika perkhidmatan tidak dapat dicapai, alat akan menggunakan semula blob pratonton dalam pelayar sebagai sandaran.
  • Remove Background — laluan awan lalai. Imej dimuat naik sekali ke Cloudflare Worker (araluma-bg-remover), disimpan sementara dalam baldi R2 peribadi (araluma-bg-temp), diproses oleh transformasi cf.image.segment Cloudflare yang menjalankan model BiRefNet pada GPU edge Cloudflare, dan potongan distrima semula. Objek R2 yang disimpan sementara dipadamkan dalam masa satu jam oleh peraturan kitaran hayat R2, tanpa mengira hasilnya. Foto biasa selesai dalam 1-3 saat. Had harian setiap IP dan had muat naik 5 MB memastikan peringkat percuma kekal mampan.
  • Remove Background — sandaran WebAssembly. Jika Worker tidak dapat dicapai (rangkaian anda terputus, anda berada di belakang tembok api yang ketat, kuota harian penuh, atau fail melebihi had awan 5 MB), alat beralih secara telus ke model ISNet yang berjalan secara tempatan dalam pelayar anda melalui ONNX Runtime Web dengan WebAssembly. Larian pertama memuat turun model ~80 MB dan mengambil masa 20-40 saat; larian seterusnya mengambil masa 2-10 saat. Tiada muat naik pada laluan ini — anda boleh mengesahkannya dalam DevTools.

4. Anda memuat turun hasilnya

Bitmap output dikodkan ke dalam Blob, dibungkus dalam object URL, dan ditawarkan kepada dialog simpan fail standard pelayar anda. Fail muncul pada cakera anda.

Cara mengesahkan sendiri

Pilih mana-mana kaedah yang anda suka:

Kaedah 1 — Perhatikan tab Network

  1. Buka Araluma dalam tab baharu dan buka DevTools → Network.
  2. Gunakan Circle Crop atau gelangsar pratonton Compress. Anda akan melihat permintaan untuk HTML/CSS/JS/fon sahaja, ditambah modul WebAssembly yang berkaitan pada penggunaan pertama. Tiada permintaan yang akan membawa bait imej anda.
  3. Sekarang gunakan Compress → Muat Turun atau Remove Background. Anda akan melihat tepat satu POST ke api.araluma.com (Compress) atau ke Worker Remove Background, membawa imej anda — dan satu respons yang membawa kembali hasilnya. Tuding mana-mana permintaan untuk melihat saiz dan masa.

Lajur “Initiator” memberitahu anda skrip mana yang mencetuskan setiap permintaan, dan lajur “Type” memberitahu anda apa yang dihantar. Kami tidak menyembunyikan mana-mana daripada keduanya.

Kaedah 2 — Gunakan alat secara luar talian

  1. Muatkan mana-mana halaman alat Araluma. Gunakan Remove Background sekali pada imej kecil supaya model ISNet dalam pelayar dicache.
  2. Buka DevTools → Network → tandakan Offline (atau matikan Wi-Fi).
  3. Muat semula halaman; aset statik dicache, jadi halaman masih dimuatkan.
  4. Cuba setiap alat:
    • Circle Crop dan pratonton Compress terus berfungsi — keduanya tidak pernah memerlukan rangkaian.
    • Compress Muat Turun menggunakan semula blob pratonton dalam pelayar sebagai sandaran (pengekodan sedikit kurang cekap, tetapi berfungsi).
    • Remove Background beralih ke model WebAssembly ISNet dan berfungsi tanpa sebarang permintaan keluar.

Jika keempat-empat alat berfungsi tanpa talian (satu sedikit terdegradasi, tiga sama seperti biasa), secara takrifannya tiada pelayan yang melihat imej anda.

Apa yang kami lihat — dan apa yang tidak kami lihat

Pada laluan sisi klien, kami tidak melihat apa-apa tentang imej anda. Tiada permintaan untuk diperiksa, tiada cache untuk menyimpannya, tiada baris log untuk dicari.

Pada laluan sisi pelayan:

  • Compress Muat Turun melihat bait imej untuk tempoh pengekodan (biasanya beberapa ratus milisaat), menyimpan entri cache berasaskan kandungan untuk TTL cache, dan itu sahaja. Cache tidak diindeks mengikut pengguna, IP, nama fail, atau sebarang pengecam yang boleh kami gunakan untuk mencari imej “anda”. Kami tidak merekodkan kandungan imej. Perkhidmatan pengekodan dikongsi antara dua penyewa yang sama yang dilayan oleh v1 sebelum peralihan, dengan CORS, had kadar, dan URL kanonik bertanda HMAC setiap penyewa.
  • Remove Background melihat imej untuk tempoh muat naik pementasan dan panggilan segmentasi (biasanya 1-3 saat keseluruhannya), selepas itu salinan yang disimpan sementara dipadamkan oleh peraturan kitaran hayat R2. Kami tidak memanggil sebarang penyedia model pihak ketiga dengan bait anda — model BiRefNet berjalan dalam infrastruktur Cloudflare sendiri, bukan pada API luaran bergaya remove.bg / fal.ai / Replicate.

Pada setiap laluan, pembekal analitik kami (Cloudflare Web Analytics) merekodkan data paparan halaman agregat — URL, negara, keluarga pelayar, Core Web Vitals. Tiada kuki, tiada pengecam berterusan, tiada yang dikaitkan dengan seseorang.

Untuk alat yang memuat turun modul WebAssembly pada penggunaan pertama (penyahkod HEIC, model ONNX ISNet), pembekal pengehosan kami melihat bahawa seseorang mengambil modul tersebut — sama seperti melihat mereka mengambil fail CSS. Modul itu sendiri tidak mengandungi sebarang maklumat tentang imej anda.

Inventori data penuh terdapat dalam dasar privasi kami.

Timbunan teknologi

Bagi yang ingin tahu:

  • Astro — penjana tapak statik. Setiap halaman dihantar sebagai HTML biasa dengan “islands” JavaScript yang dipertingkat secara progresif hanya di mana alat interaktif berada.
  • CSS vanilla dengan sifat tersuai — tanpa Tailwind, tanpa CSS-in-JS. Sistem reka bentuk penuh adalah satu fail tokens.css.
  • canvas.toBlob / <canvas> — pengekodan JPEG, PNG, WebP, AVIF (disokong pelayar) dalam pratonton Compress, dan semua Circle Crop.
  • Cropper.js — lapisan interaksi segi empat tepat tanaman.
  • ONNX Runtime Web — menjalankan sandaran WebAssembly ISNet untuk Remove Background.
  • Cloudflare Pages — mengehoskan binaan statik, menyajikannya dari edge.
  • Cloudflare Workers + R2 + cf.image.segment (BiRefNet) — saluran paip Remove Background lalai.
  • Fastify + sharp 0.34 + libvips 8.17 pada Node 24 — perkhidmatan muat turun Compress di api.araluma.com, pada VPS Hostinger di Jerman.
  • Cloudflare Web Analytics — kiraan paparan halaman agregat, tanpa kuki.

Sokongan pelayar

Semua alat berfungsi pada versi semasa dan sebelumnya Chrome, Firefox, Safari, dan Edge — desktop dan mudah alih. Tapak ini menggunakan peningkatan progresif: di mana pelayar menyokong API yang lebih baru (contohnya showSaveFilePicker, OffscreenCanvas), kami menggunakannya; di mana tidak, kami menggunakan padanan yang lebih lama. Tiada halangan “pelayar anda tidak disokong”.

Keperluan yang wajib hanyalah JavaScript (untuk mana-mana alat) dan sambungan rangkaian (hanya apabila menggunakan Compress Muat Turun atau laluan Remove Background lalai — laluan lain berjalan sepenuhnya tanpa talian selepas muat halaman pertama).

Soalan

Ada yang tidak kami liputi? E-mel kami di support@araluma.com. Soalan teknikal dialu-alukan.