Skip to content
For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Primary navigation

Create image

client.images.generate(ImageGenerateParamsbody, RequestOptionsoptions?): ImagesResponse { created, background, data, 4 more } | Stream<ImageGenStreamEvent>
POST/images/generations

Creates an image given a prompt. Learn more.

ParametersExpand Collapse
ImageGenerateParams = ImageGenerateParamsNonStreaming { stream } | ImageGenerateParamsStreaming { stream }
ImageGenerateParamsBase { prompt, background, model, 11 more }
ImageGenerateParamsNonStreaming extends ImageGenerateParamsBase { prompt, background, model, 11 more } { stream }
ImageGenerateParamsStreaming extends ImageGenerateParamsBase { prompt, background, model, 11 more } { stream }
ReturnsExpand Collapse
ImagesResponse { created, background, data, 4 more }

The response from the image generation endpoint.

ImageGenStreamEvent = ImageGenPartialImageEvent { b64_json, background, created_at, 5 more } | ImageGenCompletedEvent { b64_json, background, created_at, 5 more }

Emitted when a partial image is available during image generation streaming.

Create image

import OpenAI from "openai";
import { writeFile } from "fs/promises";

const client = new OpenAI();

const img = await client.images.generate({
  model: "gpt-image-1.5",
  prompt: "A cute baby sea otter",
  n: 1,
  size: "1024x1024"
});

const imageBuffer = Buffer.from(img.data[0].b64_json, "base64");
await writeFile("output.png", imageBuffer);
{
  "created": 1713833628,
  "data": [
    {
      "b64_json": "..."
    }
  ],
  "usage": {
    "total_tokens": 100,
    "input_tokens": 50,
    "output_tokens": 50,
    "input_tokens_details": {
      "text_tokens": 10,
      "image_tokens": 40
    }
  }
}

Create image

import OpenAI from "openai";

const client = new OpenAI();

const stream = await client.images.generate({
  model: "gpt-image-1.5",
  prompt: "A cute baby sea otter",
  n: 1,
  size: "1024x1024",
  stream: true,
});

for await (const event of stream) {
  console.log(event);
}
event: image_generation.partial_image
data: {"type":"image_generation.partial_image","b64_json":"...","partial_image_index":0}

event: image_generation.completed
data: {"type":"image_generation.completed","b64_json":"...","usage":{"total_tokens":100,"input_tokens":50,"output_tokens":50,"input_tokens_details":{"text_tokens":10,"image_tokens":40}}}
Returns Examples
{
  "created": 0,
  "background": "transparent",
  "data": [
    {
      "b64_json": "b64_json",
      "revised_prompt": "revised_prompt",
      "url": "https://example.com"
    }
  ],
  "output_format": "png",
  "quality": "low",
  "size": "1024x1024",
  "usage": {
    "input_tokens": 0,
    "input_tokens_details": {
      "image_tokens": 0,
      "text_tokens": 0
    },
    "output_tokens": 0,
    "total_tokens": 0,
    "output_tokens_details": {
      "image_tokens": 0,
      "text_tokens": 0
    }
  }
}