Skip to Content

It Doesn't Stop, It Changes: A Silent Redirect Behind an Image Model Retirement

On 2 September SpaceXAI announced that it will retire the `grok-imagine-image-quality` image model on 2 November. Unlike the usual case, the request will not fail: the same model name stays alive, only a different model answers behind it, at a lower quality tier and for less money. You do not have to touch your code — and that is exactly the risk. There is also a trap that makes the by-the-book migration cost more than doing nothing.
September 2, 2026 by
It Doesn't Stop, It Changes: A Silent Redirect Behind an Image Model Retirement
Krisztian Eyssen, Krisztian Eyssen

What happened

The release note reads: "On November 2, 2026, grok-imagine-image-quality is retired. Requests to the slug will be served by grok-imagine-image-2.0 with quality set to low, with no change to the request or response shape and at a lower per-image price."

The migration guide is blunter still: "The slug continues to resolve, so you do not need to change your code to avoid breakage." Its 60-day notice period began on September 2, 2026. grok-imagine-image (1.0) is not affected.

Every alias of the model follows the redirect: the dated variant, -latest and -pro alike.

The chain: this is already the second redirect

This is the part that makes the case instructive. grok-imagine-image-pro was already redirected to the -quality model on 15 May 2026. Now that model is being retired too, and -pro follows it one step further.

grok-imagine-image-pro
  -> May 15, 2026: -quality
  -> Nov 2, 2026:  2.0, quality=low
the code did not change one line
the output and the price did, twice

If you were calling -pro in the spring and have not touched the code since, from November you get a third model through two redirects stacked on top of each other, at a lower quality tier. Not one error message along the way.

The auto trap: the by-the-book migration can cost more

Prices from the model cards, per image:

Model / setting 1K (1024×1024) 2K (2048×2048)
grok-imagine-image-quality (retired) $0.05 $0.07
grok-imagine-image-2.0 · low ← redirect lands here $0.04 $0.06
grok-imagine-image-2.0 · medium $0.06 $0.08
grok-imagine-image (1.0, untouched) $0.02 $0.02

Simple so far: do nothing, and from November each image costs a cent less — in exchange for a lower quality tier. The trap is that the quality parameter defaults to auto, and the documentation says: "Auto currently uses low for image generation and medium for image editing. Images are billed at the quality they are served at."

So:

  • touch nothing: low, $0.04 per image — cheaper, weaker;
  • rename the model by the book, leave quality unset, and edit images: medium, $0.06 per image — more than the old $0.05.

For a web shop generating 2,000 product visuals a month and editing 500 of them afterwards, the difference is this: as things stand today the monthly bill is $125; with no migration, from November it is $100; with a "by the book" migration that omits the parameter, $110. Not a dramatic sum — but which way it moves depends on what you touched, and that is hard to explain after the fact.

Which is why the vendor itself says: "We recommend switching to grok-imagine-image-2.0 explicitly before November 2." Do it by hand and name the tier: then you decide what quality you pay for, not the redirect's default.

How you can tell a different model answered

There are two documented signals.

The model identifier returned in the response. The migration guide says: "The model field on responses reports the model that served the request, so you can confirm the switch from your logs." There is a contradiction here worth knowing about: the published REST response schema for image generation lists only data and usage, no top-level model field. The official SDK examples, on the other hand, do print it. If your logging depends on this, do not assume it from the documentation — check it on a live response.

The per-request cost. SpaceXAI returns what each call cost in every response, in a cost_in_usd_ticks field inside the usage object; one dollar is ten billion ticks. So the price change is visible immediately, without waiting for an invoice: 500,000,000 ticks for the old 1K image, 400,000,000 for the redirected one.

That is what is worth logging: the model name you sent, the model name you got back, the resolution, the quality (or the fact that you left it out), and the tick value. Where the name you sent and the name you got back differ, that is the exact moment of the redirect.

What the others do

The silent swap is not unique; only its shape differs from provider to provider:

  • Microsoft Foundry: Standard deployments are upgraded automatically at retirement, region by region, with notice "at least two weeks before a new version becomes the default version". Provisioned deployments, the ones on reserved capacity, are not upgraded, and once retirement completes their calls return 410 Gone.
  • Google Gemini: the version behind the -latest alias moves on its own — "This alias will get hot-swapped with every new release of a specific model variation" — and "For breaking changes, a 2-week notice will be provided through email". For production they explicitly recommend the pinned version.
  • OpenAI: a retired model is, in the documentation's words, "no longer accessible" — it errors, it does not redirect. They have a moving alias too (the one pointing at whatever runs in ChatGPT), but a retirement is a retirement.

Of the four, SpaceXAI is the only one where the retired name stays alive and is quietly served by a different model, at a different quality tier and a different price. From the user's side that is more convenient — nothing goes down — and riskier: the code keeps running, the output just changes.

What to do now

  1. Rewrite the model name by hand before November 2, and set quality explicitly. That is about two minutes of work, and afterwards the default no longer decides for you.
  2. Find where the aliases sit in your systems. -latest- and -pro-style names are convenient, but they are precisely the ones that change by themselves. Where output stability matters, a dated or versioned identifier is what belongs there.
  3. Log the model name that comes back and the per-request cost. After the fact this is the only way to say what generated the image that went onto the product page two months ago. (More: monitoring silent model changes (Care).)
  4. Compare a few images across the two tiers before the redirect decides for you. "Low" does not mean bad — it means different. Whether it is good enough depends on what you use it for.

If picking an image model is itself the open question, start with how to choose an image tool, and if retirement interests you more broadly, there is when your model is deprecated. With image models you run locally the question does not come up at all — the weights are with you.

Common misconceptions

  • "No error means nothing happened." The whole point here is that you get no error. The code runs, the image comes out, a different model drew it.
  • "The redirect is always cheaper." For generation, yes. For editing, the default tier costs more than the old model did.
  • "Relying on the provider's newsletter is enough." This retirement lives in a release note and on one migration page. No blog post was written about it.
  • "The -latest alias always gives you the best." It gives you the newest. That is not the same as the one your prompts were tuned to.
  • "Two months' notice is plenty." It is — if you know about it. This whole case is about the most consequential kind of news having no notification under it: you have to watch the page yourself.

What to take away

Model retirement comes in a loud and a quiet variety. The loud kind throws an error: the process stops, it surfaces, you fix it. The quiet kind only means that from tomorrow the same request gives you a different result — and you notice that only if you measure it. Which is why, at every piece of news like this one, the two minutes spent writing an explicit model name and explicit parameters into your code are worth more than the best notification system. Defaults are convenient, but you are not the one maintaining them.

It Doesn't Stop, It Changes: A Silent Redirect Behind an Image Model Retirement
Krisztian Eyssen, Krisztian Eyssen September 2, 2026
Share this post
Archive