Araluma 如何運作

每項工具運行何處、工作原理,以及你如何自行驗證。

簡短說明

Araluma 採用混合式架構:兩個工具完全在您的瀏覽器中執行,無需上傳; 另外兩個工具在瀏覽器無法達到同等品質時,會透過我們自有的基礎設施發送一個網路請求。 每個工具與本頁都會明確告知您目前使用的是哪條處理路徑。

工具處理位置
Circle Crop100% 在您的瀏覽器中,使用 Canvas API。無需上傳,可離線使用。
Compress 預覽(滑桿與格式比較)100% 在您的瀏覽器中,使用 canvas.toBlob。無需上傳。
Compress 最終下載單次往返至我們位於 api.araluma.com 的服務(Fastify + sharp + libvips,架設於德國 VPS)。
Remove Background單次往返至執行 BiRefNet 的 Cloudflare Worker(使用 Cloudflare 邊緣 GPU),當雲端無法連線時在瀏覽器中以 WebAssembly 備援處理。

您可以在大約 30 秒內自行驗證用戶端的說明:開啟 DevTools → Network,清除記錄,然後使用 Circle Crop 或 Compress 預覽滑桿——您會看到頁面沒有任何帶有圖片位元組的請求送出。而對於兩個需要連線伺服器的工具,您會看到每次操作只有一筆上傳,目的地即為上述指定端點。

為什麼選擇混合式架構

大多數線上圖片工具處於兩個極端之一:全部上傳至伺服器(您需要等待來回傳輸,業者會保留您的檔案),或全部在瀏覽器中處理(您需要在編碼/AI 步驟中承擔品質與速度的妥協)。兩種極端都不能全面勝出。

我們在瀏覽器已表現出色的地方選擇用戶端處理——<canvas> 元素能勝任裁切、旋轉和 JPG/WebP 的失真預覽編碼——並在瀏覽器仍有明顯差距的地方選擇伺服器端處理:

  • 圖片壓縮(最終下載)。伺服器端的 sharp + libvips 8.17 在相同視覺品質下,逐位元組比瀏覽器編碼器小 10-15%,並可存取瀏覽器未開放的 AVIF 速度/色度調校與 JPEG XL 輸出。滑桿/預覽仍在瀏覽器中即時執行;只有「下載」動作才會經過我們的服務。
  • AI 背景移除(預設路徑)。Cloudflare cf.image.segment 執行的 BiRefNet 模型(與 remove.bg 相同架構)需要真實 GPU 才能在 1-3 秒內完成。瀏覽器內備援(ISNet,透過 ONNX Runtime + WebAssembly)雖然可用,但首次執行需要 20-40 秒,之後每次 2-10 秒,且在頭髮、毛皮和細小邊緣的去背效果明顯較粗糙。

選擇伺服器端處理這兩條路徑所承受的代價,是每次操作一次往返延遲。在其他地方(Circle Crop、Compress 預覽)堅持用戶端所避免的代價,則是工作流程中迭代最頻繁部分的往返開銷。

處理流程詳解

1. 您選擇檔案

無論透過檔案選擇器、拖放或貼上,瀏覽器都會將一個 File 物件傳遞給 JavaScript。 JavaScript 使用 FileReaderBlob.arrayBuffer() 讀取位元組。在這個步驟中,無論使用哪個工具,檔案都不會透過網路傳送。

2. 瀏覽器解碼圖片

現代瀏覽器可以原生解碼 JPG、PNG、WebP、GIF 和 AVIF。我們使用 createImageBitmap() 在主執行緒之外,將原始位元組轉換為 GPU 可以處理的點陣圖。對於不支援 HEIC 原生解碼的瀏覽器,我們退而使用在瀏覽器本地執行的 WebAssembly 解碼器。

