Skip to content

OpenAI GPT image 文生图 API 文档

概念介绍

文生图(Text-to-Image)是一种通过自然语言描述生成对应图像的技术。本API基于OpenAI的GPT模型实现,支持多种图像生成模型和尺寸规格。

详细教程

http://imagemodels.dmxapi.com/

基础信息

  • 请求方式: POST
  • Base URL: https://www.dmxapi.cn
  • 接口路径: /v1/images/generations
  • 认证方式: Bearer Token

请求参数

参数名类型必填说明
promptstring图像描述文本
nint生成图片数量(默认1)
modelstring模型选择(默认gpt-image-1)
sizestring图像尺寸(如"1024x1536")

支持的模型

基础模型

  • gpt-image-1: OpenAI GPT 图像生成模型
    • 特点:文本理解与图像生成深度融合,适合文字驱动型创作
    • 支持尺寸:1024x1024、1024x1536、1536x1024
    • 适用场景:通用图像生成、概念设计、创意表达

专业模型

  • seedream-4.0: 即梦4 AI绘图大模型

    • 特点:国内领先的图像生成模型,由豆包团队开发
    • 支持尺寸:多种主流尺寸
    • 适用场景:高质量艺术创作、商业设计
  • flux-kontext-max: Black Forest Labs 商业级模型

    • 特点:商业级精度的图像生成,专业设计标准
    • 支持尺寸:多种专业尺寸
    • 适用场景:专业设计需求、商业用途
  • flux-kontext-pro: 上下文感知生成模型

    • 特点:支持文本+图像输入的上下文感知生成/编辑
    • 支持尺寸:灵活尺寸支持
    • 适用场景:图像编辑、精准控制生成

轻量模型

  • nano-banana: 轻量级快速生成模型
    • 特点:快速生成,适合批量处理
    • 支持尺寸:1024x1024、1024x1536、1536x1024
    • 适用场景:快速原型、批量生成

Python调用示例

python
# 导入必要的库
import requests  # 用于发送HTTP请求
import base64    # 用于处理base64编码的图片数据
from datetime import datetime  # 用于生成时间戳

# API配置信息
API_KEY = "sk-************************************"  # 替换为你的API密钥
API_URL = "https://www.dmxapi.cn/v1/images/generations"  # DMXAPI图片生成接口地址

# 构建请求参数
payload = {
    "prompt": "哪吒竖着大拇指,背景广告牌写着 DMXAPI",  # 图像描述提示词
    "n": 1,  # 生成图片的数量
    "model": "gpt-image-1",  # 使用的AI图片生成模型
    "size": "1024x1536",  # 生成图片的尺寸(宽x高)
}

# 设置HTTP请求头
headers = {
    "Authorization": f"Bearer {API_KEY}",  # 身份验证,使用Bearer token格式
    "Content-Type": "application/json"     # 指定请求内容类型为JSON
}

try:
    # 发送POST请求到API接口
    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链接
            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}")

响应示例

接受图片并自动保存到本地文件

json
图片已保存为: generated_image_20251014_193119_1.png

常见错误码:

  • 401: 认证失败(无效API密钥)
  • 400: 请求参数错误
  • 429: 请求频率限制
  • 500: 服务器内部错误

建议在代码中添加完善的错误处理逻辑,如示例中所示

一个 Key 用全球大模型