Uygulamayı aç
Moonborn — API · portraits

Generate a scene/outfit/pose variant locked to the canonical face

Re-uses the canonical portrait as a face-identity reference and produces a new image with a different scene, outfit, pose, or custom prompt. `useMultiReference` (Pro+) injects up to 4 prior portraits as extra identity refs (Gemini supports up to 5 character refs). Idempotent on `(scene, outfit, pose)` triple.

POST/v1/personas/{id}/portrait/variants/generatescope · Bearer (API key or session JWT)
Path parameters
FieldTypeDescription
idreqstringPersona id (uuid).
Request body
FieldTypeDescription
scenestring
outfitstring
posestring
customPromptstring
useMultiReferenceboolean

Responses

200Variant generated
Body
FieldTypeDescription
portraitIdreqstring
statusreqstring · "pending" | "generating" | "generated" | "approved" | "rejected" | "failed"
storageKeyreqstring
signedUrlreqstring
402Tier disabled
Body
FieldTypeDescription
errorreqstring
messagestring
usednumber
limitnumber
piistring[]
termstring
scoresobject
providerstring
409Canonical missing — generate canonical first
Body
FieldTypeDescription
errorreqstring
messagestring
usednumber
limitnumber
piistring[]
termstring
scoresobject
providerstring
422Invalid body / variant spec required
Body
FieldTypeDescription
errorreqstring
messagestring
usednumber
limitnumber
piistring[]
termstring
scoresobject
providerstring
429Monthly quota exceeded
Body
FieldTypeDescription
errorreqstring
messagestring
usednumber
limitnumber
piistring[]
termstring
scoresobject
providerstring
502Upstream provider error
Body
FieldTypeDescription
errorreqstring
messagestring
usednumber
limitnumber
piistring[]
termstring
scoresobject
providerstring
503Feature not configured
Body
FieldTypeDescription
errorreqstring
messagestring
usednumber
limitnumber
piistring[]
termstring
scoresobject
providerstring

Examples

cURL
curl -X POST https://api.moonborn.co/v1/personas/<id>/portrait/variants/generate \
  -H "Authorization: Bearer $MOONBORN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
      "scene": "<string>",
      "outfit": "<string>",
      "pose": "<string>",
      "customPrompt": "<string>",
      "useMultiReference": false
    }'
TypeScript
import Moonborn from '@moonborn/sdk';

const client = new Moonborn({ apiKey: process.env.MOONBORN_API_KEY });

const result = await client.portraits.generatePortraitVariant({
  id: '<id>',
  scene: "<string>",
  outfit: "<string>",
  pose: "<string>",
  customPrompt: "<string>",
  useMultiReference: false,
});
Python
import os
from moonborn import Moonborn

client = Moonborn(api_key=os.environ["MOONBORN_API_KEY"])

result = client.portraits.generate_portrait_variant(
    id="<id>",
    scene="<string>",
    outfit="<string>",
    pose="<string>",
    custom_prompt="<string>",
    use_multi_reference=False,
)