3. 工具執行處理——路徑在此分歧

  • Circle Crop。 使用圓形裁切路徑的 Canvas 2D 像素變換。點陣圖以選定的旋轉角度和縮放比例繪製到 <canvas> 上,套用圓形裁切後,圓圈內部的內容作為 ImageData 讀回。互動式裁切框由 Cropper.js 處理。完全在您的瀏覽器中執行。
  • Compress——預覽與滑桿。 使用 canvas.toBlob 重新編碼 JPG、PNG、WebP 或 AVIF,使並排預覽隨品質滑桿即時更新。完全在您的瀏覽器中執行。 尚未上傳任何內容。
  • Compress——下載。 當您點擊「下載」時,圖片會被傳送一次至 api.araluma.com(一個在德國 VPS 上執行的 Fastify 服務,由 Hostinger 託管,Node 24 + sharp 0.34 + libvips 8.17,與 Squoosh 伺服器路徑使用相同的 C 函式庫)。圖片依您在預覽中設定的相同參數重新編碼,位元組串流回傳至您的瀏覽器。服務維護一個按租戶隔離、以內容定址的快取(輸入位元組 + 參數的雜湊值),上限 500 MB,因此以相同設定重新下載同一張圖片時,將直接回放快取的位元組——快取不以您的身份、IP 或檔名建立索引。若服務無法連線,工具會退回瀏覽器內的預覽 blob。
  • Remove Background——預設雲端路徑。 圖片被上傳一次至 Cloudflare Worker(araluma-bg-remover),暫存至私有 R2 儲存桶(araluma-bg-temp),由 Cloudflare 的 cf.image.segment 轉換處理——在 Cloudflare 邊緣 GPU 上執行 BiRefNet 模型——完成的去背結果串流回傳。暫存的 R2 物件無論結果如何,均會在一小時內由 R2 生命週期規則刪除。一般照片的處理時間為 1-3 秒。每日的每 IP 上傳次數上限與 5 MB 檔案大小上限,確保免費配額的可持續性。
  • Remove Background——WebAssembly 備援。 若 Worker 無法連線(網路中斷、身處嚴格防火牆後方、當日配額已用盡,或檔案超過 5 MB 雲端上限),工具會透明地切換至 ISNet 模型,透過 ONNX Runtime Web 以 WebAssembly 在您的瀏覽器本地執行。首次執行需下載約 80 MB 的模型,耗時 20-40 秒;後續執行為 2-10 秒。此路徑無需上傳——您可以在 DevTools 中自行驗證。

4. 您下載結果

輸出點陣圖被編碼為 Blob,包裝成 object URL,提供給瀏覽器的標準檔案儲存對話框。檔案出現在您的磁碟上。

如何自行驗證

請選擇您偏好的方法:

方法 1 — 觀察 Network 標籤

  1. 在新分頁中開啟 Araluma,並開啟 DevTools → Network
  2. 使用 Circle CropCompress 預覽滑桿。您只會看到 HTML、CSS、JS、字型的請求,以及首次使用時相關的 WebAssembly 模組請求。不會有任何帶有圖片位元組的請求。
  3. 現在使用 Compress → 下載Remove Background。您會看到恰好一筆 POST 請求,發送至 api.araluma.com(Compress)或 Remove Background Worker,帶有您的圖片——以及一筆帶有結果的回應。懸停任何請求即可查看大小和時間。

「Initiator」欄顯示觸發每個請求的腳本,「Type」欄顯示傳送的內容。我們不隱藏這兩項資訊。

方法 2 — 離線使用工具

  1. 載入任意 Araluma 工具頁面。先對小圖片使用一次 Remove Background,讓瀏覽器內的 ISNet 模型完成快取。
  2. 開啟 DevTools → Network → 勾選離線核取方塊(或直接關閉 Wi-Fi)。
  3. 重新載入頁面;靜態資源已快取,因此頁面仍可載入。
  4. 逐一測試各工具:
    • Circle CropCompress 預覽持續正常運作——它們從不需要網路。
    • Compress 下載 退回至瀏覽器內的預覽 blob(編碼效率略低,但功能正常)。
    • Remove Background 退回至 ISNet WebAssembly 模型,無需任何外部請求即可運作。

