Creative Inventor: Self-Generating Ad Angles, Concepts, Visuals & Triggers
The Creative Inventor is a system that generates new ad angles, concepts, visual directions, and psychological triggers by itself—either as part of the extensive flow or standalone for export/review.
How It Works
- Inputs: Niche, target audience, offer; optional trend context, competitor insights, or existing strategy reference (to diverge from).
- LLM: A single structured call invents
n“essentials,” each with:- Psychology trigger – e.g. validation before solution, future regret, justified scarcity.
- Angles – reasons to care; reframes (e.g. biology not willpower, last first day).
- Concepts – execution/storyline (e.g. crossed-out labels, progress bar + social proof).
- Visual directions – concrete visual ideas (e.g. “progress bar 87% full”, “grid of crossed-out DAY 1s”).
- Hooks – scroll-stopping headline phrases.
- Visual styles – short scene descriptions for image prompts.
- Output: List of
InventedEssentialused by the extensive flow or returned by the API.
Where It’s Used
1. Inside the Extensive Flow (default)
When you run extensive generation with use_creative_inventor=True (default):
- Step 1 is “Invent new ad angles, concepts, visuals, and psychological triggers” (Creative Inventor).
- The invented essentials are converted to the same shape as the researcher output and passed to the creative director.
- Rest of the flow is unchanged: retrieve knowledge → creative director → designer → copywriter → image generation.
So the extensive flow can create new angles/concepts/visuals/triggers by itself instead of relying only on the fixed researcher step.
2. Standalone “Invent Only”
- API:
POST /extensive/invent
Body:niche,target_audience,offer,n, optionaltrend_context,export_as_text.
Returns:essentials(JSON) and optionallyexport_text(human-readable markdown). - Code:
creative_inventor_service.invent(...)andcreative_inventor_service.invent_and_export(...)inservices/creative_inventor.py.
Use this to generate ideas for review, export to docs, or to feed into other tools without generating ads.
3. Researcher-Only Flow
Set use_creative_inventor=False in the extensive generator (or send use_creative_inventor: false in the API). Step 1 is then the original researcher (psychology triggers, angles, concepts from the existing prompt), and the rest of the pipeline is unchanged.
API Summary
| Endpoint | Purpose |
|---|---|
POST /extensive/generate |
Full extensive run; by default uses Creative Inventor in step 1. Supports use_creative_inventor, trend_context. |
POST /extensive/invent |
Invent only; returns essentials (+ optional export_text). No ad generation. |
Files
services/creative_inventor.py–CreativeInventorService,InventedEssential,invent(),invent_and_export().services/third_flow.py–get_essentials_via_inventor(),_invented_to_essentials(); converts inventor output toImageAdEssentialsfor the creative director.services/generator.py–generate_ad_extensive(..., use_creative_inventor=True, trend_context=...); when True, step 1 calls the inventor instead of the researcher.api/routers/extensive.py– Extensive job run with inventor/researcher switch;POST /extensive/invent.api/schemas.py–ExtensiveGenerateRequest(withuse_creative_inventor,trend_context),InventOnlyRequest,InventedEssentialSchema,InventOnlyResponse.
Optional: Seeding or Constraining the Inventor
You can pass:
existing_reference– Short summary of existing strategies so the inventor can diverge and avoid repeating.trend_context– e.g. “New Year”, “Valentine’s Day”; used for relevance.competitor_insights– e.g. notes from competitor ad analysis; used to differentiate.
These are supported in creative_inventor_service.invent(...) and can be wired through the API or generator if you add the corresponding request fields.