Nodaro Docs
DocumentationNode ReferenceModelsAI Agents (MCP)DevelopersSelf-hostingResearch
Tools reference

Studio productions

Parameters of every studio production tool, from free plan validation to frame, motion, voice and soundtrack generation, with scopes and quotes.

Available on Nodaro Cloud

The studio production tools create and change films that open in the Nodaro Studio editor at studio.nodaro.ai. This page lists each tool's parameters. Studio productions explains the loop, the words to use with the user, the edit operations and the spending rules; read it first.

Studio productions are a Nodaro Cloud feature. On a deployment without them, every tool in this family answers not_available. Call list_studio_productions to check before you offer the feature.

Tools, permissions and prices

ToolPermissionCredits
get_studio_production_skillnoneFree
validate_studio_planworkflows:readFree
list_studio_productionsworkflows:readFree
get_studio_productionworkflows:readFree
plan_studio_exportworkflows:readFree, it is a quote
create_studio_productionworkflows:writeFree
import_studio_productionworkflows:writeFree
edit_studio_productionworkflows:writeFree
share_studio_productionworkflows:writeFree
clone_studio_productionworkflows:writeFree
describe_studio_productionworkflows:write and workflows:executeOne LLM run
generate_studio_stillworkflows:write and workflows:executePer candidate image
generate_studio_keyframeworkflows:write and workflows:executeOne image
generate_studio_clipworkflows:write and workflows:executeOne video
new_studio_shot_from_frameworkflows:write and workflows:executeOne frame extraction
voice_studio_shotworkflows:write and workflows:executeOne text to speech run
revoice_studio_clipworkflows:write and workflows:executeA revoice run
score_studio_productionworkflows:write and workflows:executeOne music run

The tools that spend credits, and share_studio_production, which changes who can see the work, carry a confirmation mark in their definition. The spending tools accept client_request_id, a retry token of 8 to 128 characters: send the same value again after a timeout, and nothing is started or charged twice.

Plan and read

get_studio_production_skill

Returns the guide an assistant reads before it works on a production. It is generated from the live deployment.

ParameterTypeNotes
partstringoperating (default): the tool map, the loop and the edit operations. authoring: the plan format. catalog: every picker, model and option. schema: the JSON Schema of a plan.

validate_studio_plan

Checks an authored plan, free, and saves nothing. It also resolves every cast name against your own characters, locations, objects and creatures.

ParameterTypeNotes
planobjectRequired. The nodaro-studio-production plan.

Returns: valid, errors (each naming its field), warnings and a summary that says how many cast names matched your library. Fix the errors and call again until valid is true.

list_studio_productions

Lists your productions, newest first: id, name, version, thumbnail, whether it is shared, and the number of scenes. Archived productions are hidden, as on the dashboard.

ParameterTypeNotes
limitintegerFrom 1 to 100. Default 25.
cursorstringThe nextCursor of the previous page.

get_studio_production

Returns one production: its film look, cast, folders, cuts, bin, what is running, and its scenes in timeline order. With workflows:write, it first lands every job that finished since the last read, so this read is how a finished generation reaches its scene.

ParameterTypeNotes
production_idstringRequired. The production id.
detailstringsummary (default): counts and each scene's current frame. full: every past result, with the context that made it.
shot_idstringReads one scene only, the cheap read after a generation.
reconcilebooleanfalse reads without landing finished jobs. Default true.

Returns: the production, and a pending block that names what is still running. Address a result by its key, the job id or the URL, never by its position.

plan_studio_export

Returns the ordered steps that would export the production, with a credit estimate. It starts nothing and charges nothing: show it to the user before they accept.

ParameterTypeNotes
production_idstringRequired. The production id.
upscalebooleanAdds the 4K pass, which is expensive. Default false.

Create and change

create_studio_production

Creates a production in your own Studio project. It appears on your dashboard at studio.nodaro.ai at once. With a plan, every scene, cast binding and film look lands with it; without one, the production is empty. Validate the plan first.

ParameterTypeNotes
planobjectA validated plan.
namestringThe name, when the plan has no title of its own. Up to 200 characters.

import_studio_production

Adds a plan's scenes to an existing production, and enrolls the new cast members. It never renames the production or changes its brief or its look.

ParameterTypeNotes
production_idstringRequired. The production.
planobjectA validated plan. Pass this or plan_job_id.
plan_job_idstringA finished LLM job whose output is a studio production plan. A job that is still running is refused with not_finished.

Reload the editor around an import

If the production is open in the studio editor, the editor saves its own copy shortly after any edit and overwrites the scenes you added. Ask the user to reload the editor before the import and again after it.

edit_studio_production

Changes a production with a batch of operations, such as renaming a scene, reordering the timeline, selecting a take, setting the shots inside a scene's motion, enrolling a cast member or emptying the bin. The operations and their arguments are served by get_studio_production_skill with part: "operating".

ParameterTypeNotes
production_idstringRequired. The production.
opsarrayRequired. 1 to 100 operations, applied in order.
dry_runbooleanPreviews the batch: what each operation would do, at which version, and whether each delete could be restored. Nothing is written.
expected_versionintegerThe version you composed the batch against.
strictbooleanRefuses with a conflict, instead of rebasing, when the production changed. Needs expected_version.

