API 指南

本页汇总所有模型通用的调用须知;各模型的具体调用方式,见下方「各模型指南」。

调用前必读

鉴权与端点

所有模型共用同一个 API Key 与同一个端点,请求头带 Authorization: Bearer sk-xxxxxxxx。

模型列表 `GET /v1/models`

需带 Authorization: Bearer <API Key>;只返回当前账号可见的模型。文本模型会附带实际上下文上限与能力位,客户端应以这里的返回为准。

字段类型说明
objectstring固定 `"list"`
data[]array模型列表
data[].idstring模型 ID(调用时填入 `model`,如 `deepseek-flash`)
data[].objectstring固定 `"model"`
data[].createdinteger固定 `0`
data[].owned_bystring固定 `"trellis"`
data[].max_model_leninteger?**文本模型**:实际上下文上限(随部署调整,请以此为准;多模态模型不返回)
data[].visionboolean?**文本模型**:图片理解是否开启(网关提供时返回;未返回表示未知,以实际请求为准)
{
  "object": "list",
  "data": [
    {
      "id": "deepseek-flash",
      "object": "model",
      "created": 0,
      "owned_by": "trellis",
      "max_model_len": 524288,
      "vision": false
    },
    {
      "id": "trellis-qwen-image",
      "object": "model",
      "created": 0,
      "owned_by": "trellis"
    }
  ]
}

max_model_len / vision 仅文本模型返回,且以网关实际值为准;deepseek-v4-flash 为 deepseek-flash 的兼容别名。

懒加载

模型按需加载:首次调用需等待加载(同步接口会变慢、视频会排队);空闲后资源可能被驱逐,再次调用需重新加载。请为长时间等待做好超时设置。

限流与排队

分两层:平台按 API Key 限流(超过返回 429),以及网关的容量排队(超过返回 503)。后端(模型/网关)不返回 `429`。

层限制(当前值,可能调整)超限返回
平台(按 API Key)并发 **8**、**120 次/分钟**`429` + `Retry-After`
网关 / 引擎(LLM)并发 **4**、队列 **32**、单请求排队超时 **900s**`503` `E_QUEUE_FULL` / `E_QUEUE_TIMEOUT` + `Retry-After`

排队控制请求头:X-Trellis-Queue-Timeout: <秒>(默认 900;0 = 不等待,队列满立即 503)。当前为 FIFO,X-Trellis-Priority 暂不支持(网关会忽略)。

客户端务必遵守 `Retry-After` 退避,不要紧循环重试;并区分提示“排队中 / 限频”与“服务重启中”。

错误处理

错误响应为 JSON(含 error.message / error.type / error.code;部分接口为 message)。常见状态码:

HTTPcode / 含义建议
400参数错误 / 模型不存在 / 图片理解未开启(`image input requires ...`)修正参数,不要重试
401`invalid_api_key`:API Key 无效检查 Key
402`insufficient_balance`:余额不足充值后重试
403账号不可用联系管理员
404任务 / 产物不存在(产物保留 7 天)不要重试,重新生成
409`E_MODE_MISMATCH`:当前模式不提供该接口不要重试(需管理员切换模式)
413`E_PAYLOAD_TOO_LARGE`:请求体过大减小文件 / 内容
429平台限流(并发 8 / 每分钟 120)按 `Retry-After` 退避重试
503`E_QUEUE_FULL` / `E_QUEUE_TIMEOUT` / `E_BACKEND_NOT_READY` / `E_RESOURCE_BUSY`按 `Retry-After` 退避重试

调用方式

同步:直接 POST 返回结果;各接口建议超时见下表,超时后请勿自动重试。LLM 仅同步(stream: true 为 SSE 流式)。

异步(推荐):除 LLM 与视频外,所有 POST 均支持——加请求头 X-Trellis-Async: 1 提交,返回 202 {id, poll},再轮询 GET /v1/jobs/{id}(间隔 3–5s),completed 时取 result (JSON)或 url(产物)。视频为原生异步:POST /v1/videos 返回 {id, status},状态同样轮询 `GET /v1/jobs/{id}`(/v1/videos/{id} 已移除)。二进制产物(如 TTS 裸 wav)经 /files/gw/<job>.wav 下载。异步不受长连接超时限制。

