接口说明

GPT Image 2 是 OpenAI 推出的新一代 AI 生图模型,理解能力强、画面细节丰富,既能通过文字描述作画,也可依托参考图进行二次修改、风格复刻与创意调整,出图质量和写实度大幅提升。

AI 绘图插图

本接口接入 OpenAI GPT Image 2 图像生成模型,内置强大 AI 绘图能力,支持文生图、参考图编辑两大核心模式,可快速生成高清优质创意图像。

基础信息

  • 接口域名: https://www.yuntts.com
  • API 前缀: /api/v1
  • 请求方法: POST
  • 认证方式: Bearer Token

GPT Image 2 生图接口

接口地址

POST https://www.yuntts.com/api/v1/gpt-image2/generate

请求头

字段名 类型 必填 描述
Authorization string Bearer Token
Content-Type string application/json

 请求参数

参数 类型 必填 说明
prompt string 图片描述提示词
aspect_ratio string 图片比例,默认 1:1,可选 3:22:34:33:416:99:16
reference_images array 参考图片URL数组(参考图编辑模式)
x_channel string 通道选择,默认 default

请求示例

模式1:文生图

{
  "prompt": "一只可爱的橘猫在阳光明媚的花园里玩耍,高清摄影风格,细节丰富,色彩鲜艳",
  "aspect_ratio": "16:9",
  "x_channel": "premium"
}

模式2:参考图编辑

{
  "prompt": "将这张图片转换为赛博朋克风格,添加霓虹灯效果,夜晚场景",
  "aspect_ratio": "1:1",
  "reference_images": [
    "https://example.com/reference.jpg"
  ],
  "x_channel": "official"
}

响应格式

成功响应

{
  "code": 200,
  "message": "任务提交成功",
  "data": {
    "task_id": "gpt_image2_69eca0e4747e3",
    "status": "submitted"
  }
}

失败响应

{
  "code": 400,
  "message": "请输入提示词",
  "data": null
}

GPT Image 2 任务状态查询接口

接口地址

POST https://www.yuntts.com/api/v1/gpt-image2/status

请求头

字段名 类型 必填 描述
Authorization string Bearer Token
Content-Type string application/json

 请求参数

参数 类型 必填 说明
task_id string 任务ID,由生图接口返回

请求示例

{
  "task_id": "gpt_image2_69eca0e4747e3"
}

响应格式

处理中响应

{
  "code": 200,
  "message": "success",
  "data": {
    "task_id": "gpt_image2_69eca0e4747e3",
    "status": "processing",
    "progress": 50,
    "prompt": "一只可爱的橘猫在阳光明媚的花园里玩耍...",
    "aspect_ratio": "16:9",
    "created_at": "2026-04-25 19:18:35",
    "updated_at": "2026-04-25 19:18:36"
  }
}

完成响应

{
  "code": 200,
  "message": "success",
  "data": {
    "task_id": "gpt_image2_69eca0e4747e3",
    "status": "completed",
    "progress": 100,
    "prompt": "一只可爱的橘猫在阳光明媚的花园里玩耍...",
    "aspect_ratio": "16:9",
    "result_image_url": "https://www.yuntts.com/uploads/da569727-cb54-4d4a-a017-053ad34ab014.png",
    "created_at": "2026-04-25 19:18:35",
    "updated_at": "2026-04-25 19:18:36"
  }
}

失败响应

{
  "code": 200,
  "message": "success",
  "data": {
    "task_id": "gpt_image2_69eca0e4747e3",
    "status": "failed",
    "progress": 0,
    "prompt": "一只可爱的橘猫在阳光明媚的花园里玩耍...",
    "aspect_ratio": "16:9",
    "error_message": "API请求失败: 超时",
    "created_at": "2026-04-25 19:18:35",
    "updated_at": "2026-04-25 19:19:00"
  }
}

状态说明

状态 描述
pending 任务等待中
submitted 任务已提交到API
processing 图片生成中
completed 生成完成
failed 生成失败

完整调用流程

步骤1:提交生图任务

