Skip to main content
Glama

generate_talking_avatar

Creates a talking avatar video: generates a portrait from your description, converts text to speech, and lip-syncs the face. Preview cost first, then confirm to render.

Instructions

Make a short video of a PORTRAIT speaking the user's text (a "talking avatar"). The server generates a front-facing portrait from your description, turns the text into speech (ElevenLabs TTS, auto-detects language incl. Russian), and lip-syncs the face to it. ASYNC — returns a job_id; the caller MUST poll check_job until status="completed" (lip-sync is SLOW — HD/OmniHuman can take several minutes; the fast tier ~1-2 min). Returns a hosted MP4 URL on completion. TWO-STEP FLOW (confirmation REQUIRED — this reserves tokens): STEP 1 (preview) call WITHOUT confirmed → returns the estimated cost (portrait + voice + lip-sync), submits nothing, reserves nothing. Show the cost, ask the user. STEP 2 (submit) call again with confirmed=true → generates the portrait, reserves tokens, and starts the render; returns the job_id. Cost typically 600-2500 tokens depending on tier + text length.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textYesThe EXACT words the avatar should SAY, read verbatim (no stage directions). Up to ~500 chars (~30s of speech).
tierNo"quality" = OmniHuman, HD + most realistic, slower (default). "fast" = SadTalker, simpler 256p but ~1-2 min.
styleNoOptional portrait style, e.g. "photo" (default, realistic), "cinema", "3d", "anime".
voiceNoVoice. A preset: Aria, Sarah, Charlotte, Matilda (female) or Roger, George, Charlie, Brian (male) — default Aria. OR the user's OWN cloned voice: pass its name (cloned voices are made in the avots app / Telegram). The cost-only preview (confirmed=false) lists the user's available cloned voice names. If a saved `avatar` has a default voice and this is omitted, that default is used.
avatarNoOPTIONAL — reuse a SAVED avatar (its exact stored face) instead of generating a new one. Pass the avatar's name OR id (see list_avatars; the confirmed=false preview also lists them under `avatars`). When set, the saved portrait is used directly (best lip-sync, identical face every time) and `portrait_prompt` is ignored. If the avatar has a default voice and you do not pass `voice`, that default is used. Provide EITHER `avatar` OR `portrait_prompt`.
confirmedNoMust be true to actually submit + reserve tokens. Omit/false for a cost-only preview.
portrait_promptNoWhat the avatar LOOKS like — a front-facing person. e.g. "a young woman with brown hair and blue eyes, warm smile". Describe a real human face (the lip-sync needs one). Required UNLESS `avatar` is given. Note: a fresh face is generated each call, so the look will vary slightly between videos; use `avatar` for a consistent recurring character.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavior: async nature, slow rendering (especially HD/OmniHuman), token reservation process, cost preview, returned job_id and MP4 URL, auto language detection, and that portrait generation varies slightly per call. It also clarifies the mutual exclusivity of 'avatar' and 'portrait_prompt'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with bolded key terms (ASYNC, TWO-STEP FLOW) and clear sections. It is slightly lengthy but every sentence adds necessary context. The front-loading of the main purpose and then detailed steps is effective. Minor redundancy (e.g., 'returns a hosted MP4 URL' is clear from context) prevents a perfect 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 parameters, async processing, and a two-step flow, the description is comprehensive. It covers cost, token reservation, polling necessity, voice options, avatar reuse, and even provides an example portrait prompt. No output schema exists, but the return values (job_id, MP4 URL) are described sufficiently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant value beyond schema: explains the two-step flow's role of 'confirmed', provides voice preset names and cloned voice behavior, clarifies default voice inheritance from avatar, and details the mutual exclusivity of 'avatar' and 'portrait_prompt'. This extra context is crucial for proper usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it generates a short video of a portrait speaking user text, a distinct function from siblings like 'lipsync_video' (which expects an existing video) and 'generate_video' (generic). The specific verb 'generate_talking_avatar' and the explanation of the two-step flow make the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly details a two-step flow (preview cost, then submit with confirmation) and explains when to use 'avatar' vs 'portrait_prompt' for consistency. It also mentions polling requirements. However, it does not explicitly state when not to use this tool (e.g., if a simple lip-sync on an existing video is needed), leaving a small gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/avotsai/avots-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server