Ori联系我们

文档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 / max
  • background 支持透明底
  • 改图走 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,视频必须用 URL
  • required=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 都不改路由