Перейти к основному содержимому
LibraTool logoLibraTool

Увеличение изображений — бесплатно

Увеличьте фото в 4 раза с помощью ИИ-модели, работающей на вашем устройстве: чёткие края и читаемый текст, а не просто крупные пиксели. Ничего не загружается, без аккаунта и водяных знаков.

Перетащите файлы или нажмите для выбора

PNG, JPG, WebP, AVIF, GIF, BMP, HEIC, HEIF · обрабатывается на вашем устройстве

или нажмите Ctrl+V, чтобы вставить из буфера обмена

Можно перетащить несколько файлов сразу

Выбрать файлы
Real-ESRGAN дорисовывает детали при 4× вместо того, чтобы растягивать пиксели. Модель на 4,6 MB скачивается один раз и затем работает полностью на этом устройстве — ваша фотография никогда не загружается на сервер.

Как это работает

Апскейлер использует Real-ESRGAN general-x4v3 — свёрточную сеть суперразрешения размером 4,6 МБ — через onnxruntime-web внутри Web Worker на вашей собственной машине. Модель загружается один раз с нашего сервера, кэшируется, а затем используется офлайн; ваше фото декодируется в canvas локально и никогда не загружается на сервер. Коэффициент масштабирования зафиксирован на 4×, поскольку он жёстко зашит в графе вычислений в двух местах.

  1. 1
    Изображение разрезается на перекрывающиеся плитки
    Результат в 4× — это в шестнадцать раз больше пикселей, поэтому фото 4000×3000 стало бы 192-мегапиксельным — этого достаточно, чтобы полностью «убить» вкладку браузера, а не просто замедлить её. Вместо этого изображение разбивается на ядра, которые точно замощают его, и каждое ядро считывается с дополнительным отступом контекста со всех сторон, чтобы у стека свёрток (чьё рецептивное поле составляет 34 пикселя) были реальные соседние пиксели для работы. Границы дублируются по краю, а не заполняются нулями — иначе модель «заострила» бы чёрную кайму вокруг кадра.
  2. 2
    Каждая плитка упаковывается как плоскостной RGB-тензор
    Плитка становится тензором float32 формы [1, 3, H, W], где красный, зелёный и синий каналы хранятся как отдельные плоскости, а значения просто делятся на 255 — без какой-либо нормализации по среднему и стандартному отклонению. Каждая плитка дополняется до одного и того же квадратного размера, потому что бэкенд WebGPU перекомпилирует свои шейдеры для каждой новой формы входных данных, и план с тремя разными размерами плиток заплатил бы за это трижды.
  3. 3
    Вывод модели выполняется на WebGPU, где он доступен, иначе — на CPU
    Сессия сначала создаётся с WebGPU, а при любом сбое переключается на однопоточный WebAssembly — графические драйверы регулярно заявляют о поддержке, а затем дают сбой на полпути построения графа вычислений, и медленнее лучше, чем сломано. Поскольку резервный вариант сильно меняет реалистичный лимит размера и время выполнения, инструмент повторно проверяет задачу против того провайдера, который фактически был получен, перед обработкой первой плитки, и после этого сообщает, какой из них использовался.
  4. 4
    Плитки склеиваются обратно с плавным переходом и ограничением значений
    Стыковка плиток встык оставляет видимую сетку, поэтому вклад каждой плитки взвешивается линейным градиентом по общей полосе. Два градиента являются точными дополнениями друг друга, поэтому веса в сумме дают ровно 1 в каждом выходном пикселе, и вдоль шва не появляется яркой или тёмной линии. Необработанный вывод модели не обрезается внутри графа вычислений — измеренные значения находятся примерно от −0,18 до +1,19, — поэтому каждое значение ограничивается диапазоном 0–255 перед приведением к 8 битам, что и предотвращает появление шума на контрастных краях. Альфа-канал пересчитывается отдельно и билинейно, поскольку у самой сети нет пути для альфы.
  5. 5
    Результат кодируется прямо в воркере
    Собранные пиксели отрисовываются на OffscreenCanvas и сразу кодируются в PNG, поэтому нажатие «Скачать» не имеет асинхронной задержки перед собой. Переключение на JPG перекодирует изображение из того же canvas, который всё ещё хранит воркер, а не запускает модель заново. Небольшой центральный фрагмент также отрисовывается в масштабе 100% рядом с той же областью, пересчитанной браузером, — это единственное сравнение, на котором разница в 4× действительно видна.

Веса модели загружаются один раз с нашего сервера и кэшируются; ваше изображение декодируется, разбивается на плитки, увеличивается и кодируется полностью внутри вашего браузера, и ни одна его часть никогда никуда не отправляется.

Похожие инструменты

Часто задаваемые вопросы