LLM SDK

Image generation

Generate and edit images with OpenAI image models.

Use generateImage with openaiImage to create images from a prompt or edit uploaded images.

See release availability. The Feature Lab provides generation and upload/edit examples, both verified with real OpenAI calls.

import { generateImage } from "@yourgpt/llm-sdk";
import { openaiImage } from "@yourgpt/llm-sdk/openai";

const result = await generateImage({
  model: openaiImage("gpt-image-2.5-flare"),
  prompt: "A blue circle on a white background",
  size: "1024x1024",
  providerOptions: { openai: { quality: "low", outputFormat: "png" } },
});
// result.image.uint8Array, .base64, .mediaType
// result.images, result.usage, result.response.requestId

Run this on the server with OPENAI_API_KEY. The OpenAI client peer dependency does not need upgrading for this API. Use signal for cancellation and timeoutMs to override the 120-second timeout. Paid requests are not automatically retried.

Editing

Supplying images selects the Images edits API:

const edited = await generateImage({
  model: openaiImage(),
  prompt: "Change the circle to green",
  images: [{ data: result.image.uint8Array, mediaType: "image/png" }],
  providerOptions: { openai: { outputFormat: "webp", outputCompression: 80 } },
});

Inputs accept bytes, ArrayBuffer or Blob with PNG/JPEG/WebP media types. A PNG mask applies to the first image and must match its dimensions. URLs are not downloaded implicitly. The SDK allows 1–16 input images, each below 50 MB, with a 100 MB total input limit. n requests 1–10 outputs.

Output controls

providerOptions.openai accepts quality, background, outputFormat, outputCompression, inputFidelity (edits), moderation (generation), and safetyIdentifier. GPT Image 2.5 adds xhigh and max quality. Transparent output requires PNG or WebP; compression requires JPEG or WebP. Unsupported combinations fail before the request. Provider HTTP errors expose status/request ID through MediaAPIError, without logging the prompt or provider response body.

This helper handles final image results. Streaming previews and Responses-hosted image generation are separate integrations. See the OpenAI guide and the SDK's complete media guide.

On this page