图像与视频
OpenAI 兼容的图像生成/编辑入口,以及 Grok Imagine 异步视频的提交与轮询。
图像与视频走 OpenAI / xAI 官方形状的入口,鉴权用 Authorization: Bearer。Gemini 原生出图不在这里——它没有单独接口,仍走 generateContent,见 Gemini API。
图像生成
/v1/images/generations请求体与 OpenAI Images API 一致:model、prompt,可选 n、size、quality 等;图像模型(如 gpt-image-2、grok-imagine-image-2.0)见模型列表。
curl https://soleapi.com/v1/images/generations \
-H "Authorization: Bearer $SOLEAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A watercolor lighthouse at dawn",
"size": "1024x1024"
}'{
"created": 1757030400,
"data": [
{ "b64_json": "iVBORw0KGgo..." }
],
"usage": { "input_tokens": 12, "output_tokens": 0, "total_tokens": 12 }
}图像编辑
/v1/images/editsmultipart/form-data:image 字段放参考图(可多张),prompt 放指令,其余字段同生成接口。
curl https://soleapi.com/v1/images/edits \
-H "Authorization: Bearer $SOLEAPI_API_KEY" \
-F model=gpt-image-2 \
-F image=@lighthouse.png \
-F prompt="Turn the sky into a starry night"图像按张计价,与入口无关:单价见模型页;n 张就是 n 倍。生成接口支持 "stream": true 以 SSE 增量返回(分段预览与最终图),是否生效取决于目标模型。图像入口允许内联媒体,请求体上限按对话入口的大档执行。
视频生成(异步)
视频是网关里唯一的异步入口:提交只返回任务 id,片子在上游后台渲染,客户端轮询到完成才拿到地址。
/v1/videos/generations请求体按 xAI Grok Imagine 官方字段:model(如 grok-imagine-video-1.5)、prompt,可选 duration(秒)、aspect_ratio、resolution 等。
curl https://soleapi.com/v1/videos/generations \
-H "Authorization: Bearer $SOLEAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-video-1.5",
"prompt": "A lighthouse in a storm, cinematic",
"duration": 6,
"aspect_ratio": "16:9"
}'
# => { "request_id": "8f0c…" }/v1/videos/edits视频编辑同上,请求体额外带参考视频,响应同样是 request_id。
/v1/videos/{request_id}用提交返回的 request_id 轮询。status 为 pending 时继续等;done 时 video.url 即成片地址,video.duration 为成片秒数;failed / expired 表示上游渲染失败或结果已过期。
curl https://soleapi.com/v1/videos/8f0c… \
-H "Authorization: Bearer $SOLEAPI_API_KEY"
# => { "status": "done", "video": { "url": "https://…/video.mp4", "duration": 6 } }计费规则:提交时不扣费,只冻结一笔预估额;轮询到 status = done 才结算,按你提交时的 duration 计秒(没传时才按成片时长),上游渲染失败不收费。提交后请务必轮询到终态——即使你不再需要结果,网关也会在后台代为查询并结算,不要指望「不轮询就不收费」。建议每 5~10 秒轮询一次,轮询同样计入 RPM。
相关错误
| 文案 id | HTTP | 含义 |
|---|---|---|
video_job_missing | 400 | 轮询路径缺少 request_id。 |
video_job_not_found | 404 | 任务不存在,或不属于当前 Key 所在账号。 |
video_job_route_gone | 502 | 任务所用的上游货源已被移除,结果无法取回。 |
video_job_unavailable | 500 | 任务服务暂时不可用,稍后重试。 |
其余错误与对话入口相同,见错误码。