生成图像
创建图像。普通模型会同步返回 data[] 图像结果;配置为异步专用的模型会先返回任务对象,再通过 GET /v1/images/generations/{task_id} 轮询结果。
如果你要使用阿里原生 input / parameters 请求格式,请看 阿里图像生成。
Try It
POST
/v1/images/generationshttps://api-platform.ope.ai认证
使用 Bearer Token 认证。
- Header:
Authorization: Bearer <token> - 示例:
Authorization: Bearer sk-xxxxxx
请求体(application/json)
| 字段 | 类型 | 必填 | 说明 | 默认值 / 范围 |
|---|---|---|---|---|
model | string | 是 | 用于图像生成的模型 | qwen-image-2.0 |
prompt | string | 是 | 图像的文本描述 | - |
n | integer | 否 | 生成图片的数量 | 默认值:1 |
size | string | 否 | 生成图像尺寸,请使用小写 x 分隔宽高 | 默认值:1024x1024;示例:1024x1024 |
quality | string | 否 | 生成质量,透传给上游模型 | 默认值:auto |
response_format | string | 否 | 同步返回格式 | 默认值:b64_json;可选:b64_json、url |
image | string / array / object | 否 | 图输入。传入后按图片编辑模式处理,可使用图片 URL、Data URL/base64、数组或对象 | - |
output_format | string | 否 | GPT Image 类模型的输出格式 | 按模型支持情况透传 |
output_compression | integer | 否 | GPT Image 类模型的输出压缩参数 | 大于 0 时透传 |
background | string | 否 | GPT Image 类模型的背景参数 | 按模型支持情况透传 |
moderation | string | 否 | GPT Image 类模型的审核参数 | 按模型支持情况透传 |
style | string | 否 | 非 GPT Image 类模型的风格参数 | 按模型支持情况透传 |
user | string | 否 | 终端用户标识,透传给上游 | - |
sequential_image_generation | string | 否 | 组图生成扩展参数 | 可选:disabled、auto |
watermark | boolean | 否 | 是否请求生成水印 | 默认值:false |
stream | boolean | 否 | 流式扩展参数 | OpenAI 图片通道暂不支持 true |
提示:如果
size中使用了乘号×,后端会返回参数错误;请使用1024x1024这种格式。
返回模式
| 模式 | 触发条件 | 返回内容 | 后续动作 |
|---|---|---|---|
| 同步返回 | 普通图片模型 | OpenAI 风格 created、data[]、usage | 直接读取 data[].url 或 data[].b64_json |
| 异步任务 | 模型配置 features.async_only=true | image.generation.task 任务对象 | 使用返回的 task_id 调用 获取图像生成任务 |
异步任务成功后,如果上游只返回 b64_json,平台会保存图片并在任务结果里返回可访问的 url;成功结果保留 24 小时。
请求示例
下方域名为示例:
https://api-platform.ope.ai。
- cURL
- JavaScript
- Go
- Python
- Java
- C#
curl -X POST "https://api-platform.ope.ai/v1/images/generations" \
-H "Authorization: Bearer $OPEAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-image-2.0",
"prompt": "生成展示AI生图能力的图文。",
"size": "1024x1024",
"n": 1,
"quality": "auto"
}'
const url = "https://api-platform.ope.ai/v1/images/generations";
const apiKey = process.env.OPEAI_API_KEY;
const res = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "qwen-image-2.0",
prompt: "生成展示AI生图能力的图文。",
size: "1024x1024",
n: 1,
quality: "auto",
}),
});
console.log(await res.json());
package main
import (
"bytes"
"fmt"
"net/http"
"os"
)
func main() {
body := []byte(`{"model":"qwen-image-2.0","prompt":"生成展示AI生图能力的图文。","size":"1024x1024","n":1,"quality":"auto"}`)
req, _ := http.NewRequest("POST", "https://api-platform.ope.ai/v1/images/generations", bytes.NewBuffer(body))
req.Header.Set("Authorization", "Bearer "+os.Getenv("OPEAI_API_KEY"))
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println(resp.Status)
}
import os
import requests
resp = requests.post(
"https://api-platform.ope.ai/v1/images/generations",
headers={
"Authorization": f"Bearer {os.environ.get('OPEAI_API_KEY')}",
"Content-Type": "application/json",
},
json={"model": "qwen-image-2.0", "prompt": "生成展示AI生图能力的图文。", "size": "1024x1024", "n": 1, "quality": "auto"},
timeout=60,
)
print(resp.json())
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String apiKey = System.getenv("OPEAI_API_KEY");
String url = "https://api-platform.ope.ai/v1/images/generations";
String json = """
{ "model": "qwen-image-2.0", "prompt": "生成展示AI生图能力的图文。", "size": "1024x1024", "n": 1, "quality": "auto" }
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer " + apiKey)
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
public class Program
{
public static async Task Main()
{
var apiKey = Environment.GetEnvironmentVariable("OPEAI_API_KEY");
var url = "https://api-platform.ope.ai/v1/images/generations";
var json = """
{ "model": "qwen-image-2.0", "prompt": "生成展示AI生图能力的图文。", "size": "1024x1024", "n": 1, "quality": "auto" }
""";
using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var resp = await http.PostAsync(url, content);
Console.WriteLine((int)resp.StatusCode);
Console.WriteLine(await resp.Content.ReadAsStringAsync());
}
}
带图输入示例
客户端仍请求 /v1/images/generations。当 image 有值时,平台会按图片编辑模式处理;OpenAI / Azure 上游通道会转发到上游图片编辑接口。
curl -X POST "https://api-platform.ope.ai/v1/images/generations" \
-H "Authorization: Bearer $OPEAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-image-2.0",
"prompt": "保留主体,把背景改成干净的产品摄影棚。",
"image": "https://example.com/input.png",
"size": "1024x1024",
"quality": "auto"
}'
响应示例
- 同步 200
- 异步 200
- 错误
{
"created": 1777440000,
"data": [
{
"url": "https://example.com/generated-image.png",
"b64_json": "",
"revised_prompt": "生成展示AI生图能力的图文。"
}
],
"usage": {
"generated_images": 1,
"total_tokens": 100,
"input_tokens": 24,
"output_tokens": 76,
"input_tokens_details": {
"text_tokens": 24,
"image_tokens": 0
}
}
}
{
"id": "image_2f9b9a3d8c1e4f5a6b7c8d9e",
"task_id": "image_2f9b9a3d8c1e4f5a6b7c8d9e",
"object": "image.generation.task",
"status": "QUEUED",
"created_at": 1777440000,
"model": "gpt-image-2",
"prompt": "生成展示AI生图能力的图文。",
"size": "1024x1024",
"quality": "auto",
"mode": "generation"
}
{
"error": {
"message": "response_format must be one of: b64_json, url",
"type": "invalid_request_error",
"code": "invalid_image_request"
}
}