Upload a reference photo
Sends one photo of a real person as multipart/form-data, to make a persona that looks like them. Only the user's own face, as an adult, is allowed: own_face_adult must be true and is the user's statement of that. JPEG, PNG, WebP or HEIC up to 10 MB. A close, sharp photo of the face gives the most faithful result.
Pass the returned id in face_ids of POST /personas within 24 hours. Up to 6 photos per persona.
Authorization
apiKey In: header
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/personas/faces" \ -F photo="string" \ -F own_face_adult="true"{ "id": "string"}Create a persona POST
Creates a draft persona and starts generating its photo: a close-up portrait and a full-body shot of the same person. Credits are charged now (see `GET /personas/catalog`), even on a workspace with unlimited usage, and refunded if the photo fails. With `face_ids` the persona keeps the identity of the person in the photos, and only the traits listed in `face_photo_groups` are applied. Responds `202` with `image_status: generating`. Poll `GET /personas/{id}` every 5 seconds until it is `ready` or `failed`.
Price a swap video GET
Measures a library video and returns what swapping its person for a persona costs at the given `quality`. Nothing is charged. Pass the returned `credits` to `POST /personas/{id}/videos` with `type: swap` and the same `quality`, which refuses with `PRICE_CHANGED` if the price is different. `replace` does not change the price. `VIDEO_DURATION_OUT_OF_RANGE` and `VIDEO_UNSUPPORTED` (format, size or resolution) follow `video_limits` of `GET /personas/catalog` for that `quality`; a video refused at `standard` may still fit `high`.