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

Розумна обрізка

Розумна обрізка з урахуванням об’єкта, обличчя або на основі обтинання. Використовує стратегії уваги/ентропії Sharp та розпізнавання облич ШІ для інтелектуального кадрування.

Кінцева точка API

POST /api/v1/tools/image/smart-crop

Обробка: Асинхронна (повертає 202, опитуйте /api/v1/jobs/{jobId}/progress щодо стану через SSE)

Пакет моделі: face-detection (200-300 МБ) - потрібен лише для режиму face

Параметри

ПараметрТипОбов’язковийЗа замовчуваннямОпис
filefileТак-Файл зображення (багаточастинний)
modestringНі"subject"Режим обрізки: subject, face, trim. (Застарілі значення attention та content відображаються на subject та trim)
strategystringНі"attention"Стратегія для режиму об’єкта: attention або entropy
widthintegerНі-Цільова ширина у пікселях
heightintegerНі-Цільова висота у пікселях
paddingintegerНі0Відсоток відступу навколо об’єкта (0-50)
facePresetstringНі"head-shoulders"Пресет кадрування обличчя: closeup, head-shoulders, upper-body, half-body
sensitivitynumberНі0.5Чутливість розпізнавання облич (0-1)
thresholdintegerНі30Поріг режиму обтинання для розпізнавання фону (0-255)
padToSquarebooleanНіfalseДоповнити обтятий результат до квадрата
padColorstringНі"#ffffff"Колір фону для доповнення
targetSizeintegerНі-Цільовий розмір для доповненого виводу (пікселі)
qualityintegerНі-Якість виводу (1-100)

Приклад запиту

bash
curl -X POST http://localhost:1349/api/v1/tools/image/smart-crop \
  -F "[email protected]" \
  -F 'settings={"mode":"face","width":1080,"height":1080,"facePreset":"head-shoulders"}'

Відповідь

Початкова відповідь (202 Accepted)

json
{
  "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "async": true
}

Прогрес (SSE на /api/v1/jobs/{jobId}/progress)

event: progress
data: {"phase":"processing","percent":50}

Кінцевий результат (через SSE)

json
{
  "phase": "complete",
  "percent": 100,
  "result": {
    "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "downloadUrl": "/api/v1/download/{jobId}/portrait_smartcrop.jpg",
    "originalSize": 500000,
    "processedSize": 320000
  }
}

Режими

Режим об’єкта

Використовує стратегію уваги або ентропії Sharp, щоб знайти найбільш візуально цікаву ділянку, і обрізає навколо неї.

Режим обличчя

Розпізнає обличчя за допомогою ШІ, а потім кадрує обрізку навколо виявлених облич, використовуючи вказаний facePreset. Повертається до режиму об’єкта (стратегія уваги), якщо обличчя не виявлено.

Режим обтинання

Видаляє однорідні межі/фон із зображення. За бажанням доповнює результат до квадрата з указаним кольором фону та цільовим розміром.

Примітки

  • Цей інструмент використовує фабрику createToolRoute з executionHint: "long", тому повертає 202 із прогресом SSE.
  • Режим обличчя потребує пакета моделі face-detection (200-300 МБ).
  • Режими об’єкта та обтинання працюють без жодного пакета моделі ШІ.
  • facePreset визначає, наскільки щільно обрізка кадрує виявлені обличчя: closeup — найщільніший, half-body — найширший.
  • Якщо ширину/висоту не вказано, за замовчуванням береться 1080x1080.