Πώς λειτουργεί το Araluma

Τεχνικές λεπτομέρειες για το πώς κάθε εργαλείο τρέχει, πού τρέχει και πώς μπορείτε να το ελέγξετε μόνοι σας.

Η σύντομη απάντηση

Το Araluma χρησιμοποιεί υβριδική αρχιτεκτονική: δύο εργαλεία εκτελούνται εξ ολοκλήρου στον browser σας χωρίς καμία μεταφόρτωση, και δύο εργαλεία δρομολογούν ένα μόνο αίτημα δικτύου μέσω της δικής μας υποδομής όταν ο browser δεν μπορεί να αντιστοιχιστεί με την ποιότητα. Σας ενημερώνουμε ποια διαδρομή ακολουθείτε — σε κάθε εργαλείο και σε αυτή τη σελίδα.

ΕργαλείοΠού εκτελείται η επεξεργασία
Circle Crop100% στον browser σας, Canvas API. Χωρίς μεταφόρτωση, λειτουργεί εκτός σύνδεσης.
Compress — προεπισκόπηση (ρυθμιστικό + σύγκριση μορφών)100% στον browser σας, canvas.toBlob. Χωρίς μεταφόρτωση.
Compress — τελική λήψηΈνα μόνο αίτημα στην υπηρεσία μας στο api.araluma.com (Fastify + sharp + libvips σε VPS στη Γερμανία).
Remove BackgroundΈνα μόνο αίτημα σε ένα Cloudflare Worker που εκτελεί το BiRefNet στα edge GPU της Cloudflare, με εναλλακτική WebAssembly στον browser σας όταν το cloud δεν είναι προσβάσιμο.

Μπορείτε να επαληθεύσετε τους ισχυρισμούς για την πλευρά του client σε περίπου 30 δευτερόλεπτα: ανοίξτε τα DevTools → Network, διαγράψτε το αρχείο καταγραφής και χρησιμοποιήστε το Circle Crop ή το ρυθμιστικό προεπισκόπησης Compress — δεν θα δείτε κανένα αίτημα που να μεταφέρει τα bytes της εικόνας σας εκτός της σελίδας. Για τα δύο εργαλεία που αγγίζουν τον διακομιστή, θα δείτε ακριβώς μία μεταφόρτωση ανά λειτουργία, στα παραπάνω ονομαστά endpoints.

Γιατί υβριδική αρχιτεκτονική

Τα περισσότερα διαδικτυακά εργαλεία εικόνας βρίσκονται στο ένα άκρο: ανεβάζετε-τα-πάντα-σε-διακομιστή (περιμένετε για αιτήματα μετ’ επιστροφής και ο φορέας κρατά το αρχείο σας), ή all-in-browser (πληρώνετε με ποιότητα και ταχύτητα στα βήματα κωδικοποίησης/AI). Κανένα από τα δύο άκρα δεν κερδίζει παντού.

Επιλέξαμε client-side όπου οι browsers είναι ήδη εξαιρετικοί — το στοιχείο <canvas> χειρίζεται την περικοπή, την περιστροφή και την κωδικοποίηση προεπισκόπησης με απώλειες σε JPG/WebP — και server-side όπου ο browser εξακολουθεί να υπολείπεται μετρήσιμα:

  • Συμπίεση εικόνας, στην τελική λήψη. Το server-side sharp + libvips 8.17 παράγει αρχεία 10–15% μικρότερα byte-for-byte σε σχέση με τους κωδικοποιητές browser στην ίδια οπτική ποιότητα, και παρέχει πρόσβαση στη ρύθμιση ταχύτητας/chroma AVIF και στην έξοδο JPEG XL που ο browser δεν εκθέτει. Το ρυθμιστικό/προεπισκόπηση εξακολουθεί να εκτελείται στον browser σας, ώστε η επανάληψη να παραμένει άμεση· μόνο το «Download» διέρχεται από την υπηρεσία μας.
  • Αφαίρεση φόντου με AI, στη βασική διαδρομή. Το μοντέλο BiRefNet που εκτελεί το cf.image.segment της Cloudflare (ίδια αρχιτεκτονική με το remove.bg) χρειάζεται πραγματική GPU για να ολοκληρωθεί σε 1–3 δευτερόλεπτα. Η εναλλακτική in-browser (ISNet μέσω ONNX Runtime + WebAssembly) λειτουργεί, χρειάζεται 20–40 δευτερόλεπτα στην πρώτη εκτέλεση και 2–10 δευτερόλεπτα στη συνέχεια, και παράγει ένα αισθητά χονδροειδέστερο αποκόμμα σε μαλλιά, τρίχωμα και λεπτές άκρες.