Returns: receipts, one past-tense line per operation. The batch is applied as one step: if one operation is refused, the answer names its index and nothing is written. A batch composed against a slightly older version still applies, and rebased: true says so.

share_studio_production

Publishes the production to a share link, or makes it private again. Anyone with the link can read a shared production, so ask the user first. This tool is the only way sharing changes.

ParameterTypeNotes
production_idstringRequired. The production.
sharedbooleanRequired. true publishes the link, false takes it back.

clone_studio_production

Copies a production, yours or one shared with you, into your Studio project. The copy starts private and carries the graph and every landed result. Use it before a risky round of edits.

ParameterTypeNotes
production_idstringRequired. The production to copy.
namestringThe copy's name. Default: the original name plus " copy".

Generate

A generation returns job ids at once. The finished result joins its scene only on the next get_studio_production; get_job and wait_for_job report the status and land nothing.

describe_studio_production

Hands a brief to the Director, which writes scenes, cast and looks into the production. Use it when the user has a story rather than a plan.

ParameterTypeNotes
production_idstringRequired. The production.
briefstringRequired. The story, the tone and the constraints.
llm_modelstringRequired. The LLM that drafts the production, from list_models.
modestringappend (default) adds scenes. replace rewrites the production.
labelstringA name for the run.
client_request_idstringA retry token.

generate_studio_still

Generates candidates for a scene's frame, from what the scene already says: its prompt, references, cast and direction. Generating again adds takes; it never replaces one.

ParameterTypeNotes
production_idstringRequired. The production.
shot_idstringRequired. The scene's id.
countintegerHow many candidates, from 1 to 10. Default: the scene's own setting.
overridesobjectSettings for this call only.
dry_runbooleanReturns the model and the price, and starts nothing. credits: null means the price is unknown, not free.
client_request_idstringA retry token.

generate_studio_keyframe

Generates one candidate for a planned frame, a frame the user reviews and accepts, which is different from a scene's frame. A derived frame needs an accepted parent. There is no quote for this tool, and dry_run: true is refused.

ParameterTypeNotes
production_idstringRequired. The production.
keyframe_idstringRequired. The planned frame.
expected_revisionintegerRequired. The revision of the frame plan you reviewed.
overridesobjectThe model, aspect ratio and resolution. The plan owns the prompt and the references.
client_request_idstringA retry token.

Landing the candidate neither accepts it nor starts another frame. Accept it with edit_studio_production after review. This tool needs a deployment that supports planned frames.

generate_studio_clip

Generates a scene's motion from its frame, its start and end frames and its direction.

ParameterTypeNotes
production_idstringRequired. The production.
shot_idstringRequired. The scene's id.
modestringForces a lane: start sends only the start frame, start-end sends the start and the end frame, and references sends the reference media. Leave it out to follow the scene's saved inputs.
overridesobjectSettings for this call only.
dry_runbooleanReturns the model and the price, and starts nothing.
retake_result_keystringRetakes an existing linked take with its original settings. Leave mode and overrides out.
expected_input_hashstringRequired to submit a retake: the hash from the retake's quote.
client_request_idstringA retry token.

To retake a linked take exactly, first call with retake_result_key and dry_run: true, and review the price and the inputHash. Then submit the same call with expected_input_hash and a new client_request_id, without dry_run. The retake uses the take's original settings and endpoint images, even if the plan changed since. Deployments advertise this with the operations.retakeLinkedClips capability.

new_studio_shot_from_frame

Takes a frame from a scene's current motion and puts it to work. The call waits for the extraction and answers with the updated production.

ParameterTypeNotes
production_idstringRequired. The production.
shot_idstringRequired. The scene whose motion you take the frame from.
targetstringnew-shot (default) opens the next scene on the frame. start-frame or end-frame pins it as this scene's endpoint. still adds it as a take of this scene's frame.
modestringfirst (default), last or timestamp.
timestampnumberSeconds, for timestamp.
client_request_idstringA retry token.

voice_studio_shot

Speaks a line over a scene, as a voiceover. The call waits for the speech and answers with the updated production.

ParameterTypeNotes
production_idstringRequired. The production.
shot_idstringRequired. The scene.
textstringRequired. The line to speak.
voice_id, voice_typestringA voice from list_voices. Leave them out to keep the scene's own voice settings.
deliveryobjectDelivery settings, such as speed and stability.
tts_providerstringThe speech model, when it matters.
client_request_idstringA retry token.

revoice_studio_clip

Replaces the voices inside a scene's current motion: the dialogue is performed again and mixed back over the same picture.

ParameterTypeNotes
production_idstringRequired. The production.
shot_idstringRequired. The scene.
planobjectRequired. Which speaker gets which voice. The operating guide describes its shape.
client_request_idstringA retry token.

score_studio_production

Writes one soundtrack for the whole production from a description of the music.

ParameterTypeNotes
production_idstringRequired. The production.
promptstringRequired. The music: mood, instruments, genre. Up to 2,000 characters.
durationnumberSeconds, from 1 to 600.
instrumentalbooleanNo vocals.
vocal_genderstringThe singer's voice.
modelstringThe music model, from list_models.
client_request_idstringA retry token.

Frequently asked questions

Last updated on

On this page