Build an AI Ad Creative Factory with OpenClaw
An autonomous agent that generates 60+ ad creatives overnight - copy, images, and video - organized in Airtable for client review by morning. Sell it as a $3K-$7K setup + $800-$1,500/month creative automation service.
- An overnight creative factory that generates 60+ ad creatives (copy + images + video specs) while you sleep, organized in Airtable for client review by morning
- Exact pipeline: OpenClaw (brain) + fal.ai/FLUX.2 Pro (images) + Nano Banana 2 (ideation) + Creatomate (video) + Airtable (database + approvals)
- Copy-paste config files: SOUL.md, AGENTS.md, HEARTBEAT.md, and BRAND_KIT.md for a creative director agent
- Full Airtable schema: 7 tables (Brands, Campaigns, Personas, Concepts, Assets, QA, Performance) with status flows and approval views
- Platform spec compliance: Auto-formatting for Meta (1:1, 4:5, 9:16), TikTok (9:16), Google Display (1.91:1), YouTube Shorts (9:16)
- Model routing that keeps image generation under $5 per batch of 60 creatives
- A/B test structure: 4 personas x 3 concepts x 3 copy variants x format permutations = 60+ assets
- Client onboarding questionnaire that feeds directly into SOUL.md brand configuration
- Pricing: $3K-$7K setup + $800-$1,500/month retainer with 80%+ gross margins
- 3-layer QA: automated spec checks, vision-model review, human approval
Why Creative Factories Are the Biggest Opportunity in 2026
Ad creative is the bottleneck. Brands need 30-60 new creatives per month minimum to avoid ad fatigue on Meta and TikTok. A traditional creative agency charges $3,000-$10,000/month for 8-15 assets. A single static ad from a freelancer costs $50-$200. A short video costs $200-$500. The math doesn't work at scale.
Your AI agent produces 60+ creatives overnight for approximately $15-$40 in compute. That's $17 per creative vs $200-$300 per creative from an agency. 12x cheaper, 3x the volume, refreshed weekly instead of monthly.
Real case studies proving the model:
SaaS tools like AdCreative.ai ($39-$599/year) solve generation but lack brand nuance, custom workflows, and deep Airtable/Notion integration. Full agencies charge $5K-$15K/month but deliver only 8-15 assets. Your OpenClaw agent sits in the middle: custom, brand-trained, 60+ assets, $800-$1,500/month. That's the gap. You're selling workflow ownership, not image generation.
Full Build Course: Architecture + Schema + Client Templates
The free preview ends here. Unlock the complete build: overnight pipeline architecture, copy-paste SOUL.md/AGENTS.md, full 7-table Airtable schema, image and video generation stack, platform spec tables, client onboarding form, ROI calculator, and QA checklist.
The Overnight Pipeline Architecture
This is not "one giant autonomous agent." It's an orchestrated creative factory: OpenClaw holds the brain, scheduling, QA, and delivery logic. Airtable is the system of record. fal.ai and FLUX generate images. Creatomate generates motion. The winning systems in 2026 are workflow stacks, not single-model magic.
Use Scheduled Tasks (Cron), not Heartbeat for the main overnight run. OpenClaw's docs are explicit: cron is for exact timing and isolated execution. Heartbeat is approximate and meant for periodic awareness checks (defaults to every 30 minutes). Heartbeat is for monitoring; cron is for production.
The agent has four sub-jobs:
Strategist: creates personas, angles, hooks, offers. Art Director: writes image prompts and picks reference frames. Production Coordinator: routes jobs to the right image/video provider and stores outputs. QA/Editor: scores assets for fit, flags broken ones, and assembles approval sets.
Don't run everything in one monolithic job. Stagger: concepts at 01:05, images at 02:00, video at 03:00, QA at 05:00, Airtable sync at 05:30. OpenClaw cron persists jobs, tracks run history, and can deliver results to a webhook or channel. This is safer and lets you debug each stage independently.
The Config Files (Copy-Paste)
Version note (v2026.7.2+): In upcoming releases, HEARTBEAT.md is being migrated to SQLite-backed cron scratch, and TOOLS.md will merge into AGENTS.md. Both still work on current stable (v2026.7.1-2). After upgrading past v2026.7.2, run openclaw doctor --fix to migrate automatically. Always run openclaw doctor --fix after any install or upgrade.
Brand file structure (store per client in workspace/brands/):
The Tool Stack: Models, Images, and Video
Model routing for ad creative (August 2026, verified):
| Model | Best For | Cost | Use Case |
|---|---|---|---|
| Nano Banana 2 | Fast ideation, text-in-image, character consistency | $0.04-0.06/image on fal.ai | First-pass concepts, text-heavy creatives, up to 5-person consistency, 14 reference images |
| Nano Banana Pro | Premium quality, semantic accuracy | $0.15/image ($0.30 at 4K) | Final hero assets where quality matters most. Best reasoning and fidelity. |
| FLUX.2 Pro | Production statics, high-volume | $0.03-0.05/image | Most finals. Brand consistency via hex color control and multi-reference. Default production model. |
| FLUX.2 Max | Premium hero frames, character consistency | $0.05-0.07/image | Hero assets. Up to 8 reference images, hex color control. |
| FLUX.2 Flex | Typography and text layout | $0.03-0.05/image | When text placement and legibility matter most. |
| FLUX.3 | Keyframe-to-video (NEW) | Varies | BFL's frontier video model. Generates motion between keyframe anchor points. Consider for video ads. |
| Seedream V4.5 | Photorealistic output, built-in editing | $0.03-0.04/image | Strong prompt adherence. Good alternative to FLUX.2 Pro for product shots. |
| GPT Image 2 | Best overall quality, precise edits | ~$0.04-0.07/image | Premium edits, strongest instruction-following. Note: DALL-E 2/3 deprecated, Sora discontinued. |
| Recraft V3 | Vector graphics, accurate text rendering | $0.04/image ($0.08 vector) | Logo-heavy designs, branded graphics. #1 on Hugging Face Text-to-Image leaderboard. |
| Grok Imagine | Cheapest drafts | $0.022/image | Quick draft iterations before upgrading to production models. |
| Ideogram V3 | Marketing visuals with text | Available on fal | Strong at text rendering in marketing contexts. |
Tip: For quick prototyping and testing prompts before coding your pipeline, use Snippt.ai's Image Generator which supports the same models (FLUX.2, Nano Banana 2, Seedream 4.5) through a visual interface. Test your prompts there first, then automate via API.
Brand consistency across 60+ creatives:
1. Multi-reference prompts: Upload 3-10 product/brand shots as references. Include in every prompt. FLUX.2 Pro supports up to 10 reference images with hex color control. 2. Fixed style vocabulary: Every prompt includes a locked style string: "studio product photo, soft light, minimal, high contrast, no text, 1080x1350." 3. Hex colors in prompts: "Use brand colors #123456 and #F5F5F5 in background and accents." 4. LoRA fine-tuning: For major clients, train a LoRA on 10-20 brand images (~$50 one-time), then reference in prompts. 5. Seed control: Use consistent seeds for product-focused images. 6. Negative prompts: Standard exclusion: "blurry, low quality, distorted text, wrong colors, extra limbs."
Video generation (August 2026):
| Tool | Cost | Best For |
|---|---|---|
| Creatomate | Free: 10 renders (watermarked). Starter $29/mo (100 renders), Essential $54/mo (500), Growth $129/mo (2,000) | Template-based video. JSON payload in, MP4 out. Best balance of power and simplicity. Note: TTS costs extra on top of rendering credits. Unused credits expire each billing cycle. |
| JSON2Video | Hobby $16.95/mo, Starter $39/mo (120 renders) | TTS included in render credits (Azure 120+ voices + ElevenLabs). Cheaper than Creatomate for TTS-heavy workflows. |
| Remotion | Open source + hosting (~$0.50-2/render self-hosted) | React-based, fully custom animations. Cheapest at scale. Remotion Lambda for cloud rendering. Remotion Cloud also available as managed option. |
| fal.ai video | $0.05-$0.40/sec (model-dependent) | AI video generation (Kling, Wan 2.5, Veo 3.1). More cinematic but less controllable for template work. |
Tip: Use Snippt.ai's Video Studio and Image-to-Video tools to prototype motion concepts before automating with Creatomate or Remotion.
Static-to-video workflow: Pick top 8-12 statics. Turn each into a 6-15 second template-driven motion ad. Animate only: headline reveal, zoom/pan, product parallax, CTA end card, subtle background motion. Avoid "AI movie trailer" workflows. The goal is repeatable, programmatic motion, not cinematic experiments.
The Airtable Schema (7 Tables)
Airtable is the production system of record. Airtable's official MCP server now lets AI tools read schemas, create records, update records, and respect permissions. Use Notion as the optional brand wiki / client-facing reporting layer, not the primary asset pipeline.
Airtable pricing (August 2026): Free plan allows 1,000 records per base, 1GB attachments, 100 automations/month, and 5 requests/sec API rate limit. At 60 creatives/month, the free tier lasts ~16 months for 1 client. For 2+ clients, upgrade to the Team plan ($20/user/month, 50,000 records/base). Self-hosted alternatives: NocoDB (open-source Airtable clone, free), Baserow (open-source), or Supabase (PostgreSQL-based, for technical users who want SQL). The schema below works in any of these with minor field-type adjustments.
Table 1: Brands - Brand name, logo files, hex colors, fonts, voice notes, banned words/claims, approved CTAs, product catalog links, reference ads, brand-safe prompts, active flag.
Table 2: Campaigns - Campaign name, goal, offer, platforms (multi-select), launch date, KPI target, status.
Table 3: Personas - Persona name, pain points, desired outcomes, buying triggers, objections, channel priority, notes.
Table 4: Concepts - Linked to Campaign + Persona. Angle, hook, offer, visual idea, concept score, status.
Table 5: Assets (main table)
| Field | Type | Purpose |
|---|---|---|
| Creative ID | Autonumber | CRE-2026-001-001 |
| Concept | Link to Concepts | Parent concept this asset belongs to |
| Platform | Single select | Meta Feed, TikTok, Google Display, YouTube Shorts |
| Format | Single select | 1:1 (1080x1080), 4:5 (1080x1350), 9:16 (1080x1920), 1.91:1 (1200x628) |
| Headline | Text | Under 30 characters |
| Primary Text | Long text | 50-150 characters ideal for Meta |
| CTA | Text | "Shop the drop", "Get yours" |
| Image Prompt | Long text | Full prompt sent to fal.ai (hidden from client view) |
| Model Used | Single select | FLUX.2 Pro, Nano Banana 2, GPT Image 2 |
| Image URL | URL/Attachment | Generated static asset |
| Video URL | URL/Attachment | Motion variant (optional) |
| Spec Check Pass | Checkbox | Auto-validated by QA step |
| Status | Single select | Draft, Pending Review, Approved, Rejected, Revise, Live |
| Reviewer | Collaborator | Who approves |
| Approval Notes | Long text | Client feedback |
| Batch ID | Text | BATCH-2026-0417-A (nightly run grouping) |
| Test Batch | Text | Which A/B test group |
| Created At | Created time | Generation timestamp |
Table 6: QA - Linked to Asset. Legibility score, safe-zone check, brand-fit check, claim-risk check, policy-risk check, needs regen flag, final pass flag.
Table 7: Performance Feedback - Linked to Asset. CTR, thumb-stop rate, CPC, CPA, ROAS, spend, winner flag, notes.
Table naming convention: Use exact names "Brands", "Campaigns", "Personas", "Concepts", "Image Assets" (for statics), "Video Assets" (for motion), "QA", and "Performance Feedback". The agent references these table names in Airtable API calls.
Long-term memory: OpenClaw stores long-term brand preferences in MEMORY.md (e.g., "Brand X prefers UGC-style over studio shots", "Warm beige backgrounds consistently outperform white"). Daily notes go in memory/YYYY-MM-DD.md. The agent reads these on every session start to improve over time.
Status flow: Briefed -> In Generation -> QA Review -> Client Review -> Approved -> Exported -> Live -> Performance Logged
Client views: "Pending Approval" (Gallery view, large previews, filtered to Spec Check Pass = true AND Status = Pending Review). "Approved Assets" (grouped by Platform/Format for export). "Performance Tracker" (Status = Live, showing Actual CTR vs Predicted).
The agent populates Airtable by assembling a JSON payload per creative and POSTing to https://api.airtable.com/v0/{base}/{table} via the Airtable MCP server.
Platform Specs and A/B Test Structure
| Platform | Placement | Aspect Ratio | Resolution | Notes |
|---|---|---|---|---|
| Meta | Feed | 1:1, 4:5 | 1080x1080, 1080x1350 | 4:5 takes 20% more vertical space. Max 30MB image, 4GB video. Old 20% text rule is gone, but algorithm may reduce delivery for text-heavy creative. Keep headlines to 5-7 words. |
| Meta | Stories/Reels | 9:16 | 1080x1920 | Safe zone: center 51%. Avoid top 14%, bottom 35%. |
| Meta | Carousel | 1:1 | 1080x1080 | Never use 4:5 (gets cropped). 30MB per card. |
| TikTok | In-Feed | 9:16 (strongly) | 1080x1920 | 5-60 sec (9-15 optimal). Top 130px clear, bottom 440px clear. 9:16 drives 41% higher engagement. |
| TikTok | Spark Ads | Same as source | 1080x1920 | Uses organic post. No restriction on length. |
| Responsive - Landscape | 1.91:1 | 1200x628 | Max 5120 KB (5 MB). | |
| Responsive - Square | 1:1 | 1200x1200 | Max 5120 KB. | |
| Medium Rectangle | 6:5 | 300x250 | 150 KB limit. | |
| YouTube | Shorts Ads | 9:16 | 1080x1920 | Up to 60 sec. 10-30 sec recommended for action ads. |
| YouTube | Bumper | 16:9, 9:16, 1:1 | 1920x1080 | 6 sec max. |
Auto-formatting rule: Generate master assets first, then export into 4 default families: 1:1, 4:5, 9:16, 16:9. Do NOT generate each variation from scratch. One approved concept gets resized/recomposed into format families. This is how Salomon's Pencil workflow scaled across Meta, YouTube, Shorts, CRM, and e-commerce.
A/B test structure:
For each persona, define 1 concept family ("Problem-solution," "Before/after," "Social proof"). For each concept, generate 3 image styles (studio, UGC, lifestyle), 3 copy variants (different hooks), and 2-3 formats. This yields: 4 personas x 3 concepts x 3 copy variants = 36 copy variants. Add image style + aspect ratio permutations = easily 60+ assets. Set Airtable fields "Test Batch" and "Variant Group" so the media buyer can turn on 3-5 variants per batch, kill losers quickly, and let winners scale. Your agent's job is to refill the pipeline.
Current creative-testing guidance emphasizes concept count and structured testing over random asset volume. Vary persona, offer, hook, visual style, and CTA one at a time. Otherwise you learn nothing from testing. 8-12 concepts with controlled variations beats 60 random unrelated assets every time.
Client Onboarding Questionnaire
Agent training process (4 weeks to full autonomy):
Week 1: Populate SOUL.md and BRAND_KIT.md from questionnaire. Upload assets to CDN. Run "Voice Analysis" to extract brand_voice.yaml. Week 2: Generate 20 test creatives. Get heavy client feedback. Refine prompts, adjust style vocabulary, narrow down what works. Week 3: Full batch (60 creatives). Establish approval workflow in Airtable. Client reviews and approves. Week 4: First campaign launch with client ad account. Begin performance tracking loop.
Pricing and ROI Math
| Service | Monthly Cost | Output |
|---|---|---|
| Traditional Creative Agency | $3,000-$10,000+ | 8-15 assets/month |
| AI-Native Agency (Omneky model) | $5,000-$8,000 | 10-18 assets/sprint |
| Freelance Designer | $3,000-$8,000 (for 60 assets) | $50-$200 per static, $200-$500 per video |
| AdCreative.ai (SaaS) | $25-$400 | Templates, limited brand nuance |
| Your OpenClaw Agent | $800-$1,500 | 60+ assets/month, fully brand-trained |
Even accounting for your time (QA review, client communication, prompt refinement), the margins are extraordinary. At 5 clients charging $1,000/month, you're at $5,000/month revenue with approximately $135 in compute costs.
QA Process and Failure Modes
3-layer QA process:
Layer 1 - Automated checks: Aspect ratio, resolution, file size, file presence, logo presence, CTA presence, banned-word scan, platform-safe dimensions.
Layer 2 - Vision model review: Text legibility, product realism, color match, safe-zone compliance, caption/image consistency. Items with confidence below 0.8 get flagged.
Layer 3 - Human approval: At launch, review 100%. At scale, review 20-30% randomly. If error rate stays under 5%, maintain sample size. If higher, pause and fix prompts before continuing. Never auto-publish without human sign-off.
| Failure | Cause | Fix |
|---|---|---|
| Brand inconsistency | Poor prompts, no style reference | Mandatory brand image URL in every prompt. LoRA fine-tuning for major clients. |
| Text rendering errors | AI-generated text garbled | Use FLUX.2 Flex or GPT Image 2 for text-heavy images. QA all text. |
| Unrealistic products | Model hallucination | Product photo reference in prompt. Strict negative prompts. Reject and regen. |
| Copyright/trademark risk | AI trained on copyrighted material | Custom LoRAs. Avoid generating recognizable IP. Human review flag. |
| Policy violations | Health claims, income claims, misleading | SOUL.md hard constraints. Pre-flight policy check. Mandatory disclaimers. |
| Generic "AI slop" | Off-persona messaging | Tight persona definitions. Concept-first workflow (not random asset spam). |
| Platform cropping | Important elements in unsafe zones | Pre-configured Creatomate templates with safe-zone margins. |
| Client hates the output | Style mismatch | Pilot round: 20 creatives first. Narrow to 3 ads they love, 3 they hate. Recalibrate before full batch. |
The trust ladder for client autonomy:
| Phase | Period | Agent Authority | Client Involvement |
|---|---|---|---|
| Pilot | Week 1-2 | Generate 20 samples only | Review all. Approve none automatically. |
| Assisted | Week 3-4 | Auto-generate full batch. Flag 30% for review. | Review flagged items only. |
| Autonomous | Month 2+ | Full batch. Flag only obvious errors (10%). | Weekly check-in. Monthly deep review. |
| Optimized | Month 3+ | Full auto-generation + performance-based optimization. | Quarterly strategy sessions. |
This is why you charge $3K-$7K upfront. The setup fee covers brand voice modeling, prompt template calibration, LoRA training (if needed), QA tuning, and the pilot round. Weeks 1-2 are heavy feedback loops. Once you hit over 80% "looks like us" approval rate, unlock the full 60+ factory.
Monthly Deliverable and Reporting
Never send 60 flat files. Present 8-12 concept families. Each contains: 1 hero static, 3-5 variants, optional motion derivative, recommended platform mapping, and testing hypothesis.
Monthly package:
8 concept families. 40-60 statics. 8-12 motion variants. Export folders by platform (/Brand/2026-04/Meta/, /Brand/2026-04/TikTok/, etc). Airtable review board. Short monthly report.
Report metrics (what justifies the retainer):
Creative testing velocity: "Last month: 18 tested. This month: 54." Volume: creatives generated vs approved vs live. Velocity: days from product launch to live creative. CTR and CPC shifts on new vs old creatives. Cost per creative vs previous agency/freelancer costs. Time saved for internal teams. Top 5 performing creatives with performance metrics. New recommendations for next cycle.
Integration Code (Images + Video + Copy)
fal.ai image generation (exact JS call):
Replicate FLUX.2 Pro (backup):
Direct BFL FLUX.2 (maximum control):
Batch generation with rate limiting:
Creatomate video render (exact API request):
Remotion React component (custom motion):
Remotion server-side render:
Spec checker function:
Copy Generation Prompt Templates
For batch copy generation, use the cheapest model that produces good ad copy. GPT-4.1 mini ($0.40/1M input, $1.60/1M output) is the best value for high-volume copy. GPT-5.4 mini ($0.75/$4.50) is slightly better quality. GPT-5.5 ($2-3/$10-15) is premium but overkill for batch headlines. At 200K input + 50K output tokens per month with GPT-4.1 mini, cost is approximately $0.16/month. Use GPT-5-nano for heartbeats and monitoring tasks.
Overnight Orchestrator and Cron
Cron configuration (use OpenClaw cron, not OS-level):
Notification helpers (Telegram + Discord):
Task Brain: All background tasks (cron jobs, subagent runs) are tracked in a unified SQLite-backed ledger. Type /tasks in any chat to see live status, or use openclaw tasks list on CLI. Back up ~/.openclaw/state/openclaw.sqlite before major upgrades.
The orchestrator script (scripts/overnight-run.mjs) follows this flow: (1) Query Airtable for campaigns with Status = "Queued." (2) For each campaign, generate 10 personas. (3) For each persona, generate 3 copy variants per platform. (4) For each copy variant, generate 2 images at platform-correct dimensions. (5) Select top 10-12 statics for video generation via Creatomate. (6) Create Creative Combos linking copy + image + video. (7) Send morning summary. The full orchestrator is 100+ lines of JS that calls the functions shown in Section 12.
Creative Combos, Audit Log, and Publishing
Creative Combos table (the final ad unit - one persona + copy + image + video):
Fields: Combo Name (formula), Campaign (link), Persona (link), Copy Variant (link), Image Asset (link), Video Asset (link, optional), Platform, Format (Static/Video), Test Cell (e.g., "P3-H2-I1-V0"), Status (Draft/Review/Approved/Delivered/Published), Client Decision (Approved/Rejected/Revise), Client Comments, Ready for Upload (checkbox - set true only when all linked assets are approved and spec-compliant).
Views: "Client Review Board" (Ready for Upload = true, Client Decision is empty), "Approved For Delivery" (Client Decision = Approved), "Rejected / Revise" (for iteration).
Audit Log table (optional but recommended): Every generated item logged with campaign, persona, prompt, model, seed, dimensions, provider cost estimate, created_at, QA status, approval status. Useful for cost tracking and debugging.
Character count formulas: Add to Copy Variants table: Headline Count = LEN({Headline}), Primary Text Count = LEN({Primary Text}). Create an "Over Character Budget" view filtering Headline Count > 40 OR Primary Text Count > 125.
Publishing options (from most to least practical):
Option 1 - Managed Delivery (recommended for v1): Export approved Creative Combos as CSV + download approved images/videos into platform folders (/Brand/2026-04/Meta/, /Brand/2026-04/TikTok/). The media buyer uploads manually. This reduces your technical support burden.
Option 2 - Zapier automation: When Creative Combos status changes to "Approved," trigger a Zap that uploads media to a storage bucket and optionally creates draft ads in Meta via the Meta Marketing API.
Option 3 - Direct API (advanced): Use the Meta Marketing API (upload via /act_ID/adimages), Google Ads API (upload-image-asset), or TikTok Business API for programmatic publishing. Requires OAuth token management and policy compliance. Not recommended for v1 of your service.
Deploy This Weekend
Step 1: Copy the config files above. Customize SOUL.md and BRAND_KIT.md for a real e-commerce brand (or use a fictional coffee brand to test).
Step 2: Set up a fal.ai account (free tier gives you credits to start). Generate 10 test images with FLUX.2 Pro using your brand prompts.
Step 3: Create the Airtable base with the 7-table schema above. Connect via Airtable MCP.
Step 4: Set up a Creatomate account ($54/month). Create one vertical (9:16) and one square (1:1) video template. Test with 3 static images.
Step 5: Configure the cron schedule on your OpenClaw instance. Run one overnight batch. Review the output in Airtable by morning.
Step 6: Capture screenshots of the Airtable gallery view. That's your portfolio/demo for client conversations.
Step 7: Find one e-commerce brand owner. Offer to run a free 20-creative pilot. After the pilot, show them the Airtable gallery, the cost breakdown ($17 per creative vs $200+ from their agency), and the 3x testing velocity. Then pitch the retainer.
The first client takes 2-3 weeks (including calibration). The second takes 1 week. By client three, you're running the same pipeline with different brand configs.
Ready to build the next one?
The Lead Response Agent course teaches you how to build and sell 24/7 AI receptionists to service businesses.