Photo → MetaHuman

One photo in. A finished MetaHuman out.

FaceNinja fits a MetaHuman head to the person in your photo, paints their own skin onto it, recommends the hair, brow and beard grooms that match, and fits the neck and shoulders. You get a character, not a bald mesh you still have to finish.

52 ARKit blendshapes 4K skin maps MetaHuman-ready ZIP
3D head of a synthetic elderly man, built by FaceNinja from one photo Live 3D · our engine
01 How a head is made

From a holiday snapshot to a rigged head in four steps.

Every image below came out of one run of our engine on one synthetic photo. Nothing was touched up by hand.

Synthetic photo of a laughing woman with glasses in a café

Your photo

Laughing, glasses on, side light from a window. One photo is enough; more photos of the same person help.

The same woman redrawn facing the camera with a neutral expression and no glasses

Neutral reference

We redraw the person facing the camera, mouth closed, glasses off, in flat light, and check it is still the same person before any 3D work.

The fitted 3D head with her skin, three-quarter view

Fitted MetaHuman head

Three independent 3D models shape the head; we fit MetaHuman topology to their consensus and project her skin at 4K.

The head with a hair preview and the recommended groom

Grooms and body

Hair, brows, lashes and beard are matched to MetaHuman grooms, with colours. The neck and shoulders follow hers.

02 Why FaceNinja

Other services stop at the head. We keep going.

Finished in Unreal Early access

Our Unreal automation conforms the MetaHuman face to your head, overrides the skin with the person's own maps, puts on the recommended grooms and picks a body that fits the neck.

Hair, brows and beard from the photo

We read length, texture and colour off the photo and name the MetaHuman grooms that match, with Melanin, Redness and Whiteness values ready to type in.

A neck that belongs to the face

The template's slim default neck is scaled to the person's, and the trapezius line is raised or lowered to match. Broad necks stay broad.

52 ARKit blendshapes, refitted

Every expression shape is transferred onto the new face, so anything that speaks ARKit, from iPhone face tracking to web trackers, drives the GLB straight away. Try them above before you download.

An API you already know

Create a head, wait for it, request a file, fetch a short-lived signed link. If you have built against KeenFace, the steps are the same, so moving over is a small change.

Measured in public

We are building an open benchmark on consenting test people: shape error in millimetres and likeness scores, side by side with other services. Status

04 Groom recommendations

We tell you which hair to put on.

A MetaHuman head is bald by design: hair, brows, lashes and beards are grooms. We look at the photo and pick them for you.

  • Named grooms for hair, eyebrows, eyelashes, moustache and beard, with the next-best alternatives.
  • Colour values for MetaHuman's Melanin, Redness and Whiteness sliders, with swatches to judge against.
  • A recipe sheet in every download, showing what we measured in the photo and why.
  • A hair preview in the browser, so you can judge the likeness with hair before you open Unreal.

Colours are approximate: exposure and white balance in the photo are not undone.

Groom recipe sheet: hair Hair_S_Coil, eyebrows Eyebrows_M_Shaded, beard Beard_S_Full, moustache Mustache_S_Full, with colour swatches
The recipe for the bearded test subject: Hair_S_Coil, Beard_S_Full, Mustache_S_Full, Eyebrows_M_Shaded, each with its colour.
Template neckHead on the default slim template neck
FittedThe same head with the neck and shoulders fitted to the person
Same head, same camera. Left: the template's default neck. Right: neck width, front and trapezius line fitted.
05 Neck and shoulders

The body starts where the head ends.

Stick a thick-necked face on a slim template neck and the character looks pasted together. We measure the neck in the 3D shapes and fit width, front and the trapezius line, then recommend a body type that joins it without a seam.

How the neck fit works
06 For developers

Four calls from photo to file.

Upload photos, wait for the head, ask for the format you need, download it from a signed link. Long polling and server-sent events, so you never have to guess when it is done; webhooks for your backend.

  • GLB with or without ARKit shapes, FBX, OBJ, STL, PLY, MetaHuman ZIP
  • Idempotency keys, so a retry never creates or bills a second head
  • Failed heads are refunded automatically
shellbash + curl
# 1. create a head from one or more photos of the same person
curl https://api.faceninja.net/v1/heads \
  -H "Authorization: Bearer $FACENINJA_KEY" \
  -F photos=@me.jpg -F photos=@me-side.jpg

# 2. wait for it (returns as soon as it is done, or after 60 s)
curl "https://api.faceninja.net/v1/heads/$HEAD?wait=60" \
  -H "Authorization: Bearer $FACENINJA_KEY"

# 3. ask for a format, 4. download from the signed URL it returns
curl https://api.faceninja.net/v1/heads/$HEAD/files \
  -H "Authorization: Bearer $FACENINJA_KEY" \
  -d format=metahuman_zip

Simplified. The reference has every field and error.

07 Benchmark

Numbers, not adjectives.

We are measuring FaceNinja against other photo-to-MetaHuman services on people who agreed to take part, and we will publish the method, the photos we are allowed to show, and every result, including the ones we lose.

— mmShape error against a reference scan, face region
—Likeness score: face recognition similarity to the photos
— minTime from upload to a finished head
—Test people, each with written consent

The benchmark is running. This section fills in when the first results are ready.

08 Pricing
$15 per finished head

Start with 1 free head when you sign up. Then buy credits for one head or a whole cast; no subscription.

Bring a photo. Leave with a character.

Your free head is waiting. A head takes about 5 to 10 minutes today.