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 variation

images.create_variation(**kwargs) -> ImagesResponse { created, background, data, 4 more }
POST/images/variations

Creates a variation of a given image. This endpoint only supports dall-e-2.

ParametersExpand Collapse
image: FileInput

The image to use as the basis for the variation(s). Must be a valid PNG file, less than 4MB, and square.

model: String | ImageModel

The model to use for image generation. Only dall-e-2 is supported at this time.

n: Integer

The number of images to generate. Must be between 1 and 10.

minimum1
maximum10
response_format: :url | :b64_json

The format in which the generated images are returned. Must be one of url or b64_json. URLs are only valid for 60 minutes after the image has been generated.

size: :"256x256" | :"512x512" | :"1024x1024"

The size of the generated images. Must be one of 256x256, 512x512, or 1024x1024.

user: String

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. Learn more.

ReturnsExpand Collapse
class ImagesResponse { created, background, data, 4 more }

The response from the image generation endpoint.

created: Integer

The Unix timestamp (in seconds) of when the image was created.

formatunixtime
background: :transparent | :opaque

The background parameter used for the image generation. Either transparent or opaque.

data: Array[Image { b64_json, revised_prompt, url } ]

The list of generated images.

output_format: :png | :webp | :jpeg

The output format of the image generation. Either png, webp, or jpeg.

quality: :low | :medium | :high

The quality of the image generated. Either low, medium, or high.

size: :"1024x1024" | :"1024x1536" | :"1536x1024"

The size of the image generated. Either 1024x1024, 1024x1536, or 1536x1024.

usage: Usage{ input_tokens, input_tokens_details, output_tokens, 2 more}

For gpt-image-1 only, the token usage information for the image generation.

Create image variation

require "openai"

openai = OpenAI::Client.new(api_key: "My API Key")

images_response = openai.images.create_variation(image: StringIO.new("Example data"))

puts(images_response)
{
  "created": 1589478378,
  "data": [
    {
      "url": "https://..."
    },
    {
      "url": "https://..."
    }
  ]
}
Returns Examples
{
  "created": 1589478378,
  "data": [
    {
      "url": "https://..."
    },
    {
      "url": "https://..."
    }
  ]
}