varg-ad-variants
Skill23 starsChanged 8 months agoMITView on GitHub
Turns one winning video ad into 20 ad variants that Meta's Andromeda and TikTok treat as different creatives: tag the winner with varg video_analyze, plan two layers (about 7 new concepts that each change message, visual execution or format, plus about 13 single-variable iterations, mostly new hooks), generate the new openers and concepts on varg (Seedance 2.5, Kling 4, Nano Banana, ElevenLabs), swap hooks onto the winner with a tested FFmpeg script (word-boundary cut, normalised parts, 20 ms fade, manifest), re-caption every variant, and export names and a test plan. Use when a seller asks for ad variations, more creatives, hook variants, "scale my winning ad", "make 20 versions of this ad", creative testing volume for Meta or TikTok, or new hooks for an ad that is fatiguing. Not for the testing strategy alone (ad-creative-testing), finding winners from competitors (varg-ad-library-remix), or a brand-new single ad.
- Reads credentials
In this repository75 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- ad-creative-testingSkill
- ai-ad-compliance-checkSkill
- ai-ugc-ad-videoSkill
- app-ui-mockupsSkill
- caption-stylesSkill
- character-passportSkill
- code-to-video-previzSkill
- ecommerce-video-adsSkill
- ecommerce-video-editSkill
- edit-footage-with-codeSkill
- find-referencesSkill
- footage-effectsSkill
- gpt-image-2-6Skill
- gpt-image-gifSkill
- gpt-image-markup-editSkill
- gpt-image-sprite-sheetSkill
- gpt-image-sticker-packSkill
- how-to-make-ai-videoSkill
- kinetic-type-artSkill
- kling-4-action-montageSkill
- kling-4-keyframe-filmSkill
- kling-4-promptingSkill
- make-a-woke-profile-with-chatgptSkill
- maps-and-data-motionSkill
- media-downloadSkill
- media-judgeSkill
- motion-formatsSkill
- paper-shadersSkill
- product-photo-to-videoSkill
- product-video-hooksSkill
- short-form-ffmpeg-cookbookSkill
- social-overlaysSkill
- threejs-animaticSkill
- tiktok-shop-videoSkill
- title-designSkill
- transition-craftSkill
- varg-ad-library-remixSkill
- varg-ad-localizeSkill
- varg-aiSkill
- varg-birthday-videoSkill
- varg-character-absurdSkill
- varg-character-beautiful-womanSkill
- varg-character-big-guySkill
- varg-character-cartoonSkill
- varg-character-cringeSkill
- varg-character-designSkill
- varg-character-fitnessSkill
- varg-character-grandmaSkill
- varg-character-keynoteSkill
- varg-consistent-charactersSkill
- varg-dropship-reelSkill
- varg-mascot-jingle-adSkill
- varg-mockupsSkill
- varg-music-videoSkill
- varg-occasion-videoSkill
- varg-podcast-videoSkill
- varg-previzSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 45
Write the plan as JSON before generating.
- Very specific: line 55
Keep a clean master of the winner without burned captions.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
One winning ad into 20 variants
Since Meta's Andromeda update, ads that look alike are grouped and compete as one ("Entity ID" in agency talk): a new caption, colour or music track is not a new creative. Sellers now test 20–40 creatives a week at about $20/day each and refresh every 2–3 weeks (theoptimizer, segwise). The "suppressed above 60% similarity" thresholds are repeated by agencies but not published by Meta.
1. Tag the winner
video_analyze on the winner (about 5 credits; prompt in varg-ad-library-remix) → hook, angle, format, emotional driver, persona, proof, CTA. You scale the mechanism behind the ad, not the file.
2. Plan two layers (20 in total)
Layer A, ~7 new concepts. Each must pass the three-question check (two "no" answers = the same Entity): Is the message different? Is the visual execution different, not just the text? Is the format different? Moves: same script with a new persona (female → male → couple → parent), same structure with a new script, same concept in a new format (UGC → unboxing → demo → mascot song → problem/solution), same script with new b-roll.
Layer B, ~13 iterations, one variable each. Mostly new hooks (3–5 per concept, ≤3 s), then new CTAs or offers. If two fields change between variants, the plan is wrong (Pixis).
Write the plan as JSON before generating; name every file {angle}_{offer}_{product}_{format}_{hook}_v{n}, e.g. safety_fullprice_gloves_tutorial_povmandoline_v1, with a closed list of 8–10 angles.
3. Make the new parts on varg
- New openers: a 3–6 s clip per hook (
varg-product-hookarchetypes,varg-unboxing-video) plus its spoken line oneleven_v4in the same voice as the winner (1 credit per line). - New concepts: the skill that makes the format (
ai-ugc-ad-video,varg-mascot-jingle-ad,varg-dropship-reel…). - Price the batch first:
POST /v2/estimate/estimate_cost.
4. Swap hooks onto the winner
Keep a clean master of the winner without burned captions. Find the cut: the first word of the body in its word timings (Whisper, or hook from varg-dropship-reel's guide-edl.mjs). Then:
node scripts/hook-swap.mjs --body master_clean.mp4 --cut 7.34 --out variants/ \
clips/mandoline.mp4+lines/pov-mandoline.mp3 \
clips/knife.mp4+lines/knife-test.mp3Each hook is a clip, or clip+line.mp3 to lay a new spoken line over it (the hook lasts as long as the line + 0.3 s). Every part is normalised to 1080×1920 / 30 fps / 48 kHz before the join, with a 20 ms fade at the cut (no click), and variants/manifest.json records hook, line, cut and lengths. Then re-caption each variant: transcribe it, captions.mjs, burn with ffmpeg (libass).
5. Export the test plan
ABO, one creative per ad set, broad targeting, $20–50/day per ad set; kill under 1% CTR or at $10–30 spent without a result; judge after 7–14 days and 1,000+ impressions; move winners to CBO/Advantage+; refresh every 2 weeks. On TikTok, post hook variants as separate ads, not as duplicates of one post (duplicates get buried).
Tested
2026-10-28 on the cut-resistant gloves reel (59 s). Two new spoken hooks on eleven_v4 (1 credit each) over the reel's own clips, swapped in with hook-swap.mjs in seconds, then re-captioned:
- POV mandoline hook: https://s3.varg.ai/files/194b94d0-58ff-4e8b-91de-4f1959d04013/file_565f31d99f3a.mp4
- "I dragged a chef's knife across my hand. Look.": https://s3.varg.ai/files/194b94d0-58ff-4e8b-91de-4f1959d04013/file_7fe2d4c4fe3a.mp4
Both cut cleanly into "They can be purchased for…" with no click or jump. These are Layer B iterations; Layer A concepts need new footage.
Related skills
ad-creative-testing (why an ad won, the test plan), varg-ad-library-remix (new angles from competitors), varg-product-hook and varg-unboxing-video (new openers), varg-dropship-reel (captions.mjs, guide-edl.mjs), ai-ad-compliance-check.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

