AI项目狼 · API 中转站 开始使用

接口文档

所有请求走 HTTPS + JSON,鉴权统一用 Authorization: Bearer sk_live_xxx。 密钥在 控制台 里创建。

1. 鉴权

Authorization: Bearer sk_live_xxxxxxxxxxxxxxxx
# 也支持
X-API-Key: sk_live_xxxxxxxxxxxxxxxx

密钥等同账号凭证,请放在服务端,不要写进前端代码或公开仓库。

不想写代码?用网页版

生图、配音、上传录音克隆音色,都可以直接在浏览器里完成,手机上同样能用。

打开在线工作室

2. 统一入口 POST /v1/generate

用 type 决定调哪个能力:image 或 tts。 不传 type 时会按字段猜(有 prompt 走生图,有 text 走配音)。

2.1 生图

curl -X POST https://api.xml8.cn/v1/generate \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "image",
    "prompt": "一只坐在窗边的猫,写实摄影,柔和自然光",
    "model": "gpt-image-2.6-sunburst",
    "size": "1024x1024",
    "n": 1
  }'
参数类型说明
promptstring · 必填提示词
modelstring默认取后台配置;可用 /v1/models 查询
sizestringauto / 1080p / 2k / 4k / 1024x1024,也可直接写宽x高(单边 ≤6000)
nint1–10,按实际成功数量计费
qualitystringauto / low / medium / high
output_formatstringpng / jpeg / webp;2.6 模型另支持 gif
frame_countintGIF 帧数 2–64
frame_duration_msintGIF 每帧毫秒,20–2000,10 的倍数
urlbooltrue 时让上游返回在线地址而不是 Base64
{
  "ok": true,
  "type": "image",
  "model": "gpt-image-2.6-sunburst",
  "images": [
    {"url": null, "b64": "iVBORw0KGgo...", "format": "png"}
  ],
  "cost_cny": 0.01,
  "request_id": "req_8f2c…",
  "elapsed_ms": 41230
}

2.2 配音

curl -X POST https://api.xml8.cn/v1/generate \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "tts",
    "text": "你好,欢迎使用项目狼 API 中转站。",
    "voice": "female-shaonv",
    "speed": 1.0,
    "format": "mp3"
  }'
参数类型说明
textstring · 必填最多 10000 字符,支持 <#1.5#> 停顿与 (laughs) 等语气词
voicestring音色 ID,默认取后台配置;如 female-shaonv
speedfloat0.5–2.0,默认 1
pitchint-12–12,默认 0
volfloat0–10,默认 1
emotionstringhappy / sad / angry / fearful / disgusted / surprised / calm
formatstringmp3 / wav / flac / pcm
sample_rateint8000 / 16000 / 24000 / 32000 / 44100
subtitlebooltrue 时额外返回字幕文件地址
{
  "ok": true,
  "type": "tts",
  "audio": "https://…/output.mp3",
  "subtitle": null,
  "chars": 17,
  "voice": "female-shaonv",
  "format": "mp3",
  "request_id": "req_1a9d…",
  "elapsed_ms": 1820
}

音频地址有效期 24 小时,请及时转存到自己服务器。

2.3 声音克隆

给一段公网可访问的音频,上游会复刻音色并返回 voice_id, 之后把它当普通音色用(voice 字段)即可。每次消耗 20000 字符额度,失败不扣费。

curl -X POST https://api.xml8.cn/v1/voice-clone \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "audio_url": "https://你的域名.com/uploads/sample.mp3",
    "name": "我的声音",
    "text": "欢迎使用声音克隆功能",
    "accuracy": 0.9
  }'
参数类型说明
audio_urlstring · 必填公网可访问的 mp3 / m4a / wav,时长 10 秒 – 5 分钟
namestring音色名称,30 字以内
textstring试听文本,50 字以内
accuracyfloat0.7 / 0.8 / 0.9,越高越像,录音有底噪时用 0.7 更稳
modelstring必传:speech-2.5-hd-preview / speech-2.5-turbo-preview / speech-02-hd;不传上游会回「克隆服务暂时繁忙」
{
  "ok": true,
  "type": "clone",
  "voice_id": "voice_cd635f6f...",
  "name": "我的声音",
  "demo": "https://…/demo.mp3",
  "elapsed_ms": 42130
}

音频需要外网能直接访问;本站网页版会自动帮你上传并生成地址,接口版请自备可访问链接。

3. OpenAI 兼容接口

给已有的 OpenAI SDK / 客户端用,参数和上游保持一致,本站原样转发。

方法路径说明
POST/v1/images/generationsJSON 文生图,返回上游原始结构(data[].b64_json 或 url)
POST/v1/images/editsmultipart 图生图,整包透传
POST/v1/audio/speech{input, voice, response_format} → 返回 JSON,audio 字段是音频地址
POST/v1/voice-clone{audio_url, name, text, accuracy} → 返回 voice_id
GET/v1/models模型列表
GET/v1/balance我的额度与上游余额
# Python / OpenAI SDK
from openai import OpenAI
client = OpenAI(api_key="sk_live_xxx", base_url="https://api.xml8.cn/v1", timeout=480.0, max_retries=0)
r = client.images.generate(model="gpt-image-2.6-sunburst", prompt="赛博朋克城市夜景", size="1024x1024", n=1)

4. 错误返回

{
  "ok": false,
  "error": {"message": "user balance insufficient", "type": "upstream_error", "upstream_status": 429},
  "request_id": "req_..."
}
状态码含义
400参数错误(缺 prompt / text、尺寸非法等)
401没带 Key 或 Key 无效
402本站给这个 Key 设置的调用次数已用完
403Key 被禁用
429请求太频繁,或上游余额不足 / 号池繁忙
5xx上游故障,稍后重试;不要盲目重复提交生图任务(可能已计费)

5. 超时建议

生图(尤其 2K / 4K / GIF)可能耗时数分钟,客户端超时至少 480 秒; 中间不要挂 30 秒或 60 秒的短超时网关。配音一般 1–5 秒返回。