Openai gpt-image-1 API 文生图接口文档
简介
gpt-image-1 模型基于 OpenAI 最新的 GPT-4o 模型,提供了更加强大和灵活的图像处理能力。它不仅可以进行高质量的文生图,更支持图生图(对现有图片进行编辑)以及创新的多图合并功能。
应该说目前 gpt-image-1 是效果最好、使用方便、也是最贵的绘图模型。每张图约 ¥0.8~¥1.2 之间。
API接口文档
请求方法
使用 POST 请求方式调用图像生成API:
- 请求URL:
https://www.dmxapi.cn/v1/images/generations - 请求方法:
POST - 请求头:
Authorization: Bearer YOUR_API_KEYContent-Type: application/json
- 请求体: JSON格式,包含图像生成参数
基本请求格式
http
POST https://www.dmxapi.cn/v1/images/generations
Authorization: Bearer sk-*****************************************
Content-Type: application/json
{
"prompt": "图像描述文本",
"model": "gpt-image-1",
"n": 1,
"size": "1024x1024"
}文生图代码示例 (Python)
python
import requests # 用于发送HTTP请求
import base64 # 用于解码base64编码的图片数据
from datetime import datetime # 用于生成时间戳
# API配置信息
API_KEY = "sk-*****************************************" # DMXAPI的API密钥
API_URL = "https://www.dmxapi.cn/v1/images/generations" # 图像生成API的端点URL
# 构建请求参数
payload = {
"prompt": "哪吒竖着大拇指,背景广告牌写着 DMXAPI", # 图像描述提示词,描述要生成的图像内容
"n": 1, # 生成图像的数量,这里设置为1张
"model": "gpt-image-1", # 使用的AI模型,这里使用基础图像生成模型
"size": "1024x1536", # 生成图像的尺寸,宽度1024像素,高度1536像素
}
# 设置HTTP请求头
headers = {
"Authorization": f"Bearer {API_KEY}", # 使用Bearer token进行身份验证
"Content-Type": "application/json" # 指定请求内容类型为JSON
}
try:
# 向API发送POST请求生成图像
response = requests.post(API_URL, json=payload, headers=headers)
response.raise_for_status() # 检查HTTP响应状态,如果有错误会抛出异常
# 解析API返回的JSON响应数据
result = response.json()
# 处理返回的图片数据
if 'data' in result and len(result['data']) > 0:
# 遍历返回的每张图片数据
for i, image_data in enumerate(result['data']):
# 检查是否包含base64编码的图片数据
if 'b64_json' in image_data:
# 获取base64编码的图片数据
base64_data = image_data['b64_json']
# 将base64数据解码为二进制图片数据
image_bytes = base64.b64decode(base64_data)
# 生成唯一的文件名(使用当前时间戳避免文件名重复)
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"generated_image_{timestamp}_{i+1}.png"
# 将图片数据保存到本地文件
with open(filename, 'wb') as f:
f.write(image_bytes)
print(f"图片已保存为: {filename}")
# 如果返回的是图片URL而不是base64数据
elif 'url' in image_data:
print(f"图片URL: {image_data['url']}")
else:
print("未找到图片数据")
except requests.exceptions.RequestException as e:
# 处理网络请求相关的错误
print(f"请求失败: {e}")
# 如果有响应对象,打印详细的错误信息
if e.response:
print(f"状态码: {e.response.status_code}")
print(f"响应内容: {e.response.text}")