Skip to main content
Glama

Make a faceless video

make_faceless

Starts a paid faceless video from a script or brief and returns a run_id immediately; quote first, then poll get_run until the video succeeds or fails.

Instructions

Start a paid finished faceless video from a script or brief. You select 30–90 seconds; the video ends with its narration, runs at least 25 seconds and at most a quarter past the selection, never beyond 90. The video has an opening animated clip and image scenes. Captions are on by default and can be turned off. Call quote_faceless first and show the user the price. This does NOT wait for the video: it starts the run and returns a run_id IMMEDIATELY. Then poll get_run with that run_id until the state is 'succeeded' (video_url) or 'failed'. Pass attempt=2,3,… to deliberately start a NEW run for the same input. Price: generated picture 7 credits per image plus opening clip 49 credits per clip plus production (story, voice and render) 1 credits per second of video, at least 50. Quote first with quote_faceless; list_prices names every price.

Input Schema

NameRequiredDescriptionDefault
briefNoWhat the video is about; the narration is written from it. Required when input_mode is 'brief'; must be absent when it is 'script'.
voiceNoNarration voice: a name from list_voices with skill=make_faceless (kind faceless_voice). Omitted means narrator_en_wise_lady. Choose a voice in the language of the narration: a voice reads any language, with the accent of its own. The API refuses an unknown name and a make_ugc voice before any charge. A raw voice_id is not accepted here.
scriptNoThe narration, read as written. Required when input_mode is 'script'; must be absent when it is 'brief'.
attemptNo
captionsNoBurned-in captions; on by default.
input_modeYes'script' narrates your exact text; 'brief' writes the narration from a short description. Send exactly one of script or brief, matching this mode.
scene_imagesNoOptional images of your own, each placed at a word range or quote of the narration.
style_referenceNoOptional public https image whose visual style the scenes follow.
duration_secondsYesSelected length, 30 to 90 seconds, on a 1/25 s frame boundary. The video ends with its narration and runs at least 25 seconds, usually at most a quarter past the selection and 90 seconds; when the narration takes longer, the video runs to its end. A video more than 5 seconds longer than the selection says so in warnings[]. The charge never exceeds the quote. A script is accepted when its estimated length is 21 seconds to the selection plus 5, at most 90.
character_detailsNoOptional fixed visual details for the referenced person or figure, such as hairstyle, clothing and absent accessories; applied to every generated scene.
character_referenceNoOptional public https image of a person or figure to keep consistent across scenes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.36.0
    • changedInput schema / properties / duration_seconds / description
      Previous value: -"Selected length, 30 to 90 seconds, on a 1/25 s frame boundary. The video ends with its narration, runs at least 25 seconds and may exceed the selection by up to a quarter, never beyond 90 seconds; a video more than 5 seconds longer says so in warnings[]. The charge never exceeds the quote. A script is accepted when its estimated length is 21 seconds to the selection plus 5, at most 90."New value: +"Selected length, 30 to 90 seconds, on a 1/25 s frame boundary. The video ends with its narration and runs at least 25 seconds, usually at most a quarter past the selection and 90 seconds; when the narration takes longer, the video runs to its end. A video more than 5 seconds longer than the selection says so in warnings[]. The charge never exceeds the quote. A script is accepted when its estimated length is 21 seconds to the selection plus 5, at most 90."
  2. Changed3 schema fields changedv0.27.0
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / duration_seconds / description
      Previous value: -"Selected length, 30 to 90 seconds, on a 1/25 s frame boundary. The video ends with its narration, runs at least 25 seconds and may exceed the selection by up to 5 seconds, never beyond 90 seconds. The charge never exceeds the quote. A script must fit this output range."New value: +"Selected length, 30 to 90 seconds, on a 1/25 s frame boundary. The video ends with its narration, runs at least 25 seconds and may exceed the selection by up to a quarter, never beyond 90 seconds; a video more than 5 seconds longer says so in warnings[]. The charge never exceeds the quote. A script is accepted when its estimated length is 21 seconds to the selection plus 5, at most 90."
    • addedInput schema / properties / voice
      Added value: +{
      +  "description": "Narration voice: a name from list_voices with skill=make_faceless (kind faceless_voice). Omitted means narrator_en_wise_lady. Choose a voice in the language of the narration: a voice reads any language, with the accent of its own. The API refuses an unknown name and a make_ugc voice before any charge. A raw voice_id is not accepted here.",
      +  "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +  "type": "string"
      +}
  3. Changed1 schema field changedv0.25.0
    • addedInput schema / properties / character_details
      Added value: +{
      +  "description": "Optional fixed visual details for the referenced person or figure, such as hairstyle, clothing and absent accessories; applied to every generated scene.",
      +  "maxLength": 400,
      +  "minLength": 1,
      +  "type": "string"
      +}
  4. Addedv0.21.1

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare non-read-only/non-destructive; the description adds the asynchrony ('does NOT wait for the video: it starts the run and returns a run_id IMMEDIATELY'), the polling contract, the billing model in credits, the fact that charge never exceeds the quote, and the effects of attempt. Contradicts nothing in the annotations.

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?

Purpose and the quote-first rule are front-loaded, and no sentence is filler — even the pricing sentence is load-bearing for a paid tool. It is densely packed with several multi-clause sentences (duration rules, pricing arithmetic) that could be split for faster scanning.

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 an 11-parameter asynchronous paid generator with no output schema, the description supplies everything needed to call it correctly and interpret the result: what is produced, how long it runs, what it costs, what is returned (run_id, video_url), and how to wait. No material gap remains.

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

Parameters4/5

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

Schema coverage is 91% and most parameters are already documented, so the baseline is 3. The description earns extra credit for explaining attempt, which has no schema description, and for restating the duration overrun rule and the captions default in call-level terms. It does not cover scene_images, voice or style_reference, which is why it stops short of 5.

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?

Opens with a specific verb and resource ('Start a paid finished faceless video from a script or brief'), and the surrounding detail about narration, opening clip and image scenes clearly separates it from make_ugc and quote_faceless. An agent can identify the tool and its output without opening the schema.

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

Usage Guidelines5/5

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

Explicit prerequisites and sequencing: 'Call quote_faceless first and show the user the price', then 'poll get_run with that run_id until the state is succeeded or failed'. It also names the alternative path for reruns ('Pass attempt=2,3,… to deliberately start a NEW run') and points to list_prices for full pricing.

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