API reference/POST /face-restore
Face restoration
GFPGAN-based face restoration. Sharpens blurry faces, recovers detail in compressed images. Optional whole-image upscale.
POSThttps://useknockout--api.modal.run/face-restore
Parameters
Send as multipart/form-data unless noted otherwise.
FieldTypeDefaultDescription
filerequiredfile—Image to process. JPG, PNG, WebP, HEIC. Up to 10 MB and 4096×4096.
upscale_bgbooleanfalseAlso upscale the non-face background via Real-ESRGAN.
scaleint 1|2|41Background upscale factor when upscale_bg is true.
formatstringpngOutput format — png (with alpha) or webp.
Request
curl -X POST "https://useknockout--api.modal.run/face-restore" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@cat.jpg" \
-o out.pngResponse
HTTP/1.1 200 OK
content-type: image/png
x-knockout-latency: 358
x-knockout-model: GFPGAN-1.4Errors
FieldTypeDefaultDescription
401unauthorized—Missing or invalid token.
402payment_required—Free tier exhausted. Add a card to continue.
413payload_too_large—Image exceeds 10 MB or 4096×4096.
422no_subject_detected—Foreground could not be isolated from background.
429rate_limit_exceeded—Slow down. Retry-After header tells you when.
500internal_error—Something broke on our side. Include request_id when reporting.
422no_face_detected—No face found in the image. Try /upscale instead.
Every error response also includes a
request_id in the JSON body. Quote it when reporting issues.Notes
- Detects up to 5 faces and restores each. Backgrounds are untouched unless upscale_bg=true.
- For a one-call portrait pipeline, /headshot bundles cutout + restore + crop.