TE
Travis Eric
HomeNow
Work with meBook a 30-minute call
Travis Eric LogoTravis Eric

AI consulting and custom software, based in Fort Collins. Explore the work. Bring your next idea.

Travis Eric AI Consulting(720) 770-2979

Navigate

  • Home
  • Now
  • Projects
  • How I work

Deeper

  • Work with me
  • About
  • Share your experience
  • Case Studies
  • Resources
  • Impossible Vision
  • Technical Stack
  • Manifesto
  • Writings

Follow the work

New systems and field notes, sent when they ship.

Communities

AI Builder's LabView membershipTeneo Publishing CollectiveView details
@TravisEric_Travis Eric@TravisericLive Builds@travis_eric
PrivacyTerms© 2026 Travis Eric
/
/
Back to writings
Skills and playbooks

Paid-social video ad, one brief to a paused campaign

Travis EricSeptember 29, 20263 min read
Share this post:

Creating a paid-social video ad from a single brief is a structured process. The key lies in following a predefined sequence of steps, which ensures that nothing is left to chance. Let's break down the process, starting from the initial setup to the final output, all while staying grounded in the evidence from the overnight build system.

Step 0 - Rules that Never Bend

Before diving into the steps, there are immutable rules. For instance, Higgsfield's video engine is run through the logged-in CLI (video-engine/scripts/higgsfield/hf_cli.py) and not through the API key or SDK. This is crucial to avoid billing conflicts, as noted in F85. Additionally, content guidelines are strict: no identifiable people, children as the focus, or alcohol consumption is allowed.

Step 1 - Write the Brief

The process begins by copying templates/brief.example.json to a new brief.json file in your output directory. Every field must be filled since this document guides all subsequent scripts. The brief is crucial because it's the source of truth for campaign facts and drives the ad creation.

Step 2 - Quote (Free)

Executing python <skill>/scripts/generate.py <out_dir>/brief.json --aspect 9:16 prints the quote and halts the process. Here, the choice of model is critical; you select the cheapest model whose quote fits within the budget. The seedance_2_0_mini model is often sufficient, as detailed in the model table found in references/prompt-recipe.md.

Step 3 - Generate (Spends)

To create the ads, run:

python <skill>/scripts/generate.py <out_dir>/brief.json --aspect 9:16 --spend
python <skill>/scripts/generate.py <out_dir>/brief.json --aspect 1:1 --spend

Each command writes a JSON file in the source directory, logging the credits used and the balance before and after the job.

Step 4 - End Cards

Creating end cards is straightforward with python <skill>/scripts/render_endcards.py <out_dir>/brief.json. This script generates endcard-9x16.png and endcard-1x1.png. It's important to ensure the brand font loads correctly; otherwise, the script will fail.

Step 5 - Composite

The composite step involves fading the end card over the last ~3.8 seconds of each clip. Run python <skill>/scripts/composite.py <out_dir>/brief.json to write the final .mp4 files. Note that this step requires ffmpeg to be on your PATH.

Step 6 - Copy

Ad copy is checked for compliance with campaign guidelines using python <skill>/scripts/copy_check.py <out_dir>/brief.json. This ensures that all variants are within 125 characters, include the Meta disclaimer, and have no banned words.

Step 7 - Preview and Look

For final review, use:

python <skill>/scripts/build_preview.py <out_dir>/brief.json
python <skill>/scripts/shoot_preview.py <out_dir>

This builds an index.html with phone frame previews and screenshots it for review. The feedback process emphasizes judging the media within its container, ensuring the ad appears as intended.

By adhering to these steps and rules, the ad creation process becomes methodical and predictable, minimizing errors and ensuring compliance with all guidelines.

Join Pattern Insights

Get weekly insights on AI architecture, pattern recognition, and building platforms without permission.

On this page

  • Step 0 - Rules that Never Bend
  • Step 1 - Write the Brief
  • Step 2 - Quote (Free)
  • Step 3 - Generate (Spends)
  • Step 4 - End Cards
  • Step 5 - Composite
  • Step 6 - Copy
  • Step 7 - Preview and Look
Tags:
build-in-public

Read next

September 28, 2026

Photo rating bench

The photo rating bench is a straightforward yet effective tool for image evaluation, specifically designed with the founder's preferences in mind. The setup is...

Read it

September 27, 2026

Doc Registration — make a new doc discoverable

When dealing with documentation in software projects, ensuring that new or relocated docs are discoverable is as crucial as creating the content itself. I...

Read it

September 26, 2026

cold-reopen — the check that happens later, cold

In the world of build systems, "cold-reopen" is an essential skill. It isn't about verifying something immediately after it's built; it's about returning to a...

Read it

Join the Discussion

Have thoughts on this post? I'd love to hear them! Join the conversation on X where we can discuss AI architecture, pattern recognition, and building platforms.

Discuss on X

Or reach out directly at @TravisEric_