Make a Short Video (screenplay → footage → edit → MP4)
run_cinema_pipelineTurn a one-line idea into a multi-scene video with screenplay, stock or storyboard shots, narration, soundtrack, and an MP4 render; dry-run first to preview plan and cost.
Instructions
Use when the user wants a short video from a one-line idea. Writes a multi-scene screenplay with shot-to-shot continuity, fills each shot with stock footage (Pexels/Pixabay/Unsplash, only if their keys are set) or an offline storyboard frame, optionally adds narration (offline system TTS + captions) and a soundtrack fitted to the cut, edits a frame-accurate timeline (hard cuts in a scene, dissolves between scenes) and renders an MP4 with Remotion or ffmpeg. TIP: call with dry_run:true first — it returns the screenplay, shot list, provider choice and a cost/network estimate instantly without writing files, so you can show the user before producing. Network/money: stock APIs are used automatically when keys exist (free; set stock:false to stay offline). generative:true calls paid-or-quota video APIs (budget-guarded; approveOverBudget:true to exceed). With no keys everything runs offline. Returns: projectId, rendered MP4 path (if rendered), screenplay.md, timeline.json, attributions, warnings, next steps. interactive_montage pauses before the edit so a human can reorder/replace clips, then compile_montage finishes.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fps | No | Frames per second (default 30). | |
| stock | No | Use stock APIs when keys are configured (default true). false = fully offline storyboard/animatic. | |
| style | No | Visual style, e.g. 'noir', 'documentary', 'neon cyberpunk'. Also steers lighting. | |
| width | No | Frame width (default 1920). Use 1080 with height 1920 for vertical. | |
| enrich | No | SPENDS MONEY: true + ANTHROPIC_API_KEY polishes the screenplay prose with one Anthropic API call. Default false (offline template prose). | |
| height | No | Frame height (default 1080). | |
| prefer | No | Prefer motion b-roll ('video', default) or stills ('image') from stock. | |
| prompt | Yes | The video idea, e.g. 'a lone lighthouse keeper watching a storm roll in'. | |
| render | No | Render the MP4 now (default true in fully_automated). Uses Remotion if installed, else ffmpeg. | |
| dry_run | No | true = plan only: screenplay, shot list, providers, cost estimate. No files, no network, no quota. | |
| captions | No | Burn narration captions into the video (default true). | |
| narration | No | Narration script. Spoken offline by the system TTS (say/flite/espeak-ng), captioned, locked to the timeline; the last shot is held if the narration runs long. | |
| generative | No | SPENDS QUOTA/MONEY: generate clips with your Replicate/fal/HF video model (default false). | |
| musicStyle | No | Soundtrack genre: 'lo-fi', 'cinematic orchestral', 'hip-hop', 'trap', 'rock', 'electronic', 'ambient'. | |
| sceneCount | No | Number of scenes (default 3–5 from the prompt). Scenes follow a story arc. | |
| soundtrack | No | Add an offline-synthesized soundtrack fitted to the video length, ducked under narration. | |
| shotsPerScene | No | Shots per scene (default 2): establishing → medium → close. | |
| workflow_mode | No | fully_automated renders in one call; interactive_montage stops after gathering clips (then use compile_montage). | fully_automated |
| approveOverBudget | No | Only after the user agrees: proceed past the free-tier budget guard. | |
| shotDurationSeconds | No | Seconds per shot (default 4). |