The Cost Floor Moved: Five More Figma-to-Storybook Diff Agents

August 28, 2026

Our previous post gave an agent the same evidence a coding agent would have — the raw Figma layer tree, a Storybook screenshot captured at the exact frame size, the live DOM with computed styles, and the implementation source — and measured eleven model configurations on a single dense screen. GPT-5.6 Sol medium reached full coverage for $0.441. MiniMax M3 low was the cheapest run that still found most of the layout problems, at $0.023.

Since then a batch of new models shipped. We re-ran the same screen, the same captures, and the same rubric against five of them. The headline: the cheap end of the chart moved by more than an order of magnitude, and the interesting differences between models are no longer about whether they can read a screenshot.

Cost versus composite performance for fifteen model configurations, with the four new runs highlighted.
Cost versus composite performance for fifteen model configurations, with the four new runs highlighted.

What we ran

Every run below used identical inputs — the same 390×844 Figma render and node tree, the same Storybook capture, the same DOM inventory, and the same screen-43.tsx source — through the same two-pass agent: an uncapped structural pass, then a separate pass over enlarged icon pairs. Reasoning effort was set to xhigh on every model that exposes a thinking level.

Coverage is semantic recall against the 16-item manual review of this screen. Icon accuracy is measured across the 13 icon candidates. Composite performance is the average of the two, exactly as before.

Model and effortCoverageIcon decisionsCostComposite
Muse Spark 1.2 xhigh13/1611/13$0.202482.9%
Grok 4.6 xhigh10/169/13$0.201865.9%
GLM 5.3 Flash xhigh11/168/13$0.009165.1%
Qwen 3.8 27B xhigh10/168/13$0.097162.0%

None of them beat GPT-5.6 Sol medium, which still holds the only perfect result on this screen. But three of the four land in territory that did not exist on the previous chart.

What actually moved

Averages hide the useful question, which is what you can get for a given budget. In July the frontier had three points on it — everything else was dominated by something cheaper and better:

The July and August Pareto frontiers of best achievable performance per dollar, with the gain between them shaded.
The July and August Pareto frontiers of best achievable performance per dollar, with the gain between them shaded.
BudgetBest in JulyBest now
$0.0091*nothing on the board*65.1% · GLM 5.3 Flash
$0.02365.9% · MiniMax M3 low65.9% · MiniMax M3 low
$0.202465.9% · MiniMax M3 low82.9% · Muse Spark 1.2
$0.31686.1% · GPT-5.6 Sol low86.1% · GPT-5.6 Sol low
$0.441100% · GPT-5.6 Sol medium100% · GPT-5.6 Sol medium

Two things changed and one did not.

The frontier extended left. Below $0.023 there was previously nothing at all; GLM 5.3 Flash now sits at $0.0091 for 65.1%, which is 2.5× cheaper than the old cheapest point for 0.7 points less performance.

The frontier lifted in the middle. At $0.20 the best you could previously do was MiniMax M3 low's 65.9%. Muse Spark 1.2 delivers 82.9% at that same price — a 17-point gain across the whole $0.20 to $0.32 band, which had been a dead zone where paying more bought you nothing until you reached Sol low.

The expensive half did not move at all. Sol medium's 100% at $0.441 is still the ceiling and still the best price for it, and nothing new displaced Sol low.

It is worth being explicit about the two new runs that are *not* on the frontier. Grok 4.6 scores exactly what MiniMax M3 low scores, 65.9%, for 8.8× the price. Qwen 3.8 27B scores lower than MiniMax for 4.2× the price. Both are dominated outright — interesting for what they found, but not choices you would make on cost.

A cent is now a viable price for a design review

GLM 5.3 Flash produced 11 of 16 findings for $0.0091. That is about a fiftieth of the cost of the best run and 2.5× cheaper than the previous cheapest run, and it found *more* structural problems than MiniMax M3 low did at $0.023.

One caveat on that price, and it is a big one: GLM 5.3 Flash is currently being offered at roughly 50% off across most providers, so $0.0091 is a promotional rate rather than a standing one. At list pricing the same run would cost about $0.018 — still the cheapest configuration on the board, but only about 1.3× below MiniMax M3 low rather than 2.5×. Treat the bottom of this chart as a snapshot of what is on offer today, not a durable price floor.

What it bought at that price was the whole structural story: missing iOS chrome at both ends of the frame, all three missing content blocks, the wrong portrait asset, the rare-find banner rebuilt as a pill, and the footer's absent pricing. What it did not buy was icon discrimination — it called the verified badge, the bulb, and the paw matches when all three are substituted glyphs.

There is a revealing contradiction inside that run. GLM's structural pass correctly described the rating star as "a standalone 13px vector in Figma, a larger filled ★ text glyph in the implementation" — and then its icon pass looked at the same star in an enlarged crop and marked it a match. The two passes disagreed about the same pixels. Cheap models appear to reason better about glyphs from surrounding structural evidence than from magnified images of them.

Muse Spark reads icons

Muse Spark 1.2 was the strongest new entry at 13/16 coverage and 11/13 icon decisions, landing just under Sol low's 86.1% for two-thirds the price.

Its advantage was almost entirely in the icon pass. It was the only model in this batch to catch both the verified-host badge substitution (a custom shield-check vector replaced with a plain Ionicons checkmark) and the fun-fact bulb — both of which GPT-5.6 Sol xhigh already found in July. It cited shape evidence explicitly, noting an IoU of 0.349 on the back arrow and 0.373 on the rare-find diamond while still deciding from the visible pixels rather than the score.

That accuracy came at a price in tokens rather than dollars: 35,189 reasoning tokens, roughly six times what GLM 5.3 Flash spent.

Qwen measures geometry

Qwen 3.8 27B scored mid-table, but it was the only model in this batch to catch canonical finding #2, the host-card column and layout proportions — an item GPT-5.6 Sol xhigh, Terra max, and MiniMax M3 low all found in July, and the three other new models all missed.

What stood out was how it reported it: quantitatively. The avatar renders at 100×100 against Figma's 104×105, and the left profile column sits about 18px left of the reference. It also produced a legitimate finding outside the rubric entirely — the Reserve button is 14px right, 9px lower, and slightly narrower and taller than the Figma button. Nothing in the 16-item review covers that, which is a reminder that the rubric is a floor rather than a ceiling.

None of the four new models caught #8, the briefcase icon's contour and position — though Sol xhigh and Terra max both did in the earlier round.

Most of the failures were harness failures

The most useful result of this round was not about the models. Three of the five runs failed on the first attempt, and none of those failures were failures of visual understanding.

The published runs all used the agent's default --max-tokens 5000 for the structural pass. That default was sized against GPT-5.6 and Claude, and it does not survive contact with models that think at length before answering:

  • GLM 5.3 Flash returned JSON truncated mid-array. Its reasoning alone was 5,696 tokens.
  • Muse Spark 1.2 and Qwen 3.8 27B returned completely empty content — reasoning consumed the entire budget before a single answer token. Muse needed 35,189 reasoning tokens; Qwen needed 21,394.
  • Muse then truncated its *icon* call at a 10,000-token cap and needed the icon pass split into batches of four.

An empty completion and a truncated array look nothing alike in a log, but both surface from the agent as Model returned invalid JSON, and both had the same cause. The agent is hand-rolled against the OpenRouter API with no SDK doing retries underneath, so a budget that was fine in July is simply a wall in August. Only Grok 4.6 ran on the published defaults unchanged.

One model resisted every accommodation, and its failure turned out to be the most interesting result of the round. Qwen 3.8 Flash exposes no thinking level to cap, and it thinks in the reasoning channel until it runs out of room: empty at 5,000 tokens, empty at 14,000. Given 40,000 it stops running out of room — and returns []. An empty array. It does this identically under a strict JSON schema and under plain JSON mode, on the single provider that serves it.

The reasoning channel shows it had already done the work. Across 47,000 characters it computed normalized boxes for seven issues (A x84/390=0.2153…, y210/844=0.2488…), drafted root causes citing the DOM's absent-text list and the source's centered rare-find pill, weighed which issue numbers to group together, and closed with a note to itself: *"Let's final JSON. Ensure no trailing commas."* Then it emitted an empty array and stopped voluntarily, 14,000 tokens into a 40,000-token budget, with finish_reason: stop and nothing truncated anywhere.

The findings exist. The model simply will not serialize them. We left it out of the table rather than recover them by parsing its reasoning, since a lenient extractor no other row used would produce a number that cannot be compared with anything else here.

Cheaper at the bottom, unchanged at the top

The gains this round were real but asymmetric. The low end moved a long way: GLM 5.3 Flash does a credible structural pass for $0.0091, 2.5× below what the cheapest run cost in July, and finds more than the model that held that spot. The middle moved too, and arguably matters more — Muse Spark 1.2 reaches 82.9% for $0.2024, filling a $0.20–$0.32 band that had been dead space where spending more bought you nothing at all until you reached Sol low.

The high end did not move. GPT-5.6 Sol medium is still the only configuration that reaches full coverage on this screen, and still does it for $0.441. So the practical answer depends on what you need. If completeness is the requirement — every issue a human reviewer wrote down — the price is unchanged and the model choice is unchanged. If 65% to 83% is acceptable, which it often is for a first pass that a person reviews afterward, that tier got meaningfully cheaper this round: 2.5× at the bottom on today's promotional pricing — nearer 1.3× at GLM's list rate — and at a fixed $0.20 budget the best available result rose from 65.9% to 82.9%. The cheap tier is now cheap enough to run against every screen in a library rather than only a selected subset.