The /image/facedetect Robot

We offer computer vision as a service, so you don't have to run your own AI models or install complicated software.

The /image/facedetect Robot detects faces in images and returns their coordinates, or cuts them from the original images and returns those as new images.


Name Type Default Description
use (required) String / Array of Strings


Specifies which Step(s) to use as the input to this Robot.

Special Step names

A special Step name is ":original", which provides user uploads handled by Transloadit.

Providing several Steps as input

You can add arrays to use several Steps:
"use": [

Step bundling

Some Robots can gather several Step results for a single invocation. For example, the /file/compress Robot would normally create one Zip file for each file passed to it. If you'd set bundle_steps to true, however, it will create one archive containing all the result files from all Steps you give it. To enable bundling, provide an object like the one below to the use parameter:
  "use": {
    "steps": [
    "bundle_steps": true
This is a crucial parameter for the /video/adaptive Robot, otherwise you'll generate 1 playlist for each viewing quality.
Keep in mind that all input Steps must be present in your Template. If one of them is missing, no result is generated because the Robot waits indefinitely for all input Steps to be finished.

Group by original

Sticking with the /file/compress Robot example, you can set group_by_original to true, in order to create a separate Zip file for each of your uploaded or imported files, instead of creating one archive containing all originals (or one per resulting file). This is a crucial parameter for the /media/playlist Robot.


See a demo for the use parameter here.
crop Boolean false Determine if the detected faces should be extracted. If this option is set to false, then the Robot returns the input image again, but with the coordinates of all detected faces attached to file.meta.faces in the result JSON. If this parameter is set to true, the Robot will output all detected faces as images.
crop_padding String "5px" Specifies how much padding is added to the extracted face images if crop is set to true. Values can be in px (pixels) or % (percentage of the width and height of the particular face image).
format String "preserve" Determines the output format of the extracted face images if crop is set to true. The default value "preserve" means that the input image format is re-used. Valid values are "jpg", "png", "tiff" and "preserve".
min_confidence Number(0-100) 70 Specifies the miminum confidence that a detected face must have. Only faces which have a higher confidence value than this threshold will be included in the result.
faces String / Integer "each" Determines which of the detected faces should be returned. Valid values are:
- "each": Each face is returned individually.
- "max-confidence": Only the face with the highest confidence value is returned.
- "max-size": Only the face with the largest area is returned.
- "group": All detected faces are grouped together into one rectangle that contains all faces.
- any integer: The faces are sorted by their top-left corner and the integer determines the index of the returned face. Be aware the values are zero-indexed, meaning that faces: 0 will return the first face. If no face for a given index exists, no output is produced.

For following examples, the input image is:

faces: "each" applied:

faces: "max-confidence" applied:

faces: "max-size" applied:

faces: "group" applied:

faces: 0 applied:


Our /image/facedetect Robot can be used in combination with other Robots, to create powerful workflows unique to your use case. Here are a few example scenarios that you can try live on our website:

Blog posts about the /image/facedetect Robot

We wrote the following posts about the /image/facedetect Robot on our blog:

Did you know?

You can easily combine Robots to create powerful workflows, unique to your business.
This is the power of Transloadit.