render_edit
Build and check a video edit from a recipe as a job. Use base and changes for versioned edits in Takes, then publish when ready.
Instructions
Build an edit from a recipe, as a job, and check it. First version: recipe={name, cut} (cut = rough_cut's cut) plus what you need: frame {shape '9:16'|'16:9'|'1:1'|'4:5'|'source', crop}, over (picture layers: alpha graphics or b-roll, with at/in/out), music and sfx (file, at, gain_db), steps (commands that make the layers, run in _edit//), cover (a thumbnail). Next version: base= and changes (a JSON merge patch on the newest recipe; a list replaces the whole list; {"name": "hook-vertical"} starts a new line). Takes uses the clean voice once and never uses a finished edit as an input. One render of a name runs at a time: to compare two options, give the second a new name. Returns a job; then publish_edit.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | The edit to start from: 'hook' (its newest version), 'hook-v4' or 'edits/hook-v4.mp4'. Required when the session has more than one edit name with a recipe. | |
| recipe | No | A whole recipe. For a first version, or to rebuild an edit that has no recipe. Times in over, music and sfx are seconds of the cut (a cover adds its own). | |
| wait_s | No | Wait up to this many seconds (max 120) and return the finished result inline. Default 0. | |
| changes | No | A JSON merge patch on the base recipe. A list replaces the whole list, so repeat the whole entry: {"music": [{"file": "@library/audio/Music/Calm.mp3", "at": 0, "in": 14, "gain_db": -21, "duck_db": 8, "fade_out": 1.5}]}. {"name": "hook-vertical"} starts a new edit line. null removes a field ("cover": null). | |
| go_back | No | true to build on an older version on purpose. Without it, an old base is refused. | |
| session | Yes | Session as 'Project/folder', an absolute path, or its id (from get_session). An old path still works after a rename or move. |