mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
Renames 18 ambiguous or hard-to-search tool names so image tools self-qualify like the other modalities ("Compress" becomes "Compress Image"), and cleans up a few awkward names. Propagated across search (constants.ts), display (en.ts + 20 locales), the OpenAPI base spec + 20 locale specs, and the docs tool-page headings in 21 languages. Removes the duplicate "Normalize Audio" summary shared by the video and audio endpoints. Tool ids and routes are unchanged, so no API paths or bookmarks break.
2.6 KiB
2.6 KiB
description
| description |
|---|
| Auto-detect and blur faces in images with AI face detection for privacy and GDPR-compliant anonymization. |
Blur Faces & PII
Auto-detect and blur faces in images using AI-powered face detection (MediaPipe).
API Endpoint
POST /api/v1/tools/image/blur-faces
Processing: Asynchronous (returns 202, poll /api/v1/jobs/{jobId}/progress for status via SSE)
Model bundle: face-detection (200-300 MB)
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| file | file | Yes | - | Image file (multipart) |
| blurRadius | number | No | 30 |
Blur radius applied to detected faces (1-100) |
| sensitivity | number | No | 0.5 |
Face detection sensitivity (0-1). Lower values detect fewer faces with higher confidence |
Example Request
curl -X POST http://localhost:1349/api/v1/tools/image/blur-faces \
-F "file=@group-photo.jpg" \
-F 'settings={"blurRadius":40,"sensitivity":0.3}'
Response
Initial Response (202 Accepted)
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
Progress (SSE at /api/v1/jobs/{jobId}/progress)
event: progress
data: {"phase":"processing","stage":"Detecting faces...","percent":40}
Final Result (via SSE)
{
"phase": "complete",
"percent": 100,
"result": {
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/{jobId}/group-photo_blurred.jpg",
"originalSize": 450000,
"processedSize": 420000,
"facesDetected": 3,
"faces": [
{"x": 100, "y": 50, "w": 80, "h": 80},
{"x": 300, "y": 60, "w": 75, "h": 75},
{"x": 500, "y": 55, "w": 85, "h": 85}
]
}
}
No Faces Detected
If no faces are found, the result includes a warning:
{
"phase": "complete",
"percent": 100,
"result": {
"facesDetected": 0,
"warning": "No faces detected in this image. Try increasing detection sensitivity."
}
}
Notes
- Requires the
face-detectionmodel bundle to be installed (200-300 MB). - Output format matches the input format automatically.
- The
facesarray contains bounding box coordinates (x, y, width, height) for each detected face. - Increase
sensitivity(closer to 1.0) to detect more faces, including partially occluded ones. - Supports HEIC/HEIF, RAW, TGA, PSD, EXR, and HDR input formats via automatic decoding.