Search K
Ritaglio intelligente
Ritaglio intelligente basato su soggetto, volti o rifilatura. Usa le strategie attention/entropy di Sharp e il rilevamento dei volti con IA per un'inquadratura intelligente.
Endpoint API
POST /api/v1/tools/image/smart-crop
Elaborazione: Asincrona (restituisce 202, interroga /api/v1/jobs/{jobId}/progress per lo stato tramite SSE)
Bundle del modello: face-detection (200-300 MB) - richiesto solo per la modalità face
Parametri
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
| file | file | Sì | - | File immagine (multipart) |
| mode | string | No | "subject" | Modalità di ritaglio: subject, face, trim. (I valori legacy attention e content corrispondono a subject e trim) |
| strategy | string | No | "attention" | Strategia per la modalità soggetto: attention o entropy |
| width | integer | No | - | Larghezza target in pixel |
| height | integer | No | - | Altezza target in pixel |
| padding | integer | No | 0 | Percentuale di margine attorno al soggetto (0-50) |
| facePreset | string | No | "head-shoulders" | Preset di inquadratura del volto: closeup, head-shoulders, upper-body, half-body |
| sensitivity | number | No | 0.5 | Sensibilità del rilevamento dei volti (0-1) |
| threshold | integer | No | 30 | Soglia della modalità rifilatura per il rilevamento dello sfondo (0-255) |
| padToSquare | boolean | No | false | Aggiunge margine al risultato rifilato per renderlo quadrato |
| padColor | string | No | "#ffffff" | Colore di sfondo per il margine |
| targetSize | integer | No | - | Dimensione target per l'output con margine (pixel) |
| quality | integer | No | - | Qualità dell'output (1-100) |
Esempio di richiesta
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"}'Risposta
Risposta iniziale (202 Accepted)
json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}Avanzamento (SSE su /api/v1/jobs/{jobId}/progress)
event: progress
data: {"phase":"processing","percent":50}Risultato finale (tramite 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
}
}Modalità
Modalità soggetto
Usa la strategia attention o entropy di Sharp per individuare la regione visivamente più interessante e ritaglia attorno ad essa.
Modalità volto
Rileva i volti con l'IA, poi inquadra il ritaglio attorno ai volti rilevati usando il facePreset specificato. Se non viene rilevato alcun volto, ripiega sulla modalità soggetto (strategia attention).
Modalità rifilatura
Rimuove i bordi/lo sfondo uniformi dall'immagine. Facoltativamente aggiunge un margine al risultato per renderlo quadrato con un colore di sfondo e una dimensione target specificati.
Note
- Questo strumento usa la factory
createToolRouteconexecutionHint: "long", quindi restituisce 202 con avanzamento tramite SSE. - La modalità volto richiede il bundle del modello
face-detection(200-300 MB). - Le modalità soggetto e rifilatura funzionano senza alcun bundle di modello IA.
- Il
facePresetdetermina quanto strettamente il ritaglio inquadra i volti rilevati:closeupè il più stretto,half-bodyè il più ampio. - Se non vengono specificate larghezza/altezza, il valore predefinito è 1080x1080.
