Skip to content
curl -X POST https://api.wxiai.com/v1/images/generations \
  -H "Authorization: Bearer $WXIAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-image-2.0",
    "prompt": "一只戴着宇航头盔的柴犬,扁平插画风格,纯色背景",
    "n": 1,
    "aspect_ratio": "1:1",
    "resolution": "1k"
  }'
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.wxiai.com/v1",
)

resp = client.images.generate(
    model="grok-imagine-image-2.0",
    prompt="一只戴着宇航头盔的柴犬,扁平插画风格,纯色背景",
    n=1,
    extra_body={                    # Grok 的字段走 extra_body
        "aspect_ratio": "1:1",
        "resolution": "1k",
    },
)

print(resp.data[0].url)
curl -X POST https://api.wxiai.com/v1/images/generations \
  -H "Authorization: Bearer $WXIAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-image-2.0",
    "prompt": "未来城市夜景天际线",
    "n": 4,
    "resolution": "2k",
    "response_format": "b64_json"
  }'
{
  "data": [
    {
      "url": "https://imgen.x.ai/.../image.jpg",
      "mime_type": "image/jpeg"
    }
  ],
  "usage": {
    "cost_in_usd_ticks": 400000000
  }
}
{
  "error": {
    "message": "prompt cannot be empty",
    "type": "wxi_api_error",
    "param": "prompt",
    "code": "invalid_request_error"
  }
}
OpenAI 兼容层

生成图片

给一段文字描述,直接拿到图片。同步接口——不需要轮询,一次请求就返回结果。

POST/v1/images/generations

端点 ​

http
POST /v1/images/generations

这是 OpenAI 兼容路径:请求归一化后转发给 Grok。字段名用的是 Grok 官方那一套(aspect_ratio / resolution),不是 OpenAI 的 size。

同一能力在原生透传层的写法见 生成图片(原生透传)。

请求 ​

bash
curl -X POST https://api.wxiai.com/v1/images/generations \
  -H "Authorization: Bearer $WXIAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-image-2.0",
    "prompt": "一只戴着宇航头盔的柴犬,扁平插画风格,纯色背景",
    "n": 1,
    "aspect_ratio": "1:1",
    "resolution": "1k"
  }'

用 OpenAI SDK 时,Grok 自己的字段放在 extra_body 里——这是 xAI 官方文档给的写法:

python
resp = client.images.generate(
    model="grok-imagine-image-2.0",
    prompt="一只戴着宇航头盔的柴犬,扁平插画风格,纯色背景",
    n=1,
    extra_body={"aspect_ratio": "1:1", "resolution": "1k"},
)
print(resp.data[0].url)

请求参数 ​

参数必填说明
model是图像模型,如 grok-imagine-image-2.0
prompt是画面描述
n否生成张数,1–10,默认 1。按张计费
aspect_ratio否画面比例,默认 auto(模型自选)。全部取值见总览
resolution否1k(默认)/ 2k
quality否low / medium / auto(默认)。只对 grok-imagine-image-2.0 生效
response_format否url(默认)或 b64_json
storage_options否把产物存入 xAI 文件服务,见总览
user否你自己终端用户的标识,用于滥用监测

兼容层多认一个 size

除了上面的官方字段,兼容层额外还认 OpenAI 的 size(如 "1024x1024"),会按长边换算成 1k / 2k 并推断比例。

这是便利,官方文档里没有 size——新代码建议直接写 resolution + aspect_ratio。

返回 ​

json
{
  "data": [
    {
      "url": "https://imgen.x.ai/.../image.jpg",
      "mime_type": "image/jpeg"
    }
  ],
  "usage": {
    "cost_in_usd_ticks": 400000000
  }
}
字段说明
data[].url图片地址。response_format 为 url(默认)时有
data[].b64_jsonbase64 图片数据(不含 data: 前缀)。response_format 为 b64_json 时有
data[].mime_type图片格式,如 image/png、image/jpeg、image/webp
usage.cost_in_usd_ticks本次请求成本,单位是「USD tick」:1 美分 = 100,000,000 ticks
usage.input_tokens / output_tokens / total_tokensgrok-imagine-image-2.0 按张计费,不返回 token 字段。只有按 token 计费的图像模型才会有

图像接口的返回两层一致——都直接来自 Grok 官方,网关不改写。

这一层的注意点 ​

  • resolution 不是 1024x1024:Grok 只认 1k / 2k 两档。要精确控制形状就配 aspect_ratio。
  • url 是临时地址:拿到后尽快下载转存,别长期当图片源用。要么用 b64_json,要么传 storage_options。
  • 超时按对话接口设:出图要几十秒,客户端超时调到 120 秒以上。
  • n 是乘数:一次生成多张按张数计费。

相关页 ​

基于 Apache-2.0 许可发布