Assemble a silent, music-led 3-world product-tour ad — trim and hard-cut-concat the per-world WIDE-arrival + top-down-macro clips, composite the HTML/Playwright brand end card (approved headline + handwritten product labels + arrows) over an AI flat-lay background, and mux one music bed into a 720x1280 web master. FREE, deterministic assembly (Playwright + PIL/HTML + FFmpeg); the recipe supplies the config and gates the paid clip/background/music calls. Use for the multiworld-product-tour format.
56
71%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/ads/capabilities/render-multiworld/SKILL.mdAssemble a silent, music-led "multi-world product tour" ad (≈27s, 9:16) — a tour of three distinct "third-place" worlds (chosen per video), one per product/variant, that lands on a Pinterest-style brand end card. Each world is a two-shot pair: a ~4.5s WIDE kinetic-calm ARRIVAL (the environment dominates, the product stays small) hard-cutting to a ~3.5s top-down MACRO product MOMENT (the sealed product nested with its companion prop). Variant identity is carried by the world + companion prop, not by product color. No VO, no captions in the scenes — one music bed carries the whole thing.
This capability is the FREE, deterministic assembler. The paid steps — the six per-world clips, the AI flat-lay end-card background, the ElevenLabs music bed — are separate capabilities (see the gap below for the clips); the recipe orchestrates and gates them.
The calling recipe asks the user these before any paid step; this capability only assembles what they produced. The worked example (Primally Pure) values are examples, never defaults.
config.worlds, config.scene_grid (demo: pilates
studio / spa anteroom / farmers market).config.visual_style, worlds[*].palette,
end_card.nb2_prompt (demo: sunlit-natural / handmade).config.music.prompt (demo: warm acoustic-pop).Nothing in the assembly keys on world slugs or names: clips are ordered by
scene_grid[].scene, and the end-card copy is whatever end_card.overlay holds.
scene_grid[].duration_sec
(arrival 4.5 / macro 3.5), re-encode to the master spec (720×1280, 24fps, yuv420p,
scale+pad, audio stripped). Trimming the macro so the top-down portion dominates also
hides any label misrender at the clip's upright tilt extreme.end_card.html over the AI flat-lay
BACKGROUND, then FFmpeg-encode to a dwell_sec (3.0s) static clip. Headline
(overlay.headline, approved brand copy — the demo's was "FIND YOUR DAILY."; Inter 900),
one handwritten Caveat product label + hand-drawn SVG arrow per product, Playfair
wordmark + URL. End-card text is HTML, NEVER AI-rendered —
the AI step produces the background only.afade in/out + loudnorm I=-16:TP=-1.5:LRA=11, AAC 192k, clamped to
27.0s, explicit single-audio map so no silent scene-track leaks in → the H.264 (+ AAC)
720×1280 master.create-image-fal (nano_banana_2
keyframe edit grounded on the real product_image) → create-video-fal (Kling 3.0 i2v),
so the gap below only applies to reproducing the demo's Higgsfield build exactly.marketing_studio_video/product_showcase) grounded on imported product UUIDs, with the
sealed-bottle safety block front-loaded on every prompt. create-video-fal is a FAL i2v
proxy — a different provider and job shape — so it cannot serve this step. Wiring the clip
step to templates-as-data requires a create-video-higgsfield proxy (Marketing Studio
product_showcase, imported-product grounding, per-prompt safety block) that does not
exist yet. Until it lands, the clips are generated via the Higgsfield Marketing Studio
path directly (CLI/MCP) and that step is not a fetchable capability.See scripts/PIPELINE.md for the full config-field → source-step map and scripts/README.md
for the FREE-assembly detail.
cc3e518
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.