npx skills add ...
npx skills add scenario-labs/skills --skill scenario-formats
Use when one approved visual, image or video, must ship at many sizes or placements through Scenario: adapting a master to 1:1, 4:5, 9:16, or 16:9, social formats for feeds and stories, YouTube thumbnails, storefront capsules and app store graphics, marketplace product images, link previews, display banners, a website hero, or choosing between crop, resize, expand, and generative reframe. Keywords: aspect ratio, resize, reframe, outpaint, expand, derivative, safe zone, thumbnail, banner.
npx skills add scenario-labs/skills --skill scenario-formats
Format adaptation is derivation, not regeneration: re-prompting the concept per placement makes five cousins, not five formats of one approved master. The failure modes are picking the wrong operation (a resize where canvas needed inventing, a crop that beheads the subject) and deriving in the wrong order. The canvas tools' exact contracts live in scenario-image-editing; this skill is the decision ladder and the order of operations around them, with per-placement ratios, pixel targets, and safe zones in references/placement-specs.md. A video master climbs the same ladder: video resize versus generative reframe lives in scenario-video-editing, and far ratios recompose per scenario-video. Connection and the core loop: see the scenario skill. Lettering per format: scenario-text-overlay. If a sibling skill named here is missing from your available skills, ask the user to install it (npx skills add scenario-labs/skills --skill <name>); unattended, proceed from tool schemas and flag the gap.
Per target format, take the first rung that fits. Each rung is a model_run on a model found with search (target="models", public=true), never a dedicated MCP tool of its own:
| The target needs | Operation |
|---|---|
| Same ratio, other pixels | Resize: exact, scales pixels, invents nothing |
| A tighter ratio, edges expendable | Resize with fit: "cover": exact, center-crops the overflow; only when the subject clears the cut |
| More canvas, composition intact | Expand or uncrop: exact pixels, fills outward |
| Another ratio, recomposed around the subject | Generative reframe; the text-protecting variant when lettering or marks are on the plate |
| A far ratio or a new visual hierarchy | Recompose natively: a fresh run per scenario-image with the master as reference (scenario-consistency), composed for that ratio |
The last rung applies more often than it looks: 16:9 key art seldom survives to 9:16 by any amount of outpainting, which is why the director siblings (scenario-video-ads) design each delivery ratio as its own composition.
scenario-image-editing holds the pipeline order). A video reframe also precedes any upscale: it renders at its own resolution tier whatever the input carries (1080p at most at authoring time), so an upscale ahead of it is discarded; upscale the reframed clip to delivery size.asset_analyze (scenario-asset-analysis).scenario-text-overlay, sized to each final canvas, since type scaled by a resize turns soft and each placement has its own safe area. Keep critical content and text away from the edges platform UI covers: each placement's target and safe zone is in references/placement-specs.md as an authoring-time value, so confirm contractual specs with the user (unattended, task instructions win over the reference, and the delivery report states which was used).scenario-image with the master as reference and a 9:16 composition clause; the master holds palette and subject on-look.asset_display the result and judge it small: thumbnails are seen at a tenth of their size.asset_analyze pass, then overlay the title card per format onto each final canvas and file the set in a collection.fit: "stretch"): it distorts. A ratio change is fit: "cover" when the edges are expendable, else reframe, expand, or recomposition.dry_run on reframes: generative canvas work is the expensive step in the chain, tens of times an effect's price (scenario-image-editing).