Search K
Справочник по 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-возможностями. Все модели работают локально: после первоначальной загрузки моделей интернет не требуется.
Совместимость 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 | Применить предобработку удаления водяных знаков (медианный фильтр) |
bash
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 | Принудительный квадратный вывод |
