# Pipelines

> Start a Story to Video pipeline from a prompt, watch its stages, approve or refine them in chat, and branch a finished pipeline from any stage with MCP tools.

Source: https://nodaro.ai/docs/mcp/tools/pipelines

The **pipeline tools** drive the Story to Video pipeline from an AI assistant. One prompt starts a pipeline that writes a script, creates the cast and places, plans and renders the shots, and merges a finished film. The assistant can watch the stages, approve them, refine them in a chat, and branch a finished pipeline from any stage. The canvas version of the same engine is the [Story to Video](https://nodaro.ai/docs/nodes/video/story-to-video) node.

The pipeline tools exist on Nodaro Cloud and the Business edition. They appear only when you granted the `pipelines:read`, `pipelines:execute` and `pipelines:approve` permissions.

## The stages

A pipeline runs these stages in order: `script`, `characters`, `objects`, `locations`, `shot_list`, `scene_images`, `animate_audio_edit` and `post_merge`. In `auto` mode it runs them all without stopping. In `manual` and `guided` mode it stops at approval gates, and the stage waits with the status `awaiting_approval`.

## `start_pipeline`

Starts a new Story to Video pipeline from a story prompt.

**Permission:** `pipelines:execute`. **Credits:** the credits of every generation the pipeline runs. `get_pipeline_status` shows the credits as it goes.

| Parameter | Type | Notes |
| --- | --- | --- |
| `story_prompt` | string | **Required.** What the film is about, up to 4,000 characters. |
| `format` | string | `trailer`, `short_film`, `music_video`, `reel` or `commercial`. Default `reel`. |
| `target_duration_seconds` | integer | The length of the film, from 5 to 600 seconds. Default `15`. |
| `mode` | string | `auto` (default) runs to the end unattended. `manual` and `guided` stop at approval gates. |
| `output_resolution` | string | `480p`, `720p`, `1080p` or `4K`. Default `720p`. |
| `music_enabled` | boolean | Adds music. Default `true`. |
| `narration_enabled` | boolean | Adds narration. Default `false`. |
| `lipsync_enabled` | boolean | Syncs the characters' lips to their lines. Default `false`. |

**Returns:** the new pipeline id. Poll `get_pipeline_status`, and `pipeline_pending_approvals` while a stage waits.

Narration and lip sync are off by default when an assistant starts a pipeline, so an unattended run does not spend credits on them unless you ask for them.

## `get_pipeline_status`

Returns the state of a pipeline: its status (`pending`, `running`, `awaiting_approval`, `completed` or `failed`), the current stage, the credit counters, the mode, and `failure_reason` when it failed.

**Permission:** `pipelines:read`. **Credits:** free.

| Parameter | Type | Notes |
| --- | --- | --- |
| `pipeline_id` | string | **Required.** The pipeline id. |

## `pipeline_pending_approvals`

Lists the stages that wait for approval, each with a snapshot of its output. An empty list means nothing waits: the run is in `auto` mode, or it is still generating.

**Permission:** `pipelines:read`. **Credits:** free.

| Parameter | Type | Notes |
| --- | --- | --- |
| `pipeline_id` | string | **Required.** The pipeline id. |

## `chat_pipeline_stage`

Sends a message to the refinement director about a stage that waits for approval, for example "make the ending darker". The pipeline must be in `guided` mode.

**Permission:** `pipelines:approve`.

| Parameter | Type | Notes |
| --- | --- | --- |
| `pipeline_id` | string | **Required.** The pipeline id. |
| `stage` | string | **Required.** The stage that waits: `script` or `post_merge`. |
| `message` | string | **Required.** Your message, up to 8,000 characters. |

**Returns:** the director's reply and, when it proposes an edit, a `proposed_change`. Apply the change with `apply_chat_proposal`.

## `apply_chat_proposal`

Accepts the change a director reply proposed, and approves the stage with that change.

**Permission:** `pipelines:approve`. **Credits:** free.

| Parameter | Type | Notes |
| --- | --- | --- |
| `pipeline_id` | string | **Required.** The pipeline id. |
| `stage` | string | **Required.** The stage of the chat. |
| `turn_id` | string | **Required.** The id of the director's reply whose change you accept. |

## `get_pipeline_stage_chat`

Lists the messages of a stage's chat, oldest first. The list is empty when nobody has written yet.

**Permission:** `pipelines:read`. **Credits:** free.

| Parameter | Type | Notes |
| --- | --- | --- |
| `pipeline_id` | string | **Required.** The pipeline id. |
| `stage` | string | **Required.** The stage of the chat. |

## `branch_pipeline`

Creates a new pipeline that re-runs a completed pipeline from one stage. The stages before it, and their characters, objects and locations, are copied as approved. The chosen stage and every later stage run again.

**Permission:** `pipelines:execute`. **Credits:** the credits of the stages that run again.

| Parameter | Type | Notes |
| --- | --- | --- |
| `pipeline_id` | string | **Required.** A pipeline with the status `completed`. |
| `from_stage` | string | **Required.** `script`, `characters`, `objects`, `locations`, `shot_list`, `scene_images`, `animate_audio_edit` or `post_merge`. |

**Returns:** the new pipeline id.

## Frequently asked questions

### What does a Story to Video pipeline produce?

A finished film from one story prompt. The pipeline writes the script, creates the characters, objects and locations, plans the shots, generates the scene images, animates them with audio, and merges the final cut.

### What is the difference between auto, manual and guided mode?

Auto runs from the prompt to the finished film without stopping. Manual and guided stop at approval gates. Guided also lets you refine the script and the final cut in a chat before you approve.

### Can I re-run a pipeline from the middle?

Yes, once it is completed. branch_pipeline copies the stages before the one you choose as approved, and runs that stage and every later stage again as a new pipeline.

### Why are the pipeline tools missing from my assistant?

They need the pipelines permissions, and they exist on Nodaro Cloud and the Business edition. Reconnect and allow the pipeline permissions on the consent screen.
