Assemble a wordless macro-tabletop food-product sizzle ad from a config — normalize fps and SAR across ~4 photorealistic macro clips (hands tearing, flat lay, bite, box hero), concat them, apply a global anti-AI grain pass (eq plus hqdn3d plus noise), composite the audio (a non-diegetic instrumental music bed plus a couple of short diegetic SFX like a snap and a tear placed at measured cue points, loudnorm), composite a STATIC end card entirely in PIL (real logo PNG plus real product PNG plus a serif heritage headline plus a CTA — never AI-rendered text), and burn optional serif stat-callout pills at beats. This is the FREE deterministic assembly stage (normalized concat plus grain plus music and SFX mix plus PIL end card plus callouts); the macro keyframes, i2v clips, and music bed come from create-image-fal, create-video-fal, and create-music-elevenlabs. Use for the food-product-sizzle format.
npx gooseworks install --all # then, in Claude Code, Cursor, or Codex: /gooseworks use the render-food-product-sizzle skill
Assemble a food-product sizzle ad from a config: a wordless macro-tabletop photorealistic sizzle for a physical food / CPG product — tactile tabletop photography in ONE look pack (setting + light chosen per brand; the demo's is a warm tungsten kitchen), ~4 dynamic macro scenes (hands tearing, a flat lay, a partial-face bite, a box / pack hero) flowing into a static end card, carried by a non-diegetic instrumental music bed + a few diegetic SFX with NO voiceover. This capability is the FREE, deterministic assembly — normalized concat, the anti-AI grain pass, the audio (music bed + SFX) composite, the PIL end card, and the optional serif stat-callout pills.
scripts/config.example.json is the worked example (Lineage Provisions "Beef Sticks Sizzle", ~14s
1080×1920 9:16, ~4 macro scenes + a static end card); scripts/PIPELINE.md maps every config block
to its source step and scripts/README.md documents the free assembly.
The recipe asks these before any paid step; this capability only assembles what they produced. The demo's value is an example, never a default:
setting — surface + room → look_pack.style_descriptor, scenes[].keyframe_prompt,
end_card.background. Demo: warm rustic kitchen (linen, wood, butcher paper, cast iron).light → look_pack.style_descriptor + palette_anchors. Demo: warm tungsten window light.hands — whose hands / mouth appear, or product-only → scenes[].keyframe_prompt +
motion_hint. Demo: a man's weathered hands, stubbled jaw.music → music.prompt. Demo: upbeat bluegrass (banjo, acoustic guitar, brush percussion).This is the FREE, deterministic assembly stage — it spends nothing. The paid inputs are separate
capabilities: ~4 photographic macro keyframes (create-image-fal, Nano Banana; the box / pack hero
grounds on the real product PNG); one locked-off, anti-shake i2v clip per keyframe (create-video-fal,
Seedance); and a non-diegetic instrumental bed in the music choice (create-music-elevenlabs). Given the ~4
clips + the music bed + the diegetic SFX + the real logo PNG + the real product PNG,
render-food-product-sizzle normalizes fps / SAR, concats the body clips, applies the anti-AI grain
pass, composites the audio (bed + SFX at their cue points), composites the static PIL end card, burns
the optional serif callout pills, and muxes → the master. Re-cuts reuse the existing keyframes /
clips / music and cost $0.
eq=contrast=1.06:saturation=0.93,hqdn3d=1.5:1.5:3:3,noise=alls=8:allf=t+u
across the whole video — the noise on a food macro is load-bearing for the tactile / photographic
read, otherwise the sizzle looks AI-smooth.·).% string to a textfile and use ffmpeg drawtext textfile= +
expansion=none — a raw % is read as a strftime spec and renders garbage.loudnorm → a
1080×1920 h264+aac master (~14s). No paid calls, no keys.setting* — surface + room → look_pack.style_descriptor, scenes[].keyframe_prompt,light* → look_pack.style_descriptor + palette_anchors. Demo: warm tungsten window light.hands* — whose hands / mouth appear, or product-only → scenes[].keyframe_prompt +music* → music.prompt. Demo: upbeat bluegrass (banjo, acoustic guitar, brush percussion).Full video production sequence with script review, actual ingredient choices, controlled generation, editing, evidence-based quality review, polish, captions and delivery. A host binding supplies project storage, authentic approvals, provider access and billing.
Build a vox-pop street interview video ad. An interviewer with a handheld mic asks passers-by one question about the brand's product, they give blunt wrong guesses, one gives the real answer, and the cut lands on a branded end card. Generates the takes through the GooseWorks fal proxy (Seedance 2.0 with native voice), then grades, re-cuts, captions and gates them locally. Use for the street-interview format.
Write the words of a short-form video ad (voiceover, dialogue, chat bubbles, on-screen lines) the way performance creative teams do instead of from a blank page. Builds the script from the buyers' own words, the beat sheet of an ad that already works and three deliberately different angles, filters them with a rule check and a second non-Claude model, and takes the strongest into the review with the other two as one-line swaps. Use it in every video ad run before any paid step, and whenever the user asks to write, rewrite or improve a video ad script or says a script sounds generic or AI-written.