render-hall requires --entry and no longer walks the corpus. image plan without --entry stays an inventory. LLM-WP-0010 records that existing seats are historic and that the cooldown publisher comes later. Assistant: grok Assistant-Session: 01a11ab6-1534-7d63-8606-662b92a80ed6
90 lines
4.4 KiB
Markdown
90 lines
4.4 KiB
Markdown
# Choosing an image model for `llm_connect.images`
|
||
|
||
`llm_connect.images` still requires an explicit model on a one-off render.
|
||
`llm-connect image render-hall --entry` applies the tree to the single seat
|
||
about to be published. A plain hall portrait — square technical illustration,
|
||
no logos, no readable text — is general / Efficient. The corpus is not
|
||
rendered ahead of that publication.
|
||
|
||
**Source:** intelligence-radar topic digest
|
||
`digests/topics/2026-10-08-1527_Image_Generation_with_Generative_AI_Digest.md`
|
||
(evidence observed 2026-10-08). Rankings and prices in this field change
|
||
monthly. Re-derive the table from the digest's sources before relying on it
|
||
after about 2026-11.
|
||
|
||
## Picking a model
|
||
|
||
All IDs below are OpenRouter model IDs. Prices are for one 1024² image. The
|
||
quote is the per-image estimate plus some margin, and the cap leaves room for
|
||
the provider-reported cost to come in above the quote.
|
||
|
||
| Need | Model | ≈ $/img | `--quote-usd` | `--max-cost-usd` |
|
||
|---|---|---|---|---|
|
||
| Best result, cost secondary (Frontier) | `openai/gpt-image-2.5-sunburst` | 0.21 | 0.25 | 0.30 |
|
||
| Same quality, faster | `openai/gpt-image-2.5-flare` | 0.21 | 0.25 | 0.30 |
|
||
| Near-frontier at scale (Efficient) | `google/gemini-nano-banana-2.1` | 0.034 | 0.04 | 0.08 |
|
||
| Efficient, better-evidenced fallback | `microsoft/mai-image-2.6` | 0.039 | 0.045 | 0.08 |
|
||
| Routine imagery (Budget) | `meta/muse-image` | 0.010 | 0.012 | 0.03 |
|
||
| Drafts, thumbnails, bulk variants | `recraft/recraft-v4.1-flash` | 0.007 | 0.008 | 0.02 |
|
||
| Text-heavy (posters, infographics, CJK) | `openai/gpt-image-2.5-sunburst` | 0.21 | 0.25 | 0.30 |
|
||
| Brand / consistent style set | `recraft/recraft-v4-styles` | 0.035 | 0.04 | 0.08 |
|
||
| Vector-style output | `recraft/recraft-v4.1-vector` | 0.08 | 0.09 | 0.15 |
|
||
|
||
Decision order:
|
||
|
||
1. Need vector output, brand style, or heavy text? Take that row.
|
||
2. Otherwise decide how much an excellent image is worth compared with a good
|
||
one:
|
||
- the image is the product → Frontier;
|
||
- many images, and quality matters → Efficient;
|
||
- illustrative or routine → Budget;
|
||
- exploration → bulk.
|
||
3. For important assets, **explore cheap, then finish expensive**. Render 10–20
|
||
Budget variants, then re-render the chosen one or two with the Frontier
|
||
model. 20 × Muse plus 2 × Sunburst costs about the same as three Frontier
|
||
attempts. This is a hypothesis to test with quality-ledger rows, not a
|
||
measured result.
|
||
|
||
Not available on OpenRouter, and therefore not reachable from this module:
|
||
self-hostable open weights (Qwen-Image-2.1, FLUX.2 [dev]), Ideogram,
|
||
Midjourney and Reve.
|
||
|
||
## Scoring rule behind the classes
|
||
|
||
Image leaderboards publish pairwise-preference **Elo**. Elo is an interval
|
||
scale, so "within 10% of the best model" cannot be computed as a ratio of Elo
|
||
values. The digest makes the scores usable as follows:
|
||
|
||
```
|
||
task_score(m) = P(m beats anchor) = 1 / (1 + 10^(-(Elo_m - Elo_anchor)/400))
|
||
```
|
||
|
||
Here the anchor is a fixed reference model. On the Artificial Analysis board
|
||
that is FLUX.2 [dev], Elo 1000.
|
||
|
||
- **Frontier:** the model with the highest `task_score`.
|
||
- **Topnotch:** `task_score >= 0.90 × task_score(frontier)`. With the
|
||
Frontier at Elo 1198, this means Elo ≥ about 1133.
|
||
- **Efficient:** the cheapest Topnotch model.
|
||
- **Sufficient / Budget:** a per-task floor. For routine imagery the digest uses
|
||
a provisional floor of Elo ≳ 1100, the level of the frontier from about ten
|
||
months earlier. Budget is the cheapest model above that floor.
|
||
|
||
Callers that already use `AdaptiveRoutingPolicy` quality floors can use the
|
||
same mapping. Convert Elo to an anchor win rate first, then apply a ratio
|
||
floor. Do not threshold raw Elo differences across leaderboards: the scales
|
||
differ. Arena's top gap is about 95 points where Artificial Analysis shows
|
||
about 40.
|
||
|
||
## Caveats
|
||
|
||
- OpenRouter bills most image models through a per-token rate. For Recraft,
|
||
Krea, Muse, Qwen, Seedream and FLUX 3, about 4,175 image tokens reproduces
|
||
the vendor's per-image price. For OpenAI and Google, cost depends on the
|
||
quality tier. Let the receipt's `cost_source=provider` correct the quotes
|
||
after the first runs.
|
||
- It is not verified here that every listed model accepts OpenRouter's
|
||
`/images` endpoint with explicit `size` and `aspect_ratio=1:1`. Do one
|
||
capped single render per model before running a batch.
|
||
- Nano Banana 2.1 had only a few thousand arena votes on 2026-10-08. If its
|
||
score drops, MAI-Image-2.6 becomes the Efficient pick.
|