curl -X POST https://www.yuntts.com/api/v1/gpt-image2/generate 
  -H "Content-Type: application/json" 
  -H "Authorization: Bearer YOUR_API_KEY" 
  -d '{
    "prompt": "一只可爱的橘猫在花园里玩耍",
    "aspect_ratio": "16:9",
    "x_channel": "premium"
  }'

步骤2:轮询任务状态

curl -X POST https://www.yuntts.com/api/v1/gpt-image2/status 
  -H "Content-Type: application/json" 
  -H "Authorization: Bearer YOUR_API_KEY" 
  -d '{"task_id": "gpt_image2_69eca0e4747e3"}'

步骤3:获取生成结果

当状态为 completed 时,从响应中获取 result_image_url

错误码说明

错误码 消息 说明
400 请输入提示词 prompt 参数不能为空
400 余额不足,请先充值 用户余额不足以支付生成费用
401 无效的 API 密钥 API 密钥错误或已过期
500 API密钥未配置 系统未配置 MXAPI API 密钥
500 任务创建失败 数据库操作失败
500 积分扣除失败 余额扣除操作失败
500 API提交失败 调用远程 API 失败

6. 注意事项

  1. 认证:所有请求都需要在请求头中添加 Authorization: Bearer YOUR_API_KEY
  2. 轮询间隔:建议轮询间隔为 3-5 秒,避免过于频繁的请求
  3. 参考图片:参考图片 URL 必须是可访问的公共 URL
  4. 价格:生成图片会消耗用户积分,具体价格可在系统设置中配置
  5. 通道选择:不同通道可能影响生成速度和稳定性
  6. 图片比例:选择合适的比例以获得最佳视觉效果

支持的图片比例

比例 适用场景
1:1 社交媒体头像、产品展示
3:2 风景照片、横幅
2:3 人像照片、社交媒体帖子
4:3 传统照片、文档
3:4 竖版照片、移动设备
16:9 宽屏展示、视频封面
9:16 竖屏视频、Instagram故事

示例代码

JavaScript 示例

// 提交生图任务
async function submitGenerateTask() {
  const response = await fetch('https://www.yuntts.com/api/v1/gpt-image2/generate', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer YOUR_API_KEY'
    },
    body: JSON.stringify({
      prompt: '一只可爱的橘猫在花园里玩耍',
      aspect_ratio: '16:9'
    })
  });

  const result = await response.json();
  if (result.code === 200) {
    const taskId = result.data.task_id;
    startPolling(taskId);
  }
}

// 轮询任务状态
function startPolling(taskId) {
  const interval = setInterval(async () => {
    const response = await fetch('https://www.yuntts.com/api/v1/gpt-image2/status', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer YOUR_API_KEY'
      },
      body: JSON.stringify({ task_id: taskId })
    });

    const result = await response.json();
    if (result.code === 200) {
      const status = result.data.status;
      if (status === 'completed') {
        clearInterval(interval);
        console.log('生成完成:', result.data.result_image_url);
      } else if (status === 'failed') {
        clearInterval(interval);
        console.error('生成失败:', result.data.error_message);
      }
    }
  }, 3000);
}

Python 示例

import requests
import time

API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://www.yuntts.com/api/v1'

def submit_task():
    url = f'{BASE_URL}/gpt-image2/generate'
    headers = {
        'Content-Type': 'application/json',
        'Authorization': f'Bearer {API_KEY}'
    }
    data = {
        'prompt': '一只可爱的橘猫在花园里玩耍',
        'aspect_ratio': '16:9'
    }

    response = requests.post(url, headers=headers, json=data)
    result = response.json()
    if result['code'] == 200:
        return result['data']['task_id']
    return None

def check_status(task_id):
    url = f'{BASE_URL}/gpt-image2/status'
    headers = {
        'Content-Type': 'application/json',
        'Authorization': f'Bearer {API_KEY}'
    }
    data = {'task_id': task_id}

    response = requests.post(url, headers=headers, json=data)
    return response.json()

# 调用示例
task_id = submit_task()
if task_id:
    while True:
        status = check_status(task_id)
        if status['code'] == 200:
            task_status = status['data']['status']
            if task_status == 'completed':
                print('生成完成:', status['data']['result_image_url'])
                break
            elif task_status == 'failed':
                print('生成失败:', status['data']['error_message'])
                break
        time.sleep(3)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。