Два вида инструментов
Каждый инструмент Araluma относится к одной из двух групп. Браузерные инструменты читают, редактируют и сохраняют ваш файл на вашем собственном устройстве. Серверные инструменты загружают файл, обрабатывают его на наших серверах или у поставщика сервисов изображений и возвращают результат. У серверных инструментов также есть запасной план, который завершает работу в вашем браузере, если серверы недоступны.
| Инструмент | Только в браузере | С сервером | Запасной план при сбое серверов |
|---|---|---|---|
| «Обрезать фото по кругу», «Обрезать изображение», «Изменить размер» | Всегда | Никогда | Не нужен |
| Конвертация (один файл, результат в PNG, JPG или WebP) | Да | Нет | Не нужен |
| Конвертация (результат в AVIF, либо два файла и больше) | Нет | Да | Кодировщик в браузере |
| «JPG в PDF» (одно изображение) | Да | Нет | Не нужен |
| «JPG в PDF» (два изображения и больше) | Нет | Да | Сборка в браузере |
| «Сжать изображение» | Только SVG и очень большие пакеты | Да | Сжатие в браузере |
| «Удалить фон» | Нет | Да, сначала Cloudflare, затем ImageKit | Модель ИИ, работающая в вашем браузере |
| «Увеличить изображение» | Нет | Да, сначала Cloudflare, затем ImageKit | Передискретизация в браузере |
Ещё один случай касается всех инструментов: при создании ссылки для общего доступа или сохранении результата в Dropbox файл с результатом хранится около двух часов, чтобы ссылку можно было открыть.
Почему бы не делать всё в браузере?
Браузеры отлично справляются с геометрией. Обрезка, поворот, масштабирование и сохранение изображения в распространённых форматах занимают на устройстве доли секунды, без ожидания сети, поэтому такие инструменты никогда его не покидают.
Другие задачи всё же лучше выполнять на сервере:
- Сжатие. Серверные кодировщики на основе libvips дают заметно меньшие файлы, чем встроенные в браузеры кодировщики, при том же визуальном качестве, и открывают настройки AVIF, которых в браузерах нет.
- Результат в AVIF. Кодирование AVIF в браузере на телефоне идёт медленно и требует много памяти, поэтому конвертация в AVIF использует тот же сервер.
- Пакеты и многостраничные PDF. Очередь из десятков изображений застопорила бы телефон. Сервер обрабатывает их вместе и возвращает один ZIP или PDF.
- Удаление фона и увеличение. В обоих случаях используются модели ИИ, которым нужен GPU, чтобы ответить за секунды. Запасной план в браузере работает, но медленнее, и края у волос и шерсти получаются грубее.
Что происходит с файлом, шаг за шагом
- Вы выбираете файл. Выбор, перетаскивание или вставка дают странице локальную ссылку на файл. На этом этапе ничего не отправляется.
- Браузер открывает его. JPG, PNG, WebP, GIF и AVIF декодируются встроенными средствами. Фото HEIC с iPhone декодирует небольшой модуль, работающий на странице.
- Выполняется работа. Браузерные инструменты редактируют пиксели на холсте (canvas) и тут же кодируют результат. Серверные инструменты загружают файл по HTTPS во временное хранилище Cloudflare R2 или напрямую в Cloudflare Worker, а задание выполняется на нашем сервере в Сан-Паулу (сжатие, конвертация, PDF) или в сервисах изображений Cloudflare и ImageKit (удаление фона, увеличение). «Сжать изображение» может начать загрузку через несколько секунд после добавления файлов, чтобы результат был готов к моменту нажатия кнопки.
- Вы получаете результат. Готовый файл передаётся в обычную загрузку вашего браузера. Результаты, созданные на сервере, лежат во временном хранилище около двух часов (на экране скачивания в «Сжать изображение» их можно удалить сразу), а затем удаляются автоматически.
В политике конфиденциальности приведены полная таблица сроков хранения и список поставщиков.
Проверьте в своём браузере
Панель «Сеть». Откройте инструменты разработчика (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.