Skip to content

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_KEY
    • Content-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}")

参考

http://imagemodels.dmxapi.com/

一个 Key 用全球大模型