文档OriHub
图片模型调用
一条同步的路,一条异步的路;参数各模型不一样,从模型接口拿。
图片模型有两条调法:OpenAI Images 兼容同步出结果,本站媒体协议提交任务再轮询。挑一条用,别混。
这一页讲怎么挑模型、怎么用;每个接口的完整参数在创建图片生成任务、图像生成、图像编辑。
同步:OpenAI Images 兼容
用 openai SDK 的 images.generate / images.edit,base_url 换成本站、model 换成本模型名就行:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.lk888.ai/v1",
api_key=os.environ["OPENAI_API_KEY"],
)
result = client.images.generate(
model="tt-image-2.5",
prompt="一只戴眼镜的橘猫坐在窗台上看书",
size="1024x1024",
quality="high",
)
print(result.data[0].url)
size传auto或任意「宽x高」像素quality支持auto/low/medium/high/xhigh/maxbackground支持透明底- 改图走
images.edit
异步:本站媒体协议
提交任务拿 task_id,再轮询到 is_final = true:
curl https://api.lk888.ai/v1/media/generate \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tt-image-2.5",
"prompt": "一只戴眼镜的橘猫坐在窗台上看书",
"params": { "size": "auto", "quality": "high" }
}'
{ "code": 200, "data": { "task_id": 12345 }, "msg": "Task created successfully" }
轮询:
curl "https://api.lk888.ai/v1/skills/task-status?task_id=12345" \
-H "Authorization: Bearer $OPENAI_API_KEY"
间隔 5 秒,is_final = true 就停。结果里 state 是 success / failed,成品在 result_url,result_type 说明是什么类型(image / video / audio),cost 是这次结算的金额。
/v1/media/status?task_id=... 也能查,是老版本,字段少一些 —— 用 /v1/skills/task-status。
params 怎么填
每个模型的参数不一样,先查再用:
curl https://api.lk888.ai/v1/skills/models/tt-image-2.5 \
-H "Authorization: Bearer $OPENAI_API_KEY"
返回里的 params 数组逐个说明了参数名、类型(select / radio / textarea / number / upload / switch)、是否必填、可选值。规则三条:
type=select的值必须从options里挑,不能自己编type=upload传公网可访问的直链 URL(推荐);也接受内联data:<mime>;base64,<data>,但只限图片和音频 —— 单文件 ≤10MB、单请求内联总量 ≤30MB、整个请求体 ≤50MB,视频必须用 URLrequired=false的参数不用就整个省略,平台不再给默认值
回调
提交时带 notify_url(公网 http/https,内网地址不行),任务到终态平台会主动 POST 给你,body 跟 task-status 一样。投递失败会重试 4 次(立即、10 秒、30 秒、1 分钟),你返回 2xx 才算成功。
回调是尽力而为 —— 长时间没收到,还是拿 task_id 自己轮询兜底。
支持的模型
21 个,协议一样、参数各不同:
- Nano Banana 2
- Nano Banana 2 Token版
- Nano Banana 2.1 按次
- Nano Banana 2.1 Token版
- Nano Banana Pro
- Nano Banana Pro Token版
- Seedream 4.5
- Seedream 5.0
- Seedream 5.0 Pro
- Grok Image 2.0
- Kling-V3
- Kling-V3-Omni
- Midjourney
- Qwen 图像 max
- GPT Image 2
- GPT Image 2 官转
- GPT Image 2.5
- GPT Image 2.5 Token版
- VIDU 图像 2
- Wanxiang 2.6 图像
- Wanxiang 2.7 图像
特别注意
- 提交前先查余额 ——
GET /v1/skills/balance。余额不足在文件传输前就被拒(402),不会白跑一遍 - 一个请求建一个任务 —— 没有 count 参数,要多张就并发提交多个任务、分别轮询
- 文件先传到自己的对象存储 —— 平台不提供文件托管
- 失败看
error_code,别看错误文案:- 重发还是会失败的:
content_policy_violation(内容违规)、invalid_request(参数不对)、insufficient_balance(余额不足)、quota_exceeded(超额)、key_config_error(密钥配置问题) - 等一下可以重试的:
channel_unavailable(线路没了)、upstream_error(上游抽风)、server_error(服务端错误)
- 重发还是会失败的:
- 分组路由由密钥的调度策略决定,请求体里的
channel_group和请求头X-Channel-Group都不改路由