First public, MIT-licensed release. Lede ingests an article URL, raw text, or HTML, synthesizes an art-director's image brief via Claude Sonnet 4.6, then bakes that brief in parallel across three frontier cloud image models — Recraft v3, OpenAI gpt-5.4-image-2, and Google Gemini 3 Pro Image. An optional local Apple-Silicon pair (Flux Krea dev + FLUX.2 Klein 9B via mflux) is supported for zero-cost runs.
The IP is the brief synthesizer, not the models — the editorial layer between an article body and an image API.
What's in this release
- Multi-input bake form — URL, raw HTML, or plain text, auto-detected
- Streaming UI — NDJSON stream from the bake endpoint shows partial results as each model returns
- Cloud + local pipelines — cloud trio default; optional mflux pair on Apple Silicon
- Per-tile redo — one regenerate per model per article, separate rate-limit bucket
- Persisted showcase — `data/preloaded/*.json` baked into the build for local-dev showcase; visitor bakes ephemeral on Vercel
- Demo-mode CTA — when `LEDE_CONTACT_URL` is set, the public bake form is swapped for a contact CTA (used on the hosted demo)
Hardening
The whole tree went through a four-model adversarial review (DeepSeek V4-Pro + Gemini 3.1 Pro panel, on top of Claude verification). Every confirmed finding above LOW was acted on before this release:
- SSRF guard with DNS pinning (undici dispatcher, defeats rebinding TOCTOU)
- Atomic rate-limit INCR+EXPIRE via Redis EVAL, in-process dev fallback
- Spoof-resistant client IP (`x-vercel-forwarded-for` preferred)
- Per-visitor redo quota separate from bake quota
- Slug + model path-traversal validation
- Edge-runtime-safe basic-auth middleware (`btoa`, not Node `Buffer`)
- Cost-cap NaN-bypass closed
- Prompt-injection-resistant article-body wrapper
Quick start
```sh
git clone https://github.com/Bambushu/lede.git
cd lede
npm install
cp .env.example .env.local
Fill in OPENROUTER_API_KEY + RECRAFT_API_KEY
npm run dev
```
Open http://localhost:3000 and paste any article URL.
Live hosted demo: https://lede-xi.vercel.app