跳转到主要内容
POST
/
v1
/
chat
/
completions
curl --request POST \ --url https://api.apiyi.com/v1/chat/completions \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data ' { "model": "gpt-image-2-all", "messages": [ { "role": "user", "content": "横版 16:9 电影画幅,黄昏时的海边老灯塔,写实风格" } ] } '
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1702855400,
  "model": "gpt-image-2-all",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "![image](https://r2cdn.copilotbase.com/r2cdn2/xxxxx.png)"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 150,
    "total_tokens": 175
  }
}
主推端点:相比 /v1/images/generations/v1/images/edits,对话式端点对 提示词遵循更好,并且 同一端点同时支持文生图与带参考图改图,可以天然做多轮迭代。右侧 Playground 填入 API Key 后,直接从下拉选择 example(文生图 / 带参考图改图 / 多轮迭代)即可。
选择模式
  • 仅输入文本 messages文生图
  • messages 中加入 image_url(URL 或 base64 data URL)→ 带参考图改图
  • 保留 assistant 历史消息继续追问 → 多轮迭代改图

代码示例

Python(文生图)

import requests

API_KEY = "sk-your-api-key"

response = requests.post(
    "https://api.apiyi.com/v1/chat/completions",
    headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
    json={
        "model": "gpt-image-2-all",
        "messages": [
            {"role": "user", "content": "横版 16:9 电影画幅,黄昏时的海边老灯塔,写实风格"}
        ]
    },
    timeout=120
).json()

print(response["choices"][0]["message"]["content"])

Python(带参考图改图)

import requests
import base64

API_KEY = "sk-your-api-key"

# 可用 HTTPS URL,也可以用 base64 data URL
with open("photo.png", "rb") as f:
    data_url = "data:image/png;base64," + base64.b64encode(f.read()).decode()

response = requests.post(
    "https://api.apiyi.com/v1/chat/completions",
    headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
    json={
        "model": "gpt-image-2-all",
        "messages": [
            {
                "role": "user",
                "content": [
                    {"type": "text", "text": "把这张图改成水彩画风"},
                    {"type": "image_url", "image_url": {"url": data_url}}
                ]
            }
        ]
    },
    timeout=120
).json()

print(response["choices"][0]["message"]["content"])

cURL(文生图)

curl -X POST "https://api.apiyi.com/v1/chat/completions" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2-all",
    "messages": [
      {"role": "user", "content": "横版 16:9,赛博朋克雨夜街景,霓虹招牌写着 Hello World"}
    ]
  }'

cURL(带参考图改图)

curl -X POST "https://api.apiyi.com/v1/chat/completions" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2-all",
    "messages": [
      {
        "role": "user",
        "content": [
          { "type": "text", "text": "把这张图改成水彩画风" },
          { "type": "image_url", "image_url": { "url": "https://example.com/photo.png" } }
        ]
      }
    ]
  }'

Node.js(文生图)

const API_KEY = "sk-your-api-key";

const response = await fetch("https://api.apiyi.com/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "gpt-image-2-all",
    messages: [
      { role: "user", content: "1024x1024 方形 LOGO,极简猫咪线条" }
    ]
  })
});

const data = await response.json();
console.log(data.choices[0].message.content);

Node.js(带参考图改图)

import fs from "node:fs";

const API_KEY = "sk-your-api-key";
const imgB64 = fs.readFileSync("./photo.png").toString("base64");
const dataUrl = `data:image/png;base64,${imgB64}`;

const response = await fetch("https://api.apiyi.com/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "gpt-image-2-all",
    messages: [
      {
        role: "user",
        content: [
          { type: "text", text: "把这张图改成水彩画风" },
          { type: "image_url", image_url: { url: dataUrl } }
        ]
      }
    ]
  })
});

const data = await response.json();
console.log(data.choices[0].message.content);

OpenAI SDK(推荐,Python)

from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://api.apiyi.com/v1"
)

resp = client.chat.completions.create(
    model="gpt-image-2-all",
    messages=[{
        "role": "user",
        "content": "生成一张横版 16:9 的国画风格水墨山水"
    }]
)
print(resp.choices[0].message.content)

参数说明速查

参数类型必填说明
modelstring固定填 gpt-image-2-all
messagesarray对话消息数组;支持 system / user / assistant 三种 role
messages[].contentstring | array纯文本字符串(文生图)或多模态数组(带图改图)
streamboolean是否流式。本模型为一次性出图,建议保持 false
多模态 content 片段content 为数组时):
字段类型必填说明
typeenumtextimage_url
textstring条件type=text 时必填
image_url.urlstring条件type=image_url 时必填。支持 https://...data:image/png;base64,...
详细的字段说明与可选值请查看右侧 Playground。下拉 “Example” 可在 文生图 / 带参考图改图 / 多轮迭代 之间切换。

响应格式

对话式端点返回标准的 OpenAI chat.completion 响应结构,生成的图片以 URL 或 data URL 形式出现在 choices[0].message.content 文本中
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1702855400,
  "model": "gpt-image-2-all",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "![image](https://r2cdn.copilotbase.com/r2cdn2/xxxxx.png)"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 150,
    "total_tokens": 175
  }
}
解析建议:用正则 https?://[^\s)]+\.(png|jpg|jpeg|webp)data:image/[^\s)]+content 文本中抽取图片链接即可。

为什么主推对话式端点?

提示词遵循更好

对话式端点对复杂指令、尺寸描述、文字排版的遵循度更高,更稳定

同端点双能力

不需要在 generations / edits 两个端点之间切换,统一走一个端点

天然多轮迭代

保留 assistant 历史消息即可继续精调,逻辑与 ChatGPT 一致

SDK 生态最完整

OpenAI 官方 SDK、LangChain、各类 Chat 前端都能直接对接

相关资源

模型概览

能力说明、定价、最佳实践

文生图 API(/v1/images/generations)

OpenAI Images API 兼容端点

图片编辑 API(/v1/images/edits)

multipart/form-data 上传参考图改图

在线出图

imagen.apiyi.com 在线测试

授权

Authorization
string
header
必填

在 API易控制台获取的 API Key

请求体

application/json
model
enum<string>
默认值:gpt-image-2-all
必填

模型名称,固定为 gpt-image-2-all

可用选项:
gpt-image-2-all
messages
object[]
必填

对话消息数组。支持多轮对话与多模态内容。

stream
boolean
默认值:false

是否流式返回。本模型为一次性出图,建议保持 false。Playground 不支持流式预览。

temperature
number
默认值:1

采样温度(对生图影响较小,保持默认即可)

必填范围: 0 <= x <= 2

响应

成功生成图片(图片链接或 data URL 会出现在 choices[0].message.content 中)

id
string
示例:

"chatcmpl-abc123"

object
string
示例:

"chat.completion"

created
integer

创建时间戳(Unix 秒)

示例:

1702855400

model
string
示例:

"gpt-image-2-all"

choices
object[]
usage
object