Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate images with xAI's Grok image models (grok-2-image / grok-2-image-1212). Use when the user asks for Grok-generated images, mentions xAI image generation, or wants an OpenAI-compatible image API alternative. Generation only — Grok image models do not support edit, mask, or reference-image inputs.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -32% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -22% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 10% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 173% | 0% |
Calls xAI's OpenAI-compatible image endpoint with the Grok image models. One capability:
scripts/generate.py.For the full parameter table, response shape, and pricing notes, see references/api-reference.md. For Python recipes (URL download, base64 decoding, batch generation, prompt revision inspection), see references/examples.md.
XAI_API_KEY exported in the environment (get one at https://console.x.ai/).openai (the OpenAI SDK works against xAI by overriding base_url):bash pip install openai requests works too if you'd rather not pull the SDK; both are shown in references/examples.md.
bash# 1 image, downloaded from the returned URL python scripts/generate.py \ --prompt "A cinematic portrait of a woman on a Hong Kong street with a vintage tram in the background" \ --output portrait.png # 4 images, base64 path (no extra HTTP roundtrip) python scripts/generate.py \ --prompt "Isometric pixel-art of a cozy cyberpunk noodle shop" \ --n 4 --response-format b64_json \ --output shop.png # writes shop_0.png ... shop_3.png # Pin to the dated snapshot python scripts/generate.py \ --prompt "..." --model grok-2-image-1212 --output out.png # Inspect what Grok actually sent to the model after revision python scripts/generate.py --prompt "..." --output out.png --print-revised
When the user wants an image and chooses Grok (or asks for an OpenAI-compatible alternative), use generate.py. If the user wants any of the following, this skill is the wrong tool — escalate:
gpt-image-2 (Grok image models don't expose edit endpoints).gpt-image-2's images.edit with multiple image= files.size / quality; it picks them automatically. Use gpt-image-2 if precise sizing matters.| Flag | Values | Default | Notes | |------|--------|---------|-------| | --model | grok-2-image, grok-2-image-1212 | grok-2-image | Alias and dated snapshot of the same model | | --n | int 1–10 | 1 | Multiple images per call | | --response-format | url, b64_json | url | url returns short-lived hosted URLs; b64_json embeds the bytes | | --base-url | str | https://api.x.ai/v1 | Override only if proxying | | --print-revised | flag | off | Prints the revised_prompt Grok actually used |
Not supported by the Grok image API (don't pass these — the call will error or be ignored):
size, quality, style, response_format=image_url extrasimage / mask (no edit endpoint)stream, partial_imagesbackground, output_format, output_compression, moderationuser (not a useful knob here)data[].revised_prompt. Surface this to the user when the result drifts — they may want to feed the revised prompt back in directly.response_format=url, the URLs are short-lived. Download immediately; don't store them.n=10 can hit per-minute caps. The script doesn't auto-retry.moderation knob to relax it. If a prompt is rejected, rewrite rather than retry.gpt-image-2 for edits, masks, multi-image composition, or precise size/quality control.Other measured skills in the registry, with their headline benchmark lift.