Files
SnapOtter/apps/docs/ru/api/ai.md
T
SnapOtterandGitHub 991c981529 fix: make OCR portable and reliable across AMD64 and ARM64 (#519)
* fix: make OCR portable and reliable

* fix: harden OCR installation portability

* fix: pin OCR partials across downloads

* fix: make OCR execution reliably asynchronous

* fix: harden OCR portability and docs routes

* fix: preserve decoder and docs safeguards
2026-07-15 03:34:24 +08:00

41 KiB
Raw Blame History

description, i18n_output_hash, i18n_source_hash, i18n_provenance
description i18n_output_hash i18n_source_hash i18n_provenance
Справочник по AI-движку со всеми локальными ML-инструментами. Удаление фона, апскейлинг, OCR, распознавание лиц, реставрация фотографий и другое. 964be813bc52 aa9a56cdddc7 human

Справочник по AI-движку

Пакет @snapotter/ai координирует собственные инструменты и среду выполнения Python для локальных операций ML. Большинство инструментов ML используют постоянный Python sidecar для быстрого горячего запуска. OCR намеренно отделен: fast вызывает собственный двоичный файл Tesseract, в то время как balanced и best используют выделенный постоянный JSONL dispatcher, прикрепленный к активному неизменяемому поколению RapidOCR под /data/ai/v3. Каждый запрос содержит generation lease. Во время обновления SnapOtter запускает smoke test на кандидате перед активацией, атомарно переключается на новый dispatcher, а затем сливает старое поколение перед garbage collection.

NVIDIA CUDA автоматически обнаруживается и используется средами выполнения, которые его поддерживают. OCR использует CPU на каждом хосте, включая системы с графическими процессорами NVIDIA, избегая CUDA и связи драйверов для этого инструмента.

Ускорение через iGPU Intel/AMD посредством VA-API, Quick Sync или OpenCL сегодня не поддерживается для AI-инференса. Проброс /dev/dri в контейнер не ускоряет эти инструменты Python-сайдкара, если не доступна NVIDIA GPU с поддержкой CUDA.

19 AI-инструментов Python-сайдкара в четырёх модальностях (изображение, аудио, видео, документ) плюс 2 инструмента с опциональными AI-возможностями. Все модели работают локально: после первоначальной загрузки моделей интернет не требуется.

::: info Совместимость OCR для корейского языка Быстрый OCR поддерживает auto, en, de, es, fr, zh и ja, но не корейский язык (ko). Для корейского требуется пакет точного OCR и уровень balanced или best. Пакет работает в официальных контейнерах Linux amd64 и arm64, включая узлы NVIDIA, где OCR по-прежнему выполняется на CPU. На неподдерживаемой системе возвращается явная ошибка совместимости без скрытого перехода на fast. Корейский с fast или устаревшим псевдонимом tesseract отклоняется до постановки в очередь с FEATURE_INCOMPATIBLE и fast-korean-unsupported. :::

Архитектура

Node.js Tool Route
      |
      v
 @snapotter/ai bridge.ts
      | (stdin/stdout JSON + stderr progress events)
      v
 +-- Native Tesseract + Ghostscript (fast image/PDF OCR)
 |
 +-- Isolated OCR runtime (persistent JSONL dispatcher)
 |     `-- RapidOCR + ONNX Runtime CPU + pinned PP-OCR models
 |
 `-- Python dispatcher (persistent process, "ai" profile)
      |
      |-- remove_bg.py        (rembg / BiRefNet)
      |-- upscale.py          (RealESRGAN)
      |-- inpaint.py          (LaMa ONNX)
      |-- outpaint.py         (LaMa canvas expansion)
      |-- detect_faces.py     (MediaPipe)
      |-- face_landmarks.py   (MediaPipe landmarks)
      |-- enhance_faces.py    (GFPGAN / CodeFormer)
      |-- colorize.py         (DDColor)
      |-- noise_removal.py    (SCUNet / tiered denoising)
      |-- red_eye_removal.py  (landmark + color analysis)
      |-- restore.py          (scratch repair + enhancement + denoising)
      |-- transcribe.py       (faster-whisper speech-to-text)
      +-- install_feature.py  (on-demand bundle installer)

Отдельный профиль диспетчера «docs» заменяет AI-список разрешённых скриптов на скрипты обработки документов (doc_pagecount, doc_health, doc_flatten, doc_redact, doc_text, doc_to_word, doc_metadata, doc_html_pdf) и пропускает тяжёлые ML-импорты.

Таймауты: 300 с по умолчанию; для OCR и удаления фона BiRefNet отводится 600 с.

Пакеты возможностей

AI-модели упакованы по общему стеку зависимостей, а не по одному архиву на инструмент. Один пакет возможностей может включать несколько инструментов, если они используют одно семейство моделей, одни Python-колёса (wheels) или одни нативные библиотеки. Это позволяет держать релизный Docker-образ меньше и избегать хранения дубликатов одних и тех же моделей матирования фона, распознавания лиц, OCR, реставрации и речи.

Docker-образ поставляется вместе с приложением и общей средой выполнения. Крупные архивы моделей загружаются по требованию в постоянный том /data/ai, а затем повторно используются каждым инструментом, которому они нужны. Если пакет уже установлен, потому что его затребовал другой инструмент, включение нового зависимого инструмента не приводит к повторной загрузке этого пакета.

Большинству инструментов искусственного интеллекта требуется один или несколько пакетов функций, прежде чем они смогут работать. Пользовательский интерфейс администратора устанавливает их с помощью инструмента POST /api/v1/admin/tools/:toolId/features/install, который обрабатывает полный список пакетов, пропускает уже установленные пакеты и помещает в очередь только недостающие загрузки. Например, включение Passport Photo в новых очередях экземпляров background-removal и face-detection; включение его после фонового удаления уже установлено в очередях только face-detection. OCR является исключением, поскольку fast не требует упаковки; установите дополнительную точную среду выполнения через пользовательский интерфейс или POST /api/v1/admin/features/ocr/install.

Пакет Размер Общая группа зависимостей Инструменты, использующие его
background-removal 4-5 GB матирование фона rembg / BiRefNet remove-background, passport-photo, transparency-fixer, background-replace, blur-background
face-detection 200-300 MB распознавание лиц и ключевых точек MediaPipe blur-faces, red-eye-removal, smart-crop
object-eraser-colorize 1-2 GB инпейнтинг/аутпейнтинг LaMa и DDColor erase-object, colorize, ai-canvas-expand
upscale-enhance 5-6 GB RealESRGAN, GFPGAN / CodeFormer, шумоподавление upscale, enhance-faces, noise-removal
photo-restoration 4-5 GB конвейер устранения царапин и реставрации restore-photo
ocr ~208-234 Загрузка MiB / ~409-488 Установка MiB Дополнительные модели RapidOCR 3.9.1, ONNX Runtime 1.20.1 и закрепленные модели PP-OCR ocr, ocr-pdf (только balanced и best)
transcription ~600 MB модели преобразования речи в текст faster-whisper transcribe-audio, auto-subtitles

Инструменты с межпакетными зависимостями:

Инструмент Требуемые пакеты Причина
passport-photo background-removal, face-detection Удаляет фон, затем использует ключевые точки лица, чтобы обрезать кадр под правила для фото на паспорт и удостоверение личности.
enhance-faces upscale-enhance, face-detection Распознаёт лица перед применением улучшения GFPGAN или CodeFormer к выбранным областям лица.

Инструмент доступен только в том случае, если установлены все необходимые пакеты, за исключением OCR: его встроенный уровень fast остается доступным без дополнительного пакета OCR. Частичные установки допустимы и обрабатываются постепенно: установленные пакеты используются повторно, отсутствующие пакеты отображаются как загрузки, а установки в очереди выполняются по одной, поэтому общая среда Python не изменяется одновременно.

Точная установка среды выполнения OCR

Точный OCR пакет — это специфичная для платформы среда выполнения для официального Linux amd64 или Linux arm64 контейнер. В сборке amd64 используется Python 3.12; сборка arm64 использует Python 3.11. Обе сборки запускают RapidOCR через CPUExecutionProvider ONNX Runtime, поэтому один и тот же пакет работает только на процессорах и на хостах NVIDIA Docker. Для точной среды выполнения требуется не менее 4 GiB эффективной памяти: настроенный лимит cgroup контейнера, в противном случае — память хоста. Система ниже указанного минимального уровня совместимости отклоняется перед загрузкой. Это требование не распространяется на встроенный Fast OCR. Сборки Bare-metal отклоняются, поскольку их libc и Python ABI не могут быть безопасно выведены; Быстрый OCR остается доступным, если хост предоставляет Tesseract и Ghostscript.

Необязательный артефакт имеет размер около 208–234 MiB в сжатом виде и 409–488 MiB в извлеченном виде, в зависимости от архитектуры. Подписанный индекс связывает точное количество сжатых и извлеченных байтов, заданное установщиком. Встроенный Tesseract добавляет к официальному образу около 25 MiB и не требует файлов в /data/ai.

При онлайн-установке извлекается подписанный индекс выпуска и точный артефакт с адресом содержимого для текущей платформы. SnapOtter проверяет подпись индекса Ed25519, размер артефакта, дайджест SHA-256, дайджесты модели, пути, режимы файлов и промежуточный smoke test перед атомарной активацией нового поколения. Неудачная установка оставляет активным предыдущее работоспособное поколение.

Для установки с воздушным зазором загрузите ocr-runtime-index.json выпуска и соответствующий архив времени выполнения OCR в POST /api/v1/admin/features/import, используя составные поля с именами index и archive. Автономный импорт применяет те же проверки подписи, хеша, извлечения, совместимости и дымового тестирования, что и онлайн-установка; архив без доверенного подписанного индекса отклоняется.


Удаление фона

Маршрут инструмента: remove-background
Модель: rembg с BiRefNet (по умолчанию) или варианты U2-Net

Параметр Тип По умолчанию Описание
model string - Вариант модели (опциональное переопределение)
backgroundType string "transparent" Одно из: transparent, color, gradient, blur, image
backgroundColor string - Hex-цвет для сплошного фона
gradientColor1 string - Первый цвет градиента
gradientColor2 string - Второй цвет градиента
gradientAngle number - Угол градиента в градусах
blurEnabled boolean - Включить эффект размытия фона
blurIntensity number (0-100) - Интенсивность размытия
shadowEnabled boolean - Включить падающую тень от объекта
shadowOpacity number (0-100) - Непрозрачность тени
outputFormat string - Формат вывода: png, webp или avif
edgeRefine integer (0-3) - Уровень уточнения краёв
decontaminate boolean - Убрать растекание цвета с краёв

Замена фона

Маршрут инструмента: background-replace
Модель: rembg / BiRefNet (общая с remove-background)

Удаляет фон и заменяет его сплошным цветом или градиентом.

Параметр Тип По умолчанию Описание
backgroundType "color" | "gradient" "color" Режим фона
color string "#ffffff" Hex-цвет фона (когда backgroundType равно color)
gradientColor1 string - Первый hex-цвет градиента
gradientColor2 string - Второй hex-цвет градиента
gradientAngle integer (0-360) 180 Угол градиента в градусах
feather integer (0-20) 0 Радиус растушёвки краёв
format "png" | "webp" "png" Формат вывода

Размытие фона

Маршрут инструмента: blur-background
Модель: rembg / BiRefNet (общая с remove-background)

Размывает фон, сохраняя объект резким.

Параметр Тип По умолчанию Описание
intensity integer (1-100) 50 Интенсивность размытия
feather integer (0-20) 0 Радиус растушёвки краёв
format "png" | "webp" "png" Формат вывода

Апскейлинг изображений

Маршрут инструмента: upscale
Модель: RealESRGAN (с запасным вариантом Lanczos при недоступности)

Параметр Тип По умолчанию Описание
scale number 2 Коэффициент увеличения
model string "auto" Вариант модели
faceEnhance boolean false Применить проход улучшения лиц GFPGAN
denoise number 0 Сила шумоподавления
format string "auto" Переопределение формата вывода
quality number 95 Качество вывода (1-100)

OCR / извлечение текста

Маршрут инструмента: ocr
Модели: Tesseract (fast); RapidOCR с небольшими моделями PP-OCRv6 (balanced); Средние модели PP-OCRv6 с калиброванной оценкой вариантов (best)

Параметр Тип По умолчанию Описание
quality "fast" | "balanced" | "best" Динамический Если quality и engine не заданы, SnapOtter выбирает лучший доступный уровень в порядке best, balanced, fast. Для корейского языка fast никогда не выбирается: используется best, затем balanced, либо возвращается ошибка установки или совместимости точной среды выполнения.
language string "auto" Язык: auto, en, de, fr, es, zh, ja, ko
enhance логическое значение Зависит от уровня Улучшите локальный контраст. Fast применяет его напрямую; точные уровни сохраняют вариант только тогда, когда калиброванная оценка улучшает OCR. По умолчанию включено в лучшем случае
engine нить - Устаревший псевдоним совместимости. Сопоставляет tesseract с fast, а устаревшее значение paddleocr с balanced; не загружается PaddlePaddle

Возвращает извлеченный текст, а также метаданные происхождения: механизм, запрошенное и фактическое качество, устройство, поставщик, состояние деградации, предупреждения и точные версии времени выполнения/модели, если применимо. Явные запросы на качество никогда не переходят на другой уровень. Если balanced или best недоступны, API возвращает FEATURE_NOT_INSTALLED или FEATURE_INCOMPATIBLE вместо автоматического запуска fast.

OCR для PDF

Маршрут инструмента: ocr-pdf
Модели: Та же система уровней, что и у OCR изображений

Извлекает текст из отсканированных PDF-документов с помощью AI-OCR, страница за страницей.

Параметр Тип По умолчанию Описание
quality "fast" | "balanced" | "best" Динамический Если quality и engine не заданы, SnapOtter выбирает лучший доступный уровень в порядке best, balanced, fast. Для корейского языка fast никогда не выбирается: используется best, затем balanced, либо возвращается ошибка установки или совместимости точной среды выполнения.
language string "auto" Язык: auto, en, de, fr, es, zh, ja, ko
pages string "all" Выбор страниц: "all", "1-3", "1,3,5"
enhance логическое значение Зависит от уровня Улучшите локальный контраст. Fast применяет его напрямую; точные уровни сохраняют вариант только тогда, когда калиброванная оценка улучшает OCR. По умолчанию включено в лучшем случае
engine нить - Устаревший псевдоним совместимости. Сопоставляет tesseract с fast, а устаревшее значение paddleocr с balanced; не загружается PaddlePaddle

То же правило запрета перехода на более раннюю версию применяется к PDF OCR. Страницы PDF перед распознаванием растрируются, и за один запрос можно выбрать не более 50 страниц.

Размытие лиц / персональных данных

Маршрут инструмента: blur-faces
Модель: распознавание лиц MediaPipe

Параметр Тип По умолчанию Описание
blurRadius number (1-100) 30 Радиус гауссова размытия
sensitivity number (0-1) 0.5 Порог достоверности распознавания

Улучшение лиц

Маршрут инструмента: enhance-faces
Модели: GFPGAN, CodeFormer

Параметр Тип По умолчанию Описание
model "auto" | "gfpgan" | "codeformer" "auto" Модель улучшения
strength number (0-1) 0.8 Сила улучшения
sensitivity number (0-1) 0.5 Порог распознавания лиц
onlyCenterFace boolean false Улучшать только самое центральное лицо

AI-раскрашивание

Маршрут инструмента: colorize
Модель: DDColor (с запасным вариантом OpenCV DNN)

Преобразует чёрно-белые или полутоновые фотографии в полноцветные.

Параметр Тип По умолчанию Описание
intensity number (0-1) 1.0 Сила насыщенности цвета
model "auto" | "ddcolor" | "opencv" "auto" Вариант модели

Удаление шума

Маршрут инструмента: noise-removal
Модель: SCUNet (многоуровневый конвейер шумоподавления)

Параметр Тип По умолчанию Описание
tier "quick" | "balanced" | "quality" | "maximum" "balanced" Уровень обработки
strength number (0-100) 50 Сила шумоподавления
detailPreservation number (0-100) 50 Сколько деталей сохранять; выше значение сохраняет больше текстуры
colorNoise number (0-100) 30 Сила подавления цветового шума
format string "original" Формат вывода: original, png, jpeg, webp, avif, jxl
quality number (1-100) 90 Качество кодирования вывода

Удаление эффекта красных глаз

Маршрут инструмента: red-eye-removal

Распознаёт ключевые точки лица, находит области глаз и корректирует перенасыщенность красного канала.

Параметр Тип По умолчанию Описание
sensitivity number (0-100) 50 Порог обнаружения красных пикселей
strength number (0-100) 70 Сила коррекции
format string - Переопределение формата вывода (опционально)
quality number (1-100) 90 Качество вывода

Реставрация фотографий

Маршрут инструмента: restore-photo

Многошаговый конвейер для старых или повреждённых фотографий: обнаружение и устранение царапин/разрывов, улучшение лиц, шумоподавление и опциональное раскрашивание.

Параметр Тип По умолчанию Описание
scratchRemoval boolean true Обнаруживать и устранять царапины, разрывы
faceEnhancement boolean true Применить проход улучшения лиц
fidelity number (0-1) 0.7 Сила улучшения лиц (выше = более консервативно)
denoise boolean true Применить проход шумоподавления
denoiseStrength number (0-100) 25 Сила шумоподавления
colorize boolean false Раскрасить после реставрации
colorizeStrength number (0-100) 85 Интенсивность раскрашивания

Фото на паспорт

Маршрут инструмента: passport-photo
Модели: ключевые точки лица MediaPipe + удаление фона BiRefNet

Двухфазный рабочий процесс: анализ (распознать лицо + удалить фон), затем генерация (обрезка, изменение размера, замощение). Поддерживает 37+ стран в 6 регионах.

Фаза 1: анализ

POST /api/v1/tools/image/passport-photo/analyze

Принимает файл изображения (multipart). Возвращает данные ключевых точек лица, base64-превью и размеры изображения.

Фаза 2: генерация

POST /api/v1/tools/image/passport-photo/generate

Принимает JSON-тело с результатами фазы 1 плюс настройки генерации:

Параметр Тип По умолчанию Описание
jobId string (обязательно) Идентификатор задания из фазы 1
filename string (обязательно) Исходное имя файла из фазы 1
countryCode string (обязательно) ISO-код страны (например, US, GB, IN)
documentType string "passport" Тип документа
bgColor string "#FFFFFF" Hex-цвет фона
printLayout string "none" Макет печати: none, 4x6, a4, letter
maxFileSizeKb number 0 Максимальный размер файла в KB (0 = без ограничения)
dpi number (72-1200) 300 DPI вывода
customWidthMm number - Пользовательская ширина в мм (переопределяет спецификацию страны)
customHeightMm number - Пользовательская высота в мм (переопределяет спецификацию страны)
zoom number (0.5-3) 1 Коэффициент масштабирования
adjustX number 0 Регулировка горизонтального положения
adjustY number 0 Регулировка вертикального положения
landmarks object (обязательно) Ключевые точки из фазы 1
imageWidth number (обязательно) Ширина изображения из фазы 1
imageHeight number (обязательно) Высота изображения из фазы 1

Удаление объектов (инпейнтинг)

Маршрут инструмента: erase-object
Модель: LaMa через ONNX Runtime

Маска отправляется как вторая файловая часть (имя поля mask), а не как base64. Белые пиксели в маске обозначают области для удаления. Настройки format и quality отправляются как поля формы верхнего уровня.

Параметр Тип По умолчанию Описание
file file (обязательно) Исходное изображение (multipart)
mask file (обязательно) Изображение маски (multipart, имя поля mask, белое = удалить)
format string "auto" Формат вывода: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl
quality integer (1-100) 95 Качество вывода

Ускоряется через CUDA при наличии NVIDIA GPU.

AI-расширение холста

Маршрут инструмента: ai-canvas-expand
Модель: аутпейнтинг на базе LaMa

Расширяет холст изображения в любом направлении и заполняет новые области сгенерированным AI-содержимым, совпадающим с существующим изображением.

Параметр Тип По умолчанию Описание
extendTop integer 0 Пикселей для расширения сверху
extendRight integer 0 Пикселей для расширения справа
extendBottom integer 0 Пикселей для расширения снизу
extendLeft integer 0 Пикселей для расширения слева
tier "fast" | "balanced" | "high" "balanced" Уровень качества
format string "auto" Формат вывода: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl
quality integer (1-100) 95 Качество вывода

Хотя бы одно направление расширения должно быть больше 0.

Умная обрезка

Маршрут инструмента: smart-crop
Модель: распознавание лиц MediaPipe (только режим лиц)

Параметр Тип По умолчанию Описание
mode string "subject" Стратегия обрезки: subject, face, trim
strategy "attention" | "entropy" "attention" Стратегия для режима объекта
width integer - Ширина вывода
height integer - Высота вывода
padding integer (0-50) 0 Процент отступа вокруг объекта
facePreset string "head-shoulders" Предустановка кадрирования, когда mode=face
sensitivity number (0-1) 0.5 Порог распознавания лиц
threshold integer (0-255) 30 Порог определения фона (режим обрезки)
padToSquare boolean false Дополнить обрезанный результат до квадрата
padColor string "#ffffff" Цвет фона для квадратного дополнения
targetSize integer - Целевой размер для дополненного вывода (пиксели)
quality integer (1-100) - Качество вывода

Устаревшие значения mode attention и content принимаются и сопоставляются с subject и trim соответственно.

Предустановки для лиц:

Предустановка Лучше всего для
closeup Портретные фото
head-shoulders Фото профиля
upper-body LinkedIn / официальные
half-body Вся верхняя часть тела

Транскрибирование аудио

Маршрут инструмента: transcribe-audio
Модель: faster-whisper

Преобразует речь в текст. Поддерживает вывод в форматах простого текста, SRT и VTT.

Параметр Тип По умолчанию Описание
language string "auto" Язык: auto, en, de, fr, es, zh, ja, ko, id, th, vi
outputFormat "txt" | "srt" | "vtt" "txt" Формат вывода

Автоматические субтитры

Маршрут инструмента: auto-subtitles
Модель: faster-whisper (извлекает аудио из видео, затем транскрибирует)

Генерирует файлы субтитров из звуковой дорожки видео.

Параметр Тип По умолчанию Описание
language string "auto" Язык: auto, en, de, fr, es, zh, ja, ko, id, th, vi
format "srt" | "vtt" "srt" Формат вывода субтитров

Исправление прозрачности PNG

Маршрут инструмента: transparency-fixer
Модель: BiRefNet HR-matting (разрешение 2048x2048)

Исправляет «псевдопрозрачные» PNG, где фон был удалён, но остались бахрома, ореолы или полупрозрачные артефакты. Использует высокоразрешающую модель матирования BiRefNet для создания чистого альфа-канала, затем применяет настраиваемую обработку удаления бахромы для устранения цветового загрязнения вдоль краёв.

Цепочка запасных вариантов при нехватке памяти (OOM): Если BiRefNet HR-matting превышает доступную память, инструмент автоматически переходит на birefnet-general, затем на u2net.

Параметр Тип По умолчанию Описание
defringe number (0-100) 30 Сила удаления бахромы по краям для устранения цветового загрязнения
outputFormat "png" | "webp" "png" Формат выходного изображения
removeWatermark boolean false Применить предобработку удаления водяных знаков (медианный фильтр)
curl -X POST http://localhost:1349/api/v1/tools/image/transparency-fixer \
  -H "Authorization: Bearer <token>" \
  -F "file=@fake-transparent.png" \
  -F 'settings={"defringe":30,"outputFormat":"png"}'

Инструменты с опциональными AI-возможностями

Следующие инструменты не являются инструментами Python-сайдкара, но используют AI-возможности, когда включены определённые опции.

Улучшение изображений

Маршрут инструмента: image-enhancement
Движок: на основе анализа (гистограмма и статистика Sharp)

Анализирует изображение и применяет автоматические коррекции экспозиции, контраста, баланса белого, насыщенности, резкости и шума. Поддерживает режимы под конкретные сцены.

Параметр Тип По умолчанию Описание
mode "auto" | "portrait" | "landscape" | "low-light" | "food" | "document" "auto" Режим сцены для настройки коррекций
intensity number (0-100) 50 Общая сила коррекции
corrections.exposure boolean true Применить коррекцию экспозиции
corrections.contrast boolean true Применить коррекцию контраста
corrections.whiteBalance boolean true Применить коррекцию баланса белого
corrections.saturation boolean true Применить коррекцию насыщенности
corrections.sharpness boolean true Применить коррекцию резкости
corrections.denoise boolean true Применить шумоподавление
deepEnhance boolean false Включить AI-удаление шума через SCUNet (требует пакет upscale-enhance)

Дополнительная конечная точка анализа доступна по адресу POST /api/v1/tools/image/image-enhancement/analyze, которая возвращает обнаруженные коррекции без их применения.

Контентно-зависимое изменение размера (Seam Carving)

Маршрут инструмента: content-aware-resize
Движок: бинарник Go caire (не Python, без выгоды от GPU)

Интеллектуально изменяет размер изображений, удаляя низкоэнергетические швы и сохраняя важное содержимое.

Параметр Тип По умолчанию Описание
width number - Целевая ширина
height number - Целевая высота
protectFaces boolean false Защищать обнаруженные области лиц (требует пакет face-detection)
blurRadius number (0-20) 4 Предварительное размытие для расчёта энергии
sobelThreshold number (1-20) 2 Порог чувствительности к краям
square boolean false Принудительный квадратный вывод