若四個工具在離線狀態下均可運作(其中一個效果略有降低,三個表現相同),則從定義上說,沒有任何伺服器看到您的圖片。

我們能看到什麼——以及我們看不到什麼

用戶端路徑上,我們對您的圖片一無所知。沒有可供查看的請求,沒有可儲存的快取,也沒有可查找的日誌紀錄。

伺服器端路徑上:

  • Compress 下載在編碼期間(通常僅數百毫秒)接觸圖片位元組,並在快取 TTL 期間保留一筆以內容定址的快取項目,僅此而已。快取不以使用者、IP、檔名或任何可用來找到「您的」圖片的識別符建立索引。我們不記錄圖片內容。編碼服務由切換前 v1 服務的相同兩個租戶共享,並設有各自的 CORS、速率限制和 HMAC 簽署的規範 URL。
  • Remove Background在暫存上傳和分割呼叫期間(通常共 1-3 秒)接觸圖片,之後暫存副本由 R2 生命週期規則刪除。我們不會將您的位元組傳送至任何第三方模型供應商——BiRefNet 模型在 Cloudflare 自有基礎設施內執行,而非透過 remove.bg、fal.ai 或 Replicate 等外部 API。

在所有路徑上,我們的分析服務商(Cloudflare Web Analytics)會記錄彙總的頁面瀏覽資料——URL、國家、瀏覽器類型、Core Web Vitals。沒有 Cookie,沒有持久識別符,沒有與任何個人綁定的資訊。

對於首次使用時需要下載 WebAssembly 模組的工具(HEIC 解碼器、ISNet ONNX 模型),我們的託管服務商會看到有人取得了該模組——就像看到有人取得 CSS 檔案一樣。模組本身不包含任何關於您圖片的資訊。

完整的資料清單在我們的隱私權政策中。

技術堆疊

以下是 Araluma 的建構技術,供感興趣的朋友參考:

  • Astro — 靜態網站產生器。每個頁面以純 HTML 發布,僅在有互動工具的地方使用漸進增強的 JavaScript「島嶼」。
  • 原生 CSS 與自訂屬性 — 無 Tailwind,無 CSS-in-JS。完整的設計系統只有一個 tokens.css 檔案。
  • canvas.toBlob / <canvas> — Compress 預覽及所有 Circle Crop 的 JPEG、PNG、WebP、AVIF(瀏覽器支援)編碼。
  • Cropper.js — 裁切矩形的互動層。
  • ONNX Runtime Web — 透過 WebAssembly 在瀏覽器中執行 Remove Background 的 ISNet 備援模型。
  • Cloudflare Pages — 託管靜態建構,從邊緣節點提供服務。
  • Cloudflare Workers + R2 + cf.image.segment(BiRefNet) — Remove Background 的預設處理管線。
  • Fastify + sharp 0.34 + libvips 8.17(Node 24) — 位於 api.araluma.com 的 Compress 下載服務,架設於德國 Hostinger VPS。
  • Cloudflare Web Analytics — 無 Cookie 的彙總頁面瀏覽量統計。

瀏覽器支援

所有工具在 Chrome、Firefox、Safari 和 Edge 的當前版本及上一個版本中均可執行——桌面端與行動端皆支援。網站採用漸進增強方式:瀏覽器支援較新的 API 時(如 showSaveFilePickerOffscreenCanvas),我們使用它;不支援時則退而使用舊的等效方案。沒有「您的瀏覽器不受支援」的封鎖頁面。

唯一的硬性要求是 JavaScript(所有工具皆需),以及網路連線(僅在使用 Compress 下載或 Remove Background 預設路徑時——其他路徑在首次載入頁面後可完全離線執行)。

問題反饋

還有我們未涵蓋的內容?請發送電子郵件至 support@araluma.com。歡迎技術問題。