主题
图片生成 API 教程
Poke API 使用统一的 OpenAI Images 兼容接口调用图片模型。你只需要准备 API Key、从模型列表选择可用模型,然后调用对应的公开接口。
一、准备 API Key
- 登录 Poke API 控制台。
- 在 API 密钥 页面创建或编辑 API Key。
- 绑定可以使用图片模型的分组,保存并复制密钥。
- 不要把完整密钥写进代码、截图、聊天记录或公开仓库。
建议将密钥读入当前终端进程的环境变量:
bash
read -rsp "Poke API Key: " POKE_API_KEY; printf '\n'
export POKE_API_KEYpowershell
$secureKey = Read-Host 'Poke API Key' -AsSecureString
$ptr = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($secureKey)
try {
$env:POKE_API_KEY = [Runtime.InteropServices.Marshal]::PtrToStringBSTR($ptr)
} finally {
[Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ptr)
}二、模型、提供商和调用方式
下表列出常见的公开模型名称。实际可用模型以当前 API Key 请求 GET /v1/models 返回的列表为准;模型上下线或权限变化时,不要继续使用列表中已不可用的名称。
| 提供商 | 模型 | 文生图 | 图片编辑 |
|---|---|---|---|
| OpenAI | gpt-image-1、gpt-image-1-mini、gpt-image-2、gpt-image-2.5、gpt-image-2.5-sunburst、gpt-image-2.5-flare | POST /v1/images/generations,JSON | POST /v1/images/edits,multipart/form-data;以模型列表能力为准 |
| OpenAI | gpt-image-1.5 | POST /v1/images/generations,JSON | 当前目录未声明图片编辑能力 |
gemini-2.5-flash-image、gemini-3.1-flash-image、gemini-3-pro-image、nano-banana、nano-banana-pro、nano-banana-2 | POST /v1/images/generations,JSON | POST /v1/images/edits,按模型能力使用文件或公网图片 URL | |
| xAI | grok-imagine-image、grok-imagine-image-quality、grok-imagine-image-2.0 | POST /v1/images/generations,JSON | POST /v1/images/edits,按模型列表能力为准 |
| Black Forest Labs | flux-1.1-pro、flux-1.1-ultra、flux-1.1-ultra-raw、flux-kontext-pro、flux-kontext-max、flux-2-pro | POST /v1/images/generations,JSON | POST /v1/images/edits,按模型列表能力为准 |
| Runway | runway-gen4-image | POST /v1/images/generations,JSON | 以模型列表能力为准 |
| Adobe | firefly-image-3、firefly-image-4、firefly-image-4-ultra、firefly-image-5 | POST /v1/images/generations,JSON | POST /v1/images/edits,按模型列表能力为准 |
| ByteDance | doubao-seedream-5-0-pro | POST /v1/images/generations,JSON | POST /v1/images/edits,multipart/form-data |
表中的“提供商”是模型的原厂归属。请求始终发送到 Poke API,不需要把原厂 Base URL 写进客户端,也不需要在请求中填写内部路由名称。
三、查询可用模型
bash
curl --fail-with-body --silent --show-error \
https://www.poke2api.com/v1/models \
-H "Authorization: Bearer ${POKE_API_KEY}"在返回的 data 数组中找到目标模型的 id。如果模型不在列表中,先检查 API Key 的分组绑定和权限,不要猜测模型名。
四、文生图
公开接口:
text
POST https://www.poke2api.com/v1/images/generations请求头:
http
Authorization: Bearer <API Key>
Content-Type: application/json最小请求只需要 model 和 prompt:
bash
curl --fail-with-body --silent --show-error \
https://www.poke2api.com/v1/images/generations \
-H "Authorization: Bearer ${POKE_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"model": "gpt-image-2",
"prompt": "一只戴宇航头盔的橘猫,电影感光影,干净背景"
}' > image-response.json需要指定尺寸、画质或返回格式时,可以添加可选字段:
json
{
"model": "gpt-image-2",
"prompt": "一只戴宇航头盔的橘猫,电影感光影,干净背景",
"size": "1024x1024",
"quality": "high",
"n": 1,
"response_format": "b64_json"
}服务默认使用 n=1、size=auto、quality=high 和 response_format=b64_json。不同模型支持的尺寸和画质值不同;遇到参数错误时,先删除可选字段,只保留 model 与 prompt。
五、图片编辑
公开接口:
text
POST https://www.poke2api.com/v1/images/edits上传本地图片
使用 multipart/form-data,curl 会自动生成 boundary,不要手动设置 Content-Type:
bash
curl --fail-with-body --silent --show-error \
https://www.poke2api.com/v1/images/edits \
-H "Authorization: Bearer ${POKE_API_KEY}" \
-F 'model=gpt-image-2' \
-F 'prompt=保留主体,把背景改成夜晚城市,并增加蓝色霓虹灯' \
-F 'image=@reference.png;type=image/png' \
-F 'size=1024x1024' \
-F 'quality=high' \
-F 'response_format=b64_json'支持的图片类型和数量取决于模型。需要多张参考图时重复 image 字段:
bash
-F 'image=@subject.png;type=image/png' \
-F 'image=@style.webp;type=image/webp'使用公网图片 URL
部分模型接受 JSON 参考图。URL 必须是服务端可访问的公开 http:// 或 https:// 地址:
bash
curl --fail-with-body --silent --show-error \
https://www.poke2api.com/v1/images/edits \
-H "Authorization: Bearer ${POKE_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"model": "gemini-3-pro-image",
"prompt": "保留人物姿势,把背景改成海边日落",
"images": [
{"image_url": "https://example.com/reference.png"}
],
"response_format": "b64_json"
}'模型不支持参考图或只支持其中一种传递方式时,接口会返回明确的参数错误。练习场显示的上传入口和模型能力是最可靠的判断依据。
六、异步任务(可选)
图片生成时间较长时,可以使用异步入口。提交接口返回 task_id 和 poll_url,再查询任务状态:
bash
curl --fail-with-body --silent --show-error \
-X POST https://www.poke2api.com/v1/images/generations/async \
-H "Authorization: Bearer ${POKE_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"model": "gpt-image-2",
"prompt": "一座漂浮在云海上的未来城市"
}'使用响应中的 poll_url 查询:
bash
curl --fail-with-body --silent --show-error \
"https://www.poke2api.com/v1/images/tasks/<task_id>" \
-H "Authorization: Bearer ${POKE_API_KEY}"status 为 processing 时稍后重试;为 completed 时,结果位于任务响应的 result 字段;为 failed 时按 error 字段排查。不要在任务未结束时重复提交相同请求。
七、处理返回结果
Base64 图片
当响应包含 data[0].b64_json 时,可以保存为 PNG:
bash
python -c "import base64,json; d=json.load(open('image-response.json', encoding='utf-8')); open('generated.png','wb').write(base64.b64decode(d['data'][0]['b64_json']))"图片 URL
当响应包含 data[0].url 时,请在有效期内下载:
bash
curl --fail --location "<data[0].url>" --output generated.pngn 大于 1 时遍历 data 数组保存每一张图片。不要根据示例手写响应 JSON,应以服务真实返回值为准。
八、公共参数
| 字段 | 必填 | 说明 |
|---|---|---|
model | 是 | 控制台或 /v1/models 返回的模型 ID |
prompt | 是 | 文生图描述,或图片编辑指令 |
size | 否 | 模型支持的尺寸;省略时使用 auto |
quality | 否 | 模型支持的画质值;省略时使用默认值 |
n | 否 | 生成数量,默认 1;建议传 JSON 数字 |
response_format | 否 | b64_json 或模型支持的 url |
image / images | 编辑时按模型要求 | 本地 multipart 文件或公网图片 URL |
九、常见错误
- 401:API Key 缺失、错误、撤销或
Authorization格式不正确。 - 403:API Key 没有绑定可用的图片分组,或手动指定的分组无权限。
- 400:模型名、端点、尺寸、画质或参考图格式不受支持。先用最小请求确认模型可用,再逐个增加参数。
- 429:并发、频率或额度达到限制。等待当前任务结束后再试。
- 超时:不要立即重复提交;先查询异步任务或检查用量记录,避免产生重复生成。
需要固定某个已绑定分组时才添加 X-Sub2API-Group-ID;不需要固定时省略该请求头,让服务按 API Key 的绑定和模型能力选择可用分组。
相关页面:API 脚本接入、本地优先 Playground、快速开始。
