Kısa yanıt
Araluma hibrit bir mimari kullanır: iki araç sıfır yüklemeyle tamamen tarayıcınızda çalışır; diğer iki araç ise tarayıcının kalitesiyle eşleşemediği durumlarda kendi altyapımız üzerinden tek bir ağ isteği gönderir. Hangi yolda olduğunuzu her araçta ve bu sayfada açıkça belirtiyoruz.
| Araç | İşin gerçekleştiği yer |
|---|---|
| Circle Crop | %100 tarayıcınızda, Canvas API. Yükleme yok, çevrimdışı çalışır. |
| Compress önizlemesi (kaydırıcı + format karşılaştırması) | %100 tarayıcınızda, canvas.toBlob. Yükleme yok. |
| Compress nihai indirme | api.araluma.com adresindeki hizmetimize tek gidiş-dönüş (Almanya’daki bir VPS’te Fastify + sharp + libvips). |
| Arka Plan Kaldırma | Cloudflare’in uç GPU’larında BiRefNet çalıştıran bir Cloudflare Worker’ına tek gidiş-dönüş; buluta erişilemediğinde tarayıcınızda WebAssembly tabanlı yedek devreye girer. |
İstemci tarafı iddiaları yaklaşık 30 saniyede doğrulayabilirsiniz: DevTools → Network’ü açın, günlüğü temizleyin, ardından Circle Crop veya Compress önizleme kaydırıcısını kullanın — görüntü baytlarınızı içeren sıfır istek sayfayı terk ettiğini göreceksiniz. Sunucuya dokunan iki araç için ise yukarıda belirtilen uç noktalara işlem başına tam olarak bir yükleme göreceksiniz.
Neden hibrit
Çoğu çevrimiçi görüntü aracı iki uçtan birinde yer alır: her şeyi sunucuya yükleyin (gidiş-dönüşleri beklersiniz ve operatör dosyanızı saklar) ya da her şeyi tarayıcıda yapın (kodlama/yapay zeka adımlarında kalite ve hızdan fedakârlık edersiniz). Hiçbir uç her yerde kazanmaz.
Tarayıcıların zaten mükemmel olduğu alanlarda istemci tarafını, tarayıcının hâlâ ölçülebilir şekilde geride kaldığı alanlarda ise sunucu tarafını tercih ettik. <canvas> öğesi kırpmayı, döndürmeyi ve JPG/WebP kayıplı önizleme kodlamasını yönetir; sunucu tarafını ise şu durumlar için seçtik:
- Görüntü sıkıştırma, nihai indirmede. Sunucu tarafı
sharp+libvips 8.17, aynı görsel kalitede tarayıcı kodlayıcılara kıyasla bayt başına %10-15 daha küçük dosyalar üretir; ayrıca tarayıcının sunmadığı AVIF hız/kroma ayarlamasına ve JPEG XL çıktısına erişim sağlar. Kaydırıcı/önizleme tarayıcınızda çalışmaya devam eder, böylece yineleme anında kalır; yalnızca “İndir” tuşuna basmak hizmetimiz üzerinden geçer. - Yapay zeka arka plan kaldırma, varsayılan yolda. Cloudflare’in
cf.image.segment’inin çalıştırdığı BiRefNet modeli (remove.bg ile aynı mimari), 1-3 saniyede tamamlanmak için gerçek bir GPU’ya ihtiyaç duyar. Tarayıcı içi yedek (ONNX Runtime + WebAssembly üzerinden ISNet), çalışır; ancak ilk çalışmada 20-40 saniye, sonraki çalışmalarda 2-10 saniye sürer ve saç, kürk ve ince kenarlarda görsel olarak daha kaba bir kesim üretir.
Bu iki yolda sunucu tarafı kullanmanın kabul ettiğimiz bedeli, işlem başına bir gidiş-dönüştür. Her yerde istemci tarafında kalarak (Circle Crop, Compress önizlemesi) kaçındığımız bedel ise en hızlı yinelenen iş akışı bölümlerindeki gidiş-dönüş maliyetidir.
İşlem hattı, adım adım
1. Bir dosya seçiyorsunuz
Dosya seçici, sürükle-bırak veya yapıştırma yoluyla bir görüntü seçtiğinizde tarayıcı, JavaScript’e bir File nesnesi iletir. JavaScript baytları FileReader veya Blob.arrayBuffer() ile okur. Bu adımın hiçbir aşamasında dosya ağ üzerinden gönderilmez; kullandığınız araçtan bağımsız olarak.
2. Tarayıcı görüntüyü çözer
Modern tarayıcılar JPG, PNG, WebP, GIF ve AVIF’i yerel olarak çözer. Ham baytları ana iş parçacığı dışında GPU’nun çalışabileceği bir bit eşleme dönüştürmek için createImageBitmap() kullanırız. HEIC’yi yerel olarak çözemeyen tarayıcılarda, tarayıcınızda yerel olarak çalışan bir WebAssembly kod çözücüye geçeriz.
3. Araç işini yapar — yolların ayrıldığı yer burasıdır
- Circle Crop. Dairesel kırpma yoluyla Canvas 2D piksel dönüşümü. Bit eşlem, seçilen döndürme ve yakınlaştırmayla bir
<canvas>üzerine çizilir, daire kırpması uygulanır ve dairenin içiImageDataolarak geri okunur. Etkileşimli kırpma çerçevesini Cropper.js yönetir. Tamamen tarayıcınızda. - Compress — önizleme ve kaydırıcı. Kalite kaydırıcısını hareket ettirirken yan yana önizleme güncellensin diye
canvas.toBlobkullanarak JPG, PNG, WebP veya AVIF’i yeniden kodlar. Tamamen tarayıcınızda. Henüz yükleme yok. - Compress — İndir. “İndir”e dokunduğunuzda görüntü,
api.araluma.com’ye bir kez gönderilir (Hostinger tarafından işletilen Almanya’daki bir VPS’te çalışan Fastify hizmeti: Node 24 +sharp 0.34+libvips 8.17; Squoosh’un sunucu yolunda kullandığı C kitaplıklarının aynısı). Görüntü, önizlemede belirlediğiniz parametrelerle yeniden kodlanır ve baytlar tarayıcınıza akıtılır. Hizmet, kiracıya izole, içerik adresli bir önbellek tutar (girdi baytları + parametreler karma değeri) ve 500 MB ile sınırlıdır; böylece aynı görüntüyü aynı ayarlarla yeniden indirmek önbellekteki baytları yeniden çalar — önbellek siz, IP veya dosya adıyla indekslenmez. Hizmet erişilemez olursa araç, tarayıcı içi önizleme blob’una döner. - Arka Plan Kaldırma — varsayılan bulut yolu. Görüntü, bir Cloudflare Worker’ına (
araluma-bg-remover) bir kez yüklenir, özel bir R2 paketinde (araluma-bg-temp) hazırlanır, Cloudflare’incf.image.segmentdönüşümü tarafından işlenir (Cloudflare’in uç GPU’larında BiRefNet modelini çalıştırır) ve kesim akıtılarak geri gönderilir. Hazırlanan R2 nesnesi, sonuçtan bağımsız olarak bir R2 yaşam döngüsü kuralı aracılığıyla bir saat içinde silinir. Tipik bir fotoğraf 1-3 saniyede tamamlanır. Günlük IP başına ve 5 MB yükleme sınırları ücretsiz katmanı sürdürülebilir kılar. - Arka Plan Kaldırma — WebAssembly yedeği. Worker erişilemez durumdaysa (ağınız düşerse, katı bir güvenlik duvarının arkasındaysanız, günlük kota dolmuşsa veya dosya 5 MB bulut sınırını aşıyorsa), araç şeffaf biçimde ONNX Runtime Web aracılığıyla WebAssembly ile tarayıcınızda yerel olarak çalışan ISNet modeline geçer. İlk çalışmada ~80 MB’lık model indirilir ve 20-40 saniye sürer; sonraki çalışmalar 2-10 saniye alır. Bu yolda yükleme yoktur — DevTools’ta doğrulayabilirsiniz.
4. Sonucu indiriyorsunuz
Çıktı bit eşlemi bir Blob’a kodlanır, bir object URL’ye sarılır ve tarayıcınızın standart dosya kaydetme iletişim kutusuna sunulur. Dosya diskinizde görünür.
Kendiniz nasıl doğrularsınız
Hangisini tercih ettiğinizi seçin:
Yöntem 1 — Network sekmesini izleyin
- Araluma’ı yeni bir sekmede açın ve DevTools → Network’ü açın.
- Circle Crop veya Compress önizleme kaydırıcısını kullanın. Yalnızca HTML/CSS/JS/yazı tipleri ile ilk kullanımda ilgili WebAssembly modüllerine yönelik istekler görürsünüz. Hiçbir istek görüntü baytlarınızı taşımayacak.
- Şimdi Compress → İndir veya Arka Plan Kaldırma’yı kullanın. Görüntünüzü taşıyan
api.araluma.com’ye (Compress) veya Arka Plan Kaldırma Worker’ına tam olarak birPOSTisteği göreceksiniz — ve sonuçla birlikte geri gelen bir yanıt. Boyutu ve zamanlamayı görmek için herhangi bir isteğin üzerine gelin.
“Initiator” sütunu her isteği hangi betiğin tetiklediğini, “Type” sütunu ise ne gönderildiğini söyler. İkisini de gizlemiyoruz.
Yöntem 2 — Araçları çevrimdışı kullanın
- Herhangi bir Araluma araç sayfasını yükleyin. Tarayıcı içi ISNet modelinin önbelleklenmesi için Arka Plan Kaldırma’yı küçük bir görüntüyle bir kez kullanın.
- DevTools → Network → Çevrimdışı onay kutusunu işaretleyin (veya Wi-Fi’yı kapatın).
- Sayfayı yenileyin; statik varlıklar önbellekte olduğu için yine yüklenir.
- Her aracı deneyin:
- Circle Crop ve Compress önizlemesi çalışmaya devam eder — hiçbir zaman ağa ihtiyaç duymadılar.
- Compress İndir, tarayıcı içi önizleme blob’una döner (biraz daha az verimli kodlama, ancak işlevsel).
- Arka Plan Kaldırma, ISNet WebAssembly modeline döner ve giden istek olmadan çalışır.
Dört araç çevrimdışı çalıştıysa (biri hafif biçimde düşük kaliteli, üçü aynı), tanım gereği hiçbir sunucu görüntünüzü görmedi.
Ne görüyoruz — ne görmüyoruz
İstemci tarafı yollarda görüntünüz hakkında hiçbir şey görmüyoruz. Bakmak için istek yok, depolamak için önbellek yok, grep’lenecek günlük satırı yok.
Sunucu tarafı yollarda:
- Compress İndir, görüntü baytlarını kodlama süresince (genellikle birkaç yüz milisaniye) görür, önbellek TTL süresi boyunca içerik adresli bir önbellek girdisi tutar, hepsi bu. Önbellek kullanıcı, IP, dosya adı veya “sizin” görüntülerinizi bulmak için kullanabileceğimiz herhangi bir tanımlayıcıya göre indekslenmez. Görüntü içeriği günlüğe almıyoruz. Kodlama hizmeti, geçiş öncesinde v1’in sunduğu aynı iki kiracı arasında paylaşılmaktadır; kiracıya özgü CORS, hız sınırları ve HMAC imzalı kanonik URL’lerle.
- Arka Plan Kaldırma, görüntüyü hazırlama yüklemesi ve segmentasyon çağrısı süresince (genellikle toplam 1-3 saniye) görür; ardından hazırlanan kopya R2 yaşam döngüsü kuralı tarafından silinir. Baytlarınızla herhangi bir üçüncü taraf model sağlayıcısını asla aramıyoruz — BiRefNet modeli Cloudflare’in kendi altyapısında çalışır; remove.bg / fal.ai / Replicate tarzı harici bir API’da değil.
Her yolda, analitik sağlayıcımız (Cloudflare Web Analytics) toplu sayfa görüntüleme verilerini kaydeder — URL, ülke, tarayıcı ailesi, Core Web Vitals. Çerez yok, kalıcı tanımlayıcı yok, bir kişiye bağlı hiçbir şey yok.
İlk kullanımda WebAssembly modülü indiren araçlar için (HEIC kod çözücü, ISNet ONNX modeli) barındırma sağlayıcımız birinin modülü aldığını görür — tıpkı CSS dosyasını aldığını görmesi gibi. Modülün kendisi görüntünüz hakkında herhangi bir bilgi içermez.
Tam veri envanteri gizlilik politikamızda yer almaktadır.
Teknoloji yığını
Merak edenler için:
- Astro — statik site oluşturucu. Her sayfa, yalnızca etkileşimli araçların bulunduğu yerlerde aşamalı olarak iyileştirilmiş JavaScript “islands” ile düz HTML olarak sunulur.
- Özel özelliklerle Vanilla CSS — Tailwind yok, CSS-in-JS yok. Tasarım sisteminin tamamı tek bir
tokens.cssdosyasıdır. canvas.toBlob/<canvas>— Compress önizlemesinde ve tüm Circle Crop işlemlerinde JPEG, PNG, WebP, AVIF (tarayıcı destekli) kodlaması.- Cropper.js — kırpma dikdörtgeni etkileşim katmanı.
- ONNX Runtime Web — Arka Plan Kaldırma için ISNet WebAssembly yedeğini çalıştırır.
- Cloudflare Pages — statik derlemeyi barındırır, uçtan sunar.
- Cloudflare Workers + R2 +
cf.image.segment(BiRefNet) — varsayılan Arka Plan Kaldırma işlem hattı. - Fastify +
sharp 0.34+libvips 8.17on Node 24 — Almanya’daki Hostinger VPS’indeapi.araluma.comadresindeki Compress indirme hizmeti. - Cloudflare Web Analytics — toplu, çerez içermeyen sayfa görüntüleme sayımı.
Tarayıcı desteği
Tüm araçlar Chrome, Firefox, Safari ve Edge’in geçerli ve önceki sürümlerinde — masaüstü ve mobilde — çalışır. Site aşamalı geliştirme kullanır: tarayıcının daha yeni bir API’yi desteklediği yerde (ör. showSaveFilePicker, OffscreenCanvas) bunu kullanırız; desteklemediği yerde eski muadile geri döneriz. “Tarayıcınız desteklenmiyor” gibi bir engel yoktur.
Tek zorunlu gereksinimler JavaScript (her araç için) ve ağ bağlantısıdır (yalnızca Compress İndir veya varsayılan Arka Plan Kaldırma yolunu kullanırken — diğer yollar ilk sayfa yüklemesinin ardından tamamen çevrimdışı çalışır).
Sorular
Kapsamadığımız bir şey mi var? Bize e-posta gönderin: support@araluma.com. Teknik sorular memnuniyetle karşılanır.