* 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
40 KiB
description, i18n_output_hash, i18n_source_hash, i18n_provenance
| description | i18n_output_hash | i18n_source_hash | i18n_provenance |
|---|---|---|---|
| Довідник рушія ШІ з усіма локальними інструментами ML. Видалення фону, збільшення роздільної здатності, OCR, розпізнавання облич, реставрація фото та інше. | 3a80b8a66b82 | aa9a56cdddc7 | human |
Довідник рушія ШІ
Пакет @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 наразі не підтримується для інференсу ШІ. Прокидання /dev/dri в контейнер не прискорює ці інструменти допоміжного процесу Python, якщо немає NVIDIA GPU з підтримкою CUDA.
19 інструментів ШІ на допоміжному процесі Python у чотирьох модальностях (зображення, аудіо, відео, документ), а також 2 інструменти з необов'язковими можливостями ШІ. Усі моделі працюють локально: після початкового завантаження моделі інтернет не потрібен.
::: 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» замінює список дозволених ШІ на скрипти обробки документів (doc_pagecount, doc_health, doc_flatten, doc_redact, doc_text, doc_to_word, doc_metadata, doc_html_pdf) і пропускає важкі імпорти ML.
Тайм-аути: 300 с за замовчуванням; OCR та видалення фону BiRefNet отримують 600 с.
Набори функцій
Моделі ШІ пакуються за спільним стеком залежностей, а не по одному архіву на інструмент. Набір функцій може вмикати декілька інструментів, коли вони використовують одну родину моделей, Python-колеса або нативні бібліотеки. Це зменшує розмір релізного 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 ГБ | матування фону rembg / BiRefNet | remove-background, passport-photo, transparency-fixer, background-replace, blur-background |
face-detection |
200-300 МБ | розпізнавання облич і орієнтирів MediaPipe | blur-faces, red-eye-removal, smart-crop |
object-eraser-colorize |
1-2 ГБ | inpainting/outpainting LaMa та DDColor | erase-object, colorize, ai-canvas-expand |
upscale-enhance |
5-6 ГБ | RealESRGAN, GFPGAN / CodeFormer, шумозаглушення | upscale, enhance-faces, noise-removal |
photo-restoration |
4-5 ГБ | конвеєр ремонту подряпин і реставрації | 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 МБ | моделі мовлення в текст faster-whisper | transcribe-audio, auto-subtitles |
Інструменти з міжнабірними залежностями:
| Інструмент | Потрібні набори | Чому |
|---|---|---|
passport-photo |
background-removal, face-detection |
Видаляє фон, а потім за орієнтирами обличчя кадрує кроп під правила фото на паспорт та ID. |
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-документів за допомогою 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 сторінок.
Розмиття облич / PII
Маршрут інструмента: 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 |
Покращувати лише найцентральніше обличчя |
Колоризація ШІ
Маршрут інструмента: 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 | (обов'язково) | ID завдання з Фази 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 |
Макс. розмір файлу в КБ (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 |
Стирання об'єктів (Inpainting)
Маршрут інструмента: 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-canvas-expand
Модель: outpainting на базі LaMa
Розширює полотно зображення в будь-якому напрямку та заповнює нові області згенерованим ШІ вмістом, що відповідає наявному зображенню.
| Параметр | Тип | За замовчуванням | Опис |
|---|---|---|---|
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
Модель: матування HR BiRefNet (роздільна здатність 2048x2048)
Виправляє «псевдопрозорі» PNG, де фон було видалено, але залишилися облямівка, ореоли чи напівпрозорі артефакти. Використовує модель матування високої роздільної здатності BiRefNet для створення чистого альфа-каналу, а потім застосовує налаштовувану обробку прибирання облямівки, щоб усунути колірне забруднення вздовж країв.
Ланцюг резервів OOM: Якщо матування HR BiRefNet перевищує доступну пам'ять, інструмент автоматично переходить на 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"}'
Інструменти з необов'язковими можливостями ШІ
Наведені нижче інструменти не є інструментами допоміжного процесу Python, але використовують функції ШІ, коли ввімкнено певні опції.
Покращення зображення
Маршрут інструмента: 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 |
Увімкнути видалення шуму ШІ через 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 |
Примусовий квадратний вивід |