vocal_animation
Generate viseme sets that lip-sync a portrait to any line of text. Use a stored character portrait or inline image, then poll the returned job ID for results.
Instructions
Generate the set of mouth positions ('visemes') that lets a portrait be lip-synced to any line of text. This is the only talking-animation step that costs generations — pay it once per expression, then talking_gif and lip_sync are free and unlimited. Provide either character_id (uses the character's stored portrait, set via set_character_portrait, and saves the result onto it) or an inline portrait image (max 256x256, result returned inline). Returns a job_id — poll get_vocal_animation_job.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mood | No | Expression held on the face throughout (default 'neutral'). Call once per expression you want | neutral |
| seed | No | Seed for deterministic generation (default 0) | |
| portrait | No | Generate from this image instead and store nothing — mouth positions come back inline. Max 256x256. Mutually exclusive with character_id | |
| character_id | No | Generate from this character's stored portrait and save the result onto it. Required to later use character_id with talking_gif. Mutually exclusive with portrait | |
| viseme_count | No | How many mouth positions to generate (default 7). 3 for tiny portraits, 12 for large close-ups. Must be the same for every expression on one character | |
| no_background | No | Return frames with a transparent background (default true) |