Το κόστος που αποδεχόμαστε για να είμαστε server-side σε αυτές τις δύο διαδρομές είναι ένα αίτημα μετ’ επιστροφής ανά λειτουργία. Το κόστος που αποφεύγουμε παραμένοντας client-side παντού αλλού (Circle Crop, η προεπισκόπηση Compress) είναι το τέλος αυτού του αιτήματος στα τμήματα της ροής εργασίας που επαναλαμβάνονται πιο γρήγορα.

Η διαδικασία, βήμα προς βήμα

1. Επιλέγετε ένα αρχείο

Μέσω του επιλογέα αρχείων, μεταφοράς και απόθεσης ή επικόλλησης, ο browser μεταδίδει στη JavaScript ένα αντικείμενο File. Η JavaScript διαβάζει τα bytes χρησιμοποιώντας το FileReader ή το Blob.arrayBuffer(). Σε κανένα σημείο αυτού του βήματος δεν αποστέλλεται το αρχείο μέσω δικτύου, ανεξάρτητα από το εργαλείο που χρησιμοποιείτε.

2. Ο browser αποκωδικοποιεί την εικόνα

Οι σύγχρονοι browsers αποκωδικοποιούν εγγενώς JPG, PNG, WebP, GIF και AVIF. Χρησιμοποιούμε createImageBitmap() για να μετατρέψουμε τα ακατέργαστα bytes σε bitmap με το οποίο μπορεί να εργαστεί η GPU, εκτός του κύριου thread. Για HEIC σε browsers που δεν το αποκωδικοποιούν εγγενώς, καταφεύγουμε σε έναν αποκωδικοποιητή WebAssembly που εκτελείται τοπικά στον browser σας.