视频参数:num_frames 须为 4n+1,且决定耗时(帧越多越慢);fps 决定时长 = num_frames / fps、不影响耗时。用户给"时长 + 帧率"时,按 num_frames = 最近的 4n+1(秒 × fps) 换算并同时传 fps(不传 fps 时默认 16)。

取消任务

异步任务可中途取消:统一 POST /v1/jobs/{id}/cancel(视频与异步同一入口), 立即返回 canceling;对已结束任务返回其原状态(幂等)。取消为协作式(采样步/block 边界 ≤1 步生效;模型加载中则在加载完成后再生效),并非强杀。

调用方流程:① 用户取消 → 调 cancel;② 继续轮询 GET /v1/jobs/{id} 直到 status = canceled(期间为 canceling,不要提前结束);③ 收到 canceled 后清理状态、可重新发起。 不要依赖"关闭连接"来取消;取消 / 失败后不再产出产物、不计费。

任务状态统一为 queued / model_loading / in_progress / canceling / completed / failed / canceled(美式拼写 canceling/canceled;无 `phase` 字段,阶段只看 status); 并新增 progress(0–100,两位小数、单调)、eta_seconds、load_elapsed_seconds 字段,可用于展示进度与预计剩余时间。

轮询情况处理
404 E_NOT_FOUND连续 ≥3 次(间隔 3–5s)均失败才判失败
503 E_BACKEND_NOT_READY可重试,遵循 Retry-After
网络错误 / 超时保留 job id,继续轮询

同步调用建议超时

若走同步,客户端超时必须大于「懒启动等待 + 推理耗时」;且超时后请勿自动重试——重试会让另一节点再次加载大模型并驱逐其它模型,雪上加霜。

接口 / 模型建议客户端超时
对话 `POST /v1/chat/completions`(LLM,流式)120s(可更长)
语音识别 `/v1/audio/transcriptions`300s
语音合成 `/v1/audio/speech`600s
图片编辑 `/v1/images/edits`1200s(20 分钟)
文生图 `/v1/images/generations`1200s(20 分钟)
说话视频 `/v1/avatar`2700s(45 分钟)
口型同步 `/v1/lipsync`600s
音乐生成 `/v1/music`建议异步;提交 60s,轮询间隔 3–5s、总 ≥1800s
质检 `/v1/evaluations/audio | image`300s / 600s
质检 `/v1/evaluations/video`900s
视频 `/v1/videos`(原生异步)提交 60s;轮询间隔 10s、总 ≥1800s

开启 qc:true 时,在原超时基础上再加 ≥300s。

输入限制

超限返回 413 E_PAYLOAD_TOO_LARGE(num_frames 不合规返回 400):

输入限制
参考图(图 / 视频)最长边 ≤ 4096,张数 ≤ 3
参考音频(注册音色)≤ 20MB,时长 ≤ 30s,采样率 ≤ 48kHz
参考视频(VACE / Animate)≤ 1080p,时长 ≤ 30s
生成视频 num_frames须为 4n+1,范围 5~241
生成视频分辨率边长 256~1920
请求体≤ 64MB(超出返回 `413 E_PAYLOAD_TOO_LARGE`)

可选质检 qc

图 / 视频 / TTS 生成接口均支持 qc: true(默认 false):开启后同步质检,指标随响应(图/TTS)或异步结果(视频)回显, 不额外收费,但耗时更长(图片 ≥25 分钟、TTS ≥5 分钟)。也可用独立接口单独质检:/v1/evaluations/image、 /v1/evaluations/video、/v1/evaluations/audio(按模态计费:图按张、音/视频按秒)。

产物与保留

