Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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 acoustic 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 seri
.claude/skills/gooseworks-ai-render-food-product-sizzle/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 32% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 54% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -16% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 14% | 0% |
Assemble a food-product sizzle ad from a config: a wordless macro-tabletop photorealistic sizzle for a physical food / CPG product — tactile sunlit tabletop photography in a warm tungsten kitchen register, ~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 acoustic 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.
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 acoustic / bluegrass bed (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.
bed; do not add a spoken voiceover. The brand name + claim land on the STATIC end card, never in the body.
their scene order (tear → flat-lay → bite → box-hero by default); the box / pack hero shows the REAL label (grounded on the product PNG upstream — the assembly must not re-render it).
eq=contrast=1.06:saturation=0.93,hqdn3d=1.5:1.5:3:3,noise=alls=8:allf=t+uacross the whole video — the noise on a food macro is load-bearing for the tactile / photographic read, otherwise the sizzle looks AI-smooth.
on the box-open at their measured cue points — a couple of short hits, not a wall of sound. Time each to its beat, not a round number.
trims the ~2.5s intro so it kicks in from frame 0; the assembly loudnorms + fades in / out to the master length.
ivory bg + the real logo PNG (upper third) + the real product PNG (centered, soft shadow) + a serif heritage headline + a CTA, held ~3s WITH the music still playing under it (fade the tail — no silent tail). A diffusion model garbles a wordmark and the packaging. On macOS pick a serif with the middle-dot glyph (use · ).
choreographed windows. Write any % string to a textfile and use ffmpeg drawtext textfile= + expansion=none — a raw % is read as a strftime spec and renders garbage.
(bed + SFX), append the PIL end card, burn the callouts, mux with a fade tail, loudnorm → a 1080×1920 h264+aac master (~14s). No paid calls, no keys.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 21,520 | 24,117 | +12% | 1 | 1 | 0% | 4,655 | 6,157 | +32% | 0 | 0 | — |
case-02 | fail→pass | 22,681 | 25,364 | +12% | 1 | 1 | 0% | 4,237 | 6,511 | +54% | 0 | 0 | — |
case-03 | fail→pass | 22,888 | 22,675 | -1% | 1 | 1 | 0% | 4,749 | 5,993 | +26% | 0 | 0 | — |
case-04 | fail→pass | 11,144 | 3,063 | -73% | 1 | 1 | 0% | 1,999 | 1,671 | -16% | 0 | 0 | — |
case-05 | fail→pass | 11,075 | 6,464 | -42% | 1 | 1 | 0% | 1,959 | 2,242 | +14% | 0 | 0 | — |
case-06 | fail→pass | 10,290 | 5,227 | -49% | 1 | 1 | 0% | 1,818 | 2,042 | +12% | 0 | 0 | — |
case-07 | fail→pass | 11,277 | 4,550 | -60% | 1 | 1 | 0% | 1,856 | 1,818 | -2% | 0 | 0 | — |
case-08 | pass→pass | 10,082 | 3,505 | -65% | 1 | 1 | 0% | 1,557 | 1,673 | +7% | 0 | 0 | — |
case-09 | fail→pass | 12,374 | 4,549 | -63% | 1 | 1 | 0% | 2,159 | 1,888 | -13% | 0 | 0 | — |
case-10 | pass→pass | 8,948 | 2,958 | -67% | 1 | 1 | 0% | 1,270 | 1,555 | +22% | 0 | 0 | — |
case-11 | fail→pass | 11,364 | 5,533 | -51% | 1 | 1 | 0% | 1,823 | 1,970 | +8% | 0 | 0 | — |
case-12 | pass→pass | 9,971 | 2,183 | -78% | 1 | 1 | 0% | 1,753 | 1,434 | -18% | 0 | 0 | — |
case-13 | fail→pass | 10,937 | 3,377 | -69% | 1 | 1 | 0% | 1,809 | 1,634 | -10% | 0 | 0 | — |
case-14 | pass→pass | 8,542 | 2,750 | -68% | 1 | 1 | 0% | 1,402 | 1,537 | +10% | 0 | 0 | — |
case-15 | pass→pass | 10,772 | 2,766 | -74% | 1 | 1 | 0% | 1,757 | 1,549 | -12% | 0 | 0 | — |
case-16 | fail→pass | 11,720 | 1,993 | -83% | 1 | 1 | 0% | 1,937 | 1,366 | -29% | 0 | 0 | — |
case-17 | fail→pass | 14,615 | 3,267 | -78% | 1 | 1 | 0% | 2,410 | 1,608 | -33% | 0 | 0 | — |
case-18 | fail→pass | 29,692 | 3,398 | -89% | 1 | 1 | 0% | 1,818 | 1,741 | -4% | 0 | 0 | — |
case-19 | pass→pass | 8,368 | 2,924 | -65% | 1 | 1 | 0% | 1,554 | 1,639 | +5% | 0 | 0 | — |
case-20 | pass→pass | 10,736 | 8,536 | -20% | 1 | 1 | 0% | 1,803 | 2,557 | +42% | 0 | 0 | — |
case-21 | pass→pass | 11,260 | 5,071 | -55% | 1 | 1 | 0% | 1,780 | 1,938 | +9% | 0 | 0 | — |
case-22 | pass→pass | 17,054 | 14,112 | -17% | 1 | 1 | 0% | 2,812 | 3,465 | +23% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +59 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.