This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

Довідник рушія ШІ

Пакет @snapotter/ai з'єднує Node.js із постійним допоміжним процесом Python для всіх операцій ML. Процес диспетчера залишається активним між запитами задля швидкого «теплого» старту. NVIDIA CUDA автоматично визначається під час запуску та використовується за наявності; в іншому разі інструменти ШІ працюють на CPU.

Прискорення на iGPU Intel/AMD через VA-API, Quick Sync або OpenCL наразі не підтримується для інференсу ШІ. Прокидання /dev/dri в контейнер не прискорює ці інструменти допоміжного процесу Python, якщо немає NVIDIA GPU з підтримкою CUDA.

19 інструментів ШІ на допоміжному процесі Python у чотирьох модальностях (зображення, аудіо, відео, документ), а також 2 інструменти з необов'язковими можливостями ШІ. Усі моделі працюють локально: після початкового завантаження моделі інтернет не потрібен.

Архітектура

Node.js Tool Route
      |
      v
 @snapotter/ai bridge.ts
      | (stdin/stdout JSON + stderr progress events)
      v
 Python dispatcher (persistent process, "ai" profile)
      |
      |-- remove_bg.py        (rembg / BiRefNet)
      |-- upscale.py          (RealESRGAN)
      |-- inpaint.py          (LaMa ONNX)
      |-- outpaint.py         (LaMa canvas expansion)
      |-- ocr.py              (PaddleOCR / Tesseract)
      |-- ocr_pdf.py          (page-by-page document OCR)
      |-- ocr_preprocess.py   (image enhancement for OCR)
      |-- 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; увімкнення його після того, як уже встановлено Background Removal, ставить у чергу лише face-detection.

НабірРозмірГрупа спільних залежностейІнструменти, що його використовують
background-removal4-5 ГБматування фону rembg / BiRefNetremove-background, passport-photo, transparency-fixer, background-replace, blur-background
face-detection200-300 МБрозпізнавання облич і орієнтирів MediaPipeblur-faces, red-eye-removal, smart-crop
object-eraser-colorize1-2 ГБinpainting/outpainting LaMa та DDColorerase-object, colorize, ai-canvas-expand
upscale-enhance5-6 ГБRealESRGAN, GFPGAN / CodeFormer, шумозаглушенняupscale, enhance-faces, noise-removal
photo-restoration4-5 ГБконвеєр ремонту подряпин і реставраціїrestore-photo
ocr5-6 ГБстек OCR PaddleOCR / Tesseractocr, ocr-pdf
transcription~600 МБмоделі мовлення в текст faster-whispertranscribe-audio, auto-subtitles

Інструменти з міжнабірними залежностями:

ІнструментПотрібні набориЧому
passport-photobackground-removal, face-detectionВидаляє фон, а потім за орієнтирами обличчя кадрує кроп під правила фото на паспорт та ID.
enhance-facesupscale-enhance, face-detectionРозпізнає обличчя перед запуском покращення GFPGAN або CodeFormer на вибраних областях облич.

Інструмент доступний лише тоді, коли встановлено всі потрібні йому набори. Часткові встановлення є коректними та обробляються поетапно: встановлені набори повторно використовуються, відсутні набори показуються як завантаження, а поставлені в чергу встановлення виконуються по одному, щоб спільне середовище Python не змінювалося одночасно.


Видалення фону

Маршрут інструмента: remove-background
Модель: rembg з BiRefNet (за замовчуванням) або варіанти U2-Net

