跳到主要内容

图片接口(Images API)

187API 支持 OpenAI 兼容的 Images API,用于文本生成图片与参考图编辑。

接口一览​

用途方法路径
文本生成图片POST/v1/images/generations
参考图编辑POST/v1/images/edits
图片变体—未实现,调用会返回明确错误

Base URL:https://187api.com/v1 鉴权:Authorization: Bearer <API_KEY>

文本生成图片​

请求参数​

参数类型必填说明
modelstring是图片模型名,以 模型广场 为准
promptstring是提示词
nint否生成数量,1–128,默认 1
sizestring否尺寸,如 1024x1024
qualitystring否质量,如 high / medium
response_formatstring否url(默认)或 b64_json
backgroundstring否背景透明等
output_formatstring否输出图片格式
streambool否流式返回部分图片

cURL​

curl https://187api.com/v1/images/generations \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "<图片模型名>",
"prompt": "一张简洁的商业产品图,浅灰背景中摆放一只银白色无线耳机充电盒,光线柔和,细节清晰。",
"size": "1024x1024",
"quality": "medium",
"response_format": "url"
}'

Python​

import requests

resp = requests.post(
"https://187api.com/v1/images/generations",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
},
json={
"model": "<图片模型名>",
"prompt": "一张简洁的商业产品图,浅灰背景中摆放一只银白色无线耳机充电盒。",
"size": "1024x1024",
"quality": "medium",
"response_format": "url",
},
timeout=120,
)
resp.raise_for_status()
print(resp.json()["data"][0]["url"])

TypeScript​

import OpenAI from "openai";

const client = new OpenAI({
apiKey: process.env.API_KEY,
baseURL: "https://187api.com/v1",
});

const result = await client.images.generate({
model: "<图片模型名>",
prompt: "一张简洁的商业产品图,浅灰背景中摆放一只银白色无线耳机充电盒。",
size: "1024x1024",
quality: "medium",
response_format: "url",
});

console.log(result.data[0].url);

响应​

{
"created": 1784867600,
"data": [
{ "url": "https://cdn.example.com/....png" }
],
"quality": "medium",
"size": "1024x1024",
"usage": {
"input_tokens": 30,
"output_tokens": 765,
"total_tokens": 795,
"input_tokens_details": { "text_tokens": 30, "image_tokens": 0 },
"output_tokens_details": { "text_tokens": 0, "image_tokens": 765 }
}
}
提示

图片地址在 data[0].url,每次请求都会变化。请直接读返回字段,不要拼接示例地址。

参考图编辑​

POST /v1/images/edits,multipart 表单提交。

参数类型必填说明
modelstring是图片模型名
promptstring是编辑指令
imagefile / array是参考图,支持多张
maskfile否遮罩图
nint否生成数量
sizestring否尺寸
qualitystring否质量
input_fidelitystring否输入保真度
curl https://187api.com/v1/images/edits \
-H "Authorization: Bearer $API_KEY" \
-F "model=<图片模型名>" \
-F "prompt=把产品放到办公桌场景中,保留真实阴影和透视关系" \
-F "quality=high"

Gemini 原生生图​

需要精确控制宽高比与分辨率时,用 Gemini 原生协议:

POST /v1beta/models/{model}:generateContent
curl https://187api.com/v1beta/models/<图片模型>:generateContent \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{"role": "user", "parts": [{"text": "生成一座漂浮在云海上的天文研究岛微缩模型"}]}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {"aspectRatio": "16:9", "imageSize": "1K"}
}
}'

图片以 base64 返回在 candidates[0].content.parts[].inlineData:

import base64
from pathlib import Path
import requests

resp = requests.post(
"https://187api.com/v1beta/models/<图片模型>:generateContent",
headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
json={
"contents": [{"role": "user", "parts": [{"text": "生成一座漂浮在云海上的天文研究岛微缩模型"}]}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {"aspectRatio": "16:9", "imageSize": "1K"},
},
},
timeout=300,
)
resp.raise_for_status()
parts = resp.json()["candidates"][0]["content"]["parts"]
image = next(p["inlineData"] for p in parts if "inlineData" in p)
Path("generated.jpg").write_bytes(base64.b64decode(image["data"]))

大图与超时​

高分辨率(如 4K)图片生成耗时长,客户端超时至少设到 1800 秒,并使用支持长连接的地址。

requests.post(..., timeout=1800)

计费​

按 model 计费,即「请求并计费模型」。n 超过 1 时按实际张数计。

排错​

现象原因处理
403令牌分组不含该模型到模型广场确认分组,换令牌
model_not_found模型名不在分组内用模型广场里的准确名字
400 n must be an integer between 1 and 128n 越界调整 n
拿不到图片用 url 解析却返回了 b64_json按 response_format 解析

相关:图片能力总览 · 异步任务接口 · 模型广场 · [常见问题]../reference/faq/overview