xAI
Grok Imagine Quality
grok-imagine-quality/image-to-image
xAI's high-fidelity image generation and editing model, with more stable text rendering and composition, supporting 1K/2K output and consistent editing with reference images
Try grok-imagine-quality/image-to-image
Input
Showcases
View all showcasesOutput
imagePricing
grok-imagine-quality/image-to-image per image
| Specifications | Unit Price |
|---|---|
| 1K | $0.080 |
| 2K | $0.100 |
Overview
grok-imagine-quality/image-to-image is xAI's high-fidelity version for image editing. It accepts 1 to 3 reference images and an editing instruction, and outputs finished images at 1K or 2K resolution. Compared with the standard version, it goes further in detail sharpness, texture and lighting, in-image text rendering, and composition stability, at the cost of slightly slower generation. It is suited to developers who need production-grade image quality and targeted modifications based on reference images, for delivery scenarios such as commercial visuals, social media assets, and layouts.
Key Highlights
- High-fidelity editing with more stable details and composition — Compared with the standard version, texture, lighting, and physical behavior are more natural and composition is more stable, so results can be used directly for delivery rather than only as drafts.
- Supports both 1K and 2K output — The same API lets you choose 1K for fast iteration or 2K for fine retouching, covering both creative trial and error and final production.
- Multiple reference images and controllable aspect ratio — Pass up to 3 reference images, and choose auto or 13 fixed aspect ratios; auto follows the first reference image.
- More accurate in-image text rendering — Text fidelity in layout-oriented images is improved, making it suitable for outputs containing text such as posters and social graphics.
Capabilities
Targeted editing with reference images: Pass 1 to 3 reference images along with a natural-language editing instruction to make targeted modifications to the image while preserving consistency of the subject and style.
Resolution and aspect ratio control: Supports 1K and 2K resolutions, and the aspect ratio can be set to auto or common portrait and landscape ratios; auto mode uses the aspect ratio of the first reference image, making it easy to adapt to different placements.
Multi-format output: Output formats include jpeg, png, and webp, directly matching the file type requirements of downstream processing pipelines.
Long-instruction editing: Editing instructions support up to 8000 characters, allowing description of fairly complex multi-element modification intents.
Named-entity fidelity: Accuracy is relatively high for named subjects such as brands, public figures, and specific locations, and objects can be named directly in the instruction.
Use Cases
- E-commerce and advertising teams modifying product images — Use product photos as references and adjust background, lighting, and composition according to a description to produce production-grade visual assets ready for launch.
- Designers creating posters and social media assets — Generate images with text layout based on existing layout reference images, and output 2K graphics for event posters or social media publishing.
- Creative teams iterating from sketches to fine retouching — Use 1K first to quickly validate direction, then output the final version at 2K, shortening the cycle from concept testing to delivery.
- Series images that need consistent style — Generate multiple images conditioned on the same reference image to keep style and subject consistent, for serialized content production.
Limitations and Selection Advice
This is an image editing pipeline and requires at least 1 publicly accessible jpeg, png, or webp reference image; SVG is not supported, so it is not suitable for pure text-to-image needs — for such scenarios, choose a text-to-image pipeline from the same series. Editing instructions support up to 8000 characters, and at most 3 images can be referenced per request. Quality is prioritized, so generation is slower than the standard version; high-resolution tasks or tasks requiring fine adjustment of reference images may need multiple attempts to reach the desired result. Only image output is supported and other modalities such as video are not covered.
Frequently asked questions
View all FAQs →-
What is Grok Imagine Quality best for?
Hero images, covers, campaign concepts, and high-quality scenes that need richer material, light, atmosphere, and detail.
-
How are 1k and 2k billed?
1k and 2k use separate per-image tiers. Ratio and output format do not add another fee; see the live page price for the current amounts.
-
Why not always use the standard tier?
Standard is better for volume drafts and speed. Choose Quality when final-image material and detail matter more.
-
Does it accept reference images?
The text-to-image route does not. Use grok-imagine-quality/image-to-image for quality-tier editing.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: grok-imagine-quality/image-to-image
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for grok-imagine-quality/image-to-image and route default — see the parameter table below.
promptstringRequiredminLength 1maxLength 8000Image editing instruction text that describes the desired output effect; provided as a string, its content directly determines the editing direction.
image_urlsarrayRequiredminItems 1maxItems 3Array of input reference images whose elements are publicly accessible image URLs; supports jpeg/png/webp formats, does not support SVG; the number of images is 1 to 3.
Array [ string ]
resolutionstringOptionalDefault: "1k"Output image resolution, provided as a string; default is 1k.
1k2kaspect_ratiostringOptionalDefault: "auto"Aspect ratio of the generated image, provided as a string; when set to auto, it follows the aspect ratio of the first input image; default is auto.
auto2:120:919.5:916:94:33:21:1Show all (6)
2:33:49:169:19.59:201:2output_formatstringOptionalDefault: "jpeg"Output image format, provided as a string; default is jpeg.
jpegpngwebpcallbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-quality/image-to-image",
"input": {
"prompt": "…",
"image_urls": "…",
"resolution": "1k",
"aspect_ratio": "auto",
"output_format": "jpeg"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "grok-imagine-quality/image-to-image",
input: {
"prompt": "…",
"image_urls": "…",
"resolution": "1k",
"aspect_ratio": "auto",
"output_format": "jpeg"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "grok-imagine-quality/image-to-image",
"input": {
"prompt": "…",
"image_urls": "…",
"resolution": "1k",
"aspect_ratio": "auto",
"output_format": "jpeg"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
FLUX.1 Schnell Black Forest Labs $0.005 /image -
Grok Imagine Image 2.0 xAI $0.052 /image -
BRIA Eraser Bria $0.058 /image -
FLUX 1.1 Pro Black Forest Labs $0.050 /image -
Qwen Image 2.1 Alibaba $0.020 /image -
Krea 3 Krea $0.036 /image -
FIBO 1.5 Bria $0.058 /image -
FLUX 3 Image Black Forest Labs $0.041 /image -
Nano Banana Google $0.021 /image -
Nano Banana 2 Google $0.036 /image -
FLUX.1 Fill Pro Black Forest Labs $0.071 /image -
Recraft Creative Upscale Recraft $0.357 /image







