संक्षिप्त उत्तर
Araluma एक हाइब्रिड आर्किटेक्चर का उपयोग करता है: दो टूल पूरी तरह आपके ब्राउज़र में चलते हैं बिना किसी अपलोड के, और दो टूल एक एकल नेटवर्क अनुरोध हमारे अपने इन्फ्रास्ट्रक्चर के माध्यम से भेजते हैं जब ब्राउज़र गुणवत्ता के मामले में पीछे रह जाता है। हम आपको बताते हैं कि आप किस पथ पर हैं — हर टूल में और इस पेज पर।
| टूल | काम कहाँ होता है |
|---|---|
| Circle Crop | 100% आपके ब्राउज़र में, Canvas API। कोई अपलोड नहीं, ऑफलाइन काम करता है। |
| Compress प्रीव्यू (स्लाइडर + फॉर्मेट तुलना) | 100% आपके ब्राउज़र में, canvas.toBlob। कोई अपलोड नहीं। |
| Compress अंतिम डाउनलोड | api.araluma.com पर हमारी सेवा को एक राउंड-ट्रिप (जर्मनी में VPS पर Fastify + sharp + libvips)। |
| Remove Background | एक Cloudflare Worker को एक राउंड-ट्रिप जो Cloudflare के एज GPU पर BiRefNet चलाता है, और जब क्लाउड अनुपलब्ध हो तब आपके ब्राउज़र में WebAssembly फॉलबैक। |
आप क्लाइंट-साइड के दावों को लगभग 30 सेकंड में सत्यापित कर सकते हैं: DevTools → Network खोलें, लॉग साफ़ करें, फिर Circle Crop या Compress प्रीव्यू स्लाइडर का उपयोग करें — आपको शून्य अनुरोध दिखेंगे जो आपकी इमेज के बाइट्स पेज से बाहर ले जाएं। दो सर्वर-स्पर्शी टूल के लिए आपको प्रति ऑपरेशन ठीक एक अपलोड दिखेगा, ऊपर उल्लिखित एंडपॉइंट पर।
हाइब्रिड क्यों
अधिकांश ऑनलाइन इमेज टूल दो चरम सीमाओं में से एक पर होते हैं: सब-कुछ-सर्वर-पर-अपलोड (आप राउंड-ट्रिप का इंतज़ार करते हैं और ऑपरेटर आपकी फ़ाइल रखता है), या सब-इन-ब्राउज़र (आप एन्कोड/AI चरणों में गुणवत्ता और गति का त्याग करते हैं)। कोई भी चरम हर जगह नहीं जीतता।
हमने क्लाइंट-साइड वहाँ चुना जहाँ ब्राउज़र पहले से उत्कृष्ट हैं — <canvas> एलिमेंट
क्रॉपिंग, रोटेशन, और JPG/WebP में लॉसी प्रीव्यू एन्कोड संभालता है — और
सर्वर-साइड वहाँ जहाँ ब्राउज़र मापनीय रूप से पिछड़ जाता है:
- इमेज कम्प्रेशन, अंतिम डाउनलोड पर। सर्वर-साइड
sharp+libvips 8.17समान दृश्य गुणवत्ता पर ब्राउज़र एन्कोडर की तुलना में 10-15% छोटी फ़ाइलें बाइट-फॉर-बाइट तैयार करता है, और AVIF स्पीड/क्रोमा ट्यूनिंग तथा JPEG XL आउटपुट तक पहुँच देता है जो ब्राउज़र उजागर नहीं करता। स्लाइडर/प्रीव्यू अब भी आपके ब्राउज़र में चलता है ताकि पुनरावृत्ति तत्काल रहे; केवल “Download” टैप हमारी सेवा से होकर जाता है। - AI बैकग्राउंड रिमूवल, डिफ़ॉल्ट पथ पर। Cloudflare का
cf.image.segmentजो BiRefNet मॉडल चलाता है (remove.bg जैसी आर्किटेक्चर) उसे 1-3 सेकंड में पूरा करने के लिए एक वास्तविक GPU चाहिए। इन-ब्राउज़र फॉलबैक (ONNX Runtime + WebAssembly के ज़रिए ISNet) काम करता है, पहली बार 20-40 सेकंड और बाद में 2-10 सेकंड लेता है, और बाल, फर तथा महीन किनारों पर दिखने में खुरदुरा कटआउट देता है।
इन दोनों पथों पर सर्वर-साइड होने की जो कीमत हम स्वीकार करते हैं वह है प्रति ऑपरेशन एक राउंड-ट्रिप। क्लाइंट-साइड बने रहने से हम जो कीमत बचाते हैं (Circle Crop, Compress प्रीव्यू) वह उन वर्कफ़्लो भागों पर राउंड-ट्रिप शुल्क है जो सबसे तेज़ी से पुनरावृत्त होते हैं।
पाइपलाइन, चरण दर चरण
1. आप एक फ़ाइल चुनते हैं
फ़ाइल पिकर, ड्रैग-एंड-ड्रॉप या पेस्ट के ज़रिए, ब्राउज़र JavaScript को एक
File ऑब्जेक्ट सौंपता है। JavaScript FileReader या
Blob.arrayBuffer() का उपयोग करके बाइट्स पढ़ता है। इस चरण में किसी भी समय फ़ाइल नेटवर्क पर नहीं भेजी जाती,
चाहे आप कोई भी टूल उपयोग कर रहे हों।
2. ब्राउज़र इमेज डिकोड करता है
आधुनिक ब्राउज़र JPG, PNG, WebP, GIF और AVIF को नेटिव रूप से डिकोड करते हैं। हम
मेन थ्रेड से अलग, रॉ बाइट्स को GPU के अनुकूल बिटमैप में बदलने के लिए createImageBitmap() का उपयोग करते हैं।
ऐसे ब्राउज़र के लिए जो HEIC को नेटिव रूप से डिकोड नहीं करते, हम एक WebAssembly डिकोडर पर
फॉलबैक करते हैं जो आपके ब्राउज़र में लोकली चलता है।
3. टूल अपना काम करता है — यहाँ पथ अलग होते हैं
- Circle Crop। एक सर्कुलर क्लिप पाथ के साथ Canvas 2D पिक्सेल ट्रांसफॉर्म। बिटमैप को चुने गए रोटेशन और ज़ूम पर
<canvas>में ड्रा किया जाता है, सर्कल क्लिप लागू होती है, और सर्कल के अंदर का हिस्साImageDataके रूप में वापस पढ़ा जाता है। इंटरैक्टिव क्रॉप फ्रेम Cropper.js संभालता है। पूरी तरह आपके ब्राउज़र में। - Compress — प्रीव्यू और स्लाइडर। साइड-बाय-साइड प्रीव्यू को अपडेट रखने के लिए JPG, PNG, WebP या AVIF को
canvas.toBlobसे री-एन्कोड करता है जैसे-जैसे आप क्वालिटी स्लाइडर हिलाते हैं। पूरी तरह आपके ब्राउज़र में। अभी तक कोई अपलोड नहीं। - Compress — डाउनलोड। जब आप “Download” टैप करते हैं, इमेज एक बार
api.araluma.comको भेजी जाती है (जर्मनी में Hostinger द्वारा संचालित VPS पर Fastify सेवा, Node 24 +sharp 0.34+libvips 8.17, वही C लाइब्रेरी जो Squoosh अपने सर्वर पथ पर उपयोग करता है)। इसे उन्हीं पैरामीटर के साथ री-एन्कोड किया जाता है जो आपने प्रीव्यू में सेट किए, और बाइट्स आपके ब्राउज़र में स्ट्रीम होकर आती हैं। सेवा एक टेनेंट-आइसोलेटेड, कंटेंट-एड्रेस्ड कैश (इनपुट बाइट्स + पैरामीटर का हैश) रखती है जो 500 MB तक सीमित है ताकि समान सेटिंग के साथ एक ही इमेज पुनः डाउनलोड करने पर कैश्ड बाइट्स मिलें — कैश आपके द्वारा, IP या फ़ाइलनाम से इंडेक्स नहीं किया जाता। सेवा अनुपलब्ध होने पर, टूल इन-ब्राउज़र प्रीव्यू ब्लॉब पर फॉलबैक करता है। - 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 टैब देखें
- नए टैब में Araluma खोलें और DevTools → Network खोलें।
- Circle Crop या Compress प्रीव्यू स्लाइडर का उपयोग करें। आपको केवल HTML/CSS/JS/फ़ॉन्ट और पहले उपयोग पर संबंधित WebAssembly मॉड्यूल के अनुरोध दिखेंगे। कोई अनुरोध आपकी इमेज के बाइट्स नहीं ले जाएगा।
- अब Compress → Download या Remove Background का उपयोग करें। आपको
api.araluma.com(Compress) या Remove Background Worker को ठीक एकPOSTदिखेगा जो आपकी इमेज ले जाता है — और परिणाम के साथ एक प्रतिक्रिया वापस आती है। आकार और टाइमिंग देखने के लिए किसी भी अनुरोध पर होवर करें।
“Initiator” कॉलम बताता है कि किस स्क्रिप्ट ने प्रत्येक अनुरोध किया, और “Type” कॉलम बताता है क्या भेजा गया। हम दोनों में से कुछ नहीं छिपाते।
तरीका 2 — टूल ऑफलाइन उपयोग करें
- कोई भी Araluma टूल पेज लोड करें। Remove Background पर एक छोटी इमेज पर एक बार उपयोग करें ताकि इन-ब्राउज़र ISNet मॉडल कैश हो।
- DevTools → Network → Offline चेक करें (या Wi-Fi बंद करें)।
- पेज रीलोड करें; स्टेटिक एसेट कैश्ड हैं, इसलिए पेज फिर भी लोड होता है।
- प्रत्येक टूल आज़माएँ:
- Circle Crop और Compress प्रीव्यू काम करते रहते हैं — उन्हें कभी नेटवर्क की ज़रूरत नहीं थी।
- Compress Download इन-ब्राउज़र प्रीव्यू ब्लॉब पर फॉलबैक करता है (थोड़ा कम कुशल एन्कोड, लेकिन कार्यात्मक)।
- Remove Background ISNet WebAssembly मॉडल पर फॉलबैक करता है और बिना किसी आउटबाउंड अनुरोध के काम करता है।
यदि चारों टूल ऑफलाइन काम किए (एक थोड़ा कमज़ोर, तीन समान), तो परिभाषा के अनुसार किसी सर्वर ने आपकी इमेज नहीं देखी।
हम क्या देखते हैं — और क्या नहीं
क्लाइंट-साइड पथों पर, हम आपकी इमेज के बारे में कुछ नहीं देखते। देखने के लिए कोई अनुरोध नहीं, स्टोर करने के लिए कोई कैश नहीं, grep करने के लिए कोई लॉग लाइन नहीं।
सर्वर-साइड पथों पर:
- Compress Download एन्कोड की अवधि के लिए इमेज बाइट्स देखता है (आमतौर पर कुछ सौ मिलीसेकंड), कैश TTL के लिए एक कंटेंट-एड्रेस्ड कैश एंट्री रखता है, और बस। कैश उपयोगकर्ता, IP, फ़ाइलनाम या किसी भी ऐसे पहचानकर्ता से इंडेक्स नहीं किया जाता जिससे हम “आपकी” इमेज ढूंढ सकें। हम इमेज कंटेंट लॉग नहीं करते। एन्कोड सेवा उन्हीं दो टेनेंट के बीच साझा है जो कटओवर से पहले v1 सर्व करती थी, प्रति-टेनेंट CORS, रेट लिमिट और HMAC-signed canonical URL के साथ।
- Remove Background स्टेजिंग अपलोड और सेगमेंटेशन कॉल की अवधि के लिए इमेज देखता है (आमतौर पर कुल 1-3 सेकंड), जिसके बाद स्टेज्ड कॉपी R2 लाइफसाइकल नियम द्वारा हटा दी जाती है। हम आपके बाइट्स के साथ किसी थर्ड-पार्टी मॉडल प्रदाता को कभी नहीं बुलाते — BiRefNet मॉडल Cloudflare के अपने इन्फ्रास्ट्रक्चर के अंदर चलता है, remove.bg / fal.ai / Replicate-स्टाइल बाहरी API पर नहीं।
हर पथ पर, हमारा एनालिटिक्स प्रदाता (Cloudflare Web Analytics) एग्रीगेट पेज-व्यू डेटा रिकॉर्ड करता है — URL, देश, ब्राउज़र फ़ैमिली, Core Web Vitals। कोई कुकी नहीं, कोई पर्सिस्टेंट पहचानकर्ता नहीं, किसी व्यक्ति से जुड़ा कुछ नहीं।
पहले उपयोग पर WebAssembly मॉड्यूल डाउनलोड करने वाले टूल के लिए (HEIC डिकोडर, ISNet ONNX मॉडल), हमारा होस्टिंग प्रदाता देखता है कि किसी ने वह मॉड्यूल फेच किया — उसी तरह जैसे CSS फ़ाइल फेच होने पर देखता है। मॉड्यूल में आपकी इमेज के बारे में कोई जानकारी नहीं होती।
पूरी डेटा इन्वेंटरी हमारी प्राइवेसी पॉलिसी में है।
टेक्नोलॉजी स्टैक
जिज्ञासु लोगों के लिए:
- Astro — स्टेटिक साइट जनरेटर। हर पेज प्लेन HTML के रूप में आता है, JavaScript “islands” केवल वहाँ जहाँ इंटरैक्टिव टूल हैं।
- Vanilla CSS with custom properties — कोई Tailwind नहीं, कोई CSS-in-JS नहीं। पूरा डिज़ाइन सिस्टम एक
tokens.cssफ़ाइल है। canvas.toBlob/<canvas>— Compress प्रीव्यू और Circle Crop पूरे में JPEG, PNG, WebP, AVIF (ब्राउज़र-समर्थित) एन्कोडिंग।- Cropper.js — क्रॉप-रेक्टैंगल इंटरैक्शन लेयर।
- ONNX Runtime Web — Remove Background के लिए ISNet WebAssembly फॉलबैक चलाता है।
- Cloudflare Pages — स्टेटिक बिल्ड होस्ट करता है, एज से सर्व करता है।
- Cloudflare Workers + R2 +
cf.image.segment(BiRefNet) — डिफ़ॉल्ट Remove Background पाइपलाइन। - Fastify +
sharp 0.34+libvips 8.17on Node 24 —api.araluma.comपर Compress डाउनलोड सेवा, जर्मनी में Hostinger VPS पर। - Cloudflare Web Analytics — एग्रीगेट, कुकी-रहित पेज-व्यू काउंट।
ब्राउज़र समर्थन
सभी टूल Chrome, Firefox, Safari और Edge के मौजूदा और पिछले संस्करण पर —
डेस्कटॉप और मोबाइल — काम करते हैं। साइट प्रोग्रेसिव एन्हांसमेंट का उपयोग करती है: जहाँ
ब्राउज़र नया API सपोर्ट करता है (जैसे showSaveFilePicker, OffscreenCanvas), हम
वह उपयोग करते हैं; जहाँ नहीं, पुराने समकक्ष पर फॉलबैक करते हैं। “आपका ब्राउज़र
समर्थित नहीं है” जैसी कोई दीवार नहीं है।
एकमात्र अनिवार्य शर्तें JavaScript (किसी भी टूल के लिए) और नेटवर्क कनेक्शन (केवल Compress Download या डिफ़ॉल्ट Remove Background पथ का उपयोग करते समय — अन्य पथ पहले पेज लोड के बाद पूरी तरह ऑफलाइन चलते हैं) हैं।
प्रश्न
कुछ जो हमने कवर नहीं किया? ईमेल करें support@araluma.com। तकनीकी प्रश्न स्वागत योग्य हैं।