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

Smart Crop

Cắt thông minh nhận biết chủ thể, nhận biết khuôn mặt, hoặc dựa trên trim. Sử dụng các chiến lược attention/entropy của Sharp và AI phát hiện khuôn mặt để đóng khung thông minh.

API Endpoint

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

Xử lý: Bất đồng bộ (trả về 202, poll /api/v1/jobs/{jobId}/progress để lấy trạng thái qua SSE)

Gói mô hình: face-detection (200-300 MB) - chỉ bắt buộc cho chế độ face

Tham số

Tham sốKiểuBắt buộcMặc địnhMô tả
filefile-Tệp ảnh (multipart)
modestringKhông"subject"Chế độ cắt: subject, face, trim. (Các giá trị cũ attentioncontent ánh xạ sang subjecttrim)
strategystringKhông"attention"Chiến lược cho chế độ subject: attention hoặc entropy
widthintegerKhông-Chiều rộng đích tính bằng pixel
heightintegerKhông-Chiều cao đích tính bằng pixel
paddingintegerKhông0Phần trăm khoảng đệm quanh chủ thể (0-50)
facePresetstringKhông"head-shoulders"Preset đóng khung khuôn mặt: closeup, head-shoulders, upper-body, half-body
sensitivitynumberKhông0.5Độ nhạy phát hiện khuôn mặt (0-1)
thresholdintegerKhông30Ngưỡng chế độ trim để phát hiện nền (0-255)
padToSquarebooleanKhôngfalseĐệm kết quả đã trim thành hình vuông
padColorstringKhông"#ffffff"Màu nền cho phần đệm
targetSizeintegerKhông-Kích thước đích cho đầu ra đã đệm (pixel)
qualityintegerKhông-Chất lượng đầu ra (1-100)

Ví dụ Request

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"}'

Response

Response ban đầu (202 Accepted)

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

Tiến trình (SSE tại /api/v1/jobs/{jobId}/progress)

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

Kết quả cuối cùng (qua 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
  }
}

Các chế độ

Chế độ Subject

Sử dụng chiến lược attention hoặc entropy của Sharp để tìm vùng thú vị nhất về mặt thị giác và cắt xung quanh vùng đó.

Chế độ Face

Phát hiện khuôn mặt bằng AI, sau đó đóng khung phần cắt quanh các khuôn mặt được phát hiện bằng facePreset được chỉ định. Chuyển về chế độ subject (chiến lược attention) nếu không phát hiện khuôn mặt nào.

Chế độ Trim

Loại bỏ viền/nền đồng nhất khỏi ảnh. Tùy chọn đệm kết quả thành hình vuông với màu nền và kích thước đích được chỉ định.

Ghi chú

  • Công cụ này dùng factory createToolRoute với executionHint: "long", nên nó trả về 202 với tiến trình SSE.
  • Chế độ face yêu cầu gói mô hình face-detection (200-300 MB).
  • Chế độ subject và trim hoạt động mà không cần gói mô hình AI nào.
  • facePreset quyết định mức độ chặt của phần cắt quanh các khuôn mặt được phát hiện: closeup là chặt nhất, half-body là rộng nhất.
  • Nếu không chỉ định width/height, mặc định là 1080x1080.