Guides

Characters & products

Characters keep a person consistent across every image and video; products keep an item exactly as it is. Create them once and reference them by ID.

Characters from photos

Send three clear photos of the same person — front-facing, good light, no sunglasses, ideally different angles. Creation is free and takes a few seconds while Orior analyses the face.

cURL
curl https://api.oriorai.com/v1/characters \
  -H "Authorization: Bearer $ORIOR_API_KEY" -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
  -d '{"name":"Ava","gender":"female","images":["upl_…","upl_…","upl_…"],"voice_key":"voice-aria"}'
You must have the documented consent of the person in the photos. Creating characters of people without consent violates the API terms.

Preset characters

No photos? GET /characters/presets lists ready portraits and customisable looks. Ready portraits are used as-is; customisable ones take skin tone, hair and eye colour, body type and age range. A preset character costs 2 credits.

cURL
curl https://api.oriorai.com/v1/characters/preset \
  -H "Authorization: Bearer $ORIOR_API_KEY" -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
  -d '{"name":"Luna","base_id":"luna","customization":{"skin_tone":"light","hair_color":"blonde","eye_color":"green","body_type":"slim","age_range":"young"}}'

Using a character

  • Images: character_id in POST /images. Add a scene_image to copy a pose and setting.
  • Videos: character_id in POST /videos. Orior generates a first frame of the character, then animates it.
  • Voice: the character’s voice_key is used wherever it speaks. List voices with GET /voices.
  • Social: the character owns the accounts it publishes to — see Social publishing.

Prefer character_image for one-off faces you don’t want to store; prefer character_id for anything repeated — it is faster and more consistent.

Products

Send 1–3 photos of the product, ideally on a plain background with the label visible. Creation is free.

cURL
curl https://api.oriorai.com/v1/products \
  -H "Authorization: Bearer $ORIOR_API_KEY" -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
  -d '{"name":"Glow Serum","images":["upl_…"],"category":"skincare"}'

Product in hand

cURL
curl https://api.oriorai.com/v1/images \
  -H "Authorization: Bearer $ORIOR_API_KEY" -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
  -d '{"prompt":"She holds the serum next to her cheek, bathroom mirror selfie","character_id":"Qx8p2LmN4vRt","product_id":"Pm3kT9aQ","aspect_ratio":"4:5","resolution":"2K"}'

The same pair works in POST /videos for product videos.

Tips for good results

  • Describe action, setting, light and camera in the prompt; identity comes from the character.
  • Use reference_images with tags for extra items (“wearing the jacket from @ref1”).
  • Use 2K for social feeds; 4K costs 3 credits instead of 2 and is best for print or cropping.
  • Check a generation’s timeline when a result looks off — a skipped analysis explains a weaker match.