Як працює Araluma

Де працює кожен інструмент, навіщо деяким потрібен сервер і як переконатися в цьому у своєму браузері.

Два види інструментів

Кожен інструмент Araluma належить до однієї з двох груп. Браузерні інструменти зчитують, редагують і зберігають ваш файл на вашому власному пристрої. Серверні інструменти завантажують файл, обробляють його на наших серверах або в постачальника сервісів зображень і повертають результат. Серверні інструменти також мають запасний план, який завершує роботу у вашому браузері, якщо сервери недоступні.

ІнструментЛише в браузеріІз серверомЗапасний план у разі збою серверів
«Обрізати фото по колу», «Обрізати фото», «Змінити розмір»ЗавждиНіколиНе потрібен
Конвертація (один файл, результат у PNG, JPG чи WebP)ТакНіНе потрібен
Конвертація (результат в AVIF або два файли й більше)НіТакКодувальник у браузері
«JPG у PDF» (одне зображення)ТакНіНе потрібен
«JPG у PDF» (два зображення й більше)НіТакЗбирання в браузері
«Стиснути зображення»Лише SVG і дуже великі пакетиТакСтиснення в браузері
«Видалити фон»НіТак, спершу Cloudflare, потім ImageKitМодель ШІ, що працює у вашому браузері
«Збільшити зображення»НіТак, спершу Cloudflare, потім ImageKitПередискретизація в браузері

Ще один випадок стосується всіх інструментів: у разі створення посилання для спільного доступу чи збереження результату в Dropbox файл із результатом зберігається близько двох годин, щоб посилання можна було відкрити.

Чому б не робити все в браузері?

Браузери чудово справляються з геометрією. Обрізання, поворот, масштабування та збереження зображення в поширених форматах займають на пристрої частки секунди, без очікування мережі, тому такі інструменти ніколи його не залишають.

Інші завдання все ж краще виконувати на сервері:

  • Стиснення. Серверні кодувальники на основі libvips дають помітно менші файли, ніж вбудовані в браузери кодувальники, за тієї самої візуальної якості, і відкривають налаштування AVIF, яких у браузерах немає.
  • Результат в AVIF. Кодування AVIF у браузері на телефоні відбувається повільно й потребує багато пам’яті, тому конвертація в AVIF використовує той самий сервер.
  • Пакети та багатосторінкові PDF. Черга з десятків зображень загальмувала б телефон. Сервер обробляє їх разом і повертає один ZIP чи PDF.
  • Видалення фону та збільшення. В обох випадках використовуються моделі ШІ, яким потрібен GPU, щоб відповісти за секунди. Запасний план у браузері працює, але повільніше, і краї на волоссі та хутрі виходять грубішими.

Що відбувається з файлом, крок за кроком

  1. Ви обираєте файл. Вибір, перетягування чи вставлення дають сторінці локальне посилання на файл. На цьому етапі нічого не надсилається.
  2. Браузер відкриває його. JPG, PNG, WebP, GIF і AVIF декодуються вбудованими засобами. Фото HEIC з iPhone декодує невеликий модуль, що працює на сторінці.
  3. Виконується робота. Браузерні інструменти редагують пікселі на полотні (canvas) і одразу кодують результат. Серверні інструменти завантажують файл через HTTPS до тимчасового сховища Cloudflare R2 або безпосередньо в Cloudflare Worker, а завдання виконується на нашому сервері в Сан-Паулу (стиснення, конвертація, PDF) або в сервісах зображень Cloudflare чи ImageKit (видалення фону, збільшення). «Стиснути зображення» може почати завантаження через кілька секунд після додавання файлів, щоб результат був готовий на момент натискання кнопки.
  4. Ви отримуєте результат. Готовий файл передається у звичайне завантаження вашого браузера. Результати, створені на сервері, лежать у тимчасовому сховищі близько двох годин (на екрані завантаження в «Стиснути зображення» їх можна видалити одразу), а потім видаляються автоматично.

У політиці конфіденційності наведено повну таблицю строків зберігання та перелік постачальників.

Перевірте у своєму браузері

Панель «Мережа». Відкрийте інструменти розробника (F12 у більшості браузерів на комп’ютері), виберіть вкладку Network (Мережа) й очистіть її. Запустіть «Обрізати фото по колу», «Обрізати фото» чи «Змінити розмір»: ви побачите завантаження ресурсів сторінки й жодного запиту з вашим зображенням. Потім запустіть «Стиснути зображення» чи «Видалити фон»: з’явиться запит на вивантаження файлу, а за ним завантаження результату.

Перевірка без мережі. Відкрийте браузерний інструмент, увімкніть режим польоту або позначте «Offline» на вкладці Network і знову скористайтеся ним. Він і далі працюватиме, бо мережа йому ніколи не була потрібна. Серверні інструменти натомість перейдуть на свій запасний план, і так теж можна побачити, де виконується кожен крок.

Що ми бачимо і чого не бачимо

Від браузерних інструментів ми нічого не отримуємо про ваше зображення, бо жоден запит його не передає.

У разі серверних інструментів файл існує в нашій інфраструктурі лише під час виконання завдання та протягом строків зберігання, зазначених у політиці конфіденційності. Облікових записів немає, тому завантажений файл не прив’язаний ні до імені, ні до профілю. Ми не переглядаємо завантажені файли й не використовуємо їх для навчання моделей.

На кожній сторінці ми записуємо анонімні події використання (інструмент, крок, час, помилки, країна, тип пристрою), щоб знаходити помилки та повільні місця. Самі ми не встановлюємо міжсайтових відстежувальних cookie. Рекламні cookie, які Google використовує на сторінках інструментів, і способи відмовитися від них описано в політиці конфіденційності. Коли модель ШІ чи декодер завантажуються у ваш браузер, наш хостинг бачить, що файл було запитано, так само як бачить запит таблиці стилів, і нічого не дізнається про ваше зображення.

На чому це побудовано

  • Astro, який віддає кожну сторінку як звичайний HTML і додає JavaScript лише там, де він потрібен інструменту.
  • Звичайний CSS із дизайн-токенами, без CSS-фреймворку.
  • Canvas і кодеки на WebAssembly для інструментів, що працюють у браузері.
  • ONNX Runtime Web, який запускає модель видалення фону на вашому пристрої, коли хмарний шлях недоступний.
  • Cloudflare для хостингу, Workers, сховища R2 і моделей зображень, на яких ґрунтуються видалення фону та збільшення.
  • Сервіс на Node.js із sharp і libvips на сервері Hostinger у Сан-Паулу (Бразилія) для стиснення, конвертації та створення PDF.

Підтримувані браузери

Інструменти працюють у поточній і попередній версіях Chrome, Edge, Firefox і Safari, на комп’ютерах і телефонах. Якщо браузер пропонує новішу можливість, інструмент її використовує, а якщо ні, у дію вступає старіший спосіб, тож жоден браузер не залишається без підтримки. Для всіх інструментів потрібен JavaScript, а підключення до мережі потрібне лише серверним.

Маєте запитання?

Технічні запитання можна надсилати на support@araluma.com.