Dali by Lulu
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
dali.getlulu.dev ·
Install ·
Live stats ·
Lulu
---
**Score your creative against what's actually winning in the ad market — before you spend the credit.**
Most AI generation failures are predictable. A weak prompt, an off-formula creative — you can't tell until after you've burned the token. Dali scores it *first*, and it doesn't grade against opinions or generic "prompt tips." It grades against a **real, living corpus of proven-winning ads** — creatives still running in the market months after launch, scraped, embedded, and ranked. Two jobs:
- **score_prompt** — judge the *prompt* before you generate (craft: camera, motion, lighting, model-native language).
- **score_creative** — judge the actual *image* against proven winners (does it look like what converts, and what's missing).
Every wasted generation has a real cost — a Seedance retry is ~$6. The live dashboard tracks what the community has saved by catching bad creatives before they burned a credit.
So when score_creative runs, it embeds your image and finds the **actual winning ads it most resembles** by full visual signature — then tells you which winning attributes you're missing. When enhance_prompt runs with a category, the rewrite brief is backed by real market lift ("before/after shows up in 78% of winning wellness ads, 4× baseline"), not craft opinion.
> **Honest scope.** The winner label is *longevity* (a strong market-validated proxy), not per-ad conversion rate — measured CVR validation is in progress. The corpus grows on a schedule, so coverage per vertical keeps deepening. What you get today: your creative scored against what's *demonstrably surviving* in the live market.
---
Contents
- The real winning data layer
- Install
- Tools
- Supported models
- Platform supersets
- Why model-specific?
- MCP resources
- Contributing
---
Install
**Hosted MCP — connect once, scores every prompt and creative:**
→ **Full install guide with all clients**
**Self-hosted — local, no auth required:**
> The self-hosted package exposes the prompt-scoring tools locally. The creative-scoring tools (score_creative, analyze_winning_formula) and the winning-ad corpus run on the hosted server — connect via the hosted MCP to use them.
---
Tools
**Score the creative — against real winners**
| Tool | What it does |
|------|-------------|
| score_creative(image_url, category) | Score an actual ad **image**. Embedding similarity to proven winners is the headline score; also returns the winners it resembles, which winning attributes it's missing, and generation defects — in one call |
| score_creative_from_view(category, …) | **Score an image you're looking at (pasted/attached in the chat) — no URL.** The model reads the creative's attributes and Dali scores them against the winning corpus (verdict + what to change). Use for images shared in-conversation; score_creative (URL) adds the embedding headline |
| analyze_winning_formula(csv, category, email) | Paste your own ads export (creative URL + CPA/CTR/ROAS) → your winning formula vs your losers, plus how you compare to the industry median |
**Score the prompt — before you generate**
| Tool | What it does |
|------|-------------|
| score_prompt(prompt, model, category?) | Grade 0–100 with a per-dimension breakdown and verdict. When the score is weak, the **rewrite brief is returned in the same call**. Reads intent with the conversation LLM (understands negation, any language) |
| enhance_prompt(prompt, model, category?) | Returns a structured rewrite brief — YOUR LLM writes the enhanced prompt. With a category, the brief is backed by real winning-ad lift |
| track_enhancement(original, enhanced, generator) | Record a before/after pair in the graph brain — trains community patterns |