产物保留 7 天,过期返回 404 E_NOT_FOUND(终态,不要重试;请提示"产物已过期,可重新生成")。 产物下载 /files/* 由独立常驻服务提供,模型被驱逐/停机后仍可下载。url 出现即表示文件已完整落盘, 请勿自行拼接文件名,只用接口返回的 url。产物 url 自带命名空间 (/files/image|video|audio|music/...、异步二进制 /files/gw/<job>.<ext>),请原样使用,勿再叠加 `image/` 等前缀。

异步任务 status=failed(如 E_RESOURCE_BUSY)时 url 为 null、产物不存在:不要取文件; 如需重试请重新提交新任务(新 id),不要轮询旧任务。404(过期/不存在)不要重试;5xx 可短暂重试。

模型选型(按场景选模型)

你的场景推荐模型要点
文字 → 图片(无参考图)trellis-qwen-image文生图;size 建议 1328x1328(1024 会糊)
有参考图 → 改图 / 锁脸 / 换装trellis-qwen-image-edit图生图,需 ≥1 张参考图
文字 → 视频trellis-wan-ti2vt2v,草稿集,较快
图片 → 视频(高质量)trellis-wan-i2v14首帧图;14B,较慢
多参考图 / 视频续接trellis-wan-vace / trellis-wan-vace14b草稿集 / 成品集(14B)
动作 / 表演迁移trellis-wan-animate需驱动视频(姿态/人脸)
人像 + 配音 → 说话视频trellis-longcat-avatar图片 + 音频一次成片
视频 + 配音 → 对口型trellis-latentsync改口型,不动画面其余部分
文字 → 语音trellis-cosyvoice3预置音色,选 voice
文字 / 歌词 → 歌曲trellis-musiccaption 必填;纯音乐设 instrumental
严格按歌词 / 同段落同曲谱trellis-yue2style 必填;返回 ABC 曲谱可复用
音频 → 文字trellis-sensevoice中/粤/英/日/韩
质检(图 / 视频 / 语音)trellis-qc-image / -video / -audio见各模型的 API 文档

各模型指南

DeepSeek Flash(V4.1)对话补全(OpenAI 兼容):DeepSeek V4.1 Flash;上下文名义 1M,实际上限以 `GET /v1/models` 的 `max_model_len` 为准;支持函数调用;图片理解需服务端开启。Trellis 语音识别(SenseVoice)语音转文字(ASR),支持中文 / 粤语 / 英语 / 日语 / 韩语,默认输出纯文本。Trellis 语音合成(CosyVoice3)文字转语音(TTS),内置 16 个预置音色,另支持零样本音色克隆与情感/语气控制。Trellis 图像编辑(Qwen-Image-Edit)图像编辑 / 多图参考 / 锁脸换装,按张计费。Trellis 文生图(Qwen-Image)文生图(T2I),用于角色定妆图 / 场景 / 首帧,按张计费(1K / 2K 分档)。Trellis 视频生成(Wan TI2V)文生视频 / 图生视频(异步),草稿集,按秒计费。Trellis 视频参考/续接(Wan VACE-1.3B)多参考图 / 视频续接(异步),草稿集,按秒计费。Trellis 视频成品(VACE-14B)成品集的高质量参考/续接(异步),按秒计费。Trellis 视频表演迁移(Animate-14B)用驱动视频做人物的表演迁移(异步),按秒计费。Trellis 视频生成(Wan2.2-I2V-A14B)高质量图生视频(异步),需首帧 image,按秒分档计费。Trellis 说话视频(LongCat-Avatar 1.5)音频驱动说话视频:人像 + 配音一次成片(同步),按秒分档计费。Trellis 口型同步(LatentSync)给无声视频对齐配音口型(视频 + 音频),按秒计费。Trellis 音乐生成(ACE-Step 1.5)文生歌曲 / 音乐:文本描述(可选歌词)→ 带人声完整歌曲(异步),按音频秒计费。Trellis 歌曲生成(YuE2·符号化)符号化歌曲生成(YuE2):风格 + 歌词 → 整首歌(含人声),并产出可复用 / 编辑的 ABC 曲谱(异步),按音频秒计费。Trellis 伴奏渲染(MIDI / FluidSynth)ABC / MIDI 曲谱 → 伴奏音频(确定性渲染,同谱同声)。按次计费。Trellis 歌声合成(DiffSinger)歌词 + 音符(MIDI)→ 歌声(SVS)。按次计费。Trellis 音色转换(Seed-VC)把人声换成目标参考音色(零样本)。按次计费。Trellis 混音(人声 + 伴奏)人声 + 伴奏 → 成品(ffmpeg amix + loudnorm)。按次计费。Trellis 质检(图片)对图片做提示词贴合度(中文 CLIP)与人脸身份相似度质检,按张计费。Trellis 质检(语音)对语音做可懂度(CER)/ 音色相似度质检,按音频秒计费。Trellis 质检(视频)对视频抽帧做提示词贴合度与人脸一致性质检,按视频秒计费。