Generate one scene visual
studio_visualCosts the price of one AI image or AI clip for a scene (an identical one this project already bought re-binds free). confirm_cents is the most you agree to pay: the step charges what it costs, never more, and refuses with price_changed (charging nothing) when it costs more. Call it with confirm_cents: 0 to learn the price of a paid step (the answer is price_changed with price_cents; nothing is charged). A free step (a standard voice, a visual already bought) just runs. Idempotency is keyed on (this token, this tool, idempotency_key), not on the arguments.
Args: project_id: project. scene_uid: the scene. kind: ai_image | ai_clip. prompt: what to show, 1-600 chars. model: optional model id from studio_enums / list_models. confirm_cents: the most the user agreed to pay, in cents. idempotency_key: unique per purchase (recommended).
Returns: {ok, job_id|null, reused?, cents, poll}: poll studio_get_project until that scene's visual.state is no longer "generating"; the result lands on the scene.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"project_id": "<project_id>",
"confirm_cents": "<confirm_cents>",
"scene_uid": "<scene_uid>",
"kind": "<kind>",
"prompt": "<prompt>"
},
"name": "studio_visual"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| model | No | ||
| prompt | Yes | ||
| scene_uid | Yes | ||
| project_id | Yes | A project id from studio_list_projects. | |
| confirm_cents | Yes | The most the user agreed to pay, in whole cents (0 learns the price). | |
| idempotency_key | No | Any unique string (1-200 printable chars) so a retry never buys twice. |