3. Το εργαλείο κάνει τη δουλειά του — εδώ διακλαδίζονται οι διαδρομές

  • Circle Crop. Μετασχηματισμός pixel Canvas 2D με κυκλική διαδρομή αποκοπής. Το bitmap σχεδιάζεται σε <canvas> με την επιλεγμένη περιστροφή και ζουμ, εφαρμόζεται η κυκλική αποκοπή και το εσωτερικό του κύκλου διαβάζεται ξανά ως ImageData. Το Cropper.js χειρίζεται το διαδραστικό πλαίσιο περικοπής. Εξ ολοκλήρου στον browser σας.
  • Compress — προεπισκόπηση και ρυθμιστικό. Επανακωδικοποιεί JPG, PNG, WebP ή AVIF χρησιμοποιώντας canvas.toBlob, ώστε η προεπισκόπηση δίπλα-δίπλα να ενημερώνεται καθώς μετακινείτε το ρυθμιστικό ποιότητας. Εξ ολοκλήρου στον browser σας. Καμία μεταφόρτωση ακόμα.
  • Compress — Λήψη. Όταν πατάτε «Download», η εικόνα αποστέλλεται μία φορά στο api.araluma.com (μια υπηρεσία Fastify που εκτελείται σε VPS στη Γερμανία, φιλοξενούμενη από την Hostinger, Node 24 + sharp 0.34 + libvips 8.17, οι ίδιες βιβλιοθήκες C που χρησιμοποιεί το Squoosh στη διαδρομή του διακομιστή). Επανακωδικοποιείται με τις ίδιες παραμέτρους που ορίσατε στην προεπισκόπηση και τα bytes ροής επιστρέφουν στον browser σας. Η υπηρεσία τηρεί ένα απομονωμένο ανά tenant, content-addressed cache (hash των bytes εισόδου + παραμέτρων) με ανώτατο όριο 500 MB, ώστε η επαναλήψη της ίδιας εικόνας με τις ίδιες ρυθμίσεις να επαναχρησιμοποιεί τα αποθηκευμένα bytes — το cache δεν ευρετηριάζεται βάσει ταυτότητάς σας, IP ή ονόματος αρχείου. Εάν η υπηρεσία δεν είναι προσβάσιμη, το εργαλείο επιστρέφει στο blob προεπισκόπησης εντός του browser.
  • Remove Background — βασική διαδρομή cloud. Η εικόνα μεταφορτώνεται μία φορά σε ένα Cloudflare Worker (araluma-bg-remover), αποθηκεύεται προσωρινά σε ένα ιδιωτικό bucket R2 (araluma-bg-temp), επεξεργάζεται από τον μετασχηματισμό cf.image.segment της Cloudflare που εκτελεί το μοντέλο BiRefNet στα edge GPU της Cloudflare, και το αποκόμμα ροής επιστρέφει. Το σταδιακά αποθηκευμένο αντικείμενο R2 διαγράφεται εντός μίας ώρας από έναν κανόνα κύκλου ζωής R2, ανεξάρτητα από το αποτέλεσμα. Μια τυπική φωτογραφία ολοκληρώνεται σε 1–3 δευτερόλεπτα. Ημερήσια ανά IP και όρια μεταφόρτωσης 5 MB διατηρούν βιώσιμο το δωρεάν επίπεδο.
  • Remove Background — εναλλακτική WebAssembly. Εάν το Worker δεν είναι προσβάσιμο (το δίκτυό σας πέφτει, βρίσκεστε πίσω από αυστηρό τείχος προστασίας, η ημερήσια χρήση έχει εξαντληθεί ή το αρχείο υπερβαίνει το όριο 5 MB cloud), το εργαλείο μεταβαίνει διαφανώς στο μοντέλο ISNet που εκτελείται τοπικά στον browser σας μέσω ONNX Runtime Web με WebAssembly. Η πρώτη εκτέλεση κατεβάζει το μοντέλο ~80 MB και διαρκεί 20–40 δευτερόλεπτα· οι επόμενες εκτελέσεις διαρκούν 2–10 δευτερόλεπτα. Καμία μεταφόρτωση σε αυτή τη διαδρομή — μπορείτε να το επαληθεύσετε στα DevTools.

4. Κατεβάζετε το αποτέλεσμα

Το bitmap εξόδου κωδικοποιείται σε Blob, τυλίγεται σε object URL και προσφέρεται στο τυπικό παράθυρο αποθήκευσης αρχείων του browser σας. Το αρχείο εμφανίζεται στον δίσκο σας.

Πώς να το επαληθεύσετε μόνοι σας

Επιλέξτε όποια μέθοδο προτιμάτε:

Μέθοδος 1 — Παρακολουθήστε την καρτέλα Network

  1. Ανοίξτε το Araluma σε νέα καρτέλα και ανοίξτε τα DevTools → Network.
  2. Χρησιμοποιήστε Circle Crop ή το ρυθμιστικό προεπισκόπησης Compress. Θα δείτε αιτήματα για HTML/CSS/JS/γραμματοσειρές μόνο, καθώς και τα σχετικά modules WebAssembly κατά την πρώτη χρήση. Κανένα αίτημα δεν θα μεταφέρει τα bytes της εικόνας σας.
  3. Τώρα χρησιμοποιήστε Compress → Download ή Remove Background. Θα δείτε ακριβώς ένα POST στο api.araluma.com (Compress) ή στο Worker του Remove Background, που μεταφέρει την εικόνα σας — και μία απόκριση που επιστρέφει με το αποτέλεσμα. Τοποθετήστε τον δείκτη πάνω σε οποιοδήποτε αίτημα για να δείτε μέγεθος και χρόνο.

