Накратко
Araluma използва хибридна архитектура: два инструмента работят изцяло в браузъра Ви без качване на файлове, а два инструмента насочват единична мрежова заявка през нашата собствена инфраструктура, когато браузърът не може да постигне същото качество. Показваме Ви кой път използвате — при всеки инструмент и на тази страница.
| Инструмент | Къде се извършва обработката |
|---|---|
| Circle Crop | 100% в браузъра Ви, Canvas API. Без качване, работи офлайн. |
| Compress преглед (плъзгач + сравнение на формати) | 100% в браузъра Ви, canvas.toBlob. Без качване. |
| Compress финално изтегляне | Една заявка до нашия сървис на api.araluma.com (Fastify + sharp + libvips на VPS в Германия). |
| Remove Background | Една заявка до Cloudflare Worker, изпълняващ BiRefNet на Edge GPU на Cloudflare, с WebAssembly резервен вариант в браузъра Ви при недостъпност на облака. |
Можете да проверите твърденията за страната на клиента за около 30 секунди: отворете DevTools → Network, изчистете журнала, след това използвайте Circle Crop или плъзгача за преглед на Compress — ще видите нула заявки, пренасящи байтовете на Вашето изображение извън страницата. За двата инструмента, изискващи сървър, ще видите точно едно качване на операция до посочените по-горе адреси.
Защо хибридно
Повечето онлайн инструменти за изображения са в едната крайност: качи-всичко-на-сървър (чакате двоен трансфер и операторът пази файла Ви) или всичко-в-браузъра (плащате с качество и скорост при стъпките за кодиране/AI). Нито едната крайност печели навсякъде.
Избрахме страната на клиента там, където браузърите вече са отлични — елементът
<canvas> се справя с изрязването, въртенето и предварителното кодиране с загуби в JPG/WebP — и
страната на сървъра там, където браузърът измеримо губи:
- Компресиране на изображения, при финалното изтегляне. Сървърните
sharp+libvips 8.17произвеждат файлове 10-15% по-малки байт за байт от браузърните кодеци при същото визуално качество, и дават достъп до настройките за скорост/хрома на AVIF и JPEG XL изход, които браузърът не предлага. Плъзгачът/прегледът все така работи в браузъра Ви, така че итерацията остава мигновена; само натискането на „Изтегли” преминава през нашия сървис. - AI премахване на фон, по подразбирания маршрут. Моделът BiRefNet, изпълняван от Cloudflare чрез
cf.image.segment(същата архитектура като remove.bg), изисква реален GPU, за да завърши за 1-3 секунди. Резервният вариант в браузъра (ISNet чрез ONNX Runtime + WebAssembly) работи, отнема 20-40 секунди при първо изпълнение и 2-10 секунди след това, и дава видимо по-грубо изрязване при коса, косъм и фини ръбове.
Цената, която приемаме за сървърна обработка по тези два маршрута, е една заявка на операция. Цената, която избягваме, като оставаме на страната на клиента навсякъде другаде (Circle Crop, прегледът на Compress), е таксата за заявка при частите от работния процес с най-бърза итерация.
Конвейерът стъпка по стъпка
1. Избирате файл
Чрез файловия избор, плъзгане и пускане или поставяне, браузърът предава на JavaScript
обект File. JavaScript чете байтовете с FileReader или
Blob.arrayBuffer(). На никакъв етап от тази стъпка файлът не се изпраща по мрежата,
независимо кой инструмент използвате.
2. Браузърът декодира изображението
Съвременните браузъри нативно декодират JPG, PNG, WebP, GIF и AVIF. Използваме
createImageBitmap(), за да преобразуваме суровите байтове в битмап, с който GPU може да работи,
извън основната нишка. За HEIC в браузъри, които не го декодират нативно, прибягваме
до WebAssembly декодер, работещ локално в браузъра Ви.
3. Инструментът върши работата си — тук маршрутите се разделят
- Circle Crop. Пикселна трансформация Canvas 2D с кръгов clip path. Битмапът се рисува в
<canvas>при избраното въртене и мащаб, прилага се кръговото изрязване, а вътрешността на кръга се прочита обратно катоImageData. Cropper.js управлява интерактивната рамка за изрязване. Изцяло в браузъра Ви. - Compress — преглед и плъзгач. Повторно кодира JPG, PNG, WebP или AVIF с
canvas.toBlob, така че прегледът рамо до рамо се актуализира при движение на плъзгача за качество. Изцяло в браузъра Ви. Без качване в този момент. - Compress — Изтегляне. Когато натиснете „Изтегли”, изображението се изпраща веднъж до
api.araluma.com(Fastify сървис на VPS в Германия, управляван от Hostinger, Node 24 +sharp 0.34+libvips 8.17, същите C библиотеки, използвани от Squoosh на сървърния му маршрут). То се прекодира със същите параметри, зададени в прегледа, и байтовете се предават поточно обратно в браузъра Ви. Сървисът пази изолиран по наемател, адресиран по съдържание кеш (хеш на входните байтове + параметри) с капацитет 500 МБ, така че повторното изтегляне на същото изображение с едни и същи настройки възпроизвежда кешираните байтове — кешът не е индексиран по Вас, IP или файлово име. Ако сървисът е недостъпен, инструментът се връща към вградения в браузъра blob от прегледа. - Remove Background — стандартен облачен маршрут. Изображението се качва веднъж до Cloudflare Worker (
araluma-bg-remover), временно се съхранява в частна R2 кофа (araluma-bg-temp), обработва се от трансформациятаcf.image.segmentна Cloudflare, изпълняваща модела BiRefNet на Edge GPU на Cloudflare, и изрязаното изображение се предава поточно обратно. Временно съхраненият R2 обект се изтрива в рамките на един час от R2 lifecycle правило, независимо от резултата. Типична снимка завършва за 1-3 секунди. Дневни ограничения по IP и 5 МБ ограничение за качване поддържат безплатния режим устойчив. - Remove Background — WebAssembly резервен вариант. Ако Worker е недостъпен (мрежата Ви пропада, зад строга защитна стена сте, дневната квота е изчерпана или файлът надхвърля 5 МБ облачния лимит), инструментът прозрачно превключва към модела ISNet, работещ локално в браузъра Ви чрез ONNX Runtime Web с WebAssembly. Първото изпълнение изтегля модела (~80 МБ) и отнема 20-40 секунди; следващите отнемат 2-10 секунди. Без качване по този маршрут — можете да го проверите в DevTools.
4. Изтегляте резултата
Изходният битмап се кодира в Blob, обвива се в object URL и се предлага
на стандартния диалог за запис на файл на браузъра Ви. Файлът се появява на диска Ви.
Как да го проверите сами
Изберете какъвто метод предпочитате:
Метод 1 — Наблюдавайте раздела Network
- Отворете Araluma в нов раздел и отворете DevTools → Network.
- Използвайте Circle Crop или плъзгача за преглед на Compress. Ще видите заявки само за HTML/CSS/JS/шрифтове, плюс съответните WebAssembly модули при първа употреба. Никоя заявка няма да пренася байтовете на Вашето изображение.
- Сега използвайте Compress → Изтегляне или Remove Background. Ще видите точно един
POSTдоapi.araluma.com(Compress) или до Worker-а на Remove Background, пренасящ Вашето изображение — и един отговор, връщащ резултата. Задръжте курсора върху всяка заявка, за да видите размер и времева измерение.
Колоната „Initiator” Ви показва кой скрипт е инициирал всяка заявка, а колоната „Type” — какво е изпратено. Нито едното не скриваме.
Метод 2 — Използвайте инструментите офлайн
- Заредете произволна страница с инструмент на Araluma. Използвайте Remove Background веднъж на малко изображение, за да се кешира вградения в браузъра ISNet модел.
- Отворете DevTools → Network → поставете отметка на Offline (или изключете Wi-Fi).
- Презаредете страницата; статичните ресурси са кеширани, така че тя пак се зарежда.
- Изпробвайте всеки инструмент:
- Circle Crop и прегледът на Compress продължават да работят — никога не са имали нужда от мрежа.
- Compress Изтегляне се връща към вградения в браузъра blob от прегледа (малко по-малко ефективно кодиране, но функционално).
- Remove Background се връща към ISNet WebAssembly модела и работи без никаква изходяща заявка.
Ако четирите инструмента работят офлайн (единият малко деградиран, три идентични), по дефиниция никой сървър не е видял Вашето изображение.
Какво виждаме ние — и какво не виждаме
По страна на клиента маршрутите ние не виждаме нищо за Вашето изображение. Няма заявка за разглеждане, няма кеш за съхранение, няма журнален ред за търсене.
По страна на сървъра маршрутите:
- Compress Изтегляне вижда байтовете на изображението за времетраенето на кодирането (обикновено няколкостотин милисекунди), пази запис в кеш, адресиран по съдържание, за TTL на кеша — и толкова. Кешът не е индексиран по потребител, IP, файлово име или какъвто и да е идентификатор, с който бихме могли да открием „Вашите” изображения. Не регистрираме съдържание на изображения. Сървисът за кодиране е споделен между същите два наематели, обслужвани от v1 преди прехода, с CORS, ограничения на заявките и HMAC-подписани канонични URL адреси за всеки наемател.
- Remove Background вижда изображението за времетраенето на временното качване и сегментационното извикване (обикновено 1-3 секунди общо), след което временно съхраненото копие се изтрива от R2 lifecycle правилото. Никога не изпращаме байтовете Ви до доставчик на модели от трета страна — моделът BiRefNet работи вътре в инфраструктурата на Cloudflare, не на външен API от вида на remove.bg / fal.ai / Replicate.
По всеки маршрут нашият доставчик на анализи (Cloudflare Web Analytics) записва агрегирани данни за посещения на страниците — URL, държава, семейство браузъри, Core Web Vitals. Без бисквитки, без постоянни идентификатори, нищо обвързано с конкретен човек.
За инструменти, изтеглящи WebAssembly модул при първа употреба (HEIC декодерът, ONNX моделът ISNet), нашият хостинг доставчик вижда, че някой е изтеглил модула — по същия начин, по който вижда изтегляне на CSS файл. Самият модул не съдържа никаква информация за Вашето изображение.
Пълният инвентар на данните е в нашата политика за поверителност.
Технологичният стек
За любопитните:
- Astro — генераторът на статичен сайт. Всяка страница се доставя като чист HTML с прогресивно подобрени JavaScript „острови” само там, където живеят интерактивните инструменти.
- Vanilla CSS с персонализирани свойства — без Tailwind, без CSS-in-JS. Пълната дизайн система е един единствен файл
tokens.css. canvas.toBlob/<canvas>— кодиране на JPEG, PNG, WebP, AVIF (поддържани от браузъра) в прегледа на Compress и цялостно за Circle Crop.- Cropper.js — слоят за взаимодействие с правоъгълника за изрязване.
- 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 — агрегирано, без бисквитки преброяване на посещенията на страниците.
Поддръжка на браузъри
Всички инструменти работят на текущата и предишната версия на Chrome, Firefox, Safari
и Edge — настолни и мобилни. Сайтът използва прогресивно подобряване: където браузърът
поддържа по-нов API (напр. showSaveFilePicker, OffscreenCanvas), го използваме; където
не поддържа, прибягваме до по-стария еквивалент. Няма стена „браузърът Ви не се поддържа”.
Единствените твърди изисквания са JavaScript (за всеки инструмент) и мрежова връзка (само при използване на Compress Изтегляне или стандартния маршрут на Remove Background — другите маршрути работят напълно офлайн след първото зареждане на страницата).
Въпроси
Нещо, което не сме покрили? Пишете ни на support@araluma.com. Техническите въпроси са добре дошли.