Skip to Content

gpt-image-1 API

This document introduces the input and output parameters for calling the gpt-image-1 model API, which you can refer to when using the interface.


Request Parameters

Request Body

Field NameTypeRequiredDefault ValueDescription
promptstringRequired-Prompt word
modelstringRequired-The model name used for this request, which is gpt-image-1.
nintOptional1Number of images generated, with a range of 1 to 4
sizestringOptional”1024x1024”Resolution. GPT‑image‑1 supports 1024x1024, 1024x1536, 1536x1024.
qualitystringOptional-Image quality, supports low, medium, high; higher quality takes longer time.
output_formatstringOptional”png”Output image format, supports png, jpeg.
output_compressionintOptional100Image compression strength, with a range of 0 to 100; 0 means no compression, 100 means maximum compression.

Response Parameters

Field NameTypeDescription
createdintegerUnix timestamp (seconds) when the request was created.
dataarrayInformation about the output image, including the URL for image download or Base64. The gpt-image-1 model returns base64 data.
• When the format for generating the image is specified as URL, the relevant parameter’s sub-field is URL;
• When the format for generating the image is specified as b64_json, the relevant parameter’s sub-field is b64_json.
Note: The link will expire 7 days after generation, so be sure to save the image promptly.
errorObjectError information object
error.codestringError code
error.messagestringError message
error.paramstringRequest id

Examples

OPENAI Compatible Interface

POST https://api.umodelverse.ai/v1/images/generations

Synchronous Request

** curl **

curl --location 'https://api.umodelverse.ai/v1/images/generations' \ --header "Authorization: Bearer $MODELVERSE_API_KEY" \ --header 'Content-Type: application/json' \ --data '{ "model": "gpt-image-1", "prompt": "a beautiful flower", "size": "1024x1024", "quality": "high", "output_format": "png", "output_compression": 100 }'

** python **

import os, base64 from openai import OpenAI client = OpenAI( base_url="https://api.umodelverse.ai/v1", api_key=os.getenv("MODELVERSE_API_KEY", "YOUR_API_KEY") ) res = client.images.generate( model="gpt-image-1", prompt="a beautiful flower", size="1024x1024", quality="high", ) # gpt-image-1 returns base64 data image_b64 = res.data[0].b64_json raw = image_b64.split(",")[-1] if image_b64.startswith("data:") else image_b64 with open("image.png", "wb") as f: f.write(base64.b64decode(raw)) print("Saved to image.png")

Image Editing

POST https://api.umodelverse.ai/v1/images/edits

Use multipart/form-data to pass parameters, which include at least image (optional mask) to be edited, along with fields such as model, prompt, etc. Other parameters like size, quality, output_format, output_compression are consistent with the generation interface.

** curl **

curl --location 'https://api.umodelverse.ai/v1/images/edits' \ --header "Authorization: Bearer $MODELVERSE_API_KEY" \ -F "image=@/path/to/your/image.png" \ -F "mask=@/path/to/your/mask.png" \ -F "model=gpt-image-1" \ -F "prompt=Add a beach ball in the center" \ -F "size=1024x1024" \ -F "n=1" \ -F "quality=high" \ -F "output_format=png" \ -F "output_compression=100"

** python **

import os, base64, requests url = "https://api.umodelverse.ai/v1/images/edits" headers = {"Authorization": f"Bearer {os.getenv('MODELVERSE_API_KEY', '$MODELVERSE_API_KEY')}"} files = { "image": ("beach.png", open("beach.png", "rb"), "image/png"), # Optional: Provide a mask to specify the editing area # "mask": ("mask.png", open("mask.png", "rb"), "image/png"), } data = { "model": "gpt-image-1", "prompt": "Add a beach ball in the center", "size": "1024x1024", "n": "1", "quality": "high", "output_format": "png", "output_compression": "100", } r = requests.post(url, headers=headers, files=files, data=data) r.raise_for_status() resp = r.json() image_b64 = resp["data"][0]["b64_json"] raw = image_b64.split(",")[-1] if image_b64.startswith("data:") else image_b64 with open("edit.png", "wb") as f: f.write(base64.b64decode(raw)) print("Saved to edit.png")

Response

{ "created": 1750667997, "data": [ { "b64_json": "{image_base64_string}" } ], "usage": { "total_tokens": 4169, "input_tokens": 9, "output_tokens": 4160, "input_tokens_details": { "text_tokens": 9 } } }
{ "error": { "message": "error_message", "type": "error_type", "param": "request_id", "code": "error_code" } }