{"slug":"scenario-veo","title":"scenario-veo","summary":"Use when generating or extending video with Google Veo models on Scenario via MCP: text-to-video, image-to-video from a first frame, first and last frame transitions, reference-to-video (R2V) with asset or style reference images, native audio with dialogue, sound effects, and amb","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-10-17T09:10:55.839268Z","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-veo\ndescription: \"Use when generating or extending video with Google Veo models on Scenario via MCP: text-to-video, image-to-video from a first frame, first and last frame transitions, reference-to-video (R2V) with asset or style reference images, native audio with dialogue, sound effects, and ambience, negative prompts, seeded reruns, extending a 16:9 clip, or choosing a quality, fast, or lite tier. Keywords: Veo 3.1, Veo 3.1 Fast, Veo 3.1 Lite, Extend Video, Google, T2V, I2V, V2V, 720p, 1080p.\"\nlicense: MIT</h2>\n<h1>Scenario Veo Video</h1>\n<h2>Overview</h2>\n<p>Veo, Google's video family on Scenario, ships four members at authoring time: Veo 3.1 (full quality, reference images with a style switch), Veo 3.1 Fast (same modes, quicker, no switch), Veo 3.1 Lite (frame anchors only, cheapest), and Veo 3.1 Extend Video (continues a clip). Discover them with <code>search</code> and treat <code>model_schema_get</code> as the contract: members agree on parameter names and disagree on which inputs exist at all.</p>\n<p>Connection and the core loop: see the <code>scenario</code> skill in this repo; 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 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</td>\n<td><code>prompt</code></td>\n<td><code>aspectRatio</code> 16:9 or 9:16</td>\n</tr>\n<tr>\n<td>First frame</td>\n<td><code>image</code> (+ <code>prompt</code>)</td>\n<td>opens on that frame; a mismatched image may be cropped</td>\n</tr>\n<tr>\n<td>Transition</td>\n<td><code>image</code> + <code>lastFrameImage</code></td>\n<td>bridges the stills; prompt one continuous move</td>\n</tr>\n<tr>\n<td>Reference</td>\n<td><code>referenceImages</code> (1 to 3)</td>\n<td>subject or style consistency; <code>duration</code> locked to 8</td>\n</tr>\n<tr>\n<td>Extend</td>\n<td><code>video</code> (Extend member)</td>\n<td>continues the clip; 16:9 source, short side 720p or 1080p</td>\n</tr>\n</tbody>\n</table>\n<p><code>image</code> and <code>referenceImages</code> are mutually exclusive. <code>referenceImagesType</code> exists on full Veo 3.1 alone and reads the whole array one way: <code>ASSET</code> (default) carries subjects, objects, and scenes; <code>STYLE</code> carries palette, lighting, and texture. Fast takes references without the switch; Lite takes none. Shared across the three generators at authoring time: <code>negativePrompt</code>, <code>resolution</code> (<code>720p</code>, <code>1080p</code>), <code>duration</code> (4, 6, or 8 seconds), and <code>seed</code>. <code>generateAudio</code> is required on every member and moves the price. The Extend member takes only <code>prompt</code>, <code>video</code>, <code>generateAudio</code>, and <code>seed</code>: no duration, resolution, or ratio controls. At authoring time price spanned roughly five times between Lite and full 3.1 for one image-to-video job, and one extension cost more than a fresh full generation, so aim for the shot in one 8 second pass and <code>dry_run</code> the same payload on two members before a batch.</p>\n<h2>The soundstage is in the prompt</h2>\n<p>With <code>generateAudio: true</code>, Veo renders synchronized dialogue, effects, and ambience, and it takes audio direction literally. Put spoken lines in quotation marks, prefix effects with <code>SFX:</code> and room tone with <code>Ambient noise:</code>. A prompt with no audio direction still gets a soundtrack, just not the one you meant. When a clip needs silence for later scoring, set <code>generateAudio: false</code> rather than prompting for quiet.</p>\n<h2>Prompt one continuous shot</h2>\n<p>Write present-tense prose ordered as cinematography, subject, action, context, style: camera and shot scale first, one primary arc, roughly 90 to 250 words. For several beats in one clip, timestamp lines work (<code>[00:00-00:02] Medium shot...</code>), spans fitting inside the chosen duration.</p>\n<h2>Worked example: a dialogue shot from character references</h2>\n<ol>\n<li><code>search</code> with <code>target=\"models\"</code>, <code>query=\"veo\"</code>, <code>public=true</code>. Prefer the newest non-deprecated hits, e.g. <code>model_veo3-1</code> and <code>model_veo3-1-fast</code> (live hits at authoring time: re-discover each session).</li>\n<li><code>model_schema_get</code> on the chosen id: confirm which reference inputs exist before writing the payload.</li>\n<li><code>upload_asset</code> two character stills (see the <code>scenario</code> skill) to get asset ids.</li>\n<li><code>model_run</code> with that <code>model_id</code>, <code>dry_run=true</code>, and <code>parameters={\"prompt\": \"Medium shot, the knight lowers her visor and says, \\\"Hold the line.\\\" Torchlight flickers on wet stone. Ambient noise: distant thunder. SFX: metal visor clank.\", \"referenceImages\": [\"asset_a\", \"asset_b\"], \"referenceImagesType\": \"ASSET\", \"duration\": 8, \"resolution\": \"1080p\", \"aspectRatio\": \"16:9\", \"generateAudio\": true}</code>. Estimate the same job on the Fast id (drop <code>referenceImagesType</code>, absent there) and compare.</li>\n<li>Repeat <code>model_run</code> with <code>wait=false</code>, then <code>jobs_wait</code> with the returned job id, re-called with <code>pending_job_ids</code> on timeout, never a second <code>model_run</code>.</li>\n<li><code>asset_display</code> the output and review with sound. To iterate on wording alone, hold an explicit <code>seed</code> fixed across reruns.</li>\n</ol>\n<h2>Common mistakes</h2>\n<ul>\n<li>Combining <code>image</code> with <code>referenceImages</code>: mutually exclusive; pick the opening state or consistency.</li>\n<li>Any duration but 8 with <code>referenceImages</code>: reference mode supports only 8 seconds.</li>\n<li>Sending <code>referenceImages</code> to Lite or <code>referenceImagesType</code> to Fast: the schema decides which inputs exist.</li>\n<li>Omitting <code>generateAudio</code>: it is required on every member; pass it explicitly.</li>\n<li>Extending a 9:16 clip: Extend takes 16:9 sources with a 720p or 1080p short side only.</li>\n<li>Writing the prompt as a list of negatives: describe the wanted scene, reserve <code>negativePrompt</code> for what to discourage.</li>\n</ul>\n","files":[{"path":"SKILL.md","sizeBytes":5675,"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:28.442222Z","sha256":"9BA57E18458564EC3F8B3FFC05CE94566A44C48AF5F57C3FB2968C4F1FC34088","sizeBytes":2656},"review":null,"source":{"repositoryUrl":"https://github.com/scenario-labs/skills","path":"skills/scenario-veo","license":"MIT","commit":"dc592af7139ffacfe8fdae7dc7efa80f4dd09be3","subtreeSha":"BDF23FBDF1FD40498EEFAAE5FCA4DC5FBB1EAFADCB3F7C30974BE485A97A081D","lastSyncedAt":"2026-10-17T09:10:46.286688Z"},"reviewedAt":"2026-10-17T09:15:03.271143Z","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-veo"},{"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"}]}