Η στήλη «Initiator» σάς λέει ποιο script ενεργοποίησε κάθε αίτημα, και η στήλη «Type» σάς λέει τι στάλθηκε. Δεν αποκρύπτουμε κανένα από τα δύο.

Μέθοδος 2 — Χρησιμοποιήστε τα εργαλεία εκτός σύνδεσης

  1. Φορτώστε οποιαδήποτε σελίδα εργαλείου του Araluma. Χρησιμοποιήστε το Remove Background μία φορά σε μικρή εικόνα, ώστε το μοντέλο ISNet εντός browser να αποθηκευτεί στην cache.
  2. Ανοίξτε τα DevTools → Network → επιλέξτε Offline (ή απενεργοποιήστε το Wi-Fi).
  3. Φορτώστε ξανά τη σελίδα· τα στατικά στοιχεία είναι αποθηκευμένα στην cache, οπότε φορτώνεται κανονικά.
  4. Δοκιμάστε κάθε εργαλείο:
    • Το Circle Crop και η προεπισκόπηση Compress συνεχίζουν να λειτουργούν — δεν χρειάστηκαν ποτέ δίκτυο.
    • Η λήψη Compress επιστρέφει στο blob προεπισκόπησης εντός browser (ελαφρώς λιγότερο αποδοτική κωδικοποίηση, αλλά λειτουργική).
    • Το Remove Background επιστρέφει στο μοντέλο ISNet WebAssembly και λειτουργεί χωρίς κανένα εξερχόμενο αίτημα.

Εάν τα τέσσερα εργαλεία λειτούργησαν εκτός σύνδεσης (το ένα ελαφρώς υποβαθμισμένο, τα τρία ταυτόσημα), εξ ορισμού κανένας διακομιστής δεν είδε την εικόνα σας.

Τι βλέπουμε εμείς — και τι όχι

Στις διαδρομές client-side, δεν βλέπουμε τίποτα για την εικόνα σας. Δεν υπάρχει αίτημα για εξέταση, δεν υπάρχει cache για αποθήκευση, δεν υπάρχει γραμμή καταγραφής.

Στις διαδρομές server-side:

  • Η Λήψη Compress βλέπει τα bytes της εικόνας για τη διάρκεια της κωδικοποίησης (συνήθως μερικές εκατοντάδες milliseconds), διατηρεί μια εγγραφή content-addressed cache για το TTL cache, και αυτό είναι όλο. Το cache δεν ευρετηριάζεται βάσει χρήστη, IP, ονόματος αρχείου ή οποιουδήποτε αναγνωριστικού που θα μπορούσαμε να χρησιμοποιήσουμε για να βρούμε «τις δικές σας» εικόνες. Δεν καταγράφουμε περιεχόμενο εικόνας. Η υπηρεσία κωδικοποίησης είναι κοινόχρηστη μεταξύ των δύο ίδιων tenants που εξυπηρετούσε το v1 πριν την αποκοπή, με ανά tenant CORS, όρια ρυθμού και HMAC-signed canonical URLs.
  • Το Remove Background βλέπει την εικόνα για τη διάρκεια της σταδιακής μεταφόρτωσης και της κλήσης κατάτμησης (συνήθως 1–3 δευτερόλεπτα συνολικά), μετά την οποία το σταδιακό αντίγραφο διαγράφεται από τον κανόνα κύκλου ζωής R2. Δεν καλούμε ποτέ οποιονδήποτε εξωτερικό πάροχο μοντέλου με τα bytes σας — το μοντέλο BiRefNet εκτελείται εντός της δικής της υποδομής της Cloudflare, όχι σε εξωτερικό API τύπου remove.bg / fal.ai / Replicate.

Σε κάθε διαδρομή, ο πάροχος αναλυτικών μας (Cloudflare Web Analytics) καταγράφει συγκεντρωτικά δεδομένα προβολής σελίδας — URL, χώρα, οικογένεια browser, Core Web Vitals. Χωρίς cookies, χωρίς μόνιμα αναγνωριστικά, τίποτα συνδεδεμένο με ένα συγκεκριμένο άτομο.

Για εργαλεία που κατεβάζουν ένα module WebAssembly κατά την πρώτη χρήση (ο αποκωδικοποιητής HEIC, το μοντέλο ONNX ISNet), ο πάροχος φιλοξενίας μας βλέπει ότι κάποιος έφερε το module — όπως βλέπει κάποιον να φέρει το αρχείο CSS. Το ίδιο το module δεν περιέχει καμία πληροφορία σχετικά με την εικόνα σας.

Το πλήρες απόθεμα δεδομένων βρίσκεται στην πολιτική απορρήτου μας.

Η τεχνολογική στοίβα

Για τους περίεργους:

  • Astro — η γεννήτρια στατικών ιστότοπων. Κάθε σελίδα αποστέλλεται ως απλή HTML με προοδευτικά βελτιωμένα JavaScript «islands» μόνο όπου βρίσκονται τα διαδραστικά εργαλεία.
  • Vanilla CSS με custom properties — χωρίς Tailwind, χωρίς CSS-in-JS. Το πλήρες σύστημα σχεδιασμού είναι ένα μόνο αρχείο tokens.css.
  • canvas.toBlob / <canvas> — κωδικοποίηση JPEG, PNG, WebP, AVIF (υποστηριζόμενη από τον browser) στην προεπισκόπηση Compress και σε όλο το Circle Crop.
  • Cropper.js — το layer αλληλεπίδρασης του πλαισίου περικοπής.
  • ONNX Runtime Web — εκτελεί την εναλλακτική ISNet WebAssembly για το Remove Background.
  • Cloudflare Pages — φιλοξενεί το στατικό build, το εξυπηρετεί από το edge.
  • Cloudflare Workers + R2 + cf.image.segment (BiRefNet) — η βασική διαδρομή Remove Background.
  • Fastify + sharp 0.34 + libvips 8.17 σε Node 24 — η υπηρεσία λήψης Compress στο api.araluma.com, σε VPS Hostinger στη Γερμανία.
  • Cloudflare Web Analytics — συγκεντρωτική, χωρίς cookies καταμέτρηση προβολών σελίδας.

Υποστήριξη browser

Όλα τα εργαλεία λειτουργούν στην τρέχουσα και στην προηγούμενη έκδοση των Chrome, Firefox, Safari και Edge — επιτραπέζιους και κινητούς. Ο ιστότοπος χρησιμοποιεί προοδευτική βελτίωση: όπου ένας browser υποστηρίζει ένα νεότερο API (π.χ. showSaveFilePicker, OffscreenCanvas), το χρησιμοποιούμε· όπου δεν υποστηρίζει, χρησιμοποιούμε το παλαιότερο ισοδύναμο. Δεν υπάρχει τοίχος «ο browser σας δεν υποστηρίζεται».

Οι μόνες απαραίτητες προϋποθέσεις είναι η JavaScript (για οποιοδήποτε εργαλείο) και σύνδεση δικτύου (μόνο κατά τη χρήση της Λήψης Compress ή της βασικής διαδρομής Remove Background — οι άλλες διαδρομές εκτελούνται πλήρως εκτός σύνδεσης μετά την πρώτη φόρτωση σελίδας).

Ερωτήσεις

Κάτι που δεν καλύψαμε; Στείλτε email στη διεύθυνση support@araluma.com. Τεχνικές ερωτήσεις είναι ευπρόσδεκτες.