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.
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.
Live 3D · our engine
Every image below came out of one run of our engine on one synthetic photo. Nothing was touched up by hand.

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

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.

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

Hair, brows, lashes and beard are matched to MetaHuman grooms, with colours. The neck and shoulders follow hers.
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.
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.
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.
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.
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.
We are building an open benchmark on consenting test people: shape error in millimetres and likeness scores, side by side with other services. Status
Laughs, glasses, a turned head, a full beard, hair over the ears, harsh light: the things that break photo-to-3D. These four people do not exist; we generated the photos to test the engine without using anyone's face.

Light baked into the photo is removed; the wrinkles stay as relief in the normal map.

The smile is not baked into the shape and the glasses leave no marks.

The jaw under the beard is recovered; the beard itself becomes a groom recommendation.

Ears hidden by hair come from the template; the face is hers, ready for a long-hair groom.
A MetaHuman head is bald by design: hair, brows, lashes and beards are grooms. We look at the photo and pick them for you.
Colours are approximate: exposure and white balance in the photo are not undone.

Hair_S_Coil, Beard_S_Full, Mustache_S_Full, Eyebrows_M_Shaded, each with its colour.

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 worksUpload 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.
# 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.
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.
The benchmark is running. This section fills in when the first results are ready.
Start with 1 free head when you sign up. Then buy credits for one head or a whole cast; no subscription.
Your free head is waiting. A head takes about 5 to 10 minutes today.