{"slug":"scenario-runway","title":"scenario-runway","summary":"Use when generating or editing video with Runway models on Scenario via MCP: text-to-video or image-to-video from a first frame with Gen4.5 (cinematic motion, sequenced actions, camera choreography), or video-to-video editing of real footage with Aleph 2 (remove objects, swap pro","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-10-17T09:10:56.575373Z","repo":{"url":"https://github.com/scenario-labs/skills","stars":1035,"forks":129,"license":"MIT","updatedAt":"2026-10-17T05:01:44Z"},"bodyHtml":"<hr>\n<h2>name: scenario-runway\ndescription: \"Use when generating or editing video with Runway models on Scenario via MCP: text-to-video or image-to-video from a first frame with Gen4.5 (cinematic motion, sequenced actions, camera choreography), or video-to-video editing of real footage with Aleph 2 (remove objects, swap products, restyle or relight shots, keyframe-pinned reference images, motion and audio preserved). Keywords: Runway ML, Gen4.5, Gen-4.5, Aleph, T2V, I2V, V2V, first frame.\"\nlicense: MIT</h2>\n<h1>Scenario Runway Video</h1>\n<h2>Overview</h2>\n<p>Runway's family on Scenario splits by direction: Gen4.5 generates new clips from text or a first-frame image; Aleph 2 rewrites existing footage, changing what the prompt names while motion, audio, and structure carry over. Discover both with <code>search</code>; <code>model_schema_get</code> is the contract.</p>\n<p>Connection and the core loop: the <code>scenario</code> skill; model-agnostic video work: the <code>scenario-video</code> skill. If a sibling skill named here is missing from your available skills, ask the user to install it (<code>npx skills add scenario-labs/skills --skill &lt;name&gt;</code>); unattended, proceed from tool schemas and flag the gap.</p>\n<h2>Quick reference</h2>\n<p>Mode follows from the inputs (names and caps from the live schema):</p>\n<table>\n<thead>\n<tr>\n<th>Mode</th>\n<th>Inputs</th>\n<th>Behavior</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Text (Gen4.5)</td>\n<td><code>prompt</code></td>\n<td><code>aspectRatio</code> honored; <code>duration</code> 2 to 10 seconds</td>\n</tr>\n<tr>\n<td>First frame (Gen4.5)</td>\n<td><code>image</code> + <code>prompt</code></td>\n<td>opens on that frame; same <code>duration</code>; <code>aspectRatio</code> ignored</td>\n</tr>\n<tr>\n<td>Edit (Aleph 2)</td>\n<td><code>video</code> + <code>prompt</code></td>\n<td>rewrites visuals; motion, audio, structure persist</td>\n</tr>\n</tbody>\n</table>\n<p>At authoring time Aleph capped sources at 30 seconds and 16 MB, separate limits: high-bitrate clips hit the size cap first. Its median cost ran six times Gen4.5's, a fifteen-fold spread following the source video: <code>dry_run</code> the exact payload first. Median latency neared six minutes, so <code>jobs_wait</code> will time out mid-job; re-call it with <code>pending_job_ids</code>.</p>\n<h2>Gen4.5 prompts follow the mode</h2>\n<p>Text mode needs both the visuals and the motion described. A first frame fixes subject, composition, and palette: spend the whole prompt on motion, camera, and atmosphere. Order beats explicitly (\"kneels, then rises, camera cranes up\") and give multi-beat prompts 8 to 10 seconds of <code>duration</code>. Name camera moves plainly (locked camera, pan, dolly, tracking, orbit, crane), one or two per clip, in present-tense prose.</p>\n<p><code>aspectRatio</code> takes pixel pairs (<code>\"1280:720\"</code>, <code>\"960:960\"</code>), and text mode honored only the 16:9 and 9:16 pairs at authoring time; get other shapes (1:1, 4:3, 3:4, 21:9) from a first frame with that geometry instead.</p>\n<h2>Aleph changes what you name</h2>\n<p>An Aleph prompt states the edit: remove, swap, restyle, relight. Everything unnamed persists, along with motion and audio: Aleph cannot re-choreograph or add camera moves; when motion must change, generate with Gen4.5. To steer the edit, pin up to 5 reference images: <code>keyframes</code> places each image (<code>uri</code>) by <code>seconds</code> or <code>at</code> (a 0 to 1 fraction); <code>promptImage</code> by <code>positionType</code> plus <code>timestampSeconds</code> or <code>positionPercentage</code>. The arrays are alternatives, never combined.</p>\n<h2>Worked example: swap a product in real footage</h2>\n<ol>\n<li><code>search</code> with <code>target=\"models\"</code>, <code>query=\"runway\"</code>, <code>public=true</code>, e.g. <code>model_runway-aleph-2</code> for editing, <code>model_runway-gen4-5</code> for generation (live hits at authoring time: re-discover each session).</li>\n<li><code>model_schema_get</code> with the Aleph id before anything else.</li>\n<li>Trim or compress a source over the caps (see <code>scenario-video</code>); <code>upload_asset</code> the clip and product still (see the <code>scenario</code> skill).</li>\n<li><code>model_run</code> with <code>dry_run=true</code> and the exact <code>parameters={\"prompt\": \"Replace the soda can with the bottle from the reference image. Keep everything else unchanged.\", \"video\": \"asset_clip\", \"keyframes\": [{\"uri\": \"asset_bottle\", \"at\": 0}]}</code>; re-estimate after any trim.</li>\n<li>Repeat with <code>wait=false</code>, then <code>jobs_wait</code> the returned job id, re-calling with <code>pending_job_ids</code>; a timeout is not a failure and never justifies a second <code>model_run</code>.</li>\n<li><code>asset_display</code> the output; check the swap holds in every shot.</li>\n</ol>\n<h2>Common mistakes</h2>\n<ul>\n<li>Sending both <code>keyframes</code> and <code>promptImage</code>: exclusive alternatives; pick one.</li>\n<li>Restating the first frame in an image-mode prompt: prompt motion and camera instead.</li>\n<li>Passing <code>aspectRatio</code> as <code>\"16:9\"</code> or alongside <code>image</code>: pixel pairs only, and a first frame overrides it.</li>\n<li>Asking Aleph for new motion or camera moves: the source's motion persists by design.</li>\n</ul>\n","files":[{"path":"SKILL.md","sizeBytes":4666,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-10-17T09:12:30.617673Z","sha256":"361ED47CD0AF8380C4A5A4946F44B16121941A473AFB217D91C93974B45E5216","sizeBytes":2270},"review":null,"source":{"repositoryUrl":"https://github.com/scenario-labs/skills","path":"skills/scenario-runway","license":"MIT","commit":"dc592af7139ffacfe8fdae7dc7efa80f4dd09be3","subtreeSha":"5C9AC966A48FCB7EBAB058DE5708A4561EC6D361A74A6A2AF24277265EB4BEEA","lastSyncedAt":"2026-10-17T09:10:46.286688Z"},"reviewedAt":"2026-10-17T09:15:23.181381Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/scenario-labs/skills/tree/main/skills/scenario-runway"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install scenario-labs-skills@llmmart"},{"target":"git","command":"git clone https://github.com/scenario-labs/skills.git"}]}