Model Capabilities

Image Editing

Edit an existing image by providing a source image along with your prompt. The model understands the image content and applies your requested changes.

With the xAI SDK, use the same sample() method; just add the image_url parameter:

import { xai } from "@ai-sdk/xai";
import { generateImage } from "ai";
import fs from "fs";

// Load image and encode as base64
const imageBuffer = fs.readFileSync("photo.png");
const base64Image = imageBuffer.toString("base64");

const { image } = await generateImage({
    model: xai.image("grok-imagine-image-2.0"),
    prompt: {
        text: "Render this as a pencil sketch with detailed shading",
        images: [`data:image/png;base64,${base64Image}`],
    },
});

console.log(image.base64);

You can provide the source image as:


Multi-turn editing

Chain multiple edits together by using each output as the input for the next. This enables iterative refinement; start with a base image and progressively add details, adjust styles, or make corrections.

Initial modern living room imageModern living room with modified furnitureModern living room adjusted to evening lighting
import xai_sdk

client = xai_sdk.Client()

response = client.image.sample(
    prompt="A modern living room with large windows overlooking the city",
    model="grok-imagine-image-2.0",
)

print(response.url)

Style transfer

The grok-imagine-image-2.0 model supports a wide range of visual styles, from ultra-realistic photography to anime, oil paintings, and pencil sketches. Transform existing images by describing the desired aesthetic in your prompt.

Original image
Oil PaintingPencil SketchPop ArtAnimeWatercolor
OriginalOil Painting
import xai_sdk

client = xai_sdk.Client()

response = client.image.sample(
    prompt="Render this image as an oil painting in the style of impressionism",
    model="grok-imagine-image-2.0",
    image_url="https://docs.x.ai/assets/api-examples/images/style-realistic.png",
)
print(response.url)


Last updated:October 8, 2026