ПараметрТипЗа замовчуваннямОпис
modelstring-Варіант моделі (необов'язкове перевизначення)
backgroundTypestring"transparent"Один з: transparent, color, gradient, blur, image
backgroundColorstring-Hex-колір суцільного фону
gradientColor1string-Перший колір градієнта
gradientColor2string-Другий колір градієнта
gradientAnglenumber-Кут градієнта в градусах
blurEnabledboolean-Увімкнути ефект розмиття фону
blurIntensitynumber (0-100)-Інтенсивність розмиття
shadowEnabledboolean-Увімкнути падаючу тінь на об'єкті
shadowOpacitynumber (0-100)-Непрозорість тіні
outputFormatstring-Формат виводу: png, webp або avif
edgeRefineinteger (0-3)-Рівень уточнення країв
decontaminateboolean-Прибрати перетікання кольору з країв

Заміна фону

Маршрут інструмента: background-replace
Модель: rembg / BiRefNet (спільна з remove-background)

Видаляє фон і замінює його суцільним кольором або градієнтом.

ПараметрТипЗа замовчуваннямОпис
backgroundType"color" | "gradient""color"Режим фону
colorstring"#ffffff"Hex-колір фону (коли backgroundType дорівнює color)
gradientColor1string-Перший hex-колір градієнта
gradientColor2string-Другий hex-колір градієнта
gradientAngleinteger (0-360)180Кут градієнта в градусах
featherinteger (0-20)0Радіус розтушовування країв
format"png" | "webp""png"Формат виводу

Розмиття фону

Маршрут інструмента: blur-background
Модель: rembg / BiRefNet (спільна з remove-background)

Розмиває фон, зберігаючи об'єкт чітким.

ПараметрТипЗа замовчуваннямОпис
intensityinteger (1-100)50Інтенсивність розмиття
featherinteger (0-20)0Радіус розтушовування країв
format"png" | "webp""png"Формат виводу

Збільшення роздільної здатності зображення

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

ПараметрТипЗа замовчуваннямОпис
scalenumber2Коефіцієнт збільшення
modelstring"auto"Варіант моделі
faceEnhancebooleanfalseЗастосувати прохід покращення облич GFPGAN
denoisenumber0Сила шумозаглушення
formatstring"auto"Перевизначення формату виводу
qualitynumber95Якість виводу (1-100)

OCR / Витяг тексту

Маршрут інструмента: ocr
Моделі: Tesseract (швидко), PaddleOCR PP-OCRv5 (збалансовано), PaddleOCR-VL 1.5 (найкраще)

ПараметрТипЗа замовчуваннямОпис
quality"fast" | "balanced" | "best""balanced"Рівень обробки
languagestring"auto"Мова: auto, en, de, fr, es, zh, ja, ko
enhancebooleantrueПопередньо обробити зображення для підвищення точності OCR
enginestring-Застаріле. Зіставляє tesseract з fast, paddleocr з balanced

Повертає структуровані результати з обмежувальними рамками, оцінками впевненості та витягнутими блоками тексту.

OCR для PDF

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

Витягає текст зі сканованих PDF-документів за допомогою OCR на базі ШІ, сторінка за сторінкою.

ПараметрТипЗа замовчуваннямОпис
quality"fast" | "balanced" | "best""balanced"Рівень обробки
languagestring"auto"Мова: auto, en, de, fr, es, zh, ja, ko
pagesstring"all"Вибір сторінок: "all", "1-3", "1,3,5"

Розмиття облич / PII

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

ПараметрТипЗа замовчуваннямОпис
blurRadiusnumber (1-100)30Радіус гаусового розмиття
sensitivitynumber (0-1)0.5Поріг впевненості розпізнавання

Покращення облич

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

ПараметрТипЗа замовчуваннямОпис
model"auto" | "gfpgan" | "codeformer""auto"Модель покращення
strengthnumber (0-1)0.8Сила покращення
sensitivitynumber (0-1)0.5Поріг розпізнавання облич
onlyCenterFacebooleanfalseПокращувати лише найцентральніше обличчя

Колоризація ШІ

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

Перетворює чорно-білі або відтінково-сірі фото на повнокольорові.

ПараметрТипЗа замовчуваннямОпис
intensitynumber (0-1)1.0Сила насиченості кольору
model"auto" | "ddcolor" | "opencv""auto"Варіант моделі

Видалення шуму

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

ПараметрТипЗа замовчуваннямОпис
tier"quick" | "balanced" | "quality" | "maximum""balanced"Рівень обробки
strengthnumber (0-100)50Сила шумозаглушення
detailPreservationnumber (0-100)50Скільки деталей зберегти; вище означає більше текстури
colorNoisenumber (0-100)30Сила зменшення колірного шуму
formatstring"original"Формат виводу: original, png, jpeg, webp, avif, jxl
qualitynumber (1-100)90Якість кодування виводу

Видалення ефекту червоних очей

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

Розпізнає орієнтири обличчя, локалізує області очей і виправляє перенасичення червоного каналу.

ПараметрТипЗа замовчуваннямОпис
sensitivitynumber (0-100)50Поріг розпізнавання червоних пікселів
strengthnumber (0-100)70Сила корекції
formatstring-Перевизначення формату виводу (необов'язкове)
qualitynumber (1-100)90Якість виводу

Реставрація фото

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

Багатоетапний конвеєр для старих або пошкоджених фото: розпізнавання й ремонт подряпин/розривів, покращення облич, шумозаглушення та необов'язкова колоризація.

ПараметрТипЗа замовчуваннямОпис
scratchRemovalbooleantrueРозпізнати та відремонтувати подряпини, розриви
faceEnhancementbooleantrueЗастосувати прохід покращення облич
fidelitynumber (0-1)0.7Сила покращення облич (вище = консервативніше)
denoisebooleantrueЗастосувати прохід шумозаглушення
denoiseStrengthnumber (0-100)25Сила шумозаглушення
colorizebooleanfalseКолоризувати після реставрації
colorizeStrengthnumber (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 плюс налаштування генерації:

ПараметрТипЗа замовчуваннямОпис
jobIdstring(обов'язково)ID завдання з Фази 1
filenamestring(обов'язково)Оригінальне ім'я файлу з Фази 1
countryCodestring(обов'язково)Код країни ISO (напр., US, GB, IN)
documentTypestring"passport"Тип документа
bgColorstring"#FFFFFF"Hex кольору фону
printLayoutstring"none"Розкладка друку: none, 4x6, a4, letter
maxFileSizeKbnumber0Макс. розмір файлу в КБ (0 = без обмеження)
dpinumber (72-1200)300DPI виводу
customWidthMmnumber-Власна ширина в мм (перевизначає специфікацію країни)
customHeightMmnumber-Власна висота в мм (перевизначає специфікацію країни)
zoomnumber (0.5-3)1Коефіцієнт масштабування
adjustXnumber0Коригування горизонтального положення
adjustYnumber0Коригування вертикального положення
landmarksobject(обов'язково)Орієнтири з Фази 1
imageWidthnumber(обов'язково)Ширина зображення з Фази 1
imageHeightnumber(обов'язково)Висота зображення з Фази 1

Стирання об'єктів (Inpainting)

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

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

ПараметрТипЗа замовчуваннямОпис
filefile(обов'язково)Вихідне зображення (multipart)
maskfile(обов'язково)Зображення маски (multipart, ім'я поля mask, біле = стерти)
formatstring"auto"Формат виводу: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl
qualityinteger (1-100)95Якість виводу

Прискорюється CUDA за наявності NVIDIA GPU.

Розширення полотна ШІ

Маршрут інструмента: ai-canvas-expand
Модель: outpainting на базі LaMa

Розширює полотно зображення в будь-якому напрямку та заповнює нові області згенерованим ШІ вмістом, що відповідає наявному зображенню.

ПараметрТипЗа замовчуваннямОпис
extendTopinteger0Пікселі для розширення зверху
extendRightinteger0Пікселі для розширення справа
extendBottominteger0Пікселі для розширення знизу
extendLeftinteger0Пікселі для розширення зліва
tier"fast" | "balanced" | "high""balanced"Рівень якості
formatstring"auto"Формат виводу: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl
qualityinteger (1-100)95Якість виводу

Принаймні один напрямок розширення має бути більшим за 0.

Розумний кроп

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

ПараметрТипЗа замовчуваннямОпис
modestring"subject"Стратегія кропу: subject, face, trim
strategy"attention" | "entropy""attention"Стратегія для режиму об'єкта
widthinteger-Ширина виводу
heightinteger-Висота виводу
paddinginteger (0-50)0Відсоток відступу навколо об'єкта
facePresetstring"head-shoulders"Попередньо задане кадрування, коли mode=face
sensitivitynumber (0-1)0.5Поріг розпізнавання облич
thresholdinteger (0-255)30Поріг розпізнавання фону (режим обрізання)
padToSquarebooleanfalseДоповнити обрізаний результат до квадрата
padColorstring"#ffffff"Колір фону для квадратного доповнення
targetSizeinteger-Цільовий розмір для доповненого виводу (пікселі)
qualityinteger (1-100)-Якість виводу

Застарілі значення mode attention та content приймаються та зіставляються з subject і trim відповідно.

Попередньо задані параметри облич:

ПресетНайкраще для
closeupПортретні знімки
head-shouldersФото профілю
upper-bodyLinkedIn / офіційні
half-bodyУся верхня частина тіла

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

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

Перетворює мовлення на текст. Підтримує формати виводу: звичайний текст, SRT та VTT.

ПараметрТипЗа замовчуваннямОпис
languagestring"auto"Мова: auto, en, de, fr, es, zh, ja, ko, id, th, vi
outputFormat"txt" | "srt" | "vtt""txt"Формат виводу

Автосубтитри

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

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

ПараметрТипЗа замовчуваннямОпис
languagestring"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.

ПараметрТипЗа замовчуваннямОпис
defringenumber (0-100)30Сила прибирання облямівки країв для усунення колірного забруднення
outputFormat"png" | "webp""png"Формат вихідного зображення
removeWatermarkbooleanfalseЗастосувати попередню обробку видалення водяного знака (медіанний фільтр)
bash
curl -X POST http://localhost:1349/api/v1/tools/image/transparency-fixer \
  -H "Authorization: Bearer <token>" \
  -F "[email protected]" \
  -F 'settings={"defringe":30,"outputFormat":"png"}'

Інструменти з необов'язковими можливостями ШІ

Наведені нижче інструменти не є інструментами допоміжного процесу Python, але використовують функції ШІ, коли ввімкнено певні опції.

Покращення зображення

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

Аналізує зображення та застосовує автоматичні корекції експозиції, контрасту, балансу білого, насиченості, різкості та шуму. Підтримує режими для конкретних сцен.

ПараметрТипЗа замовчуваннямОпис
mode"auto" | "portrait" | "landscape" | "low-light" | "food" | "document""auto"Режим сцени для налаштування корекцій
intensitynumber (0-100)50Загальна сила корекції
corrections.exposurebooleantrueЗастосувати корекцію експозиції
corrections.contrastbooleantrueЗастосувати корекцію контрасту
corrections.whiteBalancebooleantrueЗастосувати корекцію балансу білого
corrections.saturationbooleantrueЗастосувати корекцію насиченості
corrections.sharpnessbooleantrueЗастосувати корекцію різкості
corrections.denoisebooleantrueЗастосувати шумозаглушення
deepEnhancebooleanfalseУвімкнути видалення шуму ШІ через SCUNet (потребує набору upscale-enhance)

Додатковий кінцевий пункт аналізу доступний за POST /api/v1/tools/image/image-enhancement/analyze, який повертає виявлені корекції без їх застосування.

Зміна розміру з урахуванням вмісту (Seam Carving)

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

Розумно змінює розмір зображень, видаляючи низькоенергетичні шви та зберігаючи важливий вміст.

ПараметрТипЗа замовчуваннямОпис
widthnumber-Цільова ширина
heightnumber-Цільова висота
protectFacesbooleanfalseЗахистити розпізнані області облич (потребує набору face-detection)
blurRadiusnumber (0-20)4Попереднє розмиття для обчислення енергії
sobelThresholdnumber (1-20)2Поріг чутливості країв
squarebooleanfalseПримусовий квадратний вивід