Image generation models compared: three ids, two billing models
grok-imagine-image at $0.002 an image and grok-imagine-image-quality at $0.008 are 0.2× of $0.01 and $0.04. gpt-image-2 is 0.1× but billed on tokens, not per image.
Two are 0.2× per picture, one is 0.1× per token
This site describes its pricing as "as low as 0.1×; Claude at 0.25–0.35×; 0.2× for other mainstream pool models". The two Grok image ids sit in that last group. grok-imagine-image and grok-imagine-image-quality both carry a 0.2× multiplier on an official price of $0.01 and $0.04 per generated image, so you are charged $0.002 and $0.008 respectively.
gpt-image-2 is the odd one out. It carries the lowest multiplier in the catalog, 0.1×, but it is billed on the tokens the gateway reports rather than per image — official $5 per million input tokens and $30 per million output, so $0.50/M and $3.00/M as you are charged. The lower multiplier does not make it the cheaper picture: it applies to a different price in a different unit.
That means the three ids cannot be lined up in a single price column. Two have a fixed, known cost per picture. The third has a cost that moves with the size and quality you ask for, and the only way to learn what a given setting costs you is to generate one and read the usage back.
export TOKEN_SHARE_KEY="<your-pool-api-key>"
# Grok Imagine — priced per generated image, so n is the whole cost story.
curl -sS https://token-share.app/v1/images/generations \
-H "Authorization: Bearer $TOKEN_SHARE_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-image",
"prompt": "A cute baby sea otter",
"aspect_ratio": "1:1",
"resolution": "1k",
"response_format": "url"
}' | jq '.data[].url'
# GPT Image 2 — priced on reported tokens, so size and quality move the bill.
curl -sS https://token-share.app/v1/images/generations \
-H "Authorization: Bearer $TOKEN_SHARE_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A cute baby sea otter",
"size": "1024x1024",
"quality": "high",
"response_format": "b64_json"
}' | jq '.usage'What the 4× between the two Grok ids buys
grok-imagine-image and grok-imagine-image-quality are the same family at two price points: $0.002 and $0.008 per image as you are charged, a 4× step. Both are 0.2×, both answer on /v1/images/generations, both take the same request shape.
The catalog describes the quality id as the higher-fidelity model for polished output, and that is as far as any table can take you. Whether the difference is visible on your prompts, at your resolution, for your use, is a judgement about images — not a number, and not something this page can rank for you.
The honest test is cheap and takes a minute: run the same twenty prompts through both ids and look at the results side by side. Twenty images is $0.04 on the base id and $0.16 on the quality id. A thousand images a month is still only $2 against $8; the gap becomes a budget line somewhere in the tens of thousands — 50,000 images is $100 against $400. Below that, choose on the pictures, not on the price.
Per-image and per-token are different risks
A per-image price is predictable in the way a subscription is: 5,000 images on grok-imagine-image is $10 and on grok-imagine-image-quality is $40, and no request parameter changes that. You can budget the month before you run it.
gpt-image-2 gives up that certainty. Its multiplier is lower, but at 0.1× of $5/M input and $30/M output you are charged for whatever the gateway reports, which the catalog notes scales with resolution and quality. A batch job that quietly moves to a larger size raises the bill without changing the code that counts images.
If your workload is a fixed number of pictures a day, the two Grok ids let you multiply and stop. If it is variable in size and quality, measure a representative sample on gpt-image-2 first and extrapolate from the usage it reports rather than from an assumed cost per picture.
What these ids do not do
All three list the image capability and nothing else — no text, no tools, no thinking. They generate pictures; they are not models you hold a conversation with, and they do not appear in the context-window table because they are not billed on a context at all.
Video is a separate id with separate billing: grok-imagine-video-1.5 is 0.2× and charged per video second, on /openai/v1/videos rather than the images endpoint. Asking an image model for a clip does not work; the routes are different.
All three image ids sit behind the same OpenAI-shaped call — POST /v1/images/generations with Authorization: Bearer — so moving between them is a model-field change plus whatever parameter differences the two families have.