API 文档中心
服务状态正常
文档中心 / 欢迎使用

从一个模型名开始,完成稳定的媒体生成接入。

先选择模型原厂与能力,再按详情页确认令牌分组、请求参数和异步任务结果。所有既有模型文档都保留在本次改版中。

步骤 01

创建令牌

在控制台创建 API Key,并确认目标模型对应分组已开通。

步骤 02

提交任务

视频统一走 POST /v1/videos,参数以对应模型章节为准。

步骤 03

读取结果

用任务 ID 轮询,完成后读取脱敏后的 video_url。

视频生成,按原厂与自定义线路发现

模型原厂决定能力;令牌分组和路由则在每个模型详情页中确认。自定义线路单独标注,不与官方原厂链路混排。

首次接入建议先用 Omni 或 Flow 完成一笔最小视频任务;随后再按厂商、模型和输入模式扩展。
AI 编程工具 / 推荐接入方式

把一个 SKILL.md 交给 AI,让它按真实接口完成接入。

适用于 Codex、Claude Code、Cursor、Windsurf、Cline 等工具。技能文件会先读取项目环境变量,再发现此令牌实际可见的模型,按本站模型页选择正确的调用方式。

一个文件,覆盖接入时最常见的错误点

不让 AI 猜模型名、分组、视频轮询或素材字段;模型列表由令牌实时读取,模型参数与价格仍回到本站对应章节核对。

令牌可见模型实时发现OpenAI 兼容调用入口视频任务与轮询规则不自动试跑付费生成
SKILL.md · API Gateway
name: oairegbox-api-gateway
description: Integrate the gateway

1. Read .env
2. GET /v1/models
3. Pick visible model ID
4. Follow model documentation
5. Poll existing video task

Never expose API keys.

开始使用

下载技能文件后,与下方提示词一起交给 AI。它会将文件放到项目技能目录,并保留原始内容。

01

把 SKILL.md 放进项目

先下载文件,再和这段提示一并发送给你的 AI 编程工具。它会按所用工具的项目目录创建技能文件夹。

这是 OAIREGBOX 的 API 接入技能文件 SKILL.md。请把它放到本项目的技能目录:
Claude Code 放 .claude/skills/oairegbox-api-gateway/;Cursor 放 .cursor/skills/oairegbox-api-gateway/;
Windsurf 放 .windsurf/skills/oairegbox-api-gateway/;Cline 放 .cline/skills/oairegbox-api-gateway/;
其它工具放项目根目录 ai-gateway-skill/。目录不存在就新建,文件内容原样写入,完成后告诉我实际路径。
02

把令牌存入 .env

令牌只保存在项目本地环境变量,AI 后续从 `.env` 读取,不应再次要求你在对话中粘贴密钥。

我的 OAIREGBOX API Key 是:【粘贴 Key】。请把它写进项目根目录 .env:
OAIREGBOX_API_BASE_URL=https://newapi-2.oairegbox.cc
OAIREGBOX_API_KEY=【粘贴 Key】
如果已有 .env,只追加缺失变量,不要覆盖其它内容;确认 .env 已在 .gitignore 中。以后从 .env 读取,不要在代码、日志或浏览器端暴露 Key。
03

先发现模型,再写接入代码

AI 会先用令牌调用 `/v1/models`,只使用实际可见的模型 ID;视频、图像与多参考素材均回到对应模型页核对参数。

请读取 OAIREGBOX 的 SKILL.md,先从 .env 取配置并 GET $OAIREGBOX_API_BASE_URL/v1/models。
按视频、图像、音频、文本分类列出我当前令牌可用的模型;不要猜模型名或价格。之后根据我的需求选择模型并给出接入方案,生成类请求先等我明确确认。

可以直接交给 AI 的需求

以下提示都先要求 AI 读取技能文件和令牌可见模型,避免项目被写入无法调用的模型名。

读一下 OAIREGBOX 的 SKILL.md,从 .env 拉一遍 /v1/models。按对话、图片、视频、音频分类列出当前令牌可用的模型,并各给一个适用场景。
我的项目已经使用 OpenAI SDK。读取 OAIREGBOX 的 SKILL.md,把 base_url 和 API Key 改为从 .env 读取,其它业务代码尽量不动;先只用 GET /v1/models 验证配置,不要发起付费生成。
读取 OAIREGBOX 的 SKILL.md 和目标视频模型页。帮我做一个图生视频工具:提交任务后按 4 秒间隔轮询同一个 task_id,完成时保存响应中的 video_url;失败时保留 task_id 和错误信息。
从 .env 查询 OAIREGBOX 令牌使用情况,读取 /api/usage/token/。告诉我可用额度、是否有限制模型、是否设置过期时间;不要把 Key 输出到终端或日志。
技能文件会实时读取令牌可见模型,但当前没有公开的机器可读价格、通用文件上传或通用参数 Schema 接口。AI 必须将价格和素材参数回到本站目标模型章节核对,不得猜测。

调用入口

按 SDK 与任务类型选择协议。文本、Responses、Anthropic、图像、视频和音频使用不同的公开入口,模型名必须来自当前令牌可见列表。

对话补全

所有可用的 Chat 模型共用 OpenAI Chat Completions 请求体。换 model 即切换模型;长响应或推理场景建议开启 stream: true。

Chat Completions

OpenAI 兼容文本、多模态和工具调用入口。

POST/v1/chat/completions

核心参数

参数位置必填说明
modelbody是来自 GET /v1/models 的可见模型 ID。
messagesbody是OpenAI 消息数组;多模态字段以目标模型章节为准。
streambody否true 时按 SSE 输出。
temperature / max_tokens / toolsbody否按 OpenAI 规范传递,模型支持度不同。

请求示例

curl "$BASE_URL/v1/chat/completions" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"MODEL_ID","messages":[{"role":"user","content":"用一句话介绍你自己"}],"stream":true}'
推理类模型的推理内容会以 reasoning_content 或流式 delta.reasoning_content 返回;正文仍从 content 读取。

原生协议

OpenAI Responses

面向新版 OpenAI SDK、Codex 与 Agent 工具链的原生输入格式。

POST/v1/responses
参数必填说明
model是当前令牌可见的 Chat 模型。
input是字符串或 Responses 输入项数组。
instructions / tools / stream否按 Responses 规范传递。
curl "$BASE_URL/v1/responses" \
  -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" \
  -d '{"model":"MODEL_ID","input":"列出三个使用本 API 的理由"}'

Anthropic Messages

面向 Claude SDK 的原生 Messages 协议。

POST/v1/messages
参数必填说明
model是可见模型 ID;优先使用 Claude 系列模型。
max_tokens是Anthropic Messages 规范必填。
messages是Anthropic 消息数组。
curl "$BASE_URL/v1/messages" \
  -H "x-api-key: $API_KEY" -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"model":"MODEL_ID","max_tokens":1024,"messages":[{"role":"user","content":"Hello"}]}'

图像生成与编辑

Images

同步返回图片 URL 或 Base64。模型专属尺寸、质量与参考素材字段必须查看模型详情页。

POST/v1/images/generations
参数必填说明
model / prompt是模型 ID 与生成描述。
n / size / quality / response_format否仅在目标模型支持时传递。
curl -X POST "$BASE_URL/v1/images/generations" \
  -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" \
  -d '{"model":"MODEL_ID","prompt":"一只戴帽子的柴犬","n":1,"size":"1024x1024"}'
图片调用是同步入口。客户端、CDN 与反向代理必须允许目标模型实际所需的等待时间。

视频生成

Async Video

当前规范视频入口。模型可能接受 JSON、Base64、URL 或 multipart,不能跨模型复制素材字段。

POST/v1/videos
参数必填说明
model是来自可见模型列表。
prompt通常是视频描述;不同模型的规则不同。
seconds / size / images / input_reference模型相关按目标模型页选择,不能假设通用支持。
curl -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" \
  -d '{"model":"MODEL_ID","prompt":"雨夜霓虹街道,镜头缓慢推进","aspect_ratio":"16:9"}'
提交成功后保存 task_id,再进入“任务与轮询”页面查询结果。

音频入口

Speech / Transcription / Translation

标准 OpenAI 音频入口;音乐模型的调用方式以对应模型详情页为准。

POST/v1/audio/speech
当前

已开放路由

语音合成、音频转写与翻译均有 OpenAI 风格入口。

/v1/audio/speech
/v1/audio/transcriptions
/v1/audio/translations
待更新

音乐异步统一入口

通用 /v1/audio/generations / /v1/media/generate 统一入口待更新;当前请使用上方已开放的音频路由。

任务与轮询

当前视频与异步媒体任务使用视频任务 ID 查询。任务已受理后只轮询同一个 ID,不因客户端等待超时重复提交。

状态速查

当前规范返回四个客户可处理状态。不同来源的原始状态在网关内部映射,客户不需要识别底层状态名。

queued

任务已受理,等待执行。保留任务 ID。

in_progress

任务正在处理。进度字段仅作参考。

completed

读取结果 URL,停止轮询。

failed

读取错误并保留任务 ID 供排查。

查询任务

查询当前令牌的任务

任务归属当前用户。不能查询其他令牌用户的任务。

GET/v1/videos/{task_id}
参数位置必填说明
task_idpath是提交时返回的公开任务 ID。
curl "$BASE_URL/v1/videos/$TASK_ID" \
  -H "Authorization: Bearer $API_KEY"

完成响应的兼容读取顺序

status = response["status"]
if status == "completed":
    url = response.get("video_url") \
        or response.get("data", [{}])[0].get("url") \
        or response.get("metadata", {}).get("url")
elif status == "failed":
    error = response.get("error") or response.get("fail_reason")

轮询与下载规则

当前

轮询已有任务

建议每 3–5 秒查询一次。queued 与 in_progress 时继续轮询,不要重复 POST。

GET /v1/videos/{task_id}
结果

结果 URL

完成后优先使用响应结果地址;已就绪的媒体也可通过内容路径下载。

GET /v1/videos/{task_id}/content
待更新

统一任务契约

统一 /v1/tasks/{task_id}(is_final、output_url、进度与统一错误对象)待更新。

待更新

任务类型统一

音乐、语音、图像异步任务的统一查询待更新;当前以各模型实际文档为准。

客户端超时只代表当前 HTTP 等待结束,不代表任务失败。先查询原任务 ID;失败时保留 ID 与客户安全的错误对象。

模型接口与发现

先查询当前令牌能使用的模型,再从模型详情页确认参数、素材规则和价格。模型名、可见性和价格都不应由 AI 或客户端猜测。

当前模型列表

令牌可见模型

OpenAI 兼容列表。返回值已经按令牌、用户分组、模型限制和可用配置过滤。

GET/v1/models
curl "$BASE_URL/v1/models" \
  -H "Authorization: Bearer $API_KEY"

# {"object":"list","data":[{"id":"model-id","object":"model"}]}
只使用响应中的 data[].id。未出现在列表中的模型,对当前令牌不可用或无权使用。

当前参数与价格来源

当前

模型详情页

视频时长、分辨率、参考图、参考视频、Base64 与 multipart 字段,以对应模型章节为准。

本站模型文档
当前

控制台价格

实际模型价格与分组倍率以控制台为准;程序化获取见「账户信息 API」章节:GET /api/pricing(带账号令牌得专属价)。

控制台模型列表

机器可读接口(待更新)

以下机器可读接口用于让 Skill 与客户程序自助发现模型、参数与价格,待更新;当前请以已开放的 /v1/models 为准。

待更新

模型目录

按令牌返回显示名、类型、标签、能力和调用入口。

GET /v1/skills/models
待更新

参数 Schema

单模型参数、可选值、默认值与素材限制。

GET /v1/skills/models/{model}
待更新

客户可见价格

只按当前令牌返回有效计费单位与公开价格,不泄露内部渠道。

GET /v1/skills/models/{model}/pricing
待更新

按参数估价

时长、清晰度与素材组合影响价格时,复用真实账单逻辑估价。

POST /v1/pricing-estimate

账户与素材

当前可查询令牌用量与限制;参考素材仍以模型协议为准。统一钱包余额与文件上传能力待更新。

当前令牌用量

Token Usage

读取当前令牌的额度、已用额度、模型限制和过期时间。

GET/api/usage/token/
curl "$BASE_URL/api/usage/token/" \
  -H "Authorization: Bearer $API_KEY"

# data.total_available / data.total_used / data.model_limits / data.expires_at
这是令牌配额接口(单把 sk- 令牌)。账号总余额现已可用,见「账户信息 API」章节:GET /api/user/self(data.quota / 500000 = 元)。

当前参考素材方式

URL

公网 URL

仅在目标模型参数页明确支持时使用;链接必须可被目标模型访问。

模型字段为准
Base64

Data URI

部分模型支持 data:image/...;base64,...,其它模型可能忽略或拒绝。

模型字段为准
Multipart

本地文件表单

仅使用目标模型公开的 multipart 字段,例如某些模型的 input_reference。

模型字段为准
结果

结果链接

把响应里的 video_url 或图片 URL 当作不透明地址使用,及时保存需要长期保留的产物。

响应字段为准

账户与文件能力(待更新)

以下账户与文件能力待更新,敬请关注。

待更新

钱包余额

返回总额、预冻结、可用余额和实际币种;字段来自同一账本快照。

GET /v1/skills/balance
待更新

文件上传

multipart 上传后返回客户安全、可被模型访问、具备过期策略的 URL。

POST /v1/files
待更新

文件生命周期

文件元数据、删除、所有权检查、存储清理和可见 URL 过期时间。

GET / DELETE /v1/files/{id}
待更新

模型素材声明

由模型参数接口声明 URL、Base64、multipart 和限制,AI 不再猜测输入格式。

GET /v1/skills/models/{model}

账户信息 API Account

🔑 通过 API 查询模型与余额两类信息,支持两种鉴权粒度:令牌级(用调用令牌 sk-,看这把令牌的可见模型与额度)与账号级(用账号凭据,看整个账号已开启的模型、总余额与专属价格)。均为只读、可安全轮询。Base URL https://api.oairegbox.cc。

两种鉴权粒度

粒度鉴权头能查到
令牌级Authorization: Bearer sk-你的令牌这把令牌的可见模型 + 这把令牌的额度
账号级Authorization: Bearer 账号访问令牌账号已开启的全部模型 + 账号总余额 + 账号专属价格
⚠️ 调用令牌 sk- 与 账号访问令牌 是两种不同凭据:sk- 只能打 /v1/* 生成接口与 /api/usage/token/;账号访问令牌 / 登录 JWT 才能打 /api/user/* 账号接口(用 sk- 打账号接口会返回 401)。

账号凭据怎么拿(两选一)

方式怎么获取适用
① 账号访问令牌(推荐)登录后台 →「个人设置 / 个人中心」→ 生成系统访问令牌,复制保存(也可 GET /api/user/token 在登录态下签发;重新签发会替换并使旧令牌失效)服务端脚本 / 长期自动化:长期有效、可随时重置、不受验证码 / 两步验证影响
② 账号密码换令牌POST /api/user/login,body {"username":"...","password":"..."} → 取 data.access_token交互式 / 一次性:得到的是会话 JWT;账号开启两步验证时需再走 2FA。⚠️ 每次调用都会创建登录会话,勿用于反复自动化(见下)
BASE_URL="https://api.oairegbox.cc"

# 方式②:账号密码换令牌(返回 data.access_token)
curl -sS -X POST "$BASE_URL/api/user/login" \
  -H "Content-Type: application/json" \
  -d '{"username":"你的账号","password":"你的密码"}'
# => {"success":true,"data":{"access_token":"eyJhbGci...","user":{...}}}
拿到的账号访问令牌 / access_token 都作为 Authorization: Bearer <它> 打下面的账号级接口。账号访问令牌等于账号钥匙,请妥善保管、勿写进前端、勿泄露;泄露可在后台重置。
⚠️ 方式②会创建登录会话:每次 POST /api/user/login 都会新建一个 30 天有效的登录会话。反复程序化登录会堆满账号活跃会话上限(默认 50),导致账号被临时锁定。自动化请一律用 ①账号访问令牌(PAT)——无状态查询、不产生会话。被锁解法:任一已登录设备点「退出其他登录会话」,或重置密码。

① 令牌级:模型 + 额度(用 sk-)

能力接口返回
令牌可见模型GET /v1/modelsdata[].id = 这把令牌可调用的模型(已按令牌 / 分组 / 模型限制过滤)
令牌额度GET /api/usage/token/total_available / total_used / total_granted / unlimited_quota / model_limits / expires_at
# 令牌可见模型
curl -sS "$BASE_URL/v1/models" -H "Authorization: Bearer sk-你的令牌"

# 令牌额度(total_* 为额度单位,¥ = 数值 / 500000;unlimited_quota=true 表示不限额)
curl -sS "$BASE_URL/api/usage/token/" -H "Authorization: Bearer sk-你的令牌"
# => {"data":{"total_available":..., "total_used":..., "unlimited_quota":false, "model_limits":[...], "expires_at":...}}

② 账号级:已开启模型 + 总余额(用账号令牌)

能力接口返回
账号已开启模型GET /api/user/modelsdata = 账号所有可用分组里已启用的模型名数组(去重)。可选 ?group=组名 筛某组、?group=auto 看智能分组
账号总余额GET /api/user/selfdata.quota(剩余额度)、data.used_quota(已用)、data.group(账号分组)
账号分组与倍率GET /api/user/self/groups账号可用分组及各组倍率
PAT="账号访问令牌或登录返回的 access_token"

# 账号已开启的全部模型(跨该账号所有可用分组、去重)
curl -sS "$BASE_URL/api/user/models" -H "Authorization: Bearer $PAT"
# => {"success":true,"data":["gemini-3-flash","claude-sonnet-4-6","flow-omni-1.1-flash", ...]}

# 账号总余额(¥ = data.quota / 500000)
curl -sS "$BASE_URL/api/user/self" -H "Authorization: Bearer $PAT"
# => {"success":true,"data":{"username":"...","group":"...","quota":2750000,"used_quota":123456, ...}}
#    quota=2750000 → ¥5.50

模型价格

GET /api/pricing 返回全部模型的价格目录。匿名即可调用(返回基准价);带账号令牌调用则反映该账号的分组倍率与专属折扣——要拿"这个账号真实到手价"请带账号令牌打。

字段含义
data[].model_name模型名
data[].quota_type计费方式:1=按次固定价 / 0=按量(token)
data[].model_price按次(quota_type=1)时的每次单价(元,未乘分组倍率)
data[].model_ratio按量(quota_type=0)时的倍率
data[].enable_groups该模型所属分组
data[].published_price有发布价档时的对客单价(更直观,优先用它)
group_ratio(顶层)各分组倍率
usable_group(顶层)可用分组(账号鉴权时按账号过滤)
# 匿名 = 基准价;带账号令牌 = 账号专属价(分组倍率 / 用户折扣已反映在 group_ratio)
curl -sS "$BASE_URL/api/pricing" -H "Authorization: Bearer $PAT"
价格算法:按次(quota_type=1)每次价(¥) = model_price × group_ratio[该模型分组];按量(quota_type=0)按 token 计费、倍率 = model_ratio × group_ratio,有 published_price 时直接用它更直观。用 sk- 打此接口不触发账号鉴权(按匿名基准价返回),要专属价请用账号令牌。若账号有专属折扣(用户级倍率覆盖分组倍率),以 published_price / 控制台为准。

Python 完整示例(账号级:余额 + 模型 + 价格)

import requests

BASE = "https://api.oairegbox.cc"
PAT  = "账号访问令牌"          # 或用账号密码登录换 access_token(见上)
H = {"Authorization": f"Bearer {PAT}"}

# 账号总余额
me = requests.get(f"{BASE}/api/user/self", headers=H, timeout=30).json()["data"]
print("账号:", me["username"], "| 分组:", me["group"], "| 余额: ¥%.2f" % (me["quota"] / 500000))

# 账号已开启的全部模型
models = requests.get(f"{BASE}/api/user/models", headers=H, timeout=30).json()["data"]
print("已开启模型数:", len(models))

# 模型价格目录(账号专属价)
pr = requests.get(f"{BASE}/api/pricing", headers=H, timeout=30).json()
prices, group_ratio = pr["data"], pr.get("group_ratio", {})
for m in prices[:5]:
    if m["quota_type"] == 1:                       # 按次
        g = (m.get("enable_groups") or [""])[0]
        print(m["model_name"], "≈ ¥%.4f/次" % (m["model_price"] * group_ratio.get(g, 1)))

单位与注意事项

Flow · Veo 3.1 视频

当前对外提供两个视频别名:flow-veo-3-1(标准)与 flow-veo-3-1-fast(Fast)。两者均为异步任务,固定按次计费;失败任务不计费。

⚠️ 图生视频(要用参考图)必看 —— 上传图片只有一种正确姿势:

✅ 用 application/json 请求体,图片放进 image(单图)或 images(多图数组)字段,值必须是 base64(data URI,形如 data:image/jpeg;base64,....)。 经我方实测,只有这两个字段+base64 会真正被系统采用。

❌ 以下方式图片会被静默忽略,成片直接退化成"文生视频"(这就是"生成的视频没用到参考图"的原因):
  • 用 multipart/form-data 表单上传(含 Sora 风格的 input_reference / input_reference[0]);
  • 用 image_url / first_image_url / first_image / last_image_url 字段(无论传 URL 还是 base64,均实测不生效);
  • 传图片 URL(系统要自行抓取,外部图床/带鉴权的链接大多抓不到 → 当没传处理)。所以一律转 base64。

模型与价格

模型能力计费价格
flow-veo-3-1Veo 3.1 标准视频生成;文生、单图首帧、首尾帧字段可用按次¥0.46 / 次
flow-veo-3-1-fastVeo 3.1 Fast;请求结构与标准版相同,优先低延迟按次¥0.40 / 次
价格是固定任务价,不是按秒价。即使传入 seconds,本组仍只扣一次对应模型的价格。失败任务不计费。

接口信息

项说明
提交任务POST /v1/videos(当前公开契约:JSON)
轮询进度GET /v1/videos/{task_id} → status=completed 后取顶层 video_url(兼容 data[0].url)
下载成片优先下载完成任务返回的 video_url;媒体已就绪后也可使用 /v1/videos/{task_id}/content
鉴权Authorization: Bearer sk-你的令牌
令牌分组gemini-flow-1(Gemini flow)
耗时通常数十秒至数分钟;客户端应轮询,不要重复提交同一任务

核心参数

字段类型必填默认说明
modelstring是-只使用 flow-veo-3-1 或 flow-veo-3-1-fast
promptstring是-画面、主体、动作、镜头和音频意图;建议写清主体数量与运动方向。无我方硬性长度上限(走 Veo 官方)
secondsstring / number否-推荐字符串如 "4"。当前最低已验证 4 秒;实际成片可能被服务归一化为默认时长,以完成任务媒体信息为准
durationnumber / string否-seconds 的兼容写法,例如 4;不要同时传两个不同值
resolutionstring否-兼容字段,建议改用官网式 video_resolution;当前仅 720p(⚠️ 官方已取消 1080p,当前仅 720p)
sizestring否-像素尺寸 1280x720/720x1280,或官网式纵横比 16:9/9:16(须同时传 video_resolution)
video_resolutionstring否-官网式清晰度 仅 720p(官方已取消 1080p)。仅当 size 传纵横比时使用;网关转换为等价像素后发送
aspect_ratiostring否-可传 16:9/9:16 作画幅意图;实测可提交,但服务可能归一化输出画幅
✅ imagestring(base64)否-单图生视频主图 —— 经实测唯一生效的单图字段。必须传 data:image/...;base64,....(勿传图片 URL,系统抓不到会被忽略)
✅ imagesstring[](base64)否-多图参考数组,最多 3 张,每个元素为 data:image/...;base64,....;经实测生效
❌ image_urlstring否-实测不生效:图片被静默忽略、退化为文生视频。请改用 image
❌ first_image_url/first_image/last_image_urlstring否-实测不生效;首尾帧当前无可用字段。单图用 image、多图用 images
❌ input_reference / multipart 文件-否-不支持(Sora 格式);用 multipart 上传或该字段,图片会被忽略、退化为文生视频
画幅与清晰度映射(已实测):官网式 size=16:9 + video_resolution=720p 等价于 1280x720;竖屏对应 720x1280。⚠️ 官方已取消 1080p,当前仅支持 720p;不能传 1080p / 4k 或其他未支持比例。
图片数量边界(已实测):单图用 image(1 张);多图参考用 images,最多 3 张,第 4 张会在执行阶段返回 INVALID_ARGUMENT。首尾帧(first/last)当前无可用字段。

提交方式

当前唯一生效的图片传法:Content-Type: application/json + image/images 字段 + base64(data URI)。不要用 multipart 文件上传,也不要传图片 URL(系统抓不到 → 图被忽略、退化为文生视频)。先把本地图片转成 data URI 再放进 image:

IMAGE_B64=$(base64 < ./start.jpg | tr -d '\n')
curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d "{
    \"model\": \"flow-veo-3-1-fast\",
    \"prompt\": \"让图片中的主体自然运动\",
    \"seconds\": \"4\",
    \"resolution\": \"720p\",
    \"image\": \"data:image/jpeg;base64,$IMAGE_B64\"
  }"

示例请求

文生视频(最低已验证参数)

BASE_URL="https://newapi-2.oairegbox.cc"
TOKEN="sk-你的Flow令牌"

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "flow-veo-3-1",
    "prompt": "一只橘猫在窗边抬头,阳光缓慢移动,固定机位,电影感",
    "seconds": "4",
    "size": "16:9",
    "video_resolution": "720p"
  }'

Fast 版把 model 改为 flow-veo-3-1-fast。竖屏把 size 改为 9:16。

单图生视频(I2V)—— 用 image + base64(唯一生效)

IMG=$(base64 < ./start.jpg | tr -d '\n')
curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d "{
    \"model\": \"flow-veo-3-1-fast\",
    \"prompt\": \"保持人物外观和服装一致,让人物自然回头并向镜头走来\",
    \"seconds\": \"4\", \"resolution\": \"720p\",
    \"image\": \"data:image/jpeg;base64,$IMG\"
  }"

多图参考(最多 3 张)—— 用 images + base64

A=$(base64 < ./character.jpg | tr -d '\n'); B=$(base64 < ./scene.jpg | tr -d '\n')
curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d "{
    \"model\": \"flow-veo-3-1-fast\",
    \"prompt\": \"把图 1 的人物置于图 2 的场景,镜头缓慢推进\",
    \"seconds\": \"4\", \"resolution\": \"720p\",
    \"images\": [\"data:image/jpeg;base64,$A\", \"data:image/jpeg;base64,$B\"]
  }"
❌ 首尾帧过渡(first / last frame)当前不可用:first_image_url / first_image / last_image_url 实测均不生效,请改用单图 image 或多图 images。

轮询取片

TASK_ID="task_xxx"
# shell 轮询示例(每 5 秒一次)
while :; do
  BODY=$(curl -fsS "$BASE_URL/v1/videos/$TASK_ID" -H "Authorization: Bearer $TOKEN") || exit 1
  STATUS=$(printf '%s' "$BODY" | jq -r '.status // "unknown"')
  echo "status=$STATUS"
  case "$STATUS" in
    completed|success|succeeded) break ;;
    failed|error) printf '%s\n' "$BODY" | jq .; exit 1 ;;
  esac
  sleep 5
done
VIDEO_URL=$(printf '%s' "$BODY" | jq -r '.video_url // .data[0].url // empty')
curl -fL "$VIDEO_URL" -o flow-veo-result.mp4

完成任务通常返回顶层 video_url;客户端应同时兼容 data[0].url。下载地址是临时地址,请及时转存。

Python 完整请求

import time, requests
BASE = "https://newapi-2.oairegbox.cc"
H = {"Authorization": "Bearer sk-你的Flow令牌", "Content-Type": "application/json"}
# 提交
task = requests.post(f"{BASE}/v1/videos", headers=H, json={
    "model": "flow-veo-3-1-fast",
    "prompt": "一只橘猫在窗边抬头,阳光缓慢移动,固定机位,电影感",
    "seconds": "4", "size": "16:9", "video_resolution": "720p",
}).json()
tid = task["task_id"]
# 轮询
while True:
    r = requests.get(f"{BASE}/v1/videos/{tid}", headers=H).json()
    if r["status"] in ("completed", "success", "succeeded", "failed"):
        break
    time.sleep(5)
# 取 URL 下载(兼容顶层 video_url 与 data[0].url)
url = r.get("video_url") or (r.get("data") or [{}])[0].get("url")
open("flow-veo.mp4", "wb").write(requests.get(url).content)

注意事项

// 提交
{ "task_id": "task_xxx", "status": "queued", "progress": 0 }
// 轮询完成
{ "task_id": "task_xxx", "status": "completed", "progress": 100,
  "video_url": "https://sd.oaibox.xyz/d/dl/video/xxxx.mp4" }
// 失败
{ "task_id": "task_xxx", "status": "failed", "error": { "code": "...", "message": "..." } }

建议

Omni 视频生成

基于 Gemini Veo 的视频生成服务,支持文生视频、图生视频(最多 5 张参考图)、视频转视频(V2V,最多 2 个参考视频)。

模型与价格

模型能力计费价格
omni-fast文生视频 / 图生视频按次¥0.37/次
omni-fast-v2v视频转视频(V2V)按次¥0.52/次
omni-fast-no-water文生/图生视频(无水印)按次¥0.47/次
omni-fast-v2v-no-waterV2V(无水印)按次¥0.62/次
omni-extend-20s视频续写(原片 + 约 8~10 秒)按次¥0.52/次
omni-extend-20s-no-water视频续写(无水印)按次¥0.72/次
无水印模型输出经过自动清洗处理,完成前可能多一个 processing 阶段,稍慢。失败不计费。

接口信息

项说明
提交任务POST /v1/videos(JSON 或 multipart)
轮询进度GET /v1/videos/{task_id}
下载成片GET /v1/videos/{task_id}/content 或返回的 data[0].url
鉴权Authorization: Bearer sk-你的令牌
令牌分组gemini-fast

核心参数

参数类型必填默认说明
modelstring是-模型名,见上表
promptstring是-视频描述提示词(无我方硬性长度上限,走 Gemini 官方)
aspect_ratiostring否16:9画幅比例:16:9(横)、9:16(竖)
seconds / durationstring/int否10时长秒数(接收但当前 Gemini 固定输出约 10 秒)
image_urlstring否-单张参考图(公网 URL 或 data:image Base64)
first_image_urlstring否-首帧参考图 URL
last_image_urlstring否-末帧参考图 URL
video / video_urlstring否-V2V 源视频 URL(≤8MB、≤1920x1080)。传 2 个视频时可用这两个字段各放一个
videosstring[]否-V2V 多源视频数组(最多 2 个,每个 ≤8MB)
imagesstring[]否-多参考图数组(最多 5 张,每张 ≤8MB)

Multipart 提交(支持文件上传)

字段说明
input_reference / input_reference[]参考图文件上传(最多 5 张,每张 ≤8MB)。input_reference[] 为浏览器画布 / Sora 兼容客户端的数组写法:单张=图生视频(首帧动画),多张=多参考图;两种写法均可
input_video / input_video2 / videos[]V2V 源视频文件上传(每个 ≤12MB,最多 2 个)。传 2 个视频用 input_video+input_video2;浏览器画布 / Sora 兼容客户端用数组写法 videos[](同名重复),网关均可解析

示例:文生视频

curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "omni-fast",
    "prompt": "雨夜霓虹街道,镜头缓慢推进,电影感光影",
    "aspect_ratio": "16:9"
  }'

让它照着念台词(只有文生视频做得到)

omni-fast 文生 / 图生视频会把你写的英文台词一字不差地念出来——把台词用引号写进提示词即可。8 个不同场景实测逐字 8/8,按序命中率 1.00。

curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "omni-fast",
    "prompt": "A woman in a bright studio holds up a wireless earbud case to the camera. She speaks clearly to camera and says, \"This one lasts nine hours on a single charge.\" Bright commercial product-ad look.",
    "aspect_ratio": "16:9"
  }'
要照着念台词,选哪个模型逐字命中说明
omni-fast 文生 / 图生视频 + 引号台词8/8✅ 想要精确台词就用它
omni-extend-20s 续写 + 引号台词0/6❌ 会说话、会切题,但措辞自己编
omni-extend-20s 续写 + 旁白句式0/7❌ 更糟,7 条里 3 条整段无声
三组用的是同样 8 个场景、同一句台词,只换模型 / 写法这一个变量。
所以:要精确台词 → 文生视频;要保住真人和商品细节 → 续写 + 后期配音。两者不可兼得,请按需求选一边。

示例:图生视频

curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "omni-fast",
    "prompt": "保持人物一致,缓慢走动",
    "image_url": "https://your-cdn.com/photo.jpg",
    "aspect_ratio": "16:9"
  }'

示例:视频转视频(V2V)

# Multipart 文件上传
curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -F "model=omni-fast-v2v" \
  -F "prompt=将画面风格转换为赛博朋克风" \
  -F "input_video=@source.mp4"

示例:双视频 V2V(2 个参考视频)

curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "omni-fast-v2v",
    "prompt": "融合两段素材,保持连续运动",
    "videos": ["https://your-cdn.com/a.mp4", "https://your-cdn.com/b.mp4"],
    "aspect_ratio": "16:9"
  }'

也可用 multipart/form-data 上传两个视频文件(字段 input_video + input_video2):

# 双视频 · multipart 文件上传
curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -F "model=omni-fast-v2v" \
  -F "prompt=第一个视频的人和第二个视频的人一起跳舞" \
  -F "input_video=@person1.mp4" \
  -F "input_video2=@person2.mp4"

视频续写(omni-extend-20s)

把你自己的一段短视频接长:上传 12 秒以内的视频,返回「原片 + 约 8~10 秒新画面」。10 秒素材约得 18~20 秒成片,原片内容原样保留,只在后面自然接上。

curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "omni-extend-20s",
    "videos": ["https://your-cdn.com/clip.mp4"],
    "prompt": "continue naturally"
  }'

也可用 multipart/form-data 上传本地文件:-F "model=omni-extend-20s" -F "input_video=@clip.mp4"

要点说明
续写提示词越简单越好,推荐直接写 continue naturally。在续写阶段详细描述画面元素(例如「把卡片转向镜头」)明显更容易触发内容审核而失败;创意请写在原片里。
画幅不传 aspect_ratio 时自动跟随原片,竖屏素材不会被裁切;传了则以你指定的为准。
素材时长必须 ≤ 12 秒,超出会直接拒绝并提示,不消耗额度。
音频加 "audio": "mute" 可得到无声画面,便于后期配音。模型自带的声音不会延续原片台词,口播类建议后期配音。
必须带视频纯文字请求会被拒绝——该模型只负责续写,不负责从零生成。
耗时与超时中位约 3.5 分钟,90 分位约 7 分钟,最慢见过 12 分钟。客户端轮询超时请设 ≥ 15 分钟,不要因为客户端超时就重新提交——先用原 task_id 继续轮询。
参考图字段别写错JSON 请求体里请用 images(数组,最多 5 张)。
input_reference 在 JSON 里只能是单个字符串,写成数组会被网关直接挡下:invalid_json: cannot unmarshal array ... input_reference of type string。要传多张就用 images。
video_action可选。用 omni-extend-20s 时网关默认就是续写;显式写 "video_action": "extend" 也可以,行为一致。
提示词能控什么能控「做什么」,不能控「说什么」。写动作、道具、运镜都有效(例如「旁边画一个红色圆圈」会真的画出来)。
写台词不会被拒(20 次实测通过 12 次,与不写台词无差别;另一组 16 次续写只有 1 次被拒),但不会照着念——逐字命中 0/18。它会说话、会切题、语种也对,只是措辞由模型自己编。需要精确话术就出无声画面后期配音。
想让它讲某个话题,用画面暗示:提示词里放「电池图标」,旁白就会讲续航。
加参考图的代价参考图内容确实会进画面(提示词没提到它也会进),指定道具会被加进原场景而不是替换场景,实测有效 10/11。
早期小样本曾观察到「带图更容易退化成等长重拍」,但扩到各 20 次后没有复现(带图 11/20、不带图 10/20)。带图不额外计费,可以按需使用。
无论带不带图都要校验:输出时长 < 原片时长 + 2 秒 即为重拍——没加长但已扣额度,整体约 11%。
原片保真度续写对原片是逐帧原样保留(首帧相关度实测 1.000),人物、商品、机位、光线全部锁死。这是唯一能保住真人和商品细节的路径。
不要用照片代替视频用「一张照片 + 文生视频」做真人带货,人物不会是照片里的那个人——实测首帧相关度只有 0.29~0.39,商品五金件也会被重画。真人主播 / 商品细节必须严格一致时,请提供真实拍摄的短视频走续写,不要走图生视频。
口播台词语种可以指定,内容不可以。提示词里写明英语 / 中文 / 粤语都能生效,实测粤语链式 8 轮全程保持粤语。
但续写不会逐字念你写的台词——它会说话、会切题、语种也对,措辞却是自己编的。单变量实测逐字 0/6(并入更早的 12 条共 0/18),按序命中率仅 0.25。
⚠️ 千万不要写成旁白句式(a voice over says: "..."):实测逐字 0/7,且 7 条里有 3 条整段完全无声,比直接写引号台词更糟。
需要精确话术:出无声画面后期配音。要「照着念」请改用 omni-fast 文生视频,见下方对照。
收到 content_policy 怎么办不要重试,换素材(换题材)。
先说清楚一件事:这个错误码的名字有误导性。我们抓了 168 次失败逐条看过,真正被内容审核判掉的只有 1 次;绝大多数是这次请求没被派给视频模型——请求在更前面一层就被挡下了,跟你这条文件"干不干净"基本无关。所以画面完全正常的素材照样可能收到它。
后果是:任何针对文件本身的补救都没用。专项对照实测——换编码重传 1/10,什么都不做 2/15,重试比不重试还差(多烧 10~15 分钟)。改提示词、改码率、改分辨率同理。
它占全部失败的 88%。拒绝不生成视频、不扣额度。
唯一有效的做法是换题材——见下面的「题材成功率」表,幼儿类 0/14、产品广告 14/14,差距就在这里。
参考图控制可同时传 images(最多 5 张,data URI 或公网 URL)来控制续写段出现的商品或元素。人设、画风、场景由原片锁定,商品由参考图决定——带货场景常用。参考图建议用商品图 / 白底图,尽量不要带人。加图不额外计费。

示例:续写时用一张商品图控制画面中出现的商品——

curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "omni-extend-20s",
    "videos": ["https://your-cdn.com/host.mp4"],
    "images": ["https://your-cdn.com/product.jpg"],
    "prompt": "continue naturally"
  }'

用 URL 传参考视频和参考图

不想传 base64、也不想走 multipart,可以直接给公网 URL,视频和图片都支持。服务端会替你下载(经代理,不暴露你我的 IP),你只要保证链接能被匿名 GET 到。

# 参考视频 + 参考图,全部用 URL
curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "omni-extend-20s",
    "prompt": "continue naturally",
    "videos": ["https://your-cdn.com/clip.mp4"],
    "images": ["https://your-cdn.com/product.jpg"]
  }'

字段对照

要传的东西推荐字段也接受上限
参考视频videos(数组)video_url / video / input_video(各放一个)最多 2 个,每个 ≤12MB、≤12 秒、≤1920×1080
参考图images(数组)image_url / first_image_url / last_image_url最多 5 张,每张 ≤12MB

同一个字段里 URL 和 data:...;base64, 可以混着写,服务端按前缀自己分辨。multipart 也能混用:视频用 -F "input_video=@clip.mp4" 上传文件,图片同时用 -F "image_url=https://..." 给链接。

URL 必须满足

要求说明
匿名可下载服务端下载时不会带你的任何鉴权头。需要签名/登录才能访问的私有链接一律取不到,请用预签名直链(presigned URL)或公开对象。
直链,返回 200要指向文件本身,不是网盘的分享页 / 播放页。302 跳转可以,会自动跟随。
时效要够预签名 URL 的有效期建议留 30 分钟以上:任务排队 + 生成的中位耗时约 3.5 分钟,最慢见过 12 分钟。
Content-Type不强制。服务端识别不了时按 video/mp4 / image/jpeg 兜底。
一个容易踩的坑:把视频 URL 放进 input_reference / reference 这类混合字段时,是靠扩展名判断它是不是视频的(.mp4 .mov .webm .m4v .avi .mkv .mpeg .ogv,查询串会先被剥掉)。
所以形如 https://cdn.example.com/asset/9f3a1c 这种没有扩展名的直链会被当成图片,请求就退化成了「图生视频」。
解决办法:视频一律用 videos / video_url 明确指定,这两个字段不看扩展名。

题材决定成败(实测 140 次)

我们用 7 组不同的提示词写法 × 20 条不同题材的源片各跑了一遍。结论很干脆:提示词怎么写几乎不影响成功率,源片是什么题材才是决定性因素。

七组提示词的成功率全部落在 10~13 / 20,差异在噪声范围内:

提示词写法成功提示词写法成功
4 词极短(continue naturally)13/20中文提示词11/20
25 词中等10/20指定台词12/20
110 词长提示12/20带参考图 / 带分镜图11/20 / 13/20

所以直接用最短的 continue naturally 就行,把精力花在选素材上。

✅ 高成功率题材实测❌ 高风险题材实测
产品广告14/14幼儿 / 亲子0/14
产品演示 / 教程13/14纯动作、无对白1/14
口播带货15/21情绪冲突剧情9/28
动物 / 自然12/14
风景 / 空镜11/14
「纯动作无对白」要特别小心:它不报错、状态是 completed,但实测 5 次全部是等长重拍,而且画幅被翻转。一定要按时长校验,别直接交付。

不同失败的处理方式是相反的

现象怎么办
重拍(输出时长 < 原片 + 2 秒)原地重试,最多 3 次,多数第 2 次就过
video_route_misroute原地重试,偶发
content_policy不要重试,换素材(素材级判定,重试无效)

做 20 秒以上:尾部窗口链式

失败率是跟着你喂进去的参考视频长度走的,不是跟着输出长度走的:

参考视频长度10 秒20 秒28 秒
成功2/22/40/2

所以想接到 30 秒、60 秒,千万不要把整条成片喂回去,而是每轮只截最后 10 秒:

第 1 轮:一段 10 秒素材                              → 成片 10 秒
第 2 轮:截成片最后 10 秒 → 续写 → 返回 20 秒
        只保留新增的后 10 秒,接到片尾                → 成片 20 秒
第 3 轮:再截最后 10 秒 → 续写 → 只留新增的后半段     → 成片 30 秒
...依此类推

这样喂进去的参考永远停在 10 秒,一直待在高成功率区间。实测这样连做 8 轮做到 79 秒,全程画幅、人物、旁白语种都保持一致。

三条硬规则:
① 每轮都必须能原地重试——链式的风险是累乘的,链式重拍率约 27%,高于用原始素材的 11%。
② 每轮都要按时长校验重拍,重拍的那一轮不能接进成片。
③ 建议控制在 6~8 轮以内;轮次越多,画面漂移越明显。

多角色内容:身份要在每一段里重申

续写对原片是逐帧保真的,但如果你是用「参考图 + 图生视频」起头再链式接长,要注意:参考图锁得住「长什么样」(构图、服装、场景、光线),锁不住「是谁」。实测同一套参考图,第二段里的白人角色会被重新生成成亚洲面孔。

做法:把人种、发色、年龄、体型、服装写进每一段的提示词,逐字重复,不要用「她」「那个女人」这类指代。

轮询取片

curl https://YOUR_BASE/v1/videos/{task_id} \
  -H "Authorization: Bearer sk-xxx"

# 完成后(优先读顶层 video_url,兼容 data[0].url;均为完整下载直链):
# {"status":"completed",
#  "video_url":"https://download.oaibox.xyz/v1/videos/vid-xxxx/content",
#  "data":[{"url":"https://download.oaibox.xyz/v1/videos/vid-xxxx/content"}]}

反重力 Antigravity(Claude + Gemini 图文)

提供两大反重力独立分组:gemini-anti-ultra(展示名 Gemini Antigravity Ultra,反重力 Ultra 独立号池专线,倍率 1.0,已纳入 auto 自动分组,承载旗舰模型 gemini-4-argon)与 gemini-anti(0.28x 特惠分组,提供 Claude Opus / Sonnet 4.6 + Gemini 文本 + 原生 4K 出图)。支持标准 OpenAI 兼容接口与 Gemini 原生接口,支持图文理解、Reasoning 思维链、流式输出与 Function Calling 工具调用。

模型与价格

1. gemini-anti-ultra 分组(Gemini Antigravity Ultra · 反重力 Ultra 独立专线,倍率 1.0)

分组代号分组展示名模型名分组倍率输入单价输出单价缓存单价定位说明
gemini-anti-ultraGemini Antigravity Ultragemini-4-argon1.0¥2/M(¥2.00/M)¥10/M(¥10.00/M)¥0.2/M反重力 Ultra 独立号池专线(官方基准 2/10 无折扣,支持工具调用,高稳主力)
gemini-fastGemini Fastgemini-4-argon-app1.0¥0.56/M¥2.8/M¥0.056/M高性价比快速通道(纯对话/图文理解,不支持工具调用;详见「Gemini 高速文本」章节)
gemini-4-argon 属于 gemini-anti-ultra 分组(支持图文理解、Reasoning 思维链、流式输出、Function Calling 工具调用);gemini-fast 高速通道使用独立模型名 gemini-4-argon-app,避免与工具调用通道重名冲突。

2. gemini-anti 分组(0.28x 特惠)与反重力全系模型一览

模型类型价格(¥ 与 $ 按 1:1)
gemini-4-argonGemini 4 旗舰·图文/思维链/工具调用(分组 gemini-anti-ultra,倍率 1.0)入 ¥2/M · 出 ¥10/M · 缓存 ¥0.2/M
claude-opus-4-6-thinkingClaude 顶配·带思考入 $3.2/M · 出 $16/M · 缓存 $0.32
claude-sonnet-4-6Claude 均衡入 $2.4/M · 出 $12/M · 缓存 $0.24
gemini-3.1-pro-lowGemini Pro 文本入 $0.48/M · 出 $2.88/M
gemini-3-flashGemini Flash 文本入 $0.4/M · 出 $1.6/M
gemini-3.6-flash-highGemini Flash 高质入 $0.24/M · 出 $2/M · 缓存 $0.06
gemini-3.1-flash-image-4k原生 4K 出图(5632×3072)按次 ¥0.112/张
除 gemini-4-argon 属于 gemini-anti-ultra 分组(倍率 1.0)外,其余模型均为 gemini-anti 分组卖价(已含 0.28x 分组倍率)。实际以模型广场为准。

接口信息

项说明
请求OpenAI 兼容:POST https://api.oairegbox.com/v1/chat/completions
Gemini 原生:POST https://api.oairegbox.com/v1beta/models/gemini-4-argon:generateContent / :streamGenerateContent
Base URLhttps://api.oairegbox.com
令牌分组gemini-anti-ultra(gemini-4-argon 独立专线,倍率 1.0,已纳入 auto 链)
gemini-anti(Claude / Gemini 0.28x 特惠分组)
支持能力图文理解、Reasoning 思维链、流式输出("stream": true)、Function Calling 工具调用(tools / tool_choice)
Function Call支持(tools / tool_choice)
流式支持("stream": true 或 :streamGenerateContent)

核心参数

参数类型必填说明
modelstring是见上表;Claude / Gemini / 4K 出图切换 model 即可
messagesarray是OpenAI 标准对话消息
streambool否true 开启流式
tools / tool_choicearray / string否Function Call(Claude / Gemini 均支持)
temperature / max_tokens 等-否OpenAI 标准采样参数

提交方式

文本对话、Function Call、4K 出图全部走同一端点 POST /v1/chat/completions,切换 model 即可。4K 出图(gemini-3.1-flash-image-4k)的图片在响应 choices[0].message.images[].image_url.url(data:image/jpeg;base64)返回。

示例:Claude 对话

curl https://newapi.oairegbox.cc/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "messages": [{"role":"user","content":"用一句话解释量子纠缠"}]
  }'

示例:4K 出图

图像通过对话接口返回,结果在 choices[0].message.images[].image_url.url(data:image/jpeg;base64)。强制输出 4K(5632×3072)。

curl https://newapi.oairegbox.cc/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.1-flash-image-4k",
    "messages": [{"role":"user","content":"一只戴宇航头盔的柴犬,电影级布光"}]
  }'

示例:Function Call

curl https://newapi.oairegbox.cc/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "messages": [{"role":"user","content":"北京天气如何"}],
    "tools": [{"type":"function","function":{
      "name":"get_weather",
      "parameters":{"type":"object","properties":{"city":{"type":"string"}}}
    }}]
  }'

轮询取片

本分组均为同步对话接口(含 4K 出图,图片直接在对话响应里返回),无需轮询 task_id。

Python 完整请求

from openai import OpenAI

client = OpenAI(api_key="sk-xxx", base_url="https://newapi.oairegbox.cc/v1")
resp = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)

示例:gemini-4-argon(OpenAI 兼容与 Gemini 原生)

# 1. OpenAI 兼容格式(POST /v1/chat/completions)
curl https://api.oairegbox.com/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-4-argon",
    "messages": [{"role":"user","content":"分析量子纠缠在量子通信中的核心作用"}],
    "stream": false
  }'

# 2. Gemini 原生格式(POST /v1beta/models/gemini-4-argon:generateContent)
curl https://api.oairegbox.com/v1beta/models/gemini-4-argon:generateContent \
  -H "x-goog-api-key: sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{"text": "分析量子纠缠在量子通信中的核心作用"}]}]
  }'

注意事项

建议

Google Vertex AI & AI Studio(官方原生模型)

直连 Google Vertex AI 企业级通道(主力分组 gemini-vertex,倍率 1.8)与 Google AI Studio(分组 gemini-official,倍率 1.6),模型名与 Google 官方完全一致。文本与原生图像生成同时支持 OpenAI 兼容端点 POST /v1/chat/completions 与 Gemini 原生端点 POST /v1beta/models/{model}:generateContent。

一、gemini-vertex 分组模型与价格(Google Vertex AI · 倍率 1.8)

当前主力官方原生分组为 gemini-vertex(展示名 Gemini Vertex),基于 Google 官方标准单价 × 分组倍率 1.8 计费(人民币 ¥ 与美元 $ 按 1:1):

1. 原生图像生成与图文对话模型(按 token)

模型定位说明计费1.0× 官方基准gemini-vertex(1.8×)实际单价单张图片预估成本
gemini-3-pro-imageNano Banana Pro 旗舰原生多模态生图 / 图文编辑按 token入 ¥2/M · 出 ¥120/M · 缓存 ¥0.2/M入 ¥3.6/M · 出 ¥216/M · 缓存 ¥0.36/M约 ¥0.27 ~ ¥0.29 / 张(输出 ~1,240 tokens)
gemini-3.1-flash-imageNano Banana 2 轻量高速原生生图按 token入 ¥0.5/M · 出 ¥60/M · 缓存 ¥0.05/M入 ¥0.9/M · 出 ¥108/M · 缓存 ¥0.09/M约 ¥0.13 ~ ¥0.15 / 张
gemini-2.5-flash-imageGemini 2.5 Flash 原生多模态生图按 token入 ¥0.3/M · 出 ¥30/M · 缓存 ¥0.03/M入 ¥0.54/M · 出 ¥54/M · 缓存 ¥0.054/M约 ¥0.07 ~ ¥0.08 / 张
计费说明:官方原生图像模型按实际输入与输出 token 计费,生成的图片本身按 Google 官方规则折算为输出 token(每张图约 1,120 ~ 1,290 输出 tokens)。调用端点为 POST /v1/chat/completions 或 POST /v1beta/models/{model}:generateContent(不走 /v1/images/generations)。

2. 文本与多模态推理模型(按 token)

模型1.0× 官方基准gemini-vertex(1.8×)实际单价
gemini-4-argon入 ¥2/M · 出 ¥10/M · 缓存 ¥0.2/M入 ¥3.6/M · 出 ¥18/M · 缓存 ¥0.36/M
gemini-3-pro-preview入 ¥2/M · 出 ¥12/M · 缓存 ¥0.2/M入 ¥3.6/M · 出 ¥21.6/M · 缓存 ¥0.36/M
gemini-3.5-flash入 ¥0.75/M · 出 ¥3.75/M · 缓存 ¥0.075/M入 ¥1.35/M · 出 ¥6.75/M · 缓存 ¥0.135/M
gemini-3-flash-preview入 ¥0.5/M · 出 ¥3/M · 缓存 ¥0.05/M入 ¥0.9/M · 出 ¥5.4/M · 缓存 ¥0.09/M
gemini-2.5-pro入 ¥1.25/M · 出 ¥10/M · 缓存 ¥0.125/M入 ¥2.25/M · 出 ¥18/M · 缓存 ¥0.225/M
gemini-2.5-flash入 ¥0.3/M · 出 ¥2.5/M · 缓存 ¥0.03/M入 ¥0.54/M · 出 ¥4.5/M · 缓存 ¥0.054/M

二、gemini-official 分组参考价格(Google AI Studio · 倍率 1.6)

文本模型(按 token)

模型价格
gemini-2.5-pro入 $2/M · 出 $16/M
gemini-2.5-flash入 $0.48/M · 出 $4/M
gemini-3.1-pro-preview入 $3.2/M · 出 $19.2/M · 缓存 $0.32
gemini-3.1-pro-preview-customtools入 $3.2/M · 出 $19.2/M
gemini-pro-latest入 $3.2/M · 出 $19.2/M
gemini-3.5-flash入 $2.4/M · 出 $14.4/M
gemini-flash-latest入 $2.4/M · 出 $12/M
gemini-3-flash-preview入 $0.8/M · 出 $4.8/M · 缓存 $0.08
gemini-3.1-flash-lite / gemini-3.1-flash-lite-preview入 $0.4/M · 出 $2.4/M
gemini-flash-lite-latest入 $0.48/M · 出 $4/M
gemini-robotics-er-1.6-preview入 $1.6/M · 出 $8/M

图像模型

模型计费价格
gemini-3-pro-image / -preview按 tokengemini-vertex(1.8×):入 ¥3.6/M · 出 ¥216/M(约 ¥0.27~0.29/张);gemini-official(1.6×):入 $3.2/M · 出 $192/M
gemini-3.1-flash-image按 tokengemini-vertex(1.8×):入 ¥0.9/M · 出 ¥108/M;gemini-official(1.6×):入 $0.8/M · 出 $96/M
gemini-3.1-flash-image-preview按 token入 $0.4/M · 出 $96/M
gemini-3.1-flash-lite-image按 token入 $0.4/M · 出 $48/M
gemini-2.5-flash-image按 tokengemini-vertex(1.8×):入 ¥0.54/M · 出 ¥54/M;gemini-official(1.6×):入 $0.48/M · 出 $48/M
gemini-3-pro-image-preview-1k按次¥0.214/张
gemini-3-pro-image-2k按次¥0.214/张
gemini-3-pro-image-4k按次¥0.384/张
按 token 的图像模型,生成图像本身计入输出 token(故输出单价看似高)。

音乐(异步按次)

模型类型价格
lyria-3-pro-preview音乐按次 ¥0.128/次
lyria-3-clip-preview音乐·短按次 ¥0.064/次

接口信息

项说明
文本 / 图像(OpenAI 兼容)POST /v1/chat/completions(图片以 Markdown data:image/png;base64,... 在 choices[0].message.content 返回)
文本 / 图像(Gemini 原生)POST /v1beta/models/{model}:generateContent(图片以 candidates[0].content.parts[].inlineData 返回)
音乐异步任务 POST /v1/videos 提交 → 轮询取片(同「Omni 视频生成」板块)
Base URLhttps://api.oairegbox.cc(备用 https://newapi.oairegbox.cc)
令牌分组gemini-vertex(主力 Google Vertex AI 通道,倍率 1.8) / gemini-official(倍率 1.6)

核心参数

参数类型必填说明
modelstring是与 Google 官方一致,如 gemini-3-pro-image、gemini-2.5-pro 等
messagesarrayOpenAI 格式OpenAI 标准对话消息(图像模型同样走对话,支持传入图片做图文编辑,生成图在响应返回)
contentsarrayGemini 原生格式/v1beta/models/{model}:generateContent 标准请求体
promptstring音乐lyria 音乐任务的描述(异步 /v1/videos)
stream / tools 等-否OpenAI 标准参数(文本 / 图像走 chat)

提交方式

类型端点结果
文本 / 图像(OpenAI 格式)POST /v1/chat/completions(同步)文本与 Base64 图片在 choices[0].message.content 返回
文本 / 图像(Gemini 原生)POST /v1beta/models/{model}:generateContent(同步)文本在 parts[].text,Base64 图片在 parts[].inlineData.data 返回
音乐(lyria)POST /v1/videos(异步)提交拿 task_id → 轮询取片

示例:官方文本

curl https://api.oairegbox.cc/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-2.5-pro",
    "messages": [{"role":"user","content":"你好"}]
  }'

示例:gemini-3-pro-image 官方原生出图(OpenAI 兼容与 Gemini 原生双格式)

# 方式 1:OpenAI Chat 兼容格式(POST /v1/chat/completions)
curl https://api.oairegbox.cc/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3-pro-image",
    "messages": [{"role":"user","content":"生成一张赛博朋克风格的城市夜景海报,霓虹灯倒映在雨夜街道"}],
    "stream": false
  }'

# 方式 2:Google Gemini 原生格式(POST /v1beta/models/gemini-3-pro-image:generateContent)
curl "https://api.oairegbox.cc/v1beta/models/gemini-3-pro-image:generateContent" \
  -H "x-goog-api-key: sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"role":"user","parts":[{"text":"生成一张赛博朋克风格的城市夜景海报,霓虹灯倒映在雨夜街道"}]}]
  }'

示例:官方音乐(lyria,异步任务)

curl -X POST https://api.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "lyria-3-pro-preview",
    "prompt": "轻快的钢琴爵士,适合咖啡馆"
  }'
# 轮询取片同上(GET /v1/videos/{task_id})

轮询取片

文本 / 图像为同步接口,直接返回、无需轮询。音乐(lyria)为异步任务:POST /v1/videos 提交拿 task_id,再 GET /v1/videos/{task_id} 轮询到 completed 取结果(同「Omni 视频生成」板块)。

Python 完整请求(含 gemini-3-pro-image 出图解码)

import base64, re
from openai import OpenAI

client = OpenAI(api_key="sk-xxx", base_url="https://api.oairegbox.cc/v1")

# 1. 官方文本(gemini-vertex 分组)
resp = client.chat.completions.create(
    model="gemini-2.5-pro",
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)

# 2. gemini-3-pro-image 原生出图并保存 PNG
img_resp = client.chat.completions.create(
    model="gemini-3-pro-image",
    messages=[{"role": "user", "content": "一只戴着宇航头盔的橘猫,电影级布光"}],
)
content = img_resp.choices[0].message.content or ""
m = re.search(r"data:image/[^;]+;base64,([A-Za-z0-9+/=\s]+)", content)
if m:
    with open("gemini-3-pro-image.png", "wb") as f:
        f.write(base64.b64decode(re.sub(r"\s+", "", m.group(1))))
    print("Saved gemini-3-pro-image.png")

注意事项

建议

Veo-Clean 去水印

上传带水印的视频,系统自动去除水印后返回去水印成片。异步任务,流程与视频生成一致。

模型与价格

模型能力计费价格
veo-clean视频去水印按秒¥0.10/秒
按视频实际时长计费,例如 10 秒视频 = ¥1.00。失败不计费,不消耗 Gemini 生成配额。

接口信息

项说明
提交任务POST /v1/videos(仅 multipart,需上传文件)
轮询进度GET /v1/videos/{task_id}
下载成片GET /v1/videos/{task_id}/content 或返回的 data[0].url
鉴权Authorization: Bearer sk-你的令牌
令牌分组gemini-fast

核心参数

参数类型必填默认说明
modelstring是-固定 veo-clean
input_videofile是-带水印视频文件,≤20MB,必须 multipart 上传
promptstring是-去水印指令,通常填 remove watermark;网关要求必填,缺省会返回 400 prompt is required

提交方式

仅支持 multipart/form-data(必须上传视频文件,不支持 JSON / URL 传视频)。字段 input_video 放本地文件。

示例请求

# Multipart 上传去水印
curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -F "model=veo-clean" \
  -F "prompt=remove watermark" \
  -F "input_video=@watermarked.mp4"

轮询取片

curl https://YOUR_BASE/v1/videos/{task_id} \
  -H "Authorization: Bearer sk-xxx"
# 完成后:
# {"status":"completed","data":[{"url":"/v1/videos/{task_id}/content"}]}

Python 完整请求

import time, requests
BASE = "https://YOUR_BASE/v1"
H = {"Authorization": "Bearer sk-xxx"}
# 提交(multipart)
with open("watermarked.mp4", "rb") as f:
    task = requests.post(f"{BASE}/videos", headers=H,
        data={"model": "veo-clean", "prompt": "remove watermark"}, files={"input_video": f}).json()
tid = task["task_id"]
# 轮询
while True:
    r = requests.get(f"{BASE}/videos/{tid}", headers=H).json()
    if r["status"] in ("completed", "failed"):
        break
    time.sleep(3)
# 下载
url = r["data"][0]["url"]
if url.startswith("/"):
    url = "https://YOUR_BASE" + url
open("clean.mp4", "wb").write(requests.get(url, headers=H).content)

注意事项

建议

Adobe Firefly · Veo 3.1

Adobe Firefly 视频生成现已提供 Veo 3.1 标准版、Veo 3.1 Fast(静音档,无音频)与 Veo 3.1 Fast Direct(含音频)。两者均使用 OpenAI 兼容的异步视频接口:提交任务后轮询,完成时从响应中的 video_url 获取成片。

本页仅列出当前已开放的 VEO 模型;请勿以模型名或参数猜测方式调用未列出的模型。

模型与价格

模型说明当前验收规格
firefly-veo-3.1Veo 3.1 标准版 · 含音频文/图生视频,4 秒、6 秒、8 秒
firefly-veo-3.1-fastVeo 3.1 Fast,优先低延迟 · 无音频(静音输出)文/图生视频,4 秒、6 秒、8 秒
firefly-veo-3.1-fast-directVeo 3.1 Fast 高质档 · 含音频(同为 Fast,仅积分档可用)文/图生视频,4 秒、6 秒、8 秒
⚠️ 音频说明(重要):firefly-veo-3.1-fast 是无音频的静音档,成片不含任何音频轨。如需带音频,请改用 firefly-veo-3.1-fast-direct(同为 Fast、含音频)或 firefly-veo-3.1 标准版(含音频)。

实际计费、模型可见性和可用额度以控制台模型列表及你的 API 令牌权限为准。

接口信息

项说明
Base URLhttps://newapi-2.oairegbox.cc
提交任务POST /v1/videos
查询任务GET /v1/videos/{task_id}
鉴权Authorization: Bearer sk-你的令牌
任务模式异步;提交成功仅表示任务已入队
成片交付任务 status 为 completed 后,读取顶层 video_url

核心参数

参数类型必填说明
modelstring是使用上表中的一个模型名
promptstring是视频画面、主体、动作、镜头和风格描述
secondsstring是目标时长(秒),可选 "4"、"6"、"8",三者均支持
video_secondsstring否无需传;只传 seconds 即可
sizestring是两种传法,任选其一:
① 像素式 宽x高:"1280x720"(横 720p)、"720x1280"(竖 720p)、"1920x1080"(横 1080p)、"1080x1920"(竖 1080p)——画幅与清晰度自动识别,video_resolution 无需传。
② 官网式 纵横比 "16:9"(横)/ "9:16"(竖)——此时必须同时传 video_resolution,否则报错。
video_resolutionstring条件必填size 传像素时:无需传(清晰度由像素决定)。size 传纵横比(16:9/9:16)时:必填,取 "720p" 或 "1080p",否则报“size 为纵横比(16:9/9:16)时必须同时提供 video_resolution”。
input_referencestring / 文件否图生视频用:参考图(首帧)。可传图片 URL、base64(data:image/...;base64,)或 multipart 文件(@frame.jpg);不传即为文生视频。带此参数时整个请求改用 multipart 表单提交(见下方“图生视频”示例)
size 支持两种传法:① 像素尺寸(如 1280x720),画幅与清晰度自动识别,无需 video_resolution;② 官网式纵横比(16:9/9:16)+ 必填 video_resolution(720p/1080p),对齐 Adobe 官网“画幅 + 分辨率”两栏。两套输出完全一致。音频区分:firefly-veo-3.1(标准版)与 firefly-veo-3.1-fast-direct 默认含音频;而 firefly-veo-3.1-fast 为静音档、无音频轨。

size 取值与输出

size(传这个)画幅清晰度
"1280x720"横版 16:9720p
"720x1280"竖版 9:16720p
"1920x1080"横版 16:91080p
"1080x1920"竖版 9:161080p

官网式取值(size 纵横比 + video_resolution)

sizevideo_resolution输出
"16:9""720p"横版 1280x720
"16:9""1080p"横版 1920x1080
"9:16""720p"竖版 720x1280
"9:16""1080p"竖版 1080x1920

提交方式

模式Content-Type参考素材
文生视频(T2V)application/json无
图生 / 首尾帧 / 多参考图multipart/form-data(-F)带 input_reference / first_frame+last_frame / reference_images 时改用表单
纯文字走 JSON;一旦带任何参考图 / 首尾帧 / 多图,整个请求用 multipart 表单提交(字段用 -F)。首尾帧模式与多参考图模式互斥,不可同一请求混用。

示例:提交 6 秒 Fast 视频

BASE_URL="https://newapi-2.oairegbox.cc"
TOKEN="sk-xxx"

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "firefly-veo-3.1-fast",
    "prompt": "日出时一盏彩色纸灯笼缓缓飘过安静的湖面,水面泛起微光,电影感镜头,无文字无标志。",
    "seconds": "6",
    "size": "1280x720"
  }'

示例:官网式参数(纵横比 + 分辨率)

与像素式输出完全一致,区别只是把画幅和清晰度拆成 size(纵横比)+ video_resolution 两栏,对齐 Adobe 官网 UI。size 传纵横比时 video_resolution 必填。

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "firefly-veo-3.1-fast",
    "prompt": "日出时一盏彩色纸灯笼缓缓飘过安静的湖面,水面泛起微光,电影感镜头,无文字无标志。",
    "seconds": "6",
    "size": "16:9",
    "video_resolution": "720p"
  }'

示例:图生视频(带参考图 input_reference)

在文生的基础上,用 multipart 表单额外带一张参考图作为首帧,其余参数(seconds、size)一致。input_reference 支持本地文件、图片 URL 或 base64 三种传法。

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -F 'model=firefly-veo-3.1' \
  -F 'prompt=让画面里的主体自然动起来,镜头缓慢向前推进,保持构图。' \
  -F 'seconds=6' \
  -F 'size=1280x720' \
  -F 'input_reference=@frame.jpg;type=image/jpeg'
用图片 URL:把最后一行换成 -F 'input_reference=https://your-cdn.com/frame.jpg';用 base64:换成 -F 'input_reference=data:image/jpeg;base64,<...>'。提交后与文生一样轮询 GET /v1/videos/{task_id},完成后取顶层 video_url。

首尾帧(First / Last Frame)

用 first_frame(起始帧)和 last_frame(结束帧)两张图,引导 Veo 从首帧画面过渡到尾帧画面。两个字段都支持图片 URL、base64(data:image/...;base64,)或 multipart 文件。只传 first_frame 等同于用首帧做图生视频(与上面的 input_reference 首帧一致)。首尾帧模式与下方“多参考图”模式互斥,不能同一请求混用(Adobe 官方规则,混传会在生成前返回 400、不计费)。

参数类型说明
first_framefile / url / base64起始帧图片(可单独使用=首帧图生视频)。别名:first_image_url
last_framefile / url / base64结束帧图片(与 first_frame 一起=首尾过渡)。别名:last_image_url
⚠️ Veo 的首尾帧按两张参考图处理(首帧、尾帧各作为一个参考引导),过渡的具体表现由模型把控、未必是逐帧线性插值,实际以成片为准。参考图请用真实、合规的照片(勿用随机占位图 / 纯色图;含可识别真人面孔可能触发内容策略)。
curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "firefly-veo-3.1",
    "prompt": "镜头从清晨薄雾笼罩的湖面缓缓推进,雾气逐渐散去,远处倒影渐渐清晰",
    "seconds": "8",
    "size": "16:9",
    "video_resolution": "720p",
    "first_frame": "https://your-cdn.com/first.jpg",
    "last_frame":  "https://your-cdn.com/last.jpg"
  }'
首尾帧也可走 multipart 文件:改成 -F 'model=firefly-veo-3.1' -F 'first_frame=@first.jpg;type=image/jpeg' -F 'last_frame=@last.jpg;type=image/jpeg'(prompt/seconds/size 同样用 -F 传)。

多参考图(Reference Images)

用 reference_images 传入多张参考图,引导角色、风格与构图。Veo 取用前若干张作参考(标准版 firefly-veo-3.1 最多 3 张、Fast 版最多 2 张),支持图片 URL、base64 或 multipart(重复字段名传多张)。与首尾帧模式互斥:同一请求不能同时传 first_frame/last_frame,混传在生成前返回 400、不计费。

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -F 'model=firefly-veo-3.1' \
  -F 'prompt=保持这几张参考图的人物形象与画面风格,让主体自然动起来' \
  -F 'seconds=6' \
  -F 'size=1280x720' \
  -F 'reference_images=@char.jpg;type=image/jpeg' \
  -F 'reference_images=@style.jpg;type=image/jpeg'
参考图须为真实合规照片;超量或与首尾帧字段混用会在生成前返回 400(不扣积分)。

成功提交会返回异步任务,例如:

{
  "id": "task_xxx",
  "status": "queued",
  "model": "firefly-veo-3.1-fast",
  "progress": 0
}

轮询取片

curl -sS "$BASE_URL/v1/videos/task_xxx" \
  -H "Authorization: Bearer $TOKEN"

当响应中的 status 为 completed 时,读取 video_url:

{
  "id": "task_xxx",
  "status": "completed",
  "model": "firefly-veo-3.1-fast",
  "video_url": "https://..."
}
video_url 是短期签名下载地址,请在有效期内下载或转存。当前请直接使用完成任务返回的 video_url,不要依赖 /v1/videos/{task_id}/content。

Python 完整请求

import time, requests

BASE = "https://newapi-2.oairegbox.cc/v1"
H = {"Authorization": "Bearer sk-xxx", "Content-Type": "application/json"}

# 提交(文生;图生改用 multipart 带 input_reference)
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "firefly-veo-3.1",
    "prompt": "日出时一盏彩色纸灯笼缓缓飘过安静的湖面,电影感镜头",
    "seconds": "6",
    "size": "1280x720"
}).json()
task_id = task.get("id") or task.get("task_id")

# 轮询
while True:
    time.sleep(6)
    s = requests.get(f"{BASE}/videos/{task_id}", headers=H).json()
    if s.get("status") == "completed":
        print("下载:", s["video_url"]); break
    if s.get("status") == "failed":
        print("失败:", s); break

注意事项

建议

Adobe Firefly · Seedance 2.0

Adobe Firefly 的 Seedance 2.0 与 Seedance 2.0 Fast 视频模型。支持文生视频与单图生视频,使用 OpenAI 兼容的异步视频接口:提交任务后轮询,完成时读取 video_url 获取成片。四档均原生自带音频(对白 / 音效 / 环境音同步生成),无需额外参数。

本页仅适用于 firefly 分组的 Adobe Firefly Seedance 模型;与导航中另一套 Seedance 服务是独立通道、独立模型和独立素材协议,不能混用模型名或多图参数。

模型与价格

模型版本固定输出分辨率价格
firefly-Seedance-2.0-fast-480pSeedance 2.0 Fast480p¥0.10/秒
firefly-Seedance-2.0-fast-720pSeedance 2.0 Fast720p¥0.25/秒
firefly-Seedance-2.0-480pSeedance 2.0 标准版480p¥0.15/秒
firefly-Seedance-2.0-720pSeedance 2.0 标准版720p¥0.35/秒
视频默认带音频(AAC 音轨):Seedance 2.0 是 Adobe 官方原生音频模型,一次生成即同步产出对白 / 音效 / 环境音;四档(标准 / Fast × 480p / 720p)全部自带音频,无需额外参数、也不额外计费。

模型名已固定输出分辨率;video_resolution 只能填写与所选模型一致的值,不能用 480p SKU 请求 720p 输出。

接口信息

项说明
Base URLhttps://newapi-2.oairegbox.cc
提交任务POST /v1/videos
查询任务GET /v1/videos/{task_id}
鉴权Authorization: Bearer sk-你的令牌
成片交付任务 status 为 completed 后,读取顶层 video_url

已支持规格

参数可用值说明
seconds / duration4 ~ 15(任意整数)输出时长(秒);Adobe 官方支持 4–15 秒
video_resolution480p、720p必须与模型名的固定 SKU 相同
size16:9 / 9:16,或下列精确像素横竖画幅;也可使用 aspect_ratio
输出档位16:9 横版9:16 竖版
480p854x480480x854
720p1280x720720x1280

核心参数

提交一张首帧参考图即可启用图生视频;不带图片则为文生视频。input_reference 为单张首帧图。若需首尾帧或多图 / 视频 / 音频参考,见下方“首尾帧”“全能参考(Omni)”两节。可上传 JPEG/JPG、PNG、WebP。服务会按目标画幅进行居中裁切、缩放并转为 PNG 后提交;建议先按目标画幅准备主体清晰的图片,以免裁掉重要内容。

字段类型必填说明
modelstring是上表之一
promptstring是描述运动、镜头和画面变化
secondsinteger/string否4 ~ 15 任意整数;默认 4
video_resolutionstring否480p 或 720p,必须匹配模型
sizestring否16:9 / 9:16,或精确输出像素
input_referencefile图生时是单张首帧图;使用 multipart/form-data 上传
image_stylestring否可选风格化:真人参考 → 漫剧角色时传 anime(详见下方“参考图含真人脸 · image_style”一节);留空 = 原图直发,想保留真人请勿传

提交方式

模式Content-Type参考素材
文生视频(T2V)application/json无
图生 / 首尾帧 / 全能参考(Omni)multipart/form-data(-F)input_reference / first_frame+last_frame / reference_images·reference_videos·reference_audios
参考图可走公网 URL 或 base64(JSON 亦可);参考视频 / 音频仅接受 multipart 文件或 base64,不收 http URL。首尾帧模式与全能参考模式互斥。

示例:文生视频

BASE_URL="https://newapi-2.oairegbox.cc"
TOKEN="sk-xxx"

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "firefly-Seedance-2.0-fast-480p",
    "prompt": "一盏纸灯笼在夜色湖面上缓缓漂过,水面反射暖色灯光,电影感镜头。",
    "seconds": 5,
    "video_resolution": "480p",
    "size": "854x480"
  }'

示例:单图生视频

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -F 'model=firefly-Seedance-2.0-fast-480p' \
  -F 'prompt=让画面中的山间云雾缓慢流动,镜头轻微向前推进。' \
  -F 'seconds=5' \
  -F 'video_resolution=480p' \
  -F 'size=854x480' \
  -F 'input_reference=@frame.jpg;type=image/jpeg'

参考图含真人脸 · image_style 风格化(可选)

先分清你要哪种结果,再决定用不用这个参数:

一句话:真人要真人 → 用三视图多图参考,别传 image_style;真人要漫剧脸 → 传 image_style=anime。不传该参数时行为完全不变(原图直发),主动权在你。
参数可用值说明
image_styleanime仅对带参考图的图生视频(i2v)生效:提交 Adobe 前把参考图转成动漫 / 绘画风,用于把真人参考做成漫剧角色。留空 = 不处理(原图直发)。目前支持 anime 一种,后续按需增加。
curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -F 'model=firefly-Seedance-2.0-fast-480p' \
  -F 'prompt=参考图中的人物,转成漫剧角色在城市街头行走,日系动漫画风' \
  -F 'seconds=5' \
  -F 'video_resolution=480p' \
  -F 'size=854x480' \
  -F 'input_reference=@person.jpg;type=image/jpeg' \
  -F 'image_style=anime'
参考图门过了之后,Adobe 输出侧的内容 / 版权审核仍是概率性的,个别任务可能要重试 1–2 次才出片;失败不计费。想保留真人、不要漫剧脸时,用上面“三视图多图参考”的做法,别传 image_style。

首尾帧(First / Last Frame)

提供起始帧和结束帧图片,Seedance 生成从首帧平滑过渡到尾帧的视频。用 first_frame、last_frame 两个字段,支持 multipart 文件、图片 URL 或 base64(data:image/...;base64,)。只传 first_frame 即为单首帧动画。首尾帧模式与下方“全能参考”模式互斥,不能同一请求混用(Adobe 官方规则)。

参数类型说明
first_framefile / url / base64起始帧图片(可单独使用)
last_framefile / url / base64结束帧图片(与 first_frame 一起=首尾过渡)
curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -F 'model=firefly-Seedance-2.0-fast-480p' \
  -F 'prompt=镜头从第一张画面平滑过渡到第二张画面,电影感运镜' \
  -F 'seconds=5' \
  -F 'size=854x480' \
  -F 'first_frame=@first.jpg;type=image/jpeg' \
  -F 'last_frame=@last.jpg;type=image/jpeg'

全能参考(Omni · 图 / 视频 / 音频)

Seedance 2.0 的核心能力:一次最多提供 9 张图 + 3 段视频 + 3 段音频(总计 ≤ 9 个参考资产)作为风格、角色、构图、运镜、音效的引导。用 reference_images、reference_videos、reference_audios 传入,可在 prompt 里用文字说明各参考的作用。参考视频引导运动与氛围(不是直接动画化)。与首尾帧模式互斥。

参数数量上限单文件上限说明
reference_images9100 MiB参考图(风格 / 角色 / 构图)
reference_videos350 MiB参考视频(运镜 / 氛围,建议 2–15s)
reference_audios350 MiB参考音频(节奏 / 音效)
三类合计 ≤ 9 个;多值用重复字段名传(如 -F 'reference_images=@a.jpg' -F 'reference_images=@b.jpg')。超量、超大、或与首尾帧字段混用会返回 400(生成前拦截,不扣积分)。
curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -F 'model=firefly-Seedance-2.0-fast-480p' \
  -F 'prompt=参考图片的色调、视频的运镜、音频的节奏,生成一段电影感镜头' \
  -F 'seconds=5' \
  -F 'size=854x480' \
  -F 'reference_images=@style.jpg;type=image/jpeg' \
  -F 'reference_videos=@motion.mp4;type=video/mp4' \
  -F 'reference_audios=@beat.mp3;type=audio/mpeg'

更多参考用法示例

① 仅多图参考(角色/风格一致性,最多 9 张,重复字段名传多张):

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -F 'model=firefly-Seedance-2.0-fast-480p' \
  -F 'prompt=保持这几张参考图的人物形象与画面风格,让主体自然走动' \
  -F 'seconds=6' \
  -F 'size=854x480' \
  -F 'reference_images=@char1.jpg;type=image/jpeg' \
  -F 'reference_images=@char2.jpg;type=image/jpeg' \
  -F 'reference_images=@style.jpg;type=image/jpeg'

② 图 + 参考视频(用视频引导运镜/氛围,不直接动画化):

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -F 'model=firefly-Seedance-2.0-fast-720p' \
  -F 'prompt=参考图片的主体,沿用参考视频的镜头运动方式生成' \
  -F 'seconds=5' \
  -F 'size=1280x720' \
  -F 'reference_images=@subject.jpg;type=image/jpeg' \
  -F 'reference_videos=@camera-move.mp4;type=video/mp4'

③ 图 + 参考音频(用音频引导节奏/情绪):

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -F 'model=firefly-Seedance-2.0-fast-480p' \
  -F 'prompt=参考图片的场景,随音乐的舒缓节奏缓慢运镜' \
  -F 'seconds=8' \
  -F 'size=854x480' \
  -F 'reference_images=@scene.jpg;type=image/jpeg' \
  -F 'reference_audios=@music.mp3;type=audio/mpeg'

④ 仅首帧动画(只给起始帧,让静图动起来):

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -F 'model=firefly-Seedance-2.0-fast-480p' \
  -F 'prompt=让画面中的云雾缓慢流动,镜头轻微向前推进' \
  -F 'seconds=5' \
  -F 'size=854x480' \
  -F 'first_frame=@start.jpg;type=image/jpeg'

⑤ 标准版 720p + 图片 URL(JSON)——参考图支持公网 URL / base64;视频、音频仅支持 multipart 文件或 base64(不接受 URL):

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "firefly-Seedance-2.0-720p",
    "prompt": "参考这张图的色调,生成一段唯美空镜",
    "seconds": 8,
    "size": "1280x720",
    "reference_images": ["https://example.com/ref1.jpg", "https://example.com/ref2.jpg"]
  }'

轮询取片

curl -sS "$BASE_URL/v1/videos/task_xxx" \
  -H "Authorization: Bearer $TOKEN"

任务状态依次为 queued、in_progress、completed 或 failed。当状态为 completed 时,读取响应中的 video_url;建议每 5-10 秒轮询一次,不要为同一请求并发重复提交。

Python 完整请求

import time, requests

BASE = "https://newapi-2.oairegbox.cc/v1"
H = {"Authorization": "Bearer sk-xxx", "Content-Type": "application/json"}

# 提交(文生;图生改用 multipart 带 input_reference)
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "firefly-Seedance-2.0-fast-480p",
    "prompt": "一盏纸灯笼在夜色湖面上缓缓漂过,电影感镜头",
    "seconds": 5,
    "video_resolution": "480p",
    "size": "854x480"
}).json()
task_id = task.get("id") or task.get("task_id")

# 轮询
while True:
    time.sleep(6)
    r = requests.get(f"{BASE}/videos/{task_id}", headers=H).json()
    if r.get("status") == "completed":
        print("下载:", r["video_url"]); break
    if r.get("status") == "failed":
        print("失败:", r); break

注意事项

建议

Adobe Firefly · Kling 3.0

Adobe Firefly 的 Kling 3.0 与 Kling 3.0 Omni 视频模型。支持文生视频、图生视频(首帧参考图)与 Omni 多主体参考(@元素,单次最多 3 个),使用 OpenAI 兼容的异步视频接口:提交任务后轮询,完成时读取顶层 video_url 获取成片。

模型名区分大小写(Kling 首字母大写、Omni 首字母大写),请严格按下表填写,否则会报 model_not_found。

模型与价格 · 按秒计费

模型版本清晰度价格时长
firefly-Kling-3.0-720pKling 3.0 标准720p¥0.045/秒5–15 秒(自定义)
firefly-Kling-3.0-1080pKling 3.0 标准1080p¥0.065/秒5–15 秒(自定义)
firefly-Kling-3.0-Omni-720pKling 3.0 Omni(全能参考)720p¥0.08/秒5–15 秒(自定义)
firefly-Kling-3.0-Omni-1080pKling 3.0 Omni(全能参考)1080p¥0.10/秒5–15 秒(自定义)
按秒计费 = 单价 × 时长。例如 Kling 3.0 720p 10 秒 = ¥0.45。失败不计费。
视频默认带音频(AAC 音轨):Kling 3.0 标准与 Omni 均自带生成音效,无需额外参数。

接口信息

项说明
Base URLhttps://newapi-2.oairegbox.cc
提交任务POST /v1/videos
查询任务GET /v1/videos/{task_id}
鉴权Authorization: Bearer sk-你的令牌
任务模式异步;提交成功仅表示任务已入队,需轮询
成片交付任务 status 为 completed 后,读取顶层 video_url

核心参数(参考 Adobe 官方)

参数类型必填说明
modelstring是上表 4 个模型之一(区分大小写)
promptstring是画面、主体、动作、镜头与风格描述
seconds / durationstring是"5" ~ "15" 任意整数;Adobe 官方支持自定义时长,最多 15 秒(标准与 Omni 同)
sizestring是输出像素尺寸 宽x高;画幅(横/竖)与清晰度(720p/1080p)由像素自动识别(见下表)
input_referencestring / 文件否图生视频用:首帧参考图,支持图片 URL、base64 或 multipart 文件;带此参数时整个请求改用 multipart 表单
@元素名(写在 prompt 里)prompt 内引用否Omni 多主体参考用:先用 POST /v1/entities 把参考图创建成命名“元素”,再在 prompt 中用 @元素名 引用。单个请求最多 3 个元素(第 4 个起被系统拒:reference_elements: at most 3 items)。详见下方“多主体参考”示例。仅 firefly-Kling-3.0-Omni-* 支持
size(传这个)画幅清晰度
"1280x720"横版 16:9720p
"720x1280"竖版 9:16720p
"720x720"方形 1:1720p
"1920x1080"横版 16:91080p
"1080x1920"竖版 9:161080p
"1080x1080"方形 1:11080p
Adobe 官方 Kling 支持三种画幅:16:9(横)/ 1:1(方)/ 9:16(竖);也可用 aspect_ratio 传 16:9 / 1:1 / 9:16。

提交方式

模式提交参考素材
文生视频(T2V)application/json无
图生视频(首帧)multipart/form-data(-F)input_reference(URL / base64 / 文件)
Omni 多主体参考先 POST /v1/entities 建元素,再 JSON 内 @元素名仅 firefly-Kling-3.0-Omni-*,单次 ≤ 3 个元素

示例:文生视频

BASE_URL="https://newapi-2.oairegbox.cc"
TOKEN="sk-xxx"

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "firefly-Kling-3.0-720p",
    "prompt": "一只雄鹰在金色夕阳下掠过雪山之巅,电影感镜头,缓慢推进。",
    "seconds": "5",
    "size": "1280x720"
  }'

示例:图生视频(首帧参考图 input_reference)

用 multipart 表单带一张参考图作为首帧,其余参数一致。input_reference 支持本地文件、图片 URL 或 base64。

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -F 'model=firefly-Kling-3.0-720p' \
  -F 'prompt=让画面中的主体自然动起来,镜头缓慢向前推进,保持构图。' \
  -F 'seconds=5' \
  -F 'size=1280x720' \
  -F 'input_reference=@frame.jpg;type=image/jpeg'
用图片 URL:把最后一行换成 -F 'input_reference=https://your-cdn.com/frame.jpg';用 base64:换成 -F 'input_reference=data:image/jpeg;base64,<...>'。

示例:Omni 多主体参考(@元素,最多 3 个)

Kling 3.0 Omni 支持把参考图作为命名“元素”(主体/角色/物体/场景),在 prompt 中用 @元素名 引用,让生成画面保持该主体的一致性。单个视频请求最多引用 3 个元素(第 4 个起会被系统拒绝:reference_elements: List should have at most 3 items)。分两步:

第 1 步:创建元素(POST /v1/entities)

每个元素用 1~4 张参考图构建(建议 4 张不同角度,效果更稳)。type 取 character(角色)/ object(物体)/ location(场景)。

curl -sS -X POST "$BASE_URL/v1/entities" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Alice",
    "type": "character",
    "images": [
      "https://your-cdn.com/alice_front.jpg",
      "https://your-cdn.com/alice_side.jpg"
    ]
  }'
图片可传图片 URL或 base64(data:image/...;base64,);每个元素 1~4 张。可重复调用创建多个元素(如 Alice、Bob、Cafe)。用 GET /v1/entities 查看已建元素,DELETE /v1/entities/{id} 删除。

第 2 步:生成时用 @元素名 引用(最多 3 个)

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "firefly-Kling-3.0-Omni-720p",
    "prompt": "@Alice 和 @Bob 在 @Cafe 里相视而笑,暖色灯光,电影感镜头。",
    "seconds": "5",
    "size": "1280x720"
  }'
上限:单次最多 3 个 @元素(本网关经 Adobe Firefly,硬上限为 3;超过报 reference_elements: at most 3 items)。被引用的元素须已通过第 1 步创建;同一请求引用的多个元素需属于同一账号(网关自动路由,无需手动指定)。此功能仅 firefly-Kling-3.0-Omni-720p / firefly-Kling-3.0-Omni-1080p 支持。

轮询取片

curl -sS "$BASE_URL/v1/videos/task_xxx" \
  -H "Authorization: Bearer $TOKEN"

当响应中的 status 为 completed 时,读取顶层 video_url(短期签名下载地址,请在有效期内下载或转存)。

Python 完整请求

import time, requests

BASE = "https://newapi-2.oairegbox.cc/v1"
H = {"Authorization": "Bearer sk-xxx", "Content-Type": "application/json"}

# 提交(文生;图生改用 multipart 带 input_reference)
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "firefly-Kling-3.0-720p",
    "prompt": "一只雄鹰在金色夕阳下掠过雪山之巅,电影感镜头",
    "seconds": "5",
    "size": "1280x720"
}).json()
task_id = task.get("id") or task.get("task_id")

# 轮询
while True:
    time.sleep(6)
    r = requests.get(f"{BASE}/videos/{task_id}", headers=H).json()
    if r.get("status") == "completed":
        print("下载:", r["video_url"]); break
    if r.get("status") == "failed":
        print("失败:", r); break

注意事项

建议

Adobe Firefly · Gemini Omni Flash

Google Gemini Omni Flash 视频模型,经 Adobe Firefly 接入。同一个模型名支持三种模式,按你传入的素材自动切换:只传 prompt = 文生视频(T2V);额外带一张参考图 = 图生视频(I2V);额外带一段参考视频 = 视频生视频(V2V)。OpenAI 兼容异步接口:提交任务后轮询,完成时从响应顶层 video_url 获取成片。

成片无音频(静音输出)。三种模式的规格、时长档、计费完全一致。

模型与价格

模型模式时长清晰度计费价格
firefly-gemini-omni-720p文生 / 图生 / 视频生视频(自动)4 / 6 / 8 / 10 秒720p按秒¥0.20 / 秒
按秒计费,三种模式同价:4 秒 ¥0.80、6 秒 ¥1.20、8 秒 ¥1.60、10 秒 ¥2.00。实际计费、模型可见性与可用额度以控制台模型列表及你的 API 令牌权限为准。

接口信息

项说明
Base URLhttps://newapi-2.oairegbox.cc
提交任务POST /v1/videos
查询任务GET /v1/videos/{task_id}
鉴权Authorization: Bearer sk-你的令牌
任务模式异步;提交成功仅表示任务已入队
成片交付任务 status 为 completed 后,读取顶层 video_url

核心参数

参数类型必填说明
modelstring是固定 firefly-gemini-omni-720p
promptstring是视频画面、主体、动作、镜头和风格描述
secondsstring是目标时长(秒),仅支持 "4"、"6"、"8"、"10"
sizestring是画幅,取 "1280x720"(横 720p)或 "720x1280"(竖 720p);也接受纵横比 "16:9" / "9:16"。仅 720p,无需传 video_resolution
video_resolutionstring否仅 "720p";传纵横比 size 时可选传,不传也默认 720p
input_referencestring / 文件否图生视频(I2V)用:参考图(首帧)。可传图片 URL、base64(data:image/...;base64,)或 multipart 文件(@frame.jpg)。带此参数时整个请求改用 multipart 表单提交(见下方示例)。首发支持单张参考图
input_video文件 / base64否视频生视频(V2V)用:参考视频。仅支持 multipart 文件(@clip.mp4)或 base64(data:video/mp4;base64,);不支持纯 http URL。带此参数时整个请求改用 multipart 表单提交(见下方示例)
模式互斥优先级:同时传图和视频时按 视频生视频 处理。input_reference(图)与 input_video(视频)都是可选,都不传即为文生视频。

size 取值与输出

size画幅清晰度
"1280x720" 或 "16:9"横版 16:9720p
"720x1280" 或 "9:16"竖版 9:16720p

提交方式

模式Content-Type参考素材
文生视频(T2V)application/json无
图生视频(I2V)multipart/form-datainput_reference(URL / base64 / 文件,单张)
视频生视频(V2V)multipart/form-datainput_video(仅文件 / base64,不收 http URL)
同时传图和视频时按 V2V 处理;都不传即文生。

示例一:文生视频(T2V,JSON)

BASE_URL="https://newapi-2.oairegbox.cc"
TOKEN="sk-xxx"

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "firefly-gemini-omni-720p",
    "prompt": "日出时一只金毛小狗在草地上奔跑,柔和晨光,电影感镜头。",
    "seconds": "4",
    "size": "1280x720"
  }'

示例二:图生视频(I2V,带参考图 input_reference)

在文生的基础上,用 multipart 表单额外带一张参考图作为首帧,其余参数(seconds、size)一致。input_reference 支持本地文件、图片 URL 或 base64 三种传法。

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -F 'model=firefly-gemini-omni-720p' \
  -F 'prompt=让画面里的小狗自然转头看向镜头并摇尾巴,镜头缓慢推进。' \
  -F 'seconds=4' \
  -F 'size=1280x720' \
  -F 'input_reference=@frame.jpg;type=image/jpeg'
用图片 URL:把最后一行换成 -F 'input_reference=https://your-cdn.com/frame.jpg';用 base64:换成 -F 'input_reference=data:image/jpeg;base64,<...>'。

示例三:视频生视频(V2V,带参考视频 input_video)

用 multipart 表单带一段参考视频,模型在其基础上按 prompt 重新演绎(改风格、加动作等)。input_video 仅支持本地文件(@clip.mp4)或 base64,不支持纯 http URL。

curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -F 'model=firefly-gemini-omni-720p' \
  -F 'prompt=把这段片子改成水彩画风格,保留原有的运动。' \
  -F 'seconds=4' \
  -F 'size=1280x720' \
  -F 'input_video=@clip.mp4;type=video/mp4'
用 base64:把最后一行换成 -F 'input_video=data:video/mp4;base64,<...>'。

轮询取片

三种模式提交后都返回异步任务,轮询方式一致:

curl -sS "$BASE_URL/v1/videos/task_xxx" \
  -H "Authorization: Bearer $TOKEN"

当响应中的 status 为 completed 时,读取顶层 video_url:

{
  "id": "task_xxx",
  "status": "completed",
  "model": "firefly-gemini-omni-720p",
  "video_url": "https://..."
}
video_url 是短期签名下载地址,请在有效期内下载或转存。当前请直接使用完成任务返回的 video_url,不要依赖 /v1/videos/{task_id}/content。

Python 完整请求

import time, requests

BASE = "https://newapi-2.oairegbox.cc/v1"
H = {"Authorization": "Bearer sk-xxx", "Content-Type": "application/json"}

# 提交(文生;I2V 用 multipart 带 input_reference,V2V 带 input_video)
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "firefly-gemini-omni-720p",
    "prompt": "日出时一只金毛小狗在草地上奔跑,柔和晨光",
    "seconds": "4",
    "size": "1280x720"
}).json()
task_id = task.get("id") or task.get("task_id")

# 轮询
while True:
    time.sleep(6)
    r = requests.get(f"{BASE}/videos/{task_id}", headers=H).json()
    if r.get("status") == "completed":
        print("下载:", r["video_url"]); break
    if r.get("status") == "failed":
        print("失败:", r); break

注意事项

建议

Adobe Firefly · GPT Image 2

Adobe Firefly 的 GPT Image 2 文生图模型。客户侧只选择画布尺寸(1K / 2K / 4K),服务端统一使用 medium 质量(Adobe detailLevel=3)。接口使用 OpenAI 兼容的异步视频任务契约:提交任务后轮询,完成时从 video_url 下载 PNG 图片。

本页为 firefly 分组的 Adobe Firefly GPT Image 2,与导航中 gpt-fast 分组的 GPT-Image-2 是独立通道、独立线路,模型名不同、不能混用。

模型与价格

模型画布尺寸服务端质量
firefly-gpt-image-1k1Kmedium(固定)
firefly-gpt-image-2k2Kmedium(固定)
firefly-gpt-image-4k4Kmedium(固定)

质量策略

服务端质量Adobe detailLevel客户侧
medium3固定,不开放 quality 字段
客户请求不需要传 quality;网关统一按 medium 提交。当前先按画布尺寸提供 1K / 2K / 4K,实际 Adobe 扣点以账号控制台结算记录为准,平台会持续观察质量档的真实扣费。

实际输出像素

画幅1k2k4k
1:11024×10242048×20482880×2880
16:91088×6082048×11363840×2128
9:16608×10881136×20482128×3840
21:91248×5282048×8643840×1616
5:41024×8162048×16483200×2576
4:31024×7522048×15203328×2480
3:21024×6722048×13603504×2352

重点:质量不会改变像素尺寸。Adobe 有总像素和最小像素硬限制,所以宽幅 1K 的最长边可能大于 1024,这不是质量档变化。

画幅

通过 aspect_ratio(或 size)选画幅,支持:auto、1:1、16:9、9:16、5:4、4:3、3:2、4:5、3:4、2:3、21:9。不传默认 1:1。

接口信息

项说明
Base URLhttps://newapi-2.oairegbox.cc
提交任务POST /v1/videos
查询任务GET /v1/videos/{task_id}
鉴权Authorization: Bearer sk-你的令牌
成片交付任务 status 为 completed 后,读取顶层 video_url

核心参数

字段类型必填说明
modelstring是上表之一
promptstring是图片描述
aspect_ratiostring否画幅,见上;默认 1:1

提交方式

模式端点参考素材
文生图POST /v1/videos(JSON,异步契约,输出 PNG)无
图生图 / 图片编辑(i2i)同一 POST /v1/videos(JSON)reference_images 数组,每项 data:image/...;base64,,最多 6 张
⚠️ 本通道不支持 /v1/images/edits(会 404、不计费);图生图 / 编辑同样走 /v1/videos 异步契约。参考图只接受 base64 内联,不支持 multipart 文件。

curl 示例:提交与轮询

# 提交任务:1K + 16:9(质量由服务端固定为 medium)
curl https://newapi-2.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"firefly-gpt-image-1k","prompt":"a red apple on a white ceramic plate, studio daylight, no text","aspect_ratio":"16:9"}'

# 提交任务:1K + 1:1
curl https://newapi-2.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"firefly-gpt-image-1k","prompt":"a ceramic tea set on a wooden table, editorial product photo","aspect_ratio":"1:1"}'

# 提交任务:2K + 9:16
curl https://newapi-2.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"firefly-gpt-image-2k","prompt":"a quiet mountain lake at sunrise, natural colors","aspect_ratio":"9:16"}'

# 提交任务:2K + 16:9
curl https://newapi-2.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"firefly-gpt-image-2k","prompt":"a modern glass office beside a tree-lined street","aspect_ratio":"16:9"}'

# 提交任务:4K + 21:9
curl https://newapi-2.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"firefly-gpt-image-4k","prompt":"a cinematic coastal road under soft evening light","aspect_ratio":"21:9"}'

# 提交任务:4K + 16:9
curl https://newapi-2.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"firefly-gpt-image-4k","prompt":"a premium watch on black stone, controlled studio lighting","aspect_ratio":"16:9"}'

# 提交任务:4K + 4:3
curl https://newapi-2.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"firefly-gpt-image-4k","prompt":"a botanical still life in a glass vase","aspect_ratio":"4:3"}'

# 轮询:把 task_xxx 替换成提交响应中的 id
curl https://newapi-2.oairegbox.cc/v1/videos/task_xxx \
  -H "Authorization: Bearer $TOKEN"
# 完成时读取响应中的 video_url(PNG 图片直链)

Python 完整请求

依赖:python -m pip install requests。脚本只提交一次任务;提交成功后持续轮询同一个任务 ID,完成后把 PNG 保存到本地。不要在客户端超时后重新提交同一张图。

#!/usr/bin/env python3
import os
import time
from pathlib import Path

import requests

BASE_URL = "https://newapi-2.oairegbox.cc"
TOKEN = os.environ["NEWAPI_TOKEN"]

request_body = {
    "model": "firefly-gpt-image-2k",
    "prompt": "a red apple on a white ceramic plate, studio daylight, no text",
    "aspect_ratio": "16:9",
}
headers = {"Authorization": f"Bearer {TOKEN}"}

with requests.Session() as client:
    # Submit exactly once. quality is intentionally omitted; the service uses medium.
    response = client.post(
        f"{BASE_URL}/v1/videos",
        headers={**headers, "Content-Type": "application/json"},
        json=request_body,
        timeout=60,
    )
    response.raise_for_status()
    submitted = response.json()
    task_id = submitted.get("id") or submitted.get("task_id")
    if not task_id:
        raise RuntimeError(f"submit response has no task id: {submitted}")
    print(f"submitted task={task_id}")

    started = time.monotonic()
    while True:
        if time.monotonic() - started > 900:
            raise TimeoutError(f"task {task_id} is still running; keep polling it")
        task = client.get(
            f"{BASE_URL}/v1/videos/{task_id}", headers=headers, timeout=30
        )
        task.raise_for_status()
        body = task.json()
        status = str(body.get("status") or body.get("state") or "").lower()
        print(f"status={status}")
        if status in {"failed", "failure", "error", "cancelled", "canceled"}:
            raise RuntimeError(f"task {task_id} failed: {body}")
        if status in {"completed", "succeeded", "success", "done"}:
            image_url = body.get("video_url") or body.get("url")
            if not image_url:
                raise RuntimeError(f"completed task has no video_url: {body}")
            break
        time.sleep(5)

    output = Path("firefly-2k-16x9.png")
    with client.get(image_url, headers=headers, stream=True, timeout=60) as download:
        download.raise_for_status()
        with output.open("wb") as file:
            for chunk in download.iter_content(1024 * 1024):
                if chunk:
                    file.write(chunk)
    print(f"saved {output} ({output.stat().st_size} bytes)")

运行前设置令牌:export NEWAPI_TOKEN="sk-你的令牌"。把 model 改成 firefly-gpt-image-1k 或 firefly-gpt-image-4k 即可切换画布档位;aspect_ratio 可替换为本页支持的其它画幅。

shell 自动轮询

TASK_ID="task_xxx"
while true; do
  BODY=$(curl -fsS "https://newapi-2.oairegbox.cc/v1/videos/$TASK_ID" \
    -H "Authorization: Bearer $TOKEN") || exit 1
  STATUS=$(printf '%s' "$BODY" | jq -r '.status // empty')
  printf 'status=%s\n' "$STATUS"
  case "$STATUS" in
    completed|succeeded)
      printf '%s\n' "$BODY" | jq -r '.video_url // .data[0].url'
      break ;;
    failed|failure|error|cancelled|canceled)
      printf '%s\n' "$BODY" | jq . >&2
      exit 2 ;;
  esac
  sleep 10
done
不要重复提交已被接受的任务。如果客户端超时,继续轮询原 task;任务失败后再根据错误信息修改请求。任务失败是否计费以控制台账单为准,仍应保留 task ID 供后台定位。

图生图 / 图片编辑(i2i)

⚠️ 本通道不支持 OpenAI 的 /v1/images/edits 端点。firefly-gpt-image-* 的文生图与图片编辑都走上面同一套异步 /v1/videos 契约。若客户端按 OpenAI 习惯调 /v1/images/edits 做图片编辑,网关会返回 404 Not Found——请求在路由层即被拒,不会创建任务、平台后台查不到记录、也不计费。需要图片编辑请改用下面的 /v1/videos 写法。

本通道支持两种带图用法,都走同一套 /v1/videos:图生图(传 1-6 张参考图,参考其风格 / 主体生成新图)与图片编辑(传原图,改背景 / 换元素 / 局部修改)。两者请求格式完全一样,区别只在参考图张数与 prompt 的意图——都是在 JSON 请求体里加一个 reference_images 参考图数组;其余字段(model / aspect_ratio)、轮询方式、从 video_url 下载 PNG,都与文生图一致。

字段类型必填说明
reference_images数组图生图/编辑必填原图 / 参考图列表,每项为 data:image/...;base64, 内联的 Base64 图片。单张也要放进数组(直接传字符串会 400)。最多 6 张。字段名也可用 images。
promptstring是你要如何编辑,例如“把背景换成海边日落,人物主体保持不变”
model / aspect_ratio—同文生图与本页文生图一致(firefly-gpt-image-1k/2k/4k + 画幅)
# ① 图生图:参考图 + 描述 → 生成新图(参考风格 / 主体,可传 1-6 张)
REF1="data:image/png;base64,$(base64 < ref1.png | tr -d '\n')"
REF2="data:image/png;base64,$(base64 < ref2.png | tr -d '\n')"
curl https://newapi-2.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{
    "model": "firefly-gpt-image-2k",
    "prompt": "参考这些图的画风,画一只戴宇航头盔的柴犬,居中构图",
    "aspect_ratio": "1:1",
    "reference_images": ["'"$REF1"'", "'"$REF2"'"]
  }'

# ② 图片编辑:原图 + 描述 → 改后的图(reference_images 为 Base64 data URI 数组,单张也用数组)
IMG_B64="data:image/png;base64,$(base64 < input.png | tr -d '\n')"
curl https://newapi-2.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{
    "model": "firefly-gpt-image-2k",
    "prompt": "把背景换成海边日落,人物主体保持不变",
    "aspect_ratio": "1:1",
    "reference_images": ["'"$IMG_B64"'"]
  }'

# 提交返回 {"id":"task_xxx", ...};随后轮询(与文生图完全相同):
curl https://newapi-2.oairegbox.cc/v1/videos/task_xxx \
  -H "Authorization: Bearer $TOKEN"
# status=completed 后,读响应里的 video_url —— 即改后图片的 PNG 直链
参考图只接受 Base64(data:image/...;base64,)内联,不支持 multipart 文件上传(-F "image=@file" 是 /v1/images/edits 的用法,本通道不适用)。参考图含真人脸会被 Adobe 审核拒绝,解法见「错误码」页的 image_style 风格化。

注意事项

建议

Adobe Firefly · 错误码 & 审核问题归档

Adobe Firefly 的内容审核较严格,视频任务失败大多来自 Adobe 侧的内容审核或输入不合规,而非网关故障。收到失败后请先看错误类型判断能否重试:内容审核 / 参数类属确定性失败(同样输入重试必然再失败,需改输入);账号 / 过载类属可自动恢复(网关会自动换号或重试,通常自愈)。失败不计费。

⚠️ Adobe 审核严(重点):真人脸参考图、涉敏/名人/品牌等提示词、生成结果被判不安全、生成音频疑似版权 都会被 Adobe 拒绝。这类是确定性拒绝——同一张图 / 同一句提示词重试永远失败,必须更换输入,请勿对同一失败任务反复重试。

一、内容审核类(Adobe 拒绝 · 重试无效 · 需改输入)

错误触发返回提示(示例)处理
参考图含真人脸
reference_image_privacy_error
参考图 / 首帧里出现真实人物面孔参考图中包含真人面孔,Adobe 内容策略拒绝生成…换成不含真人脸的参考图;确需用真人图时,加可选参数 image_style=anime(见下)让网关先把参考图风格化(动漫化)再生成
提示词不安全
prompt_unsafe
提示词含 Adobe 判定的不适宜内容(暴力 / 成人 / 名人 / 品牌等)提示词被 Adobe 内容安全策略判定为不适宜…改写提示词,去掉敏感 / 名人 / 品牌 / 违规描述
生成结果不安全
video_unsafe
成片被 Adobe 事后审核判定不安全(提交时未拦、生成后拒绝)请求被 Adobe 内容策略拒绝(video_unsafe)…调整提示词或更换随机种子后重试
音频疑似版权
native audio copyright
带音频的模型(如 Seedance)生成的音频被 Adobe 判可能涉版权Adobe 判定本次生成的音频可能涉及版权限制…调整提示词或更换参考素材后重试(尽量避免具体歌曲 / 台词 / 品牌音效等易触发版权的描述)

参考图含真人脸的解法 · image_style 风格化(可选)

参考图真人脸是最常见的审核拒绝之一。确需用真人照片做图生视频(i2v)时,可加一个可选参数 image_style:网关会在提交 Adobe 前把你的参考图整图风格化(转成明显非真实照片的画风),从而通过 Adobe 的“真人脸”内容审核。不传 image_style 时行为完全不变(原图直发)——是否风格化的主动权在你。

参数取值说明
image_styleanime把参考图转成动漫 / 绘画风后再生成;仅对带参考图的图生视频(i2v)生效,适用于 Seedance / VEO / Kling / Gemini-Omni。留空 = 不处理。目前支持 anime 一种,后续按需增加。

作为顶层字段传(与 prompt / model / seconds 同级)。示例(multipart):

curl https://newapi-2.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" \
  -F model=firefly-Seedance-2.0-fast-480p -F seconds=4 -F "size=9:16" \
  -F prompt="镜头缓缓推近,人物自然微笑" \
  -F input_reference=@person.jpg \
  -F image_style=anime
⚠️ 用前须知:① 输出会是动漫 / 绘画风(不再是写实真人),请按需使用;② 风格化能过“真人脸参考门”,但 Adobe 的输出侧审核(video_unsafe / 音频版权)仍是概率性的,个别任务可能要重试 1-2 次才出片(失败不计费);③ 这是把真人变风格化的绕行方案,不适用需要保留写实真人的场景。

二、输入 / 参数不合规(确定性失败 · 需改请求)

错误触发处理
参考图无法识别
cannot identify image file
传入的参考图不是有效图片(文件损坏 / 非图片 / base64 截断错误)确认图片能正常打开;base64 用完整 data:image/...;base64, 前缀
参考图 URL 不合规
Only http/https or data URL images are supported / fetch image_url … 404
参考图 URL 非 http(s) / data,或该 URL 404 取不到用可公开访问的 http(s) 直链,或改用 base64 / 文件上传
参考图数量超限
validation_error … at most N items
该模型不支持多参考图或超过上限按对应模型文档的参考图上限提交
提示词过长
prompt: at most 2500 characters
prompt 超过 2500 字符精简提示词到 2500 字符内
画幅 / 时长参数冲突size(横)与 aspect_ratio(竖)互相矛盾;或时长档位不支持见各模型页参数说明;时长只认 seconds;size 传纵横比时必带 video_resolution

三、账号 / 权限 / 配额(多为可自动恢复)

错误含义处理
模型访问被拒
Adobe model access denied
当前账号无该模型权限或无音频权限(如普通档请求带音频的模型)。网关会自动换号重试多数自动恢复;持续失败说明该模型 / 该内容需积分档账号或特定权限,请联系我们
积分不足 / 耗尽
taste_exhausted / credit balance below cost
该账号积分不足以支撑本次生成,网关自动改用其它账号一般自动恢复;整体积分紧张时联系我们补充
限流
rate_limit / 429
账号短时请求过密稍后重试并降低并发

四、临时 / 基础设施(网关自动重试 · 通常自愈)

错误含义处理
服务过载
408 system under load
Adobe 服务瞬时过载网关自动重试;持续可稍后再试
服务内部错误
Unknown internal error
Adobe 生成侧瞬时内部错误网关自动重试;重试后仍失败再联系我们
超时
timeout / 参考图下载超时
生成超时,或参考图 URL 下载慢 / 失败重试;参考图尽量用稳定直链或直接上传文件
📌 排查建议:失败时请保留 任务 ID(task_xxx) 与完整错误响应再联系我们——凭任务 ID 可在后台定位到具体那一条。内容审核 / 参数类属确定性失败,请勿对同一任务反复重试(既不会成功,也占用账号请求配额)。

Seedance 自定义线路

字节跳动 Seedance 系列的自定义线路,与「Seedance 官方直连」相互独立、单独维护。共 4 个模型:sd-2.0-mini / sd-2.0-fast / sd-2.0-standard 与新一代 sd-2.5。支持 480p / 720p 两档清晰度,使用 OpenAI 兼容的异步视频接口:提交任务后轮询,完成时读取 video_url 获取成片。各模型调用方式完全一致,切换只需改 model 字段。

本线路为 sd-videos 分组,与导航中另外两套 Seedance 服务是独立通道、独立模型;请勿跨线路混用模型名。

模型与价格

模型480p720p时长计费定位
sd-2.0-mini¥3.50/条¥4.50/条固定 15 秒按次经济档,走量首选
sd-2.0-fast¥4.20/条¥6.70/条固定 15 秒按次快速出片,性价比高
sd-2.0-standard¥5.20/条¥8.50/条固定 15 秒按次标准质量,画质更佳
sd-2.5¥0.44/秒¥0.80/秒默认 15 秒 · 可自定义按秒新一代 2.5,按秒计费更灵活
用 resolution 选清晰度(480p / 720p,默认 720p),两档价格不同、见上表。sd-2.0-mini/fast/standard 为按次计费,单次固定 15 秒成片、与传入时长无关;sd-2.5 为按秒计费 = 单价 × duration(例:sd-2.5 720p 5 秒 = ¥4.00、默认 15 秒 = ¥12.00)。失败不计费。

接口信息

项说明
提交任务POST /v1/videos(JSON)
轮询进度GET /v1/videos/{task_id}
下载成片完成后响应里的 video_url(可直接下载 / 嵌入的直链)
鉴权Authorization: Bearer sk-你的令牌
令牌分组sd-videos(智能 auto 分组亦可路由)

核心参数

参数类型必填说明
modelstring是sd-2.0-mini / sd-2.0-fast / sd-2.0-standard / sd-2.5 之一
promptstring是视频描述提示词(文生视频)
aspect_ratiostring否画幅:16:9(默认)、9:16、1:1;也接受 size(如 1280x720),系统就近吸附到这三种
resolutionstring否清晰度:480p / 720p(默认 720p),两档价格不同、见模型价格表
durationinteger否时长秒数,仅 sd-2.5 生效(默认 15 秒);sd-2.0-* 固定 15 秒、传入无效
referenceImagesarray否参考图(图生视频),元素为公网 URL 或 data:image/...;base64,;可传多张
referenceVideosarray否参考视频,公网 URL 或 base64
referenceAudiosarray否参考音频,公网 URL 或 base64
只传 prompt 即为文生视频;附带 referenceImages 即为图生视频。参考素材均支持公网 URL 或 base64。失败不计费。

示例请求

# 文生视频(sd-2.0-standard,固定 15 秒)
curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{"model":"sd-2.0-standard","prompt":"雨夜霓虹街道,镜头缓慢推进,电影感光影","aspect_ratio":"16:9"}'

# sd-2.5 按秒计费(自定义时长、480p 更省)
curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{"model":"sd-2.5","prompt":"海边日落,海浪轻拍礁石","resolution":"480p","aspect_ratio":"16:9","duration":10}'

# 图生视频(referenceImages 参考图)
curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{"model":"sd-2.0-fast","prompt":"让画面动起来","referenceImages":["https://cdn.example.com/photo.jpg"]}'

轮询取片

curl https://YOUR_BASE/v1/videos/TASK_ID -H "Authorization: Bearer sk-xxx"
# status=completed 后用响应里的 video_url 直链下载
curl -L "VIDEO_URL" -o result.mp4
轮询到 completed/failed 停止;video_url 为可直接下载 / 嵌入的直链;失败不计费。

Python 完整请求

import time, requests
BASE = "https://YOUR_BASE/v1"
H = {"Authorization": "Bearer sk-你的sd-videos令牌", "Content-Type": "application/json"}
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "sd-2.0-standard",
    "prompt": "雨夜霓虹街道,镜头缓慢推进,电影感光影",
    "aspect_ratio": "16:9",
}).json()
tid = task["task_id"]
while True:
    r = requests.get(f"{BASE}/videos/{tid}", headers=H).json()
    if r["status"] in ("completed", "failed"):
        break
    time.sleep(5)
url = r.get("video_url") or (r.get("data") or [{}])[0].get("url")
open("seedance.mp4", "wb").write(requests.get(url).content)

注意事项

Seedance 2.5 官方直连 Video

🎬 字节 Seedance 2.5 官方视频模型(官方直出)。一个模型名支持三种模式,按你传入的素材自动切换:只传 prompt = 文生视频(T2V);带参考图 = 图生视频(I2V);带参考视频 = 视频编辑(V2V)。用「Seedance 2.0」令牌调用;按 token 计费、失败不计费、默认生成音频。

模型与价格

⚠️ 按 token 计费(按视频输出 token 计,非按秒),统一 8 折。文生 / 图生(无参考视频)与视频编辑(带参考视频)单价不同——视频编辑更低。实际费用 = 输出 token 数 × 单价,token 数随分辨率 × 时长变化;以实际返回的 token 用量结算,每笔可在控制台任务详情核对。
档位文生 / 图生(无参考视频)¥/百万token视频编辑(带参考视频)¥/百万token折合每秒(视频编辑特惠)折合每秒(纯文/图生)典型 5 秒预计
720p · doubao-seedance-2.5-720p¥56.00 ¥70(8 折)¥33.60 ¥42(8 折)约 ¥0.73/秒约 ¥1.21/秒约 ¥3.63 ~ ¥6.05
1080p · doubao-seedance-2.5-1080p¥61.60 ¥77(8 折)¥36.80 ¥46(8 折)约 ¥1.79/秒约 ¥2.99/秒约 ¥8.94 ~ ¥14.97
分辨率由模型名决定(720p / 1080p),模型名全小写。文生 / 图生(无参考视频)单价高于视频编辑(带参考视频);失败不计费。

三种模式

模式怎么触发seconds参考媒体(放 metadata)
文生视频 T2V只传 prompt,不带任何参考素材4–30,自选无
图生视频 I2V带参考图4–30,自选reference_images
视频编辑 V2V带参考视频必须 = 参考视频时长reference_videos

接口信息

项说明
提交端点POST /v1/videos 或 POST /v1/video/generations(标准 JSON,双端点完全等价兼容)
轮询端点GET /v1/videos/{task_id} 或 GET /v1/video/generations/{task_id}
视频直出预览GET /v1/videos/{task_id}/content(带 Bearer 令牌鉴权 302 重定向流式返回成片)
下载成片完成后响应里的 video_url(官方高速下载直链)
鉴权方式Authorization: Bearer sk-你的令牌
令牌分组Doubao(或 auto 智能路由分组)

核心参数

参数类型必填默认说明
modelstring是-doubao-seedance-2.5-720p 或 doubao-seedance-2.5-1080p(分辨率即档位)
promptstring是-生成 / 编辑描述(如"一只橘猫在草地奔跑""改成夜景赛博朋克风格")。无我方硬性长度上限
secondsstring是-字符串,范围 4–30。文生 / 图生自选;视频编辑必须 = 参考视频时长
metadata.reference_imagesarray(URL / base64)否-图生视频用。公网图片 URL 或 base64 data-URI,≤30 张;放 metadata 内
metadata.reference_videosarray(URL / base64)否-视频编辑用。公网 mp4 URL 或 base64,单个 4–30 秒、分辨率 ≤ 档位,≤10 个(首个决定输出时长 / 画幅);放 metadata 内
metadata.reference_audiosarray(URL / base64)否-配乐 / 音效参考,公网 URL 或 base64,≤10 个;放 metadata 内
参考媒体统一放 metadata 里、用公网 URL 或 base64 data-URI,不支持 multipart 文件上传(URL 须无需登录即可下载)。单次最多 30 图 + 10 视频 + 10 音频,超出报错、不产任务、不计费。

提交方式

JSON(POST /v1/videos)。三种模式由素材自动切换:不带参考素材 = 文生视频;metadata.reference_images 带图 = 图生视频;metadata.reference_videos 带视频 = 视频编辑。所有参考媒体(图 / 视频 / 音频)都放 metadata,用公网 URL 或 base64 data-URI,不支持 multipart 文件上传(URL 须无需登录即可下载)。默认生成音频。

示例请求

# ① 文生视频:只传 prompt + seconds(字符串)+ 模型名(分辨率自带)
curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"doubao-seedance-2.5-720p","prompt":"一只橘猫在草地上奔跑,阳光明媚","seconds":"8"}'

# ② 图生视频:metadata.reference_images 放参考图(公网 URL 或 base64)
curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"doubao-seedance-2.5-720p","prompt":"镜头缓慢推进,光线渐暗","seconds":"8",
       "metadata":{"reference_images":["https://你的图/first.jpg"]}}'

# ③ 视频编辑:metadata.reference_videos 放参考视频;seconds 必须=参考视频时长
curl -X POST https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"doubao-seedance-2.5-1080p","prompt":"把画面改成水彩画风格,柔和色调","seconds":"8",
       "metadata":{"reference_videos":["https://你的视频/clip.mp4"]}}'

轮询取片

curl https://YOUR_BASE/v1/videos/TASK_ID -H "Authorization: Bearer $TOKEN"
# status=completed 后用 video_url 下载
curl -L "VIDEO_URL" -o result.mp4
返回的 video_url 为官方高速下载直链,有时效请及时保存。失败不计费。

Python 完整请求

import time, requests
BASE = "https://YOUR_BASE/v1"
H = {"Authorization": "Bearer sk-你的Seedance令牌", "Content-Type": "application/json"}
# 文生视频;图生 / 视频编辑:在 metadata 里加 reference_images / reference_videos
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "doubao-seedance-2.5-720p",
    "prompt": "一只橘猫在草地上奔跑,阳光明媚",
    "seconds": "8",   # 字符串;视频编辑时必须 = 参考视频时长
    # "metadata": {"reference_images": ["https://你的图/first.jpg"]},   # 图生视频
    # "metadata": {"reference_videos": ["https://你的视频/clip.mp4"]},  # 视频编辑
}).json()
tid = task["task_id"]
while True:
    r = requests.get(f"{BASE}/videos/{tid}", headers=H).json()
    if r["status"] in ("completed", "failed"):
        break
    time.sleep(5)
url = r.get("video_url") or (r.get("data") or [{}])[0].get("url")
open("seedance25.mp4", "wb").write(requests.get(url).content)

注意事项

多模态输入 · 官方素材要求

以下为官方对素材的技术约束(格式 / 尺寸 / 编码 / 保存)。各素材的数量与时长上限以本页「核心参数」为准(≤30 图 + ≤10 视频·单个 4–30s + ≤10 音频)。「素材 ID」经本站中转不适用;请把参考媒体放 metadata、用公网 URL 或 Base64 data-URI。

参考图要求

项要求
传入方式图片 URL、图片 Base64 编码
图片格式jpeg、png、webp、bmp、tif、gif;Seedance 2.0 及以上系列另支持 heic、heif
宽高比(宽/高)(0.4, 2.5)
边长(px)(300, 6000)
大小单张图片 < 30MB;请求体 ≤ 64MB。大文件请勿使用 Base64 编码

参考视频要求

项要求
传入方式视频 URL(须无需登录即可下载)或 Base64 data-URI,放 metadata.reference_videos
视频格式mp4、mov(支持编码见下表)
分辨率720p、1080p(≤ 所选档位)
宽高比(宽/高)[0.4, 2.5]
边长(px)[300, 6000]
总像素数宽 × 高 ∈ [409600(640×640), 2086876(2206×946)]
大小单个视频 ≤ 50MB
帧率(FPS)[24, 60]
容器格式常用扩展名MIME支持编码
MP4.mp4video/mp4视频:H.264/AVC、H.265/HEVC;音频:AAC、MP3
QuickTime.movvideo/quicktime视频:H.264/AVC、H.265/HEVC

参考音频要求

项要求
传入方式音频 URL、音频 Base64 编码
音频格式wav、mp3
大小单个音频 ≤ 15MB;请求体 ≤ 64MB。大文件请勿使用 Base64 编码

保存时间

对象保存时长
任务记录保存 7 天,查询区间 [T−7天, T),T 为请求发起时刻的 UTC 秒级时间戳
视频 URL保存 24 小时,超时后无法访问,请及时下载或转存

建议

Grok 视频

基于 xAI Grok Imagine 官方接口的视频生成,OpenAI 兼容异步接口。三个模型:grok-imagine-video(1.0,文生 / 图生视频)、grok-imagine-video-1.5-preview(1.5 代,画面质感更好)、grok-imagine-video-6s(固定 6 秒 / 480p,最省钱)。带参考图即图生视频,不带图则为纯文生视频(1.5 建议带图)。

📌 模型已精简,分辨率不再外显成模型名:以前按分辨率拆出的一堆模型(…-480p / …-720p / …-1080p)已合并——现在 1.0 / 1.5 的分辨率由请求里的 resolution 参数决定,你只需记住 3 个模型名。想要多少清晰度,在请求体传 resolution 即可,不用换模型。

模型与价格

模型分辨率(resolution)计费价格
grok-imagine-video480p(默认)按秒¥0.05 / 秒
grok-imagine-video720p按秒¥0.065 / 秒
grok-imagine-video-1.5-preview480p按秒¥0.058 / 秒
grok-imagine-video-1.5-preview720p(推荐)按秒¥0.12 / 秒
grok-imagine-video-1.5-preview1080p 高清按秒¥0.15 / 秒
grok-imagine-video-6s固定 480p(不可调)按次¥0.15 / 条
1.0 / 1.5 按秒计费:费用 = 该分辨率单价 × seconds(例:1.5-preview 720p × 6 秒 = ¥0.72);分辨率用 resolution 参数控制(480p / 720p;1.5-preview 另支持 1080p),不传默认 480p。
grok-imagine-video-6s 按次计费:固定 6 秒 / 480p、每条 ¥0.15,传 seconds / resolution 均被忽略。全系失败不计费,成功出片才扣。

接口信息

项说明
提交任务POST /v1/videos(JSON)
轮询进度GET /v1/videos/{task_id},status=completed 时返回 video_url
下载成片轮询返回的 video_url 直接 GET 下载(地址已脱敏)
鉴权Authorization: Bearer sk-你的令牌
令牌分组xAI 或 auto(智能路由)分组均可

核心参数

参数取值默认说明
modelgrok-imagine-video(1.0)/ grok-imagine-video-1.5-preview(1.5)/ grok-imagine-video-6s(6 秒定档)-必填。三个模型名;1.0 / 1.5 的分辨率用 resolution 参数,-6s 固定 480p / 6 秒(见文末专项说明)
prompt文本-必填,画面 / 运动描述
image公网 URL 或 base64 Data URI-可选。单张首帧;带图=图生视频;grok-imagine-video 不带图=纯文生视频,grok-imagine-video-1.5-preview 建议带图
reference_imagesURL 数组,最多 7 张-可选,多张参考图(图生视频)。仅 grok-imagine-video-1.5-preview 的 480p / 720p 生效;⚠️ 1080p 不支持多图(见下)。单张请用 image
seconds字符串,1 ~ 156视频时长(秒)。全系按秒计费:费用 = 单价 × 秒数(1.0 与 1.5 系列均按秒)
aspect_ratio16:9(横屏)/ 9:16(竖屏)/ 1:1(方屏)16:9可选,画幅比例。⚠️ Grok 视频仅支持此 3 种画幅(不支持 3:4、4:3 等;传入不支持比例官方将自动回退为 16:9 横屏)。手机竖版或电商主图请用 9:16
resolution480p / 720p(1.5-preview 另 1080p)480p决定分辨率与单价(见上表)。⚠️ grok-imagine-video-1.5-preview 的 1080p 只支持单张首帧 image,不支持多图 reference_images
size如 720x1280 / 1024x1024-旧字段,已兼容:自动换算为最接近的 aspect_ratio(避免"请求竖屏却出横屏");也支持 portrait / landscape / square 等词

提交方式(传图 · 单张首帧 vs 多张参考图)

i2v 的参考图通过 image 字段传入,支持两种写法:

方式写法说明
公网 URL"image": "https://.../a.jpg"公网可直接 GET 的图片直链(不能是需登录 / 内网 / 拦爬虫的链接)
base64 Data URI"image": "data:image/jpeg;base64,/9j/4AAQ..."须带 data: 前缀

图片格式 JPG / PNG / WebP。

单张首帧 vs 多张参考图

⚠️ grok-imagine-video-1.5-preview 的 1080p 仅支持单张首帧(image 模式):不能用多图 reference_images——若传了多张,只有第一张作首帧生效。需要多张参考图请用 480p / 720p。

字段名兼容:单图推荐 image、多图用 reference_images;image_url / image_reference / images / image_urls / input_reference 等写法也已兼容(服务端自动识别为参考图,不会退化成纯文生视频)。

示例请求

# 文生视频(grok-imagine-video,不带图)
curl https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-video",
    "prompt": "灯塔在日落时分,海浪拍打礁石,电影感镜头",
    "seconds": "6",
    "aspect_ratio": "16:9",
    "resolution": "720p"
  }'
# => {"task_id":"task_xxx","status":"queued",...}

# 图生视频(grok-imagine-video-1.5-preview + resolution=720p,带 image)
curl https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-video-1.5-preview",
    "resolution": "720p",
    "prompt": "轻微镜头推移,画面自然生动",
    "image": "https://your-public-image.jpg",
    "seconds": "6"
  }'

# 多图参考(grok-imagine-video-1.5-preview + resolution=720p,最多 7 张;1080p 不支持多图)
curl https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-video-1.5-preview",
    "resolution": "720p",
    "prompt": "融合多张参考图的场景,电影感转场",
    "reference_images": ["https://img-a.jpg", "https://img-b.jpg"],
    "seconds": "6"
  }'

轮询取片

# 轮询直到 status=completed,取 video_url
curl https://YOUR_BASE/v1/videos/task_xxx \
  -H "Authorization: Bearer sk-xxx"
# => {"status":"completed","video_url":"https://.../xxx.mp4",...}

轮询到 completed 后取 video_url 直接下载成片;下载地址已脱敏,不暴露源站域名。轮询间隔建议 3-5 秒。

Python 完整请求

import time, requests

BASE = "https://YOUR_BASE/v1"
H = {"Authorization": "Bearer sk-xxx", "Content-Type": "application/json"}

# 提交(图生视频,1.5 代 720p)
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "grok-imagine-video-1.5-preview",
    "resolution": "720p",
    "prompt": "轻微镜头推移,画面自然生动",
    "image": "https://your-public-image.jpg",
    "seconds": "6"
}).json()
task_id = task["task_id"]

# 轮询
while True:
    time.sleep(4)
    s = requests.get(f"{BASE}/videos/{task_id}", headers=H).json()
    if s.get("status") == "completed":
        print("下载:", s["video_url"])
        break
    if s.get("status") == "failed":
        print("失败:", s.get("error"))
        break

注意事项

建议

grok-imagine-video-6s · 6 秒定档(最省钱)专项说明

grok-imagine-video-6s:Grok Imagine 的单段短视频,固定输出 6 秒 / 480p 档、按次计费 ¥0.15/条。文生(只给提示词)与图生(带参考图、运动跟随提示词)都支持;与其它 Grok 视频同一 /v1/videos 通道,JSON body 与 multipart 表单均可提交。

# 文生视频(只给提示词,JSON body)
curl https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{"model":"grok-imagine-video-6s","prompt":"红色复古跑车在霓虹夜街疾驰,电影感","size":"1280x720"}'

# 图生视频(带参考图:image_url 为公网 URL 或 base64 Data URI)
curl https://YOUR_BASE/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{"model":"grok-imagine-video-6s","prompt":"人物轻轻转头微笑,柔光","image_url":"https://your-public-image.jpg","size":"720x1280"}'

Grok 图像生成(文生图 / 图生图)

OpenAI 兼容的同步图像接口,请求成功后直接返回图像、无需轮询。文生图三档质量任选;图生图 / 图片编辑用 grok-imagine-image 或 grok-imagine-image-2.0 打 /v1/images/edits 传参考图即可,同名同价、由接口区分。

用法总览(选场景 → 端点 + 模型)

场景端点模型
文生图POST /v1/images/generationsgrok-imagine-image / -2.0 / -lite
图生图 / 图片编辑POST /v1/images/edits(传参考图)grok-imagine-image / grok-imagine-image-2.0
-lite 图生图 / 编辑—❌ 不支持,-lite 仅文生图;图生图请用 grok-imagine-image 或 -2.0
⚠️ grok-imagine-image 与 -2.0 都是一名两用:打 /v1/images/generations = 文生图、打 /v1/images/edits(带参考图)= 图生图 / 编辑,同名同价。-2.0(新版,质感更好)现已支持图生图 / 编辑;仅 -lite(basic 档,最省)只做文生图。
三档怎么选:-lite 最省,适合批量草图;grok-imagine-image 为标准档;-2.0 是新版、质感最好且是唯一支持 2K 的一档,推荐默认用它;grok-imagine-image-quality 是另一代质感档,风格取向不同、仅 1K,可在 -2.0 出图不合意时作为备选。

画幅(size / aspect_ratio · 按模型)

模型size 可选aspect_ratio 可选默认
grok-imagine-image1024x1024 / 1792x1024 / 1024x17921:1 / 16:9 / 9:16 / 2:3 / 3:2 / 4:3 / 3:41024x1024
grok-imagine-image-2.01024x1024 / 1792x1024 / 1024x1792 / 2048x2048(2K)同上1024x1024
grok-imagine-image-quality1024x1024 / 1792x1024 / 1024x1792(仅 1K)同上1024x1024
grok-imagine-image-lite1280x720 / 720x1280 / 960x960—(改用 size)—
size 与 aspect_ratio 二选一;其它取值可能报错。
2K 仅 grok-imagine-image-2.0 支持(传 size="2048x2048" 或 resolution="2k")。其它模型传 2K 会返回明确报错并提示改用 grok-imagine-image-2.0,不会悄悄按 1K 出图。

模型与价格

模型能力计费价格
grok-imagine-image-lite文生图(basic 档)按张¥0.02/张
grok-imagine-image文生图 + 图生图 / 编辑按张¥0.055/张
grok-imagine-image-2.0文生图 + 图生图 / 编辑(新版,质感更好,支持 2K)按张¥0.065/张
grok-imagine-image-quality文生图 + 图生图 / 编辑(质感档,仅 1K)按张¥0.08/张
按张计费:每张图片按模型价格计费;生成失败不扣费。

鉴权与分组

项说明
鉴权Authorization: Bearer sk-xxx
令牌分组xAI 或 auto(智能路由)分组均可
请求格式文生图走 JSON;图生图 / 编辑走 JSON 或 multipart(传文件用 -F "image[]=@a.png")

核心参数

参数取值默认说明
modelgrok-imagine-image-lite / grok-imagine-image / grok-imagine-image-2.0;图生图 / 编辑用 grok-imagine-image 或 grok-imagine-image-2.0(打 /v1/images/edits);-lite 仅文生图-必填
prompt文本-必填,描述希望生成或修改的画面
n整数1可选,生成数量;建议一次请求传 1
response_formaturl / b64_jsonurlurl 返回下载地址;b64_json 直接返回 Base64 图像数据
size1024x1024 / 1792x1024 / 1024x1792 / 2048x2048(2048x2048 仅 -2.0;-lite 见画幅说明)1024x1024可选,输出尺寸;grok-imagine-image / -2.0 / -quality 适用
resolution1k / 2k1k可选,仅 grok-imagine-image-2.0 支持 2k;与 size 效果等价,二者皆可
aspect_ratio1:1/16:9/9:16/2:3/3:2/4:3/3:4-可选,grok-imagine-image / -2.0 / -quality 用,与 size 二选一
image公网 URL 或 base64 Data URI-图生图可选,单张参考图。base64 必须为完整的 data:image/...;base64,... 格式
imagesURL / Data URI 数组-图生图可选,多张参考图;仅 JSON 请求使用

提交方式(传图 · 图生图)

方式字段 / 写法说明
单张公网图片"image": "https://.../a.jpg"图片地址必须能从公网直接访问
单张 base64"image": "data:image/png;base64,..."使用完整 Data URI,不要只传裸 Base64
多张 JSON 图片"images": ["https://.../a.jpg", "data:image/png;base64,..."]数组中可混用公网 URL 与 Data URI
multipart 文件上传-F "image[]=@a.png" -F "image[]=@b.jpg"单图也可使用 -F "image=@a.png"

示例请求

# 文生图
curl https://YOUR_BASE/v1/images/generations \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-image-lite",
    "prompt": "一座漂浮在云海上的未来城市,清晨柔光,电影感",
    "n": 1,
    "response_format": "url"
  }'

# 图生图:JSON 单张公网图片
curl https://YOUR_BASE/v1/images/edits \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-image",
    "prompt": "保留主体构图,将背景改为雨后的霓虹街道",
    "image": "https://your-public-image.jpg",
    "response_format": "url"
  }'

# 图生图:multipart 多张文件
curl https://YOUR_BASE/v1/images/edits \
  -H "Authorization: Bearer sk-xxx" \
  -F "model=grok-imagine-image" \
  -F "prompt=融合两张参考图的风格,生成商品展示图" \
  -F "image[]=@reference-a.png" \
  -F "image[]=@reference-b.jpg" \
  -F "response_format=url"

轮询取片(同步返回,无需轮询)

本模型为同步接口:请求成功后直接在响应里返回图像,无需轮询 task_id。返回结构如下:

{
  "created": 1786675686,
  "data": [
    {
      "url": "https://YOUR_BASE/v1/images/proxy/<encrypted-token>"
    }
  ]
}

response_format=url 时返回平台下载代理地址,浏览器或程序可直接访问;地址不暴露源站下载域名和签名参数,默认有效期 30 天。需要自行保存图片数据时用 response_format=b64_json 并读取 data[].b64_json。

Python 完整请求

import requests

BASE = "https://YOUR_BASE/v1"
H = {"Authorization": "Bearer sk-xxx", "Content-Type": "application/json"}

# 文生图(同步,直接拿结果)
r = requests.post(f"{BASE}/images/generations", headers=H, json={
    "model": "grok-imagine-image-lite",
    "prompt": "一座漂浮在云海上的未来城市,清晨柔光,电影感",
    "n": 1,
    "response_format": "url"
}).json()
print("图片:", r["data"][0]["url"])

# 图生图:单张公网图片
r2 = requests.post(f"{BASE}/images/edits", headers=H, json={
    "model": "grok-imagine-image",
    "prompt": "保留主体构图,将背景改为雨后的霓虹街道",
    "image": "https://your-public-image.jpg",
    "response_format": "url"
}).json()
print("图片:", r2["data"][0]["url"])

Python 示例:文生图 → 图生图(base64 参考图闭环)

先文生图拿到一张图,再把它当参考图做编辑——同一个 grok-imagine-image,只换接口(/generations → /edits);用 b64_json 免下载直接复用,参考图传完整的 data:image/...;base64, Data URI。

import requests, base64

BASE = "https://YOUR_BASE/v1"
H = {"Authorization": "Bearer sk-xxx", "Content-Type": "application/json"}

# 1) 文生图:生成一张参考图(取 b64_json,方便直接复用,无需下载)
gen = requests.post(f"{BASE}/images/generations", headers=H, json={
    "model": "grok-imagine-image",
    "prompt": "一只黄色小鸭子,居中,纯白背景",
    "n": 1,
    "response_format": "b64_json",
}).json()
b64 = gen["data"][0]["b64_json"]
open("duck.jpg", "wb").write(base64.b64decode(b64))

# 2) 图生图 / 编辑:把上一步的图当参考图(完整 data URI),只加一顶圣诞帽、其余不变
edit = requests.post(f"{BASE}/images/edits", headers=H, json={
    "model": "grok-imagine-image",
    "prompt": "给鸭子头上戴一顶红色圣诞帽,保持同一只鸭子和纯白背景不变",
    "image": "data:image/jpeg;base64," + b64,
    "response_format": "b64_json",
}).json()
open("duck_hat.jpg", "wb").write(base64.b64decode(edit["data"][0]["b64_json"]))
print("done: duck.jpg -> duck_hat.jpg")

注意事项

建议

通义万相 3.0 视频 Video

🎬 阿里通义万相 3.0(阿里云百炼官方直连)。提供两个模型:wan3.0-video(全能多模态参考版)与 wan3.0-video-prime(优速版,30fps 高帧率、质感更高且出片更快)。现已全面支持全多模态参考架构:涵盖 A. 文生视频、B. 图生视频(首帧 / 首尾帧)、C. 多图参考生视频、D. 图 + 视频 + 音频多模态参考、E. 文件 / 网页链接参考 5 种核心模式。OpenAI 兼容异步接口、按秒 × 分辨率计费、失败不计费。

模型与价格

模型分辨率(resolution)计费价格
wan3.0-video480p(默认)按秒¥0.21 / 秒
wan3.0-video720p按秒¥0.42 / 秒
wan3.0-video1080p按秒¥0.84 / 秒
wan3.0-video-prime480p(默认)按秒¥0.38 / 秒
wan3.0-video-prime720p按秒¥0.76 / 秒
wan3.0-video-prime1080p按秒¥1.52 / 秒
按秒 × 分辨率计费:费用 = 该分辨率单价 × duration(秒数)(例:wan3.0-video 720p × 5 秒 = ¥2.10)。分辨率用 resolution 参数控制(480p / 720p / 1080p),不传默认 480p。失败不计费,成功出片才扣。
wan3.0-video-prime 为优速版(30fps、质量更高且出片更快),价格高一档;两者能力与参数完全兼容,按预算与时效要求选取。

五大参考场景速查(ABCDE 模式总览)

模式场景名称核心能力触发参数 / 字段写法说明与适用业务
A文生视频纯文字创意生成仅传 prompt,不带任何素材概念演示、光影特效、CG 场景想象
B图生视频(首帧 / 首尾帧)单图动效 / 双图定格转场传 1 张图片为首帧(images 或 image_url);
或传 2 张图片分别指定 first_frame 与 last_frame
静态立绘动效化、前后两张分镜之间精准平滑过渡
C多图参考生视频主体角色 / 场景一致性images 传入多张图片(≥3 张,或传 role: "reference_image")保持主体人物面容、服饰、环境特征与艺术风格连续统一
D图 + 视频 + 音频多模态参考跨模态运镜与节拍同步同时组合 images + videos + audios角色参考图片,运镜与动作跟随参考视频,节奏与对白跟随参考音频
E文件 / 网页链接参考文档解析与网页推演传入 files(文档 URL 数组)或 links(网页 URL 数组)研报/策划案/长文解析视频化、电商产品落地页一键生成推广视频

接口信息

项说明
Base URLhttps://newapi-2.oairegbox.cc(或 https://api.oairegbox.cc)
提交端点POST /v1/video/generations 或 POST /v1/videos(标准 JSON,双端点完全等价兼容)
轮询端点GET /v1/video/generations/{task_id} 或 GET /v1/videos/{task_id}
成片下载轮询状态为 completed 时,直接读取响应中的顶层 video_url(阿里云 OSS 官方高速直链,稳定且不脱敏);亦支持通过网关端点 GET /v1/videos/{task_id}/content(带 Bearer 鉴权 302 重定向)流式下载
鉴权方式Authorization: Bearer sk-你的令牌
令牌分组Wan(通义万相)或 auto(智能路由分组)
生成耗时通常 1–5 分钟(多模态与高分辨率耗时相应增加);客户端请异步轮询取片,切勿在超时前重复发起同一任务

核心参数规范

参数类型必填默认说明
modelstring是-wan3.0-video(全能多模态参考版)或 wan3.0-video-prime(优速版,30fps)
promptstring是-画面内容、动态走势、光影氛围或镜头运动描述。走官方模型上下文,无我方硬性长度限制
resolutionstring否480p决定清晰度与计费单价:480p / 720p / 1080p(大小写兼容)。也可用 size 传 宽x高(如 1280x720),系统自动匹配就近档位
ratiostring否adaptive画幅比例:16:9(横屏)、9:16(竖屏)、1:1(方屏)、4:3、3:4、adaptive(默认根据参考素材自适应)。兼容 portrait / landscape 等别名
duration / secondsinteger / string否5视频生成时长(秒),支持 5–30 秒。实际扣费以此秒数结算
imagesarray否-参考图片列表:支持纯 URL 字符串数组或带角色对象数组 [{ "url": "...", "role": "..." }]。单图默认首帧;双图默认首尾帧;3 张以上默认参考图。显式角色支持 first_frame(首帧)、last_frame(尾帧)、reference_image(参考图)
videosarray否-参考视频列表:纯 URL 字符串数组或 [{ "url": "...", "role": "reference_video" }]。作为画面运动节奏与镜头轨迹的参考素材
audiosarray否-参考音频列表:纯 URL 字符串数组或 [{ "url": "...", "role": "reference_audio" }]。⚠️ 不可作为唯一参考素材,至少需搭配一张图片或一段视频
filesarray否-参考文档列表:纯 URL 字符串数组或 [{ "url": "...", "role": "file" }]。支持公网可直接下载的 PDF、Word、TXT、Markdown 等文档
linksarray否-参考网页列表:纯 URL 字符串数组或 [{ "url": "...", "role": "link" }]。支持公网可抓取的 HTTP/HTTPS 网页,模型自动提取网页图文进行视频创作
image_urlstring否-单图快捷参数:传了=图生视频首帧。公网直链 URL 或完整 Base64 Data URI;兼容 image、input_reference
⚠️ 素材组合与互斥规则(调用前必读):
1. 首尾帧互斥:首帧(first_frame)与尾帧(last_frame)为定点平滑补帧模式,严禁与参考视频、音频、文件、网页链接等参考类素材混合传入。
2. 音频依附性:参考音频(audios)不能作为孤立的唯一输入,必须配合至少一张参考图片或一段参考视频。
3. 多模态自愈机制:若你在传入参考视频/音频/文件/链接的同时传入了普通图片,系统会自动将图片转换为 reference_image 角色,避免官方底层误判为首尾帧导致冲突报错。
4. 素材公网可达性:所有 URL 素材必须能被公网直接 GET 访问,无需登录授权;图片亦可使用 data:image/...;base64,... 格式传参。

全场景调用详解与示例(ABCDE 全覆盖)

通义万相 3.0 支持双端点(/v1/video/generations 与 /v1/videos)。以下示例均以标准 OpenAI 规范给出完整的 curl 请求与 Python 异步生命周期完整脚本。

场景 A:文生视频(Text-to-Video)

只传文字描述,模型完全凭空渲染。支持自由指定分辨率(480p/720p/1080p)、画幅比例(16:9/9:16/1:1 等)与时长(5–30 秒)。

A-1. curl 示例(文生视频)

curl -sS -X POST "https://YOUR_BASE/v1/video/generations" \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video",
    "prompt": "一只金毛寻回犬在金色秋叶中奔跑,电影感慢镜头,阳光穿透树林,毛发细节清晰",
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 5
  }'

A-2. Python 完整示例(文生视频 · 提交 + 轮询 + 下载成片)

import time
import requests

BASE_URL = "https://YOUR_BASE"
API_KEY = "sk-xxx"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

# 1. 提交文生视频任务
payload = {
    "model": "wan3.0-video",
    "prompt": "浩瀚宇宙中的星际飞船正在穿越瑰丽的紫色星云,科幻史诗感,超高清光影",
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 5
}
resp = requests.post(f"{BASE_URL}/v1/video/generations", headers=HEADERS, json=payload, timeout=60)
resp.raise_for_status()
data = resp.json()
task_id = data.get("task_id") or data.get("id")
print(f"[A. 文生视频] 任务已提交,Task ID: {task_id}")

# 2. 轮询任务状态直至完成
start_time = time.time()
video_url = None
while time.time() - start_time < 600:
    poll_resp = requests.get(f"{BASE_URL}/v1/video/generations/{task_id}", headers=HEADERS, timeout=30)
    poll_resp.raise_for_status()
    poll_data = poll_resp.json()
    status = poll_data.get("status")
    print(f"当前状态: {status} (已等待 {int(time.time() - start_time)}s)")
    if status == "completed":
        video_url = poll_data.get("video_url") or (poll_data.get("data") and poll_data["data"][0].get("url"))
        break
    elif status in ("failed", "canceled"):
        raise RuntimeError(f"任务生成失败: {poll_data.get('error')}")
    time.sleep(5)

# 3. 下载视频文件
if video_url:
    print(f"成片下载地址: {video_url}")
    video_content = requests.get(video_url, timeout=120).content
    with open("wan_scene_a.mp4", "wb") as f:
        f.write(video_content)
    print("成片已成功保存至本地 wan_scene_a.mp4")

场景 B:图生视频(首帧 / 首尾帧)

包括单图首帧动效与双图首尾帧过渡:

B-1. curl 示例(单图首帧 & 双图首尾帧)

# ① 单图首帧动效(图片亦可传 base64)
curl -sS -X POST "https://YOUR_BASE/v1/video/generations" \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video",
    "prompt": "微风吹拂,人物发丝轻扬,眼波流转,面带微笑",
    "image_url": "https://your-domain.com/start_frame.jpg",
    "resolution": "720p",
    "duration": 5
  }'

# ② 双图首尾帧平滑过渡(精准转场)
curl -sS -X POST "https://YOUR_BASE/v1/video/generations" \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video",
    "prompt": "镜头由近景平滑拉远并旋转,画面由第一张日间场景自然过渡到第二张夜幕降临",
    "images": [
      { "url": "https://your-domain.com/day_view.jpg", "role": "first_frame" },
      { "url": "https://your-domain.com/night_view.jpg", "role": "last_frame" }
    ],
    "resolution": "720p",
    "duration": 5
  }'

B-2. Python 完整示例(双图首尾帧过渡)

import time
import requests

BASE_URL = "https://YOUR_BASE"
API_KEY = "sk-xxx"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

payload = {
    "model": "wan3.0-video",
    "prompt": "镜头缓慢平移推进,人物由低头沉思自然抬起头并露出微笑",
    "images": [
        {"url": "https://your-domain.com/head_down.png", "role": "first_frame"},
        {"url": "https://your-domain.com/look_up_smile.png", "role": "last_frame"}
    ],
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 5
}

resp = requests.post(f"{BASE_URL}/v1/video/generations", headers=HEADERS, json=payload, timeout=60)
resp.raise_for_status()
task_id = resp.json()["task_id"]
print(f"[B. 首尾帧图生视频] 任务已提交: {task_id}")

while True:
    res = requests.get(f"{BASE_URL}/v1/video/generations/{task_id}", headers=HEADERS, timeout=30).json()
    st = res.get("status")
    if st == "completed":
        video_url = res.get("video_url") or res["data"][0]["url"]
        with open("wan_scene_b_keyframes.mp4", "wb") as f:
            f.write(requests.get(video_url, timeout=120).content)
        print("首尾帧过渡视频下载完成!")
        break
    elif st in ("failed", "canceled"):
        raise RuntimeError(f"失败: {res.get('error')}")
    time.sleep(5)

场景 C:多图参考生视频(Multi-Image Reference)

传入 3 张或更多参考图片(或显式指定 role: "reference_image"),模型综合提取所有参考图中的主体角色、服装配饰与环境风格,生成风格高度统一的连续视频,解决 AI 视频人物脸部不一致的问题。

C-1. curl 示例(多图参考保持主体一致)

curl -sS -X POST "https://YOUR_BASE/v1/video/generations" \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video",
    "prompt": "参考图片中的主角身着同一套战袍,在古代演武场上挥舞长剑,动作凌厉,保持脸部与服装一致",
    "images": [
      { "url": "https://your-domain.com/character_front.jpg", "role": "reference_image" },
      { "url": "https://your-domain.com/character_side.jpg", "role": "reference_image" },
      { "url": "https://your-domain.com/character_armor_detail.jpg", "role": "reference_image" }
    ],
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 5
  }'

C-2. Python 完整示例(多图参考角色一致性)

import time
import requests

BASE_URL = "https://YOUR_BASE"
API_KEY = "sk-xxx"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

# 传入多张不同角度/细节的主体图片
ref_images = [
    "https://your-domain.com/hero_angle_1.png",
    "https://your-domain.com/hero_angle_2.png",
    "https://your-domain.com/hero_close_up.png"
]

payload = {
    "model": "wan3.0-video",
    "prompt": "主角在繁华的赛博朋克夜市街道穿行,霓虹倒影,画面忠实再现参考图中的人物外貌与发型细节",
    "images": [{"url": u, "role": "reference_image"} for u in ref_images],
    "resolution": "1080p",
    "ratio": "16:9",
    "duration": 5
}

r = requests.post(f"{BASE_URL}/v1/video/generations", headers=HEADERS, json=payload, timeout=60).json()
task_id = r["task_id"]
print(f"[C. 多图参考] 任务提交成功: {task_id}")

while True:
    data = requests.get(f"{BASE_URL}/v1/video/generations/{task_id}", headers=HEADERS).json()
    if data["status"] == "completed":
        url = data.get("video_url") or data["data"][0]["url"]
        with open("wan_scene_c_multiref.mp4", "wb") as f:
            f.write(requests.get(url, timeout=120).content)
        print("多图参考一致性视频已保存!")
        break
    elif data["status"] in ("failed", "canceled"):
        raise RuntimeError(data.get("error"))
    time.sleep(5)

场景 D:图 + 视频 + 音频多模态参考(Multimodal Reference)

跨越单一维度的多模态协同创作:传入角色主体图片、动作参考视频与节奏音频。模型将结合参考视频的镜头运动与运镜轨迹、参考音频的节拍/情绪,并映射到参考图的角色身上,输出高精度的动作与视听协同成片。

D-1. curl 示例(图 + 视频 + 音频多模态)

curl -sS -X POST "https://YOUR_BASE/v1/video/generations" \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video",
    "prompt": "让画面中的虚拟歌姬跟随参考视频的舞蹈动作起舞,动作节奏与参考音频的高潮卡点完全吻合",
    "images": [
      { "url": "https://your-domain.com/singer_character.png", "role": "reference_image" }
    ],
    "videos": [
      { "url": "https://your-domain.com/dance_motion_ref.mp4", "role": "reference_video" }
    ],
    "audios": [
      { "url": "https://your-domain.com/bgm_beat_ref.mp3", "role": "reference_audio" }
    ],
    "resolution": "1080p",
    "ratio": "16:9",
    "duration": 5
  }'

D-2. Python 完整示例(图视音频全模态协同)

import time
import requests

BASE_URL = "https://YOUR_BASE"
API_KEY = "sk-xxx"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

# 组装跨模态素材
payload = {
    "model": "wan3.0-video",
    "prompt": "角色身形与外貌严格参照图片,动作与运镜跟随参考视频,节奏与节拍跟随音频",
    "images": ["https://your-domain.com/actor_portrait.jpg"],
    "videos": ["https://your-domain.com/action_scene_ref.mp4"],
    "audios": ["https://your-domain.com/audio_tempo_ref.mp3"],
    "resolution": "1080p",
    "ratio": "16:9",
    "duration": 5
}

resp = requests.post(f"{BASE_URL}/v1/video/generations", headers=HEADERS, json=payload, timeout=60)
resp.raise_for_status()
task_id = resp.json()["task_id"]
print(f"[D. 全模态协同] 任务已提交: {task_id}")

while True:
    status_resp = requests.get(f"{BASE_URL}/v1/video/generations/{task_id}", headers=HEADERS).json()
    st = status_resp.get("status")
    print(f"生成进度: {st}")
    if st == "completed":
        url = status_resp.get("video_url") or status_resp["data"][0]["url"]
        with open("wan_scene_d_multimodal.mp4", "wb") as f:
            f.write(requests.get(url, timeout=180).content)
        print("多模态视听联动视频生成完毕!")
        break
    elif st in ("failed", "canceled"):
        raise RuntimeError(status_resp.get("error"))
    time.sleep(6)

场景 E:文件 / 网页链接参考(Doc & Link Reference)

支持将长文档(策划案、剧本、产品白皮书 PDF 等)或公开网页链接直接喂给模型。模型深度解析文档要点或网页的图文资产,生成专业的宣传解说、资讯播报或产品介绍视频。

E-1. curl 示例(文档 + 网页链接参考)

curl -sS -X POST "https://YOUR_BASE/v1/video/generations" \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video",
    "prompt": "根据所附产品策划文档与官网产品落地页的内容,制作一段具有科技感的新品发布概念视频",
    "files": [
      { "url": "https://your-domain.com/product_brief.pdf", "role": "file" }
    ],
    "links": [
      { "url": "https://your-domain.com/product_landing_page", "role": "link" }
    ],
    "resolution": "1080p",
    "ratio": "16:9",
    "duration": 5
  }'

E-2. Python 完整示例(文档与网页生视频)

import time
import requests

BASE_URL = "https://YOUR_BASE"
API_KEY = "sk-xxx"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

payload = {
    "model": "wan3.0-video",
    "prompt": "结合文档剧本大纲与参考网页的视觉设计风格,生成一段电影宣发概念预告片",
    "files": ["https://your-domain.com/movie_synopsis.pdf"],
    "links": ["https://your-domain.com/official_movie_site"],
    "resolution": "1080p",
    "ratio": "16:9",
    "duration": 5
}

r = requests.post(f"{BASE_URL}/v1/video/generations", headers=HEADERS, json=payload, timeout=60).json()
task_id = r["task_id"]
print(f"[E. 文档/网页参考] 任务提交: {task_id}")

while True:
    data = requests.get(f"{BASE_URL}/v1/video/generations/{task_id}", headers=HEADERS).json()
    if data["status"] == "completed":
        url = data.get("video_url") or data["data"][0]["url"]
        with open("wan_scene_e_doc_link.mp4", "wb") as f:
            f.write(requests.get(url, timeout=120).content)
        print("文档/网页参考生成视频已下载!")
        break
    elif data["status"] in ("failed", "canceled"):
        raise RuntimeError(data.get("error"))
    time.sleep(5)

异步轮询取片与成片下载

通义万相 3.0 为纯异步生成接口。提交任务后返回唯一的 task_id,客户端随后调用轮询接口查询任务状态:

# 查询任务状态(双端点兼容)
curl -sS "https://YOUR_BASE/v1/video/generations/task_xxx" \
  -H "Authorization: Bearer sk-xxx"

# 响应示例(已完成):
{
  "id": "task_xxx",
  "task_id": "task_xxx",
  "status": "completed",
  "progress": 100,
  "video_url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.mp4?Expires=...",
  "data": [
    {
      "url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.mp4?Expires=..."
    }
  ]
}
字段说明
status任务当前状态:queued(排队中)/ processing(渲染中)/ completed(已完成)/ failed(已失败)
video_url成片视频直链。为阿里云 OSS 官方下载直链(稳定不防盗链,可直接用于业务展示或存储分发)
data[0].url同 video_url,OpenAI 规范格式
💡 下载建议:
- 优先直接通过返回的 video_url 官方直链进行 GET 下载(无需附带鉴权 Header);
- 若业务需统一收敛在网关出口,亦可请求 GET https://YOUR_BASE/v1/videos/{task_id}/content(附带 Bearer 令牌),网关将自动 302 转发至成片流。

注意事项与最佳实践

快手可灵 · Kling 3.0 / Kling-v3 官方直连 Video

🎬 快手可灵 AI(Kling 3.0)具备顶尖的物理模拟能力与动作连贯性。本平台以 OpenAI 兼容的异步视频接口提供完整生成能力。支持经典文生视频、首尾帧图生视频、多图融合参考以及 图视多模态混合生成。按秒计费、失败或审核拦截不计费、默认自带生成音效与 AAC 原生音轨。

模型列表与计费说明(按秒计费 · 全默认有声)

本平台提供三档不同清晰度的固定模型(底层均完整具备多图融合与视频参考能力):

模型名称档位说明分辨率计费单价适用场景
kling-v3-standard标准版720p¥0.765/秒性价比首选,适合快速出片与日常生成
kling-v3-pro专业版1080p¥1.020/秒高清写实,光影与细节更丰富
kling-v3-4k4K 超清版3840×2160 (4K)¥2.550/秒影视级超高清成片输出
计费规则:任务费用 = 实际出片秒数 × 档位每秒单价(例:kling-v3-standard 5 秒 = ¥3.825,kling-v3-pro 5 秒 = ¥5.10)。失败或审核拦截不计费。成片默认自带生成音效与 AAC 原生音轨。

接口信息

项说明
提交端点POST /v1/videos 或 POST /v1/video/generations(标准 JSON,双端点完全等价兼容)
轮询端点GET /v1/videos/{task_id} 或 GET /v1/video/generations/{task_id}
视频直出预览GET /v1/videos/{task_id}/content(带 Bearer 令牌鉴权 302 重定向流式返回成片)
下载成片完成后响应里的 data[0].url(官方腾讯 VOD 高速直链,稳定不过期)
鉴权方式Authorization: Bearer sk-你的令牌
令牌分组Kling(或 auto 智能路由分组)

完整参数字典

参数名类型必填默认值详细说明与取值范围
modelstring是-模型名,如 kling-v3-standard、kling-v3-pro 或 kling-v3-4k
promptstring是-画面动作描述,字数上限 2000 字符
negative_promptstring否-负向提示词,用于过滤低画质、多肢体、杂乱文字等不需要的元素
duration / secondsinteger / string否5生成时长(秒),支持 5 或 10(如 5、10、"5"、"10")
ratio / aspect_ratiostring否16:9视频画幅比例,支持 16:9(横屏)、9:16(竖屏)、1:1(方形)
resolutionstring否依模型视频清晰度,各模型已固定清晰度;亦可通过 resolution 或 size 显式指定
images / image_urlsarray否-参考图片链接数组或对象数组:
• 传入 1 张图片:作为图生视频首帧;
• 传入 2 张图片:第一张为首帧,第二张为尾帧,模型平滑过渡;
• 传入对象数组:支持显式指定 role,可选 first_frame(首帧)、last_frame(尾帧)、reference_image(参考图)
videosarray否-(Omni 多模态专属) 参考视频链接数组,传入视频 URL 用于动作复刻或风格迁移
generate_audioboolean否true是否生成配套音效。本平台默认开启;注:当请求包含参考视频时,模型限制暂不支持同时生成音频
camera_controlobject否-镜头运镜控制对象(包含 type: "simple" 或 "config"),支持通过各项维度微调运镜动作:
• pan:水平平移(左右);
• tilt:垂直俯仰(上下);
• zoom:镜头变焦推拉;
• roll:镜头旋转

调用代码示例

A. 经典文生视频(Text-to-Video)

curl -X POST https://api.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer sk-你的令牌" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-v3-pro",
    "prompt": "繁华都市霓虹灯下的雨夜,一个打着雨伞的行人在积水的路面上缓慢行走,写实电影风格,光影斑驳",
    "negative_prompt": "画面模糊,低画质,崩坏肢体,水印",
    "ratio": "16:9",
    "duration": 5
  }'

B. 经典图生视频(首尾帧控制)

传入 2 张图片链接:第一张自动作为首帧、第二张作为尾帧,由模型生成过渡画面。

curl -X POST https://api.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer sk-你的令牌" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-v3-pro",
    "prompt": "画面由第一张图片的人物微笑平滑过渡到第二张图片的惊讶表情,动作写实自然",
    "images": [
      "https://example.com/smile_face.png",
      "https://example.com/surprised_face.png"
    ],
    "duration": 5
  }'

C. 多图融合参考(Omni 特性)

支持传入多张参考图,通过对象指定 role(如角色外观首帧 + 场景风格参考图)。

curl -X POST https://api.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer sk-你的令牌" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-v3-pro",
    "prompt": "参考图片一中的女主角和图片二的复古咖啡馆场景,绘制一段平稳摇臂运镜的画面",
    "images": [
      {
        "url": "https://example.com/character.png",
        "role": "first_frame"
      },
      {
        "url": "https://example.com/coffee_shop.png",
        "role": "reference_image"
      }
    ],
    "resolution": "1080p",
    "duration": 5
  }'

D. 图像参考 + 视频参考多模态混合生成(动作/运镜复刻)

可同时传入参考图与参考视频,实现人物外观由图片决定、主体招式动作与镜头由视频决定的混合生成。

⚠️ 重要注意事项:当传入参考视频时,平台将根据规则自动关闭音频生成(官方规则:视频参考模式与音频生成互斥),无需客户端额外排查。
curl -X POST https://api.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer sk-你的令牌" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-v3-pro",
    "prompt": "图一中的人物作为主角,完美复刻视频中的武术动作,动作流畅,画风高清写实",
    "images": [
      {
        "url": "https://example.com/my_character.png",
        "role": "reference_image"
      }
    ],
    "videos": [
      "https://example.com/motion_reference.mp4"
    ],
    "resolution": "1080p",
    "duration": 5
  }'

轮询结果响应格式

查询请求(支持双端点):

curl -X GET https://api.oairegbox.cc/v1/videos/你的任务ID \
  -H "Authorization: Bearer sk-你的令牌"

任务完成响应示例(200 OK):

{
  "id": "task_zbpGfYv1qStMwLwVtPW8G59KOGfDJr9k",
  "status": "completed",
  "object": "video.generation",
  "data": [
    {
      "url": "https://gpt2api.oairegbox.cc/d/kling/1251015623-AigcVideoTask-ecdc586e9cf2b2419844a1309e3b3691t"
    }
  ]
}

Python 完整请求示例(全生命周期)

import time
import requests

BASE_URL = "https://api.oairegbox.cc"
API_KEY = "sk-你的令牌"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

# 1. 提交视频生成任务
payload = {
    "model": "kling-v3-pro",
    "prompt": "繁华都市霓虹灯下的雨夜,一个打着雨伞的行人在积水的路面上缓慢行走,写实电影风格,光影斑驳",
    "negative_prompt": "画面模糊,低画质,崩坏肢体,水印",
    "ratio": "16:9",
    "duration": 5
}
resp = requests.post(f"{BASE_URL}/v1/videos", headers=HEADERS, json=payload, timeout=60)
resp.raise_for_status()
task_id = resp.json()["id"]
print(f"任务已提交,Task ID: {task_id}")

# 2. 轮询直到生成完成
start_time = time.time()
while time.time() - start_time < 900:
    poll_res = requests.get(f"{BASE_URL}/v1/videos/{task_id}", headers=HEADERS, timeout=30).json()
    status = poll_res.get("status")
    print(f"当前状态: {status} (耗时: {int(time.time() - start_time)}s)")
    if status == "completed":
        video_url = poll_res["data"][0]["url"]
        # 3. 下载保存视频
        content = requests.get(video_url, timeout=120).content
        with open("kling_output.mp4", "wb") as f:
            f.write(content)
        print("视频已成功下载至本地 kling_output.mp4!")
        break
    elif status in ("failed", "canceled"):
        raise RuntimeError(f"任务失败: {poll_res.get('error')}")
    time.sleep(5)

注意事项

Flow · Omni 1.1 Flash Video

🎬 Flow · Omni 1.1 Flash:一个模型名 flow-omni-1.1-flash,支持文生视频、多图参考图生视频、视频编辑(v2v)三种模式,按请求里的素材自动切换。无水印、时长 4 / 6 / 8 / 10 秒可选(默认 8 秒)、720p出片,OpenAI 兼容异步接口,按次计费、失败不计费。画幅朝向用 aspect_ratio(16:9 横屏默认 / 9:16 竖屏),也可用 size 指定。

模型与价格

模型模式分辨率计费价格 / 次(四档时长同价)
flow-omni-1.1-flash文生视频 / 多图参考图生视频720p按次¥0.75
flow-omni-1.1-flash(v2v)视频编辑(传参考视频 input_reference,含图 + 视频同时参考)720p按次¥0.90
按次计费:文生视频、多图参考图生视频 ¥0.75 / 次;视频编辑(v2v,请求里带参考视频 input_reference)¥0.90 / 次。时长可选 4 / 6 / 8 / 10 秒(不传默认 8 秒),四档同价,720p,失败不计费。

三种模式(按素材自动切换)

模式怎么触发价格 / 次说明
文生视频(T2V)只传 prompt,不带图 / 视频¥0.75纯文字生成视频
图生视频(I2V)prompt + images(或单张 image)¥0.75多图参考图生视频
视频编辑(V2V)prompt + input_reference(参考视频)¥0.90在原视频基础上按 prompt 编辑(如加特效 / 改天气 / 换风格);参考视频 ≤15 秒,可传 base64(本站自动托管)或公网 URL(须中国可访问)
选档优先级:带参考视频(input_reference)→ 视频编辑;否则带参考图(images)→ 图生视频;都不带 → 文生视频。三种模式同一模型名 flow-omni-1.1-flash;文生 / 图生 ¥0.75 / 次,视频编辑(v2v)¥0.90 / 次。

接口信息

项说明
Base URLhttps://api.oairegbox.cc
提交任务POST /v1/videos(JSON)
轮询进度GET /v1/videos/{task_id},status=completed 表示完成
下载成片用轮询返回的顶层 video_url 直接下载 mp4(地址已脱敏、我方域名)
鉴权Authorization: Bearer sk-你的令牌
令牌分组Gemini flow
耗时通常 1–2 分钟;客户端应轮询,不要重复提交同一任务

核心参数

参数类型必填默认说明
modelstring是-固定 flow-omni-1.1-flash(文生 / 图生 / 视频编辑都用这一个名字)
promptstring是-画面 / 运动描述
resolutionstring否720p固定 720p(本模型仅提供 720p)
aspect_ratiostring否16:9决定画幅 / 朝向:16:9(横屏,默认)/ 9:16(竖屏)。不传即横屏,要竖屏传 9:16
sizestring否-也可用 WxH 指定朝向(如 1280x720 横 / 720x1280 竖);传了 size 时以它为准。清晰度恒 720p
secondsstring(必须字符串)否"8"成片时长(秒):可选 "4" / "6" / "8" / "10",四档同价。必须传字符串——写成数字 10 会报 invalid_json;请用 seconds,duration 不生效;传档位以外的值(如 "7")按 8 秒出片、不报错
images数组(URL / base64)否-图生视频:多图参考(建议 ≤6 张,多传模型可能只取前几张、不提升效果);公网可直取 URL 或 data:image/...;base64,。单张也可用 image
input_referencestring(URL 或 base64)否(v2v 必填)-仅视频编辑(v2v)用:文生 / 图生视频无需此字段;做 v2v 时必填——参考视频,可传公网 URL(≤15 秒、须中国可访问)或 base64(data:video/mp4;base64, 或裸 base64;本站自动托管为中国可达链接,无需自己找公网地址;mp4/mov、解码后 ≤64MB);传了即进入编辑模式,按 prompt 在原视频上编辑
⚠️ 时长用 seconds 传「字符串」:可选 "4" / "6" / "8" / "10",不传默认 8 秒,四档同价、不加钱。写成数字(10)会直接报 invalid_json;duration 字段不生效;档位以外的值(如 "7")按 8 秒出片、不报错。朝向用 aspect_ratio(或 size),清晰度恒 720p。

时长档位(实测对照 · 务必只传这四个值)

传 seconds实际成片时长帧数(24fps)说明
"4"4.0 秒96正常
"6"6.0 秒144正常
"8" 或 不传8.0 秒192默认档
"10"10.0 秒240正常
四档以外的值(如 "7"、"15")8.0 秒192⚠️ 不报错、静默按 8 秒出片——你以为拿到 7 秒,实际是 8 秒
数字 10(没加引号)——请求直接被拒:400 invalid_json
duration 字段8.0 秒—该字段不生效,等同没传时长
⚠️ 这是本接口最容易踩的坑:传错档位不会报错。平台对 seconds 不做档位校验,四档以外的值会直接按默认 8 秒出片,且不返回任何警告或提示。所以:
① 只传 "4" / "6" / "8" / "10" 四个字符串之一,别传 "5" / "7" / "12" 这类值;
② 若时长对你的流程重要(剪辑对轨、投放平台时长限制、按秒二次计费等),请在拿到成片后自行核验实际时长(播放器属性,或 ffprobe -v error -show_entries format=duration -of csv=p=0 out.mp4),不要以请求参数为准。
上表时长为实测值,各档位误差在 ±0.02 秒内。

画幅与朝向(横屏 / 竖屏怎么定)

想要用 aspect_ratio或用 size输出(恒 720p)
横屏(默认)不传 或 "16:9""1280x720"1280 × 720
竖屏"9:16""720x1280"(或 "1080x1920")720 × 1280
比例不是必填:不传默认出横屏 16:9(1280×720);要竖屏传 aspect_ratio:"9:16",或用 size 传竖版 WxH(如 720x1280、1080x1920——超过 720p 会自动缩放到 720p)。同时传 size 和 aspect_ratio 时以 size 为准。清晰度恒 720p;图生视频同样用 aspect_ratio / size 指定朝向。

示例请求(curl)

BASE_URL="https://api.oairegbox.cc"
TOKEN="sk-你的令牌"

# 1) 文生视频(720p 横屏,默认)
# seconds 可选 "4"/"6"/"8"/"10"(字符串),不传默认 8 秒,四档同价
curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"flow-omni-1.1-flash","prompt":"日出时分平静的湖面雾气升腾,电影感镜头","seconds":"10"}'

# 2) 文生视频(竖屏 9:16)
curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"flow-omni-1.1-flash","prompt":"竖屏短视频:城市夜景延时,霓虹流光","aspect_ratio":"9:16"}'

# 3) 图生视频(参考图,URL 或 base64)
curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"flow-omni-1.1-flash","prompt":"参考这些图片生成连贯运镜","images":["https://img1.jpg","https://img2.jpg"]}'

# 4) 视频编辑 v2v(传参考视频 input_reference:公网 URL 或 base64 data-uri,≤15 秒)
curl -sS -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"flow-omni-1.1-flash","prompt":"给这段视频加上飘雪,保持原画面","input_reference":"https://your-public-video.mp4"}'
# 或把参考视频转 base64(本站自动托管为中国可达链接,无需公网地址):把 input_reference 换成 "data:video/mp4;base64,<BASE64>"
# => {"task_id":"task_xxx","status":"queued",...}

Python 完整示例(提交 → 轮询 → 下载)

import time, requests

BASE = "https://api.oairegbox.cc"
TOKEN = "sk-你的令牌"
H = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}

# 提交:文生 720p 横屏。
#   竖屏 -> 加 "aspect_ratio": "9:16"
#   图生 -> 加 "images": ["https://.../a.jpg", "https://.../b.jpg"](也支持 base64)
#   视频编辑 -> 加 "input_reference": "https://.../clip.mp4"(也支持 base64: data:video/mp4;base64,)  # 参考视频 ≤15s
payload = {
    "model": "flow-omni-1.1-flash",
    "prompt": "日出时分平静的湖面雾气升腾,电影感镜头",
    "aspect_ratio": "16:9",     # 16:9 横屏 / 9:16 竖屏
}
r = requests.post(f"{BASE}/v1/videos", headers=H, json=payload, timeout=60)
r.raise_for_status()
task = r.json()
task_id = task.get("task_id") or task.get("id")
print("task_id:", task_id)

# 轮询直到完成(通常 1-2 分钟,与时长档位无关)
while True:
    time.sleep(5)
    d = requests.get(f"{BASE}/v1/videos/{task_id}", headers=H, timeout=30).json()
    status = str(d.get("status", "")).lower()
    print("status:", status, d.get("progress"))
    if status == "completed":
        video_url = d.get("video_url") or (d.get("data") or [{}])[0].get("url")
        print("成片:", video_url)
        break
    if status == "failed":
        raise RuntimeError(d.get("error") or d)

# 下载成片:用轮询返回的 video_url(地址已脱敏、我方域名)
mp4 = requests.get(video_url, timeout=180)
open("out.mp4", "wb").write(mp4.content)
print("已保存 out.mp4")

Python 示例:图 + 视频同时参考(全能模式)

flow-omni-1.1-flash 支持同时传参考视频(input_reference,1 段)+ 参考图(images,可多张)。⚠️ images 必须是数组 ["u1","u2"],不要写成 images0 / images1(部分客户端会把数组拆成索引键,导致参考图不生效)。参考视频只支持 1 段;参考图建议 ≤6 张。带参考视频即按视频编辑(v2v)¥0.90 / 次计费。

import time, base64, requests

BASE = "https://api.oairegbox.cc"
TOKEN = "sk-你的令牌"
H = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}

def data_url(path, mime):            # 本地文件转 base64 data-uri(可选)
    b64 = base64.b64encode(open(path, "rb").read()).decode()
    return f"data:{mime};base64,{b64}"

# 全能模式:参考视频(input_reference,1 段) + 参考图(images,可多张)同时用。
# ⚠ images 必须是【数组】["u1","u2"],不要写成 images0 / images1(会导致参考图不生效)。
payload = {
    "model": "flow-omni-1.1-flash",
    "prompt": "参考这段视频的运动,把主体换成参考图里的形象,平滑运镜,电影感",
    "aspect_ratio": "16:9",
    "seconds": "10",            # "4"/"6"/"8"/"10",字符串;不传默认 8 秒,四档同价
    # 参考视频:1 段,公网 URL(≤15 秒、中国可访问)或 base64(本站自动托管)
    "input_reference": "https://你的公网视频.mp4",   # 或 data_url("clip.mp4", "video/mp4")
    # 参考图:数组,建议 ≤6 张;URL 或 base64
    "images": [
        "https://你的图1.jpg",
        data_url("图2.png", "image/png"),
    ],
}

r = requests.post(f"{BASE}/v1/videos", headers=H, json=payload, timeout=60)
r.raise_for_status()
task_id = r.json().get("task_id") or r.json().get("id")
print("task_id:", task_id)

while True:                          # 轮询直到完成(通常 1-2 分钟,与时长档位无关)
    time.sleep(5)
    d = requests.get(f"{BASE}/v1/videos/{task_id}", headers=H, timeout=30).json()
    print("status:", d.get("status"), d.get("progress"))
    if str(d.get("status", "")).lower() == "completed":
        video_url = d.get("video_url") or (d.get("data") or [{}])[0].get("url")
        break
    if str(d.get("status", "")).lower() == "failed":
        raise RuntimeError(d.get("error") or d)

open("out.mp4", "wb").write(requests.get(video_url, timeout=180).content)
print("成片:", video_url)
⚠️ 当参考视频是内容很强的真实视频(v2v 编辑)时,模型会偏向保留原视频、参考图影响被弱化;想让参考图更明显,把 prompt 写清楚(例如“把画面主体换成参考图里的形象”)。参考视频须公网可访问、中国可下载、≤15 秒,或用 base64(本站自动托管为中国可达链接)。

轮询取片

# 轮询直到 status=completed
curl -sS "$BASE_URL/v1/videos/task_xxx" -H "Authorization: Bearer $TOKEN"
# => {"status":"completed","video_url":"https://sd.oaibox.xyz/d/dl/xxx.mp4",...}

# 下载成片:用上面返回的 video_url(mp4,地址已脱敏、我方域名)
curl -sSL "<上面返回的 video_url>" -o out.mp4

轮询间隔建议 3–5 秒、客户端超时 ≥ 300 秒;勿重复提交同一任务。

注意事项

Gemini 高速文本模型

高速分组的文本 / 多模态对话模型,与 Official 分组的官方标准模型名和价格完全隔离。OpenAI Chat 兼容,同时支持 Gemini 原生格式。

模型与价格

统一网关(令牌分组 gemini-fast / gemini-anti-ultra / gemini-vertex)

模型能力多模态附件计费
gemini-4-argon-app旗舰高速版,1M 上下文 / 复杂推理 / 思维链(不支持工具调用)✅ 图 / 视频 / 音频按 token(gemini-fast 入 ¥0.56/M · 出 ¥2.8/M;如需工具调用请用 gemini-anti-ultra 的 gemini-4-argon)
gemini-3.8-flash-app当前主力高速文本,最省✅ 图 / 视频 / 音频按 token
gemini-3.5-flash高速文本,综合能力更强✅ 图 / 视频 / 音频按 token
gemini-3.1-proPro 档,长文 / 复杂推理✅ 图 / 视频 / 音频按 token
gemini-3.1-flash-lite轻量高速✅ 图 / 视频 / 音频按 token
gemini-3.5-flash-lite轻量高速(新版)✅ 图 / 视频 / 音频按 token
gemini-2.0-flash-thinking思维链档,最省✅ 图 / 视频 / 音频按 token
以上 7 个模型在 gemini-fast 分组走同一条高速服务链路,多模态附件行为一致。同分组还有 gemini-image / gemini-image-pro(图像生成)与 gemini-music(音乐),见各自章节。不同客户分组倍率可能不同,实际单价以账号「模型广场」为准。

gemini-4-argon 多分组差异化定价说明

分组代号分组展示名模型名分组倍率输入单价输出单价缓存单价定位说明
gemini-anti-ultraGemini Antigravity Ultragemini-4-argon1.0¥2/M(¥2.00/M)¥10/M(¥10.00/M)¥0.2/M反重力 Ultra 独立号池专线(官方基准 2/10 无折扣,高稳主力,已纳入 auto 链)
gemini-vertexGemini Vertexgemini-4-argon1.8¥3.6/M¥18/M¥0.36/MGoogle Vertex AI 官方企业级通道(详见「Google Vertex / 官方原生」章节)
gemini-fastGemini Fastgemini-4-argon-app1.0¥0.56/M¥2.8/M¥0.056/M高性价比快速通道(纯对话/图文,不支持工具调用)

接口信息

项说明
请求POST https://api.oairegbox.com/v1/chat/completions(OpenAI 兼容,同步;stream:true 可流式)
POST https://api.oairegbox.com/v1beta/models/gemini-4-argon:generateContent(Gemini 原生格式;流式用 :streamGenerateContent)
鉴权OpenAI 格式用 Authorization: Bearer sk-你的令牌;Gemini 原生格式用 x-goog-api-key: sk-你的令牌
令牌分组gemini-fast(高性价比快速通道) / gemini-anti-ultra(反重力 Ultra 独立专线,auto 自动分组已包含) / gemini-vertex(Google Vertex AI 通道)

核心参数

参数类型必填默认说明
modelstring是-见上表模型名;统一网关不加 -fast 后缀
messagesarray是-OpenAI 消息数组;content 可含图片实现多模态
streambool否false是否流式返回
temperaturenumber否-采样温度
max_tokensint否-最大输出 token
提示词长度上限 = 模型上下文窗口(走 Gemini 官方,可容纳很长文本),无我方硬性字符限制。

提交方式

标准 OpenAI Chat JSON。可直接用 OpenAI SDK:把 base_url 指向网关、api_key 用你的令牌即可。

示例请求

# 基础对话(非流式)
curl https://YOUR_BASE/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.8-flash-app",
    "messages": [
      {"role": "user", "content": "用一句话介绍你自己"}
    ]
  }'

# 流式输出(stream: true,SSE 实时打字效果)
curl https://YOUR_BASE/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.8-flash-app",
    "messages": [
      {"role": "user", "content": "用三点总结人工智能的发展趋势"}
    ],
    "stream": true
  }'

# 多模态图文对话(图片传公网 URL 或 base64 Data URI)
curl https://YOUR_BASE/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.8-flash-app",
    "messages": [
      {
        "role": "user",
        "content": [
          {"type": "text", "text": "描述这张图片中的主体内容"},
          {"type": "image_url", "image_url": {"url": "https://your-public-image.jpg"}}
        ]
      }
    ]
  }'

# Gemini 原生格式(非流式)
curl "https://YOUR_BASE/v1beta/models/gemini-4-argon:generateContent" \
  -H "x-goog-api-key: sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {"parts": [{"text": "用一句话介绍你自己"}]}
    ]
  }'

多模态附件(图片 / 视频反推 / 音频)

在 messages[].content 里挂附件即可。附件由平台自动下载并转交给模型,你只要给一个公网可访问的 URL(或 base64),不需要自己转存。典型用途是视频反推:丢一段片子进去,让模型描述画面、还原分镜或倒推提示词。

支持的写法

类型写法取值
图片{"type":"image_url","image_url":{"url":"…"}}
也接受 "image_url":"…" 直接给字符串
公网 URL / data:image/…;base64, / 裸 base64
视频{"type":"video_url","video_url":"…"}
也接受 "video_url":{"url":"…"} 对象形式
公网 URL / data:video/mp4;base64, / 裸 base64
音频{"type":"input_audio","input_audio":{"data":"<base64>","format":"mp3"}}
也接受 {"type":"audio_url","audio_url":"…"}
base64 或公网 URL
类型以文件内容为准,不以你写的字段名为准:把 mp4 塞进 image_url 也会被正确识别成视频并按视频计费。

限制

项限制超限表现
单个附件大小12MB返回 400,附带实际大小
视频 / 音频时长180 秒返回 400,附带实际时长
附件数量不限,但合计仍受上面两条约束—
历史轮次只有 role: "user" 的轮次会上传附件助手轮里的 URL 会被忽略,不重复计费
上传失败、格式不支持、超限都会直接返回错误,不会「忽略附件照常回答」——否则你会拿到一个看起来正常、实际上没看过文件的回答。

计费:附件按实际体量计入 prompt_tokens

与 Google 官方多模态计量口径一致,图片按实际像素分块、视频与音频按实际时长,不是固定一口价。返回的 usage 就是实际扣费依据(流式模式下随 [DONE] 前最后一个 chunk 返回)。

类型计量规则示例
图片两边都 ≤384px 记 258 token;更大则按分块计,块边长 = 短边 ÷ 1.5(限制在 256–768),每块 258 token1024×1024 → 4 块 = 1032
4000×3000 → 24 块 = 6192
视频263 token / 秒(含音轨)30s → 7890
60s → 15780
180s → 47340
音频32 token / 秒60s → 1920
文本部分照常计入,附件 token 是叠加上去的。无法读出时长或尺寸的文件(例如编码异常)按保守固定值计,不会按 0 计。

示例:视频反推

# 传公网 URL,平台会自动下载并转交给模型
curl https://YOUR_BASE/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.8-flash-app",
    "messages": [
      {
        "role": "user",
        "content": [
          {"type": "text", "text": "逐镜头描述这段视频:画面内容、镜头运动、节奏,并倒推出一段可以复现它的提示词"},
          {"type": "video_url", "video_url": "https://your-cdn.com/clip.mp4"}
        ]
      }
    ]
  }'

# 传 base64(无公网 URL 时)
curl https://YOUR_BASE/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.8-flash-app",
    "messages": [
      {
        "role": "user",
        "content": [
          {"type": "text", "text": "这个视频里出现了什么文字?"},
          {"type": "video_url", "video_url": "data:video/mp4;base64,AAAAGGZ0eXBpc29t..."}
        ]
      }
    ]
  }'

示例:图片理解 / 音频

# 图片
curl https://YOUR_BASE/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.8-flash-app",
    "messages": [{"role":"user","content":[
      {"type":"text","text":"这张图里的文字是什么?"},
      {"type":"image_url","image_url":{"url":"https://your-public-image.jpg"}}
    ]}]
  }'

# 音频
curl https://YOUR_BASE/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.8-flash-app",
    "messages": [{"role":"user","content":[
      {"type":"text","text":"把这段音频转写成文字"},
      {"type":"input_audio","input_audio":{"data":"<BASE64>","format":"mp3"}}
    ]}]
  }'

Python(OpenAI SDK)

from openai import OpenAI
client = OpenAI(base_url="https://YOUR_BASE/v1", api_key="sk-xxx")

resp = client.chat.completions.create(
    model="gemini-3.8-flash-app",
    messages=[{"role": "user", "content": [
        {"type": "text", "text": "逐镜头描述这段视频,并倒推出提示词"},
        {"type": "video_url", "video_url": "https://your-cdn.com/clip.mp4"},
    ]}],
)
print(resp.choices[0].message.content)
print(resp.usage)   # prompt_tokens 已包含视频 token(时长 x 263)

说明

响应说明(同步即返,无需轮询)

本接口为同步对话接口,无需轮询。一次 POST 即可在 choices[0].message.content 取得完整回复;设置 stream: true 时按 SSE 标准流式增量推送。

Python 完整请求

from openai import OpenAI
client = OpenAI(base_url="https://YOUR_BASE/v1", api_key="sk-xxx")
resp = client.chat.completions.create(
    model="gemini-3.8-flash-app",
    messages=[{"role": "user", "content": "用一句话介绍杭州"}],
)
print(resp.choices[0].message.content)

联网来源引用(annotations)

当回答触发了联网搜索,我们会把 Gemini 实际引用的网页按 OpenAI 官方 annotations / url_citation 规范一并返回,同时正文里的 markdown 链接原样保留(不会被压成裸域名)。GEO / AEO 监测、引用溯源、竞品可见度分析可直接消费该字段。

平台令牌分组支持的模型
统一网关 newapi.oairegbox.ccgemini-fastgemini-3.1-pro · gemini-3.5-flash · gemini-3.1-flash-lite · gemini-3.5-flash-lite · gemini-3.8-flash-app · gemini-2.0-flash-thinking
上表模型走同一套服务体系,行为一致。反重力 gemini-anti 分组(gemini-3.1-pro-low / gemini-3.8-flash 等)是另一条独立源站线路,不返回 annotations。需要引用来源请务必用上表中的模型。

非流式:在 choices[].message 下

{
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "…**来源网址**:[semrush.com](https://www.semrush.com/) …",
      "annotations": [
        {
          "type": "url_citation",
          "url_citation": {
            "url": "https://www.da-vinci.com.tw/cn/seo-tools",
            "title": "2026年SEO人必看!最新、最齐全的32个SEO软体介绍!"
          }
        }
      ]
    },
    "finish_reason": "stop"
  }]
}

流式:在最后一个带 finish_reason 的 chunk 上

stream:true 时正文照常增量下发,完整的 annotations 随收尾 chunk 一次性给出(该 chunk finish_reason 非空、delta.content 为空)。中间 chunk 不会携带引用。

data: {"choices":[{"delta":{"content":"…正文…"},"finish_reason":null}]}

data: {"choices":[{"delta":{"annotations":[{"type":"url_citation","url_citation":{"url":"https://…","title":"…"}}]},"finish_reason":"stop"}]}

data: [DONE]

字段说明

字段说明
type固定 "url_citation"
url必有。已还原为可直接访问的真实地址,非跳转包装链接;末尾的 #:~:text= 高亮片段已去除,并按 URL 去重
title平台给出时返回;取不到则该键省略
start_index / end_index不返回。官方未提供引用与正文字符区间的对应关系,凭空构造会得到错误的定位,故按规范允许的方式省略
未触发联网搜索的普通问答不会带 annotations 键(是省略,不是空数组),请按「键存在与否」判断,不要假设它一定存在。

取引用示例(Python)

from openai import OpenAI
client = OpenAI(base_url="https://YOUR_BASE/v1", api_key="sk-xxx")
resp = client.chat.completions.create(
    model="gemini-3.1-pro",
    messages=[{"role": "user", "content": "2026年最好用的SEO工具有哪些?请给出来源网址"}],
)
msg = resp.choices[0].message
print(msg.content)
for a in (getattr(msg, "annotations", None) or []):
    c = a["url_citation"] if isinstance(a, dict) else a.url_citation
    print(c.get("title", ""), c["url"])
想稳定拿到引用,提示词里明确要求「请给出来源网址」之类的联网意图,命中率更高。

注意事项

建议

DeepSeek 文本模型

DeepSeek V4.1 Flash 对话模型,OpenAI Chat 兼容,1M 上下文,支持缓存命中优惠。按北京时间分高峰 / 空闲两档计价:周末全天与工作日非高峰时段都按空闲价。

模型与价格

模型能力计费
deepseek-v4-1-flash-260910DeepSeek V4.1 Flash(260910 版),1M 上下文,默认带思考按 token,分时段
时段(北京时间)输入输出缓存命中输入
空闲:周末全天;周一至周五 0:00–9:00、12:00–14:00、18:00–24:00¥0.63 / 百万 token¥2.53 / 百万 token¥0.0127 / 百万 token
高峰:周一至周五 9:00–12:00、14:00–18:00¥1.26 / 百万 token¥5.06 / 百万 token¥0.0254 / 百万 token
以请求结算时刻所在时段计价,时段按星期判定、不单独处理法定节假日。缓存命中部分(usage.prompt_tokens_details.cached_tokens)按缓存价计。不同客户分组倍率可能不同,实际单价以账号「模型广场」为准。

接口信息

项说明
请求POST /v1/chat/completions(OpenAI 兼容,同步;stream:true 可流式)
鉴权Authorization: Bearer sk-你的令牌
令牌分组DeepSeek(auto 令牌直接可用)

核心参数

参数类型必填默认说明
modelstring是-deepseek-v4-1-flash-260910
messagesarray是-OpenAI 消息数组
streambool否false是否流式返回
max_tokensint否-最大输出 token。思考内容也计入输出并占用此上限,开启思考时请给足(建议 ≥ 1024),否则可能只拿到空正文
thinkingobject否开启{"type":"disabled"} 关闭思考,直接出正文、更快更省;{"type":"enabled"} 开启
temperaturenumber否-采样温度

示例请求

# 关闭思考,直接回答
curl https://YOUR_BASE/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-1-flash-260910",
    "messages": [{"role": "user", "content": "用一句话介绍你自己"}],
    "thinking": {"type": "disabled"}
  }'

# 开启思考(默认),流式输出
curl https://YOUR_BASE/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-1-flash-260910",
    "messages": [{"role": "user", "content": "用三点总结人工智能的发展趋势"}],
    "max_tokens": 4096,
    "stream": true
  }'

注意事项

Gemini 图像生成

提供两条 Gemini 图像生成线路:gemini-fast 分组(固定按张计费,走 POST /v1/images/generations 标准生图接口)与 gemini-vertex 分组(Google Vertex AI 官方原生模型 gemini-3-pro-image 等,按 token 计费,走 POST /v1/chat/completions 或 /v1beta 原生接口)。

模型与价格

1. gemini-fast 分组(按次计费 · /v1/images/generations)

模型分组计费价格调用端点
gemini-imagegemini-fast按次¥0.11/张POST /v1/images/generations / /v1/images/edits
gemini-image-progemini-fast按次¥0.12/张POST /v1/images/generations / /v1/images/edits

2. gemini-vertex 分组(Google Vertex AI 官方原生模型 · 按 token 计费)

模型定位说明分组(倍率 1.8)实际单价(入 / 出 / 缓存)单张图片预估调用端点
gemini-3-pro-imageNano Banana Pro 旗舰原生多模态生图 / 图文编辑gemini-vertex入 ¥3.6/M · 出 ¥216/M · 缓存 ¥0.36/M约 ¥0.27 ~ ¥0.29 / 张POST /v1/chat/completions
POST /v1beta/models/gemini-3-pro-image:generateContent
gemini-3.1-flash-imageNano Banana 2 轻量高速原生生图gemini-vertex入 ¥0.9/M · 出 ¥108/M · 缓存 ¥0.09/M约 ¥0.13 ~ ¥0.15 / 张同上
gemini-2.5-flash-imageGemini 2.5 Flash 原生生图gemini-vertex入 ¥0.54/M · 出 ¥54/M · 缓存 ¥0.054/M约 ¥0.07 ~ ¥0.08 / 张同上
💡 选型提示:需要标准 OpenAI /v1/images/generations 端点与固定按张计费请用 gemini-fast 分组的 gemini-image / gemini-image-pro(见下方参数与示例);需要 Google Vertex AI 官方原生的 gemini-3-pro-image 多轮图文对话生图请用 gemini-vertex 分组令牌(调用示例见左侧导航「Google Vertex / 官方原生」章节)。

接口信息(gemini-image / gemini-image-pro)

通过 POST /v1/images/generations 调用,参数与 GPT-Image-2 类似。

示例请求

curl -X POST https://YOUR_BASE/v1/images/generations \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-image",
    "prompt": "赛博朋克风格的东京夜景",
    "size": "1024x1024"
  }'

核心参数

参数类型必填说明
modelstring是gemini-image / gemini-image-pro
promptstring是图片描述
sizestring否控制横 / 竖 / 方画幅,详见下方「画幅与方向」;竖屏为尽力而为
image / imagesstring / string[]否参考图(图生图 / 编辑),单张字符串或多张数组,公网 URL 或 base64;最多 5 张、每张 ≤ 5MB
maskstring否蒙版图,局部重绘可选

提交方式

模式端点参考图
文生图POST /v1/images/generations(JSON)无
图生图 / 编辑同一端点(JSON),或 /v1/images/editsimage 字段(URL 或 base64,单张或数组)

画幅与方向(size)

size 决定出图方向。现已支持任意像素尺寸与方向关键词,网关会据此让模型生成对应画幅:

size 取值方向说明
1024x1024 / 512x512(宽=高)方形 1:1默认方向
1024x1824 / 720x1280(高>宽)竖屏 9:16宽小于高即竖屏
1824x1024 / 1280x720(宽>高)横屏 16:9宽大于高即横屏
portrait / vertical竖屏 9:16方向关键词
landscape / horizontal横屏 16:9方向关键词
9:16 / 16:9 / 1:1按比例直接传纵横比
说明:只传单一数字(如 1024)或清晰度名(如 2k/4k)不含方向信息,此时按模型默认方向出图。竖屏为尽力而为(Gemini 侧对画幅遵循为概率性),带明确的 宽x高 或方向关键词可显著提高竖屏命中率。/v1/images/edits(图生图)同样支持 size 控制方向。

参考图(图生图 / 编辑)

附带参考图即可进行图生图 / 编辑。image 字段同时支持字符串与数组两种写法,取值可为公网 URL 或 data:image Base64:

字段类型说明
imagestring 或 string[]单张参考图(字符串)或多张参考图(数组)均可
imagesstring[]多张参考图数组(与 image 等效)
maskstring蒙版图,局部重绘可选
curl -X POST https://YOUR_BASE/v1/images/generations \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-image",
    "prompt": "把这两张图融合成一张海报",
    "image": ["https://cdn.example.com/a.jpg", "https://cdn.example.com/b.jpg"]
  }'
兼容说明:image 传单张用字符串、传多张用数组均可。早期部分客户端把图片写成数组会报 cannot unmarshal array into ... image of type string,现已兼容修复,无需改动客户端。参考图最多 5 张、每张 ≤5MB。

轮询取片

本模型为同步接口,请求成功后直接在响应 data[] 返回图片,无需轮询。

Python 完整请求

import requests

BASE = "https://YOUR_BASE/v1"
H = {"Authorization": "Bearer sk-xxx", "Content-Type": "application/json"}

# 文生图(size 传 宽x高 控制方向,竖屏尽力而为)
r = requests.post(f"{BASE}/images/generations", headers=H, json={
    "model": "gemini-image",
    "prompt": "赛博朋克风格的东京夜景",
    "size": "1024x1824"
}).json()
print(r["data"][0].get("url") or "b64")

# 图生图:image 传单张字符串或多张数组(URL 或 base64)
r2 = requests.post(f"{BASE}/images/generations", headers=H, json={
    "model": "gemini-image",
    "prompt": "把这两张图融合成一张海报",
    "image": ["https://cdn.example.com/a.jpg", "https://cdn.example.com/b.jpg"]
}).json()

注意事项

建议

GPT-Image-2(1K / 2K / 4K · 全系列支持同步与异步) Image

📢 全清晰度档位就绪 & 双模态无感升级:GPT-Image-2 覆盖 1K 基准版、2K 高清版与真 4K UHD 超清版 三大主力档位。全系列所有模型均原生支持默认同步直接出图(完美适配官方 OpenAI SDK 零报错即插即用)与 async: true 异步任务轮询双模态,并 100% 保持对存量 POST /v1/videos 视频端点的向下兼容。支持文生图、图生图编辑与 Chat 对话生图。按张固定计费,生成失败不扣费,成品纯净无水印。
输入限制:JSON 请求体最多 8 MiB;参考图可使用公网 HTTPS 直链或完整 data:image/png;base64,...、data:image/jpeg;base64,...,Base64 解码后的参考图合计最多 5 MiB。超过限制会在提交前返回 400,不会扣费。

模型与价格

核心模型名档位定位标称长边 / 推荐分辨率单价 (元/张)同步能力 (Sync)异步能力 (Async)
gpt-image-21K 基准版1024² (1:1), 1536×1024 (16:9), 1024×1536 (9:16)¥0.02510~20s 快速出图返回图片立即返回 task_id,后台轮询取图
gpt-image-2-2k2K 高清版2048×2048 (1:1), 2048×1152 (16:9), 1152×2048 (9:16)¥0.045支持(需客户端超时 ≥600s,防断连丢图)⭐ 强烈推荐:立即返回 task_id,轮询取图零丢失
gpt-image-2-4k4K 超清版3840×2160 (16:9 真 4K), 2160×3840 (9:16), 2880² (1:1)¥0.065支持(需客户端超时 ≥600s,防断连丢图)⭐ 强烈推荐:立即返回 task_id,轮询取图零丢失
⚠️ 重要更新说明(2K / 4K 强烈建议走异步处理,防超时丢图):
gpt-image-2-2k 与 gpt-image-2-4k(以及 2.5 系列的 2K / 4K 模型)输出像素量极大,单张渲染及多通道容灾切换耗时较长(通常 60~180 秒,高峰期自动切流重试可达 300 秒以上)。
• 同步模式风险:若使用默认同步长连接,一旦调用方本地客户端、反代网关(如常见的 60s / 180s / 300s 限制)或中间网络提前超时断开,会导致服务端已完成生图并正常扣费,但调用方因连接中断收不到图片(产生图片丢失风险),且同步断开后无法凭请求号(request_id)通过接口反查恢复。
• 强烈建议方案:调用 2K / 4K 模型时,请务必显式开启异步模式——在 JSON 请求体传 "async": true(或 URL 加 ?async=true / Header 传 X-New-Api-Async: true,或调用 POST /v1/videos)。提交后 1~2 秒即刻返回 task_id,再通过 GET /v1/images/generations/{task_id} 轮询状态(间隔 5~10 秒),生成完成后建议在 1 小时内下载转存成片,即可 100% 规避连接超时导致的丢图问题!若确需使用同步直出,请务必将调用链路各级超时设为 ≥ 600 秒。
模型合并说明:
• 模型合并:原 gpt-image-2-1k 已完全合并进 gpt-image-2,对外统一展示为 gpt-image-2,系统已配置同名平滑兼容映射(历史传参 gpt-image-2-1k 完全正常处理);
• 遗留模型下线:历史遗留模型(gpt-image-2-1k-async、gpt-image-2-3.5k)已彻底下线停运,请直接使用对应标准档位;
• 风格变体:若需要 Adobe Firefly 真实摄影质感或艺术插画设计,请查看邻近页签「GPT Image 2.5」。

接口信息

端点方式默认模态功能说明
POST /v1/images/generationsJSON同步直出(传 async:true 转异步)官方原生文生图标准端点,完美适配官方 OpenAI SDK
POST /v1/images/editsmultipart / JSON同步直出(传 async:true 转异步)图生图 / 图像编辑(参考图 + 提示词描述修改)
POST /v1/chat/completionsJSON同步直出Chat 对话生图(在 messages content 中传入 Base64 image_url)
POST /v1/videos 或 /v1/video/generationsJSON异步任务轮询存量兼容端点:100% 保持历史行为返回 task_id,老脚本零改动、零报错

双模态调用机制(同步 / 异步自由切换)

模式 A:默认同步阻塞模式(全面支持官方 OpenAI SDK)

无需额外参数,直接调用即可。网关内部自动等待生成完毕并返回标准 ImageResponse 结构:

{
  "created": 1726567200,
  "data": [
    {
      "url": "https://gpt2api.oairegbox.cc/simg/yaimg_xxx.png",
      "b64_json": null
    }
  ]
}

开发优势:完美适配 Python client.images.generate()、Node.js openai.images.generate() 等官方 SDK,彻底告别以往报 Task object has no attribute 'data' 的痛点!

模式 B:显式异步任务模式(适合大批量并发 / 长耗时任务)

在请求 Body 中传 "async": true,或在 URL 中添加 ?async=true,或携带 Header X-New-Api-Async: true。接口将立即返回任务 ID,规避客户端长连接超时:

{
  "id": "task_GEDO8H85WHxQV98z4tM2kEfJMcVxzLlq",
  "status": "queued",
  "created_at": 1726567200
}

统一参数字典与多模态输入

参数名类型必填默认值详细说明与取值范围
modelstring是-模型名:gpt-image-2、gpt-image-2-2k、gpt-image-2-4k(兼容历史名 gpt-image-2-1k)
promptstring是-画面动作与细节描述词。按字符数计(中英文一视同仁),建议 ≤ 8000 字符(硬上限约 1 万字符)
sizestring否依模型精确像素分辨率(如 1024x1024、2048x2048、3840x2160 等);size 优先级高于 aspect_ratio
aspect_ratio / ratiostring否1:1画幅比例,支持 1:1、16:9、9:16、4:3、3:4。平台自动根据模型清晰度档位换算为对应标准像素尺寸
response_formatstring否url返回格式:url(默认下载直链)或 b64_json(Base64 编码数据)
asyncboolean否false是否开启异步任务模式。默认 false 为同步直接返图;设为 true 即刻返回 task_id 供轮询
ninteger否1单次生成图片张数,默认 1

图生图 / 参考图(Edits)多模态支持说明

平台支持三种灵活的参考图传递方式:

清晰度档位与真 4K 规格详解

模型推荐分辨率约等于像素量典型用途价格
gpt-image-21024×1024 (1:1), 1536×1024 (16:9), 1024×1536 (9:16)1K 基准版约 105~157 万头像、缩略图、社媒配图、快速出图¥0.025/张
gpt-image-2-2k2048×2048 (1:1), 2048×1152 (16:9), 1152×2048 (9:16)2K 高清版约 236~419 万常规海报、Banner、电商主图¥0.045/张
gpt-image-2-4k3840×2160 (16:9), 2160×3840 (9:16), 2880×2880 (1:1)真 4K UHD约 829 万宽屏/竖屏海报、视频封面、影视级超高清大图¥0.065/张
关于真 4K UHD 规格:gpt-image-2-4k 输出标准 4K UHD 画幅——横版 3840×2160(16:9)或竖版 2160×3840(9:16),长边恒 3840,与 4K 电视/显示器同规格。方图推荐输出 2880×2880 或使用 2K 档的 2048×2048。画幅不影响计费,一律 ¥0.065/张。

4K 各画幅尺寸标准

真 4K 长边恒 3840,支持任意非方图比例(不再只有 16:9 / 9:16)。传 aspect_ratio 或 size 即按该比例出图、长边保持 3840。方图 1:1 推荐 2880×2880 或 2K 档 2048²。下表为实测输出;画幅不影响计费,一律 ¥0.065/张。

aspect_ratio(或 size)实测输出方向典型用途
16:9(不传时默认)3840×2160横视频封面 / 宽屏壁纸 / 横版海报
9:162160×3840竖手机屏 / 竖版海报 / 短视频封面
3:42880×3840竖竖版海报 / 电商详情页
1:1 方图2880×2880 / 2048×2048方社媒方图 / 高清头像

调用代码示例

1. 模式 A:默认同步出图(标准 OpenAI 官方 SDK)

from openai import OpenAI

client = OpenAI(
    base_url="https://YOUR_BASE/v1",
    api_key="sk-你的生图令牌"
)

# 默认同步直出:原生返回 ImageResponse,无需轮询
response = client.images.generate(
    model="gpt-image-2-2k",
    prompt="一只可爱的金毛犬在草地上奔跑,高清写真,柔和晨光",
    size="2048x2048",
    response_format="url"
)

print("图片已生成:", response.data[0].url)

2. 模式 A:默认同步出图(curl)

curl -X POST https://YOUR_BASE/v1/images/generations   -H "Authorization: Bearer sk-你的生图令牌"   -H "Content-Type: application/json"   -d '{
    "model": "gpt-image-2-2k",
    "prompt": "一只橘猫趴在窗台上晒太阳,水彩画风格,细节丰富",
    "size": "2048x2048",
    "response_format": "url"
  }'
# 直接返回 {"created": 1726567200, "data": [{"url": "https://...", "b64_json": null}]}

3. 模式 B:显式异步任务模式(curl)

# ① 提交任务(传 "async": true,立即返回 task_id)
curl -X POST https://YOUR_BASE/v1/images/generations   -H "Authorization: Bearer sk-你的生图令牌"   -H "Content-Type: application/json"   -d '{
    "model": "gpt-image-2-4k",
    "prompt": "浩瀚星空下的未来科幻都市,霓虹流动,电影级宽银幕",
    "aspect_ratio": "16:9",
    "async": true
  }'
# → {"id": "task_GEDO8H85WHxQV98z4tM2kEfJMcVxzLlq", "status": "queued", ...}

# ② 轮询取图(每 3–5 秒查询一次)
curl -X GET https://YOUR_BASE/v1/images/generations/task_GEDO8H85WHxQV98z4tM2kEfJMcVxzLlq   -H "Authorization: Bearer sk-你的生图令牌"
# 完成后响应中 data[0].url 包含图片直链。

# ③ 成片下载(从 completed 响应里的 url 或直接访问 /content)
curl -L "https://YOUR_BASE/v1/images/generations/task_GEDO8H85WHxQV98z4tM2kEfJMcVxzLlq/content"   -H "Authorization: Bearer sk-你的生图令牌" -o city_4k.png

4. 图生图 / 原图编辑(Edits 多模态)

# 方式 1:标准 multipart 表单上传(本地文件)
curl -X POST https://YOUR_BASE/v1/images/edits   -H "Authorization: Bearer sk-你的生图令牌"   -F "model=gpt-image-2-2k"   -F "prompt=保留人物主体构图,将背景替换为海边夕阳落日"   -F "image=@portrait.png"

# 方式 2:JSON 传参(支持公网 URL 或 Base64)
curl -X POST https://YOUR_BASE/v1/images/edits   -H "Authorization: Bearer sk-你的生图令牌"   -H "Content-Type: application/json"   -d '{
    "model": "gpt-image-2-4k",
    "prompt": "保留人物主体不变,将背景改为赛博朋克夜市街道",
    "image": "https://cdn.example.com/portrait.jpg",
    "aspect_ratio": "16:9"
  }'

5. Chat 对话生图(POST /v1/chat/completions)

curl -X POST https://YOUR_BASE/v1/chat/completions   -H "Authorization: Bearer sk-你的生图令牌"   -H "Content-Type: application/json"   -d '{
    "model": "gpt-image-2",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "把这张参考图绘制成未来赛博朋克风格的海报"},
        {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,<BASE64>"}}
      ]
    }]
  }'

6. 存量兼容端点(POST /v1/videos 保持无感)

# 存量老脚本继续请求 /v1/videos,完全保持原有 task_id 异步轮询体验
curl -X POST https://YOUR_BASE/v1/videos   -H "Authorization: Bearer sk-你的生图令牌"   -H "Content-Type: application/json"   -d '{
    "model": "gpt-image-2-4k",
    "prompt": "a cinematic product poster, ultra sharp",
    "aspect_ratio": "16:9"
  }'
# 返回 task_id,通过 GET /v1/videos/{task_id} 轮询取片,存量业务零修改

Python 完整异步生命周期脚本(4K 实测)

import time
import requests

BASE_URL = "https://YOUR_BASE/v1"
TOKEN = "sk-你的生图令牌"
HEADERS = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}

# 1. 提交异步生成任务
resp = requests.post(
    f"{BASE_URL}/images/generations",
    headers=HEADERS,
    json={
        "model": "gpt-image-2-4k",
        "prompt": "雪山脚下清澈见底的高山湖泊,清晨第一缕阳光,超高清摄影",
        "aspect_ratio": "16:9",
        "async": True,
    },
)
resp.raise_for_status()
task_id = resp.json()["id"]
print(f"异步任务已提交,Task ID: {task_id}")

# 2. 轮询取图(建议间隔 4 秒)
while True:
    time.sleep(4)
    poll = requests.get(f"{BASE_URL}/images/generations/{task_id}", headers=HEADERS).json()
    status = poll.get("status")
    print(f"轮询状态: {status}")
    if status == "completed":
        img_url = poll["data"][0]["url"]
        break
    elif status in ("failed", "failure", "error"):
        raise RuntimeError(f"生成失败: {poll.get('error')}")

# 3. 下载保存成片
img_data = requests.get(img_url, headers=HEADERS).content
with open("lake_4k.png", "wb") as f:
    f.write(img_data)
print("4K 成片已成功保存至本地 lake_4k.png!")

注意事项(输入格式与错误处理)

建议

GPT-Image 2.5(Flare / Sunburst · 全系列支持同步与异步) Image

🎨 新一代 GPT-Image 2.5 艺术与摄影双引擎:提供 Flare(真实摄影感与物理光影)与 Sunburst(艺术插画设计与视觉海报)两个画风变体。全系模型均原生支持默认同步直接出图(标准 OpenAI SDK 零报错即插即用)与 async: true 异步任务轮询双模态,并 100% 保持对存量 POST /v1/videos 视频端点的向下兼容。支持文生图与图生图编辑。按张固定计费,生成失败不扣费,成品纯净无水印。

模型与价格

核心模型名变体定位分辨率规格单价 (元/张)调用模态支持
gpt-image-2.5-flare-2kFlare(真实摄影感)2K(2048×2048)¥0.040/张同步直出 + 异步轮询 + 视频端点兼容
gpt-image-2.5-flare-4kFlare(精细摄影)真 4K UHD(16:9→3840×2160 / 9:16→2160×3840)¥0.065/张同步直出 + 异步轮询 + 视频端点兼容
gpt-image-2.5-sunburst-2kSunburst(艺术插画)2K(2048×2048)¥0.040/张同步直出 + 异步轮询 + 视频端点兼容
gpt-image-2.5-sunburst-4kSunburst(超精艺术)真 4K UHD(16:9→3840×2160 / 9:16→2160×3840)¥0.065/张同步直出 + 异步轮询 + 视频端点兼容
Flare 与 Sunburst 风格选择说明:
• Flare:真实物理世界质感、商品写实摄影、人像、纪实风光,光影与细节更细腻;
• Sunburst:概念艺术插画、二次元、扁平视觉、海报设计、丰富色彩张力;
两画风变体的分辨率、参考图能力、价格完全一致;原 -sync 冗余后缀模型已全面收敛至主模型,默认支持同步直出。
⚠️ 重要更新说明(2.5 全系 2K / 4K 强烈建议走异步处理,防超时丢图):
GPT-Image 2.5 全系四个模型(gpt-image-2.5-flare-2k、gpt-image-2.5-flare-4k、gpt-image-2.5-sunburst-2k、gpt-image-2.5-sunburst-4k)均为 2K / 真 4K 高清大图,单张渲染及多通道容灾切换耗时较长(通常 60~180 秒,高峰期自动切流重试可达 300 秒以上)。
• 同步模式风险:若使用默认同步长连接,一旦调用方本地客户端、反代网关(如常见的 60s / 180s / 300s 限制)或中间网络提前超时断开,会导致服务端已完成生图并正常扣费,但调用方因连接中断收不到图片(产生图片丢失风险),且同步断开后无法凭请求号(request_id)通过接口反查恢复。
• 强烈建议方案:调用本系列 2K / 4K 模型时,请务必显式开启异步模式——在 JSON 请求体传 "async": true(或 URL 加 ?async=true / Header 传 X-New-Api-Async: true,或调用 POST /v1/videos)。提交后 1~2 秒即刻返回 task_id,再通过 GET /v1/images/generations/{task_id} 轮询状态(间隔 5~10 秒),生成完成后建议在 1 小时内下载转存成片,即可 100% 规避连接超时导致的丢图问题!若确需使用同步直出,请务必将调用链路各级超时设为 ≥ 600 秒。

端点与调用方式

调用模式请求端点参数特征出图机制与说明
异步任务(图片端点 · ⭐强烈推荐)POST /v1/images/generations 或 /v1/images/edits传 "async": true 或 ?async=true2K/4K 生产首选(防超时丢图):立即返回 {"id": "task_xxx", "status": "queued"} → 轮询 GET /v1/images/generations/{id} → 读 /content
同步出图(默认模态)POST /v1/images/generations 或 /v1/images/edits无需传 async(或 async: false)标准 OpenAI ImageResponse:直接阻塞返回图片(适配官方 SDK,⚠️ 调用方超时须设 ≥600s,否则断连会导致丢图)
异步任务(视频端点兼容)POST /v1/videos 或 /v1/video/generations老视频端点标准格式100% 保持历史行为:返回 task_id → 轮询 GET /v1/videos/{id} → 取 video_url

画幅与尺寸规格

用 aspect_ratio(16:9 / 9:16 / 3:4 等)或 size(WxH,优先级更高)控制画幅。2K 档长边 2048(方图 2048×2048、横版 2048×1152…);4K 档长边恒 3840、真 4K UHD(16:9→3840×2160、9:16→2160×3840,其它比例按长边 3840 出)。4K 无方图——方图 1:1 会退回横版 3840×2160,要方图请用 2K(2048²)。画幅不影响计费。

aspect_ratio2K 档(-2k)4K 档(-4k)
默认(不传)/ 1:12048×20483840×2160(⚠ 4K 无方图 → 退横版)
16:92048×11523840×2160
9:161152×20482160×3840
4:32048×15363840×2880
3:41536×20482880×3840

调用代码示例

1. 模式 A:默认同步出图(标准 OpenAI 官方 Python SDK)

from openai import OpenAI

client = OpenAI(
    base_url="https://YOUR_BASE/v1",
    api_key="sk-你的生图令牌"
)

# 默认同步直出:无需轮询,直接返回图片
response = client.images.generate(
    model="gpt-image-2.5-flare-2k",
    prompt="a single red apple on a white ceramic plate, studio product photo, soft lighting",
    size="2048x2048",
    response_format="url"
)

print("2.5 Flare 摄影图片生成成功:", response.data[0].url)

2. 模式 A:默认同步出图(curl)

curl -X POST https://YOUR_BASE/v1/images/generations   -H "Authorization: Bearer sk-你的生图令牌"   -H "Content-Type: application/json"   -d '{
    "model": "gpt-image-2.5-sunburst-2k",
    "prompt": "futuristic flying car soaring through neon cloudy sky, colorful concept art",
    "size": "2048x2048",
    "response_format": "url"
  }'
# 一次返回标准 ImageResponse,直接获取成片 URL

3. 模式 B:显式异步任务模式(curl 4K 示例)

# ① 提交任务(传 "async": true,立即返回 task_id)
curl -X POST https://YOUR_BASE/v1/images/generations   -H "Authorization: Bearer sk-你的生图令牌"   -H "Content-Type: application/json"   -d '{
    "model": "gpt-image-2.5-flare-4k",
    "prompt": "a serene mountain lake at sunrise, watercolor, ultra detailed",
    "aspect_ratio": "16:9",
    "async": true
  }'
# → {"id": "task_xxx", "status": "queued", ...}

# ② 轮询取片(每 3–5 秒查询一次)
curl -X GET https://YOUR_BASE/v1/images/generations/task_xxx   -H "Authorization: Bearer sk-你的生图令牌"

# ③ 下载成片
curl -L "https://YOUR_BASE/v1/images/generations/task_xxx/content"   -H "Authorization: Bearer sk-你的生图令牌" -o flare_4k.png

4. 图生图 / 原图编辑 · POST /v1/images/edits

用 POST /v1/images/edits 上传原图文件 + 提示词描述改动;亦可在 /v1/images/generations JSON Body 中传入 image 直链或 Base64:

curl -X POST https://YOUR_BASE/v1/images/edits   -H "Authorization: Bearer sk-你的生图令牌"   -F "model=gpt-image-2.5-flare-2k"   -F "prompt=repaint the background as a serene blue sky with clouds, keep the subject"   -F "image=@input.png;type=image/png"

注意事项

ChatGPT 官方满血生图(纯正官Key直连 · Token实量计费) Official

🛡️ 纯正 OpenAI 官 Key 满血直连 & C2PA 官方正版鉴真:
本系列模型直接接入 OpenAI 官方原生 API 渠道,严格按照 OpenAI 官方 Input/Output Token 计量算法扣费。生成图像均内嵌官方不可篡改的 C2PA 鉴真元数据。支持 1024×1024、2560×1440(2K)、3840×2160(真 4K)等任意标准画幅与长宽比,无任何后期超分或画质压缩,成品纯净无水印,全站统一定价 官方原价 5.7 折。

一、官方模型与资费标准

模型名称 风格定位与特点 所属分组 官方原价 (汇率7.2) 本站折后单价 (5.7折) 单张预估折合成本
gpt-image-2-token OpenAI 第二代官方旗舰生图底座,支持全分辨率与自由画幅 Chatgpt
(倍率 1.0x)
输入 $5.00/1M
输出 $30.00/1M
(约 ¥36 / ¥216)
输入 ¥20.50 / 100万 Token
输出 ¥123.00 / 100万 Token
1K: 约 ¥0.02 ~ ¥0.03/张
2K: 约 ¥0.025/张
4K: 约 ¥0.046 ~ ¥0.081/张
gpt-image-2.5-flare-token Flare 摄影变体:真实物理世界光影、商品静物、人像纪实 Chatgpt
(倍率 1.0x)
输入 $5.00/1M
输出 $30.00/1M
(约 ¥36 / ¥216)
输入 ¥20.50 / 100万 Token
输出 ¥123.00 / 100万 Token
1K: 约 ¥0.02 ~ ¥0.03/张
2K: 约 ¥0.025/张
4K: 约 ¥0.046 ~ ¥0.081/张
gpt-image-2.5-sunburst-token Sunburst 艺术变体:概念艺术插画、海报设计、视觉张力 Chatgpt
(倍率 1.0x)
输入 $5.00/1M
输出 $30.00/1M
(约 ¥36 / ¥216)
输入 ¥20.50 / 100万 Token
输出 ¥123.00 / 100万 Token
1K: 约 ¥0.02 ~ ¥0.03/张
2K: 约 ¥0.025/张
4K: 约 ¥0.046 ~ ¥0.081/张
📌 分组使用说明: - 本系列模型属于 Chatgpt(显示为 ChatGPT 官方)分组,分组倍率为标准的 1.0x; - 平台的全局 auto 令牌已自动连通,可直接发起调用;若新建专用令牌,请在分组中勾选 ChatGPT 官方; - 计费为纯正 Token 实量结算,Prompt 短则扣费极低,任务失败系统 100% 自动返还 Quota。

二、实测尺寸与画幅矩阵(实测输出分辨率与 Token 消耗)

经平台真机生产验证,本系列模型支持以下 8 档标准尺寸规格。系统原生直出对应画幅,真实输出像素与消耗 Token 实测对照如下:

分辨率档位 尺寸参数 (size) 画幅比例 实测输出分辨率 实测 Token 输出消耗 单张实际折算成本 (5.7折) 典型业务场景
1K 标清 1024x1024 1:1 方屏 1024 × 1024 196 image tokens 约 ¥0.024 / 张 社交头像、商品正方形缩略图、ICON 设计
1K 标清 1536x1024 3:2 横屏 1536 × 1024 158 image tokens 约 ¥0.019 / 张 单反横版摄影、文章博客配图、风景大片
1K 标清 1024x1536 2:3 竖屏 1024 × 1536 158 image tokens 约 ¥0.019 / 张 人像全身写真、手机竖屏壁纸、角色立绘
2K 高清 2560x1440 16:9 横屏 2560 × 1440 205 image tokens 约 ¥0.025 / 张 2K 桌面壁纸、视频 16:9 封面、演示文稿展板
2K 高清 1440x2560 9:16 竖屏 1440 × 2560 205 image tokens 约 ¥0.025 / 张 小红书/抖音高清封面、移动端信息流海报
真 4K 超清 3840x2160 16:9 横屏 3840 × 2160 371 image tokens 约 ¥0.046 / 张 影视级真 4K 巨幕壁纸、高精微距摄影、印刷海报
真 4K 超清 2160x3840 9:16 竖屏 2160 × 3840 371 image tokens 约 ¥0.046 / 张 商用超清竖版灯箱、展会大型展架、精细排版设计
真 4K 超清 2880x2880 1:1 方屏 2880 × 2880 659 image tokens 约 ¥0.081 / 张 超高精细度方形印刷画、高密度艺术设计
📌 尺寸调用避坑要点:
1. 严格使用白名单 size:请传表格中支持的宽×高规格字符串(如 "1024x1024"、"2560x1440"、"3840x2160" 等),请勿传入非白名单尺寸(如 1792x1024 或 2048x2048);
2. 原生返回 b64_json(内嵌不可篡改 C2PA 鉴真元数据):官方原生接口直接返回 Base64 图片数据(单张约 1.5MB~6MB,PNG 格式),客户端解码写入本地文件即可,永久免除第三方临时直链过期失效或跨域受阻问题;请求体中无需且请勿传 response_format: "url"。

三、调用方式与完整代码示例

采用标准 OpenAI POST /v1/images/generations 同步端点,官方 SDK 与常用网络库零改造兼容:

1. Python 官方 SDK 完整脚本(推荐 · 生产可用)

以下为即插即用的 Python 完整脚本,演示从任务提交、多画幅尺寸指定、解码 Base64 自动保存到本地文件、以及解析 Token 真实用量与折合费用的全流程:

import base64
import os
from openai import OpenAI

# 1. 初始化客户端
client = OpenAI(
    base_url="https://api.oairegbox.cc/v1",
    api_key="sk-你的API令牌"  # auto 智能路由令牌或 Chatgpt 分组专属令牌
)

# 2. 支持的标准尺寸常量字典
SIZES = {
    "1k_square": "1024x1024",      # 1K 1:1 方屏
    "1k_landscape": "1536x1024",   # 1K 3:2 单反横版
    "1k_portrait": "1024x1536",    # 1K 2:3 竖版人像
    "2k_landscape": "2560x1440",   # 2K 16:9 宽屏高清
    "2k_portrait": "1440x2560",    # 2K 9:16 手机竖屏
    "4k_landscape": "3840x2160",   # 真 4K 16:9 影视超清
    "4k_portrait": "2160x3840",    # 真 4K 9:16 巨幅海报
    "4k_square": "2880x2880"       # 真 4K 1:1 方屏印刷
}

def generate_official_image(model: str, prompt: str, size: str, output_path: str):
    """
    调用 ChatGPT 官方满血生图接口生成图像并落盘为 PNG 文件
    """
    print(f"🚀 开始生成图片: 模型 [{model}], 尺寸 [{size}]...")
    try:
        response = client.images.generate(
            model=model,
            prompt=prompt,
            size=size
        )

        # 3. 提取官方原生内嵌 C2PA 鉴真的 Base64 图片数据
        b64_data = response.data[0].b64_json
        image_bytes = base64.b64decode(b64_data)

        with open(output_path, "wb") as f:
            f.write(image_bytes)

        file_size_kb = len(image_bytes) / 1024
        print(f"✅ 生成成功!图片已解码保存至: {output_path} ({file_size_kb:.1f} KB)")

        # 4. 解析 Token 实量消耗与扣费情况 (5.7 折: 输入 ¥20.5/M, 输出 ¥123/M)
        if hasattr(response, "usage") and response.usage:
            usage = response.usage
            # 兼容 dict 或对象属性访问
            in_tokens = usage.get("input_tokens", 0) if isinstance(usage, dict) else getattr(usage, "input_tokens", 0)
            out_tokens = usage.get("output_tokens", 0) if isinstance(usage, dict) else getattr(usage, "output_tokens", 0)
            total_tokens = in_tokens + out_tokens
            cost_rmb = (in_tokens * 20.50 + out_tokens * 123.00) / 1000000.0
            print(f"📊 Token 用量: 输入 {in_tokens} tokens, 输出 {out_tokens} tokens (合计 {total_tokens})")
            print(f"💰 真实扣费: ¥{cost_rmb:.5f} 元")

        return output_path

    except Exception as e:
        print(f"❌ 生图失败: {e}")
        return None

if __name__ == "__main__":
    # 示例 A: 真实摄影 Flare 变体生成真 4K 宽屏风景大图
    generate_official_image(
        model="gpt-image-2.5-flare-token",
        prompt="a cinematic macro shot of a dewdrop on a fresh monstera leaf, early morning golden light, 8k professional photography",
        size=SIZES["4k_landscape"],
        output_path="monstera_leaf_4k.png"
    )

    # 示例 B: 概念艺术 Sunburst 变体生成 2K 手机竖屏概念插画
    generate_official_image(
        model="gpt-image-2.5-sunburst-token",
        prompt="a futuristic cyberpunk samurai standing on a neon rain rooftop, vibrant colors, artistic poster",
        size=SIZES["2k_portrait"],
        output_path="cyberpunk_samurai_2k.png"
    )

2. Python requests 库原生调用脚本

import requests
import base64

API_URL = "https://api.oairegbox.cc/v1/images/generations"
API_KEY = "sk-你的API令牌"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

payload = {
    "model": "gpt-image-2-token",
    "prompt": "minimalist aesthetic architecture in desert, warm sunlight, clean geometric lines",
    "size": "1536x1024"  # 1K 3:2 单反横版摄影
}

response = requests.post(API_URL, headers=headers, json=payload)
if response.status_code == 200:
    data = response.json()
    b64_json = data["data"][0]["b64_json"]
    with open("desert_architecture.png", "wb") as f:
        f.write(base64.b64decode(b64_json))
    print("✅ 图片生成成功并落盘!")
    usage = data.get("usage", {})
    print(f"Token 用量: 输入 {usage.get('input_tokens')}, 输出 {usage.get('output_tokens')}")
else:
    print(f"❌ 失败 [{response.status_code}]: {response.text}")

3. cURL 命令行请求示例

# 1. 概念艺术 Sunburst 变体 · 1024x1024 方屏
curl -X POST https://api.oairegbox.cc/v1/images/generations \
  -H "Authorization: Bearer sk-你的API令牌" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.5-sunburst-token",
    "prompt": "futuristic flying car soaring through neon cloudy sky, colorful concept art",
    "size": "1024x1024"
  }'

# 2. 真实摄影 Flare 变体 · 3840x2160 真 4K 超高清
curl -X POST https://api.oairegbox.cc/v1/images/generations \
  -H "Authorization: Bearer sk-你的API令牌" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.5-flare-token",
    "prompt": "breathtaking sunset over snow mountain peaks, golden sunlight, 8k wallpaper",
    "size": "3840x2160"
  }'

四、核心优势与版本选型指南

Gemini 音乐生成

通过 Chat Completions 接口生成音乐。同步返回(约 40–70 秒),结果是一个可直接下载的 MP3 链接(无需鉴权即可 GET 下载)。

模型与价格

模型价格令牌分组
gemini-music¥1.00/首gemini-fast
令牌分组必须为 gemini-fast,否则返回"无可用渠道"。失败不计费。

时长档位

提供两个档位,用 length 参数选择:

档位目标长度纯音乐实测带人声实测
short(不填时的默认)60 秒54–67 秒
中位 62 秒
58–155 秒
中位 63 秒,P90 约 103 秒
standard180 秒145–180 秒
⚠️ 时长是「目标」不是「约定」,我们不保证精确长度。 模型把长度当作创作参考,同一档位多次生成的成品长度会浮动 —— 这是模型行为,不是故障,也无法通过参数消除。

带人声的曲子会明显更长。模型会为了把歌词唱完而突破目标时长:同样是 short 档,纯音乐基本贴着 60 秒,带人声的中位数也是 60 出头,但约 10% 的样本会超过 90 秒,最长实测到 155 秒(唱整首古诗、日语歌词这类需要唱完长段落的情形)。歌词越长,成品越长。

上表区间来自 2026-09 的 43 次实测采样,可能随模型更新而变化。
如果你的业务需要精确时长(卡点、广告位、循环 BGM),请把成品当素材,自行裁剪或循环到目标长度。

关于歌词

默认不会返回歌词文本,只会返回一句生成说明。实测 38 个默认用例中,只有 1 个自带了歌词。

想要歌词就在提示词里明确要求,例如「请在回复里把完整歌词逐行写出来」或指定结构:

In your text reply, output the lyrics in this structure:
[Verse 1] ... [Chorus] ... [Verse 2] ...
Write the actual lyric lines, not a description.

加了这类要求后,6 个用例中有 5 个返回了带 [Verse]/[Chorus] 结构的完整歌词。歌词出现在 chat 返回正文的分隔线之后,或结构化接口的 message 字段里。

⚠️ 中文提示词里不要用命令式的「把歌词写成文字给我」。 实测这类措辞会把请求推向纯文本模型,于是直接回一段文字歌词甚至一段 Python 代码,完全不产出音乐。 改用温和的「顺便把歌词也附上」,或者干脆用英文下这条指令(主题仍可以是中文歌),都能正常出歌。
涉及现当代诗词/歌词时模型会以版权为由拒绝复刻,转而生成「意境相近」的原创作品 —— 实测连已进入公有领域的唐诗也会先声明一句再照唱。这是模型自身的策略,我们无法绕过。

请求示例(Chat Completions)

curl https://YOUR_BASE/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-music",
    "messages": [{"role":"user","content":"创作一首轻快的电子风格BGM,适合科技产品广告"}]
  }'

Chat 接口没有结构化参数,系统会从你的文字里读取意图:

请求示例(结构化接口)

需要显式控制时用 POST /v1/audio/generations:

curl https://YOUR_BASE/v1/audio/generations \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-music",
    "prompt": "大气的电影配乐,弦乐为主",
    "length": "standard",
    "vocals": false
  }'
参数类型说明
promptstring必填。曲风、情绪、乐器、用途等描述
lengthstringshort / standard,见上方时长档位。不填按 short
vocalsbooltrue=带人声演唱,false=纯音乐。不填=交给模型决定
attachmentsstring[]可选。参考音频或图片,支持 data URI / http(s) URL / 裸 base64,单个 ≤20MB,仅 audio/* 与 image/*
durationint旧版数值参数(秒,5–180),仍然可用;同时传 length 时以 length 为准

返回体里会回显 length、target_seconds 和 duration_is_exact: false,后者就是在提醒你:那是目标值,不是成品长度。

返回示例

下载链接在 choices[0].message.content 里(Markdown 链接 + 纯 URL 各一份):

{
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "✅ 音乐生成完成\n\n[⬇️ 点击下载音乐](https://download.oaibox.xyz/v1/audio/aud-xxxx.mp3)\n\nhttps://download.oaibox.xyz/v1/audio/aud-xxxx.mp3"
    },
    "finish_reason": "stop"
  }]
}

从 content 中取出形如 .../v1/audio/aud-xxxx.mp3 的 URL,直接 GET 即可下载(无需带 Authorization)。响应头为 Content-Type: audio/mpeg + Content-Disposition: attachment,浏览器、curl、ffmpeg、下载工具都能直接当文件处理。也支持 "stream": true,链接会在流式结束的那条消息里返回。

请原样使用返回的 URL,不要自己拼域名。下载域名由服务端决定,手工拼接的地址可能取不到文件。
旧版 .../v1/audio/aud-xxxx/content 形式的链接仍然有效,无需改造既有集成。
链接为生成后即时缓存,建议尽快下载保存。

关于成品格式

交付的一定是 MP3(立体声 44.1kHz)。生成过程中同时会产出一段带封面动画的 MP4,我们不把它作为音乐成品返回;若本次未直接提供 MP3,系统会从该 MP4 中提取音轨转成 MP3 后再交付,对你是透明的。

Gemini 语音合成(TTS)

OpenAI 兼容的文字转语音接口 POST /v1/audio/speech。同步返回音频字节流(mp3/opus/pcm 边合成边下发,首包约 0.3–0.5 秒),直接把响应体当音频文件保存即可,无需二次下载。

模型与价格

模型价格令牌分组
gemini-tts¥15 / 100 万字符(与 OpenAI tts-1 平价)gemini-fast
按输入字符数计费(中英文都按字符/码点数算),不按音频时长。失败不计费。令牌分组需为 gemini-fast,否则返回"无可用渠道"。

请求示例

curl https://YOUR_BASE/v1/audio/speech \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-tts",
    "input": "你好,欢迎使用语音合成服务。",
    "voice": "Capella",
    "response_format": "mp3"
  }' --output speech.mp3

参数

参数类型说明
modelstring必填,固定 gemini-tts
inputstring必填。要朗读的文本,中英文混排均可。服务端按文本自动识别语言
voicestring音色,见下表。不填用默认音色。OpenAI 音色名(alloy/nova/echo…)也接受,会按性别映射到对应 Gemini 音色
response_formatstringmp3(默认)/ opus / aac / flac / wav / pcm
speedfloat语速 0.25–4.0,默认 1.0。官方源站不支持变速,由本平台用音频后处理实现,不影响音色
languagestring可选 BCP-47 口音提示(如 es-ES vs es-US)。只选地区变体,不决定语种——语种由文本自动判定

音色列表

9 个音色,跨语言通用(中文、英文等都用同一组名字):

性别音色名
女声Capella · Ursa · Vega · Eclipse · Lyra
男声Orbit · Dipper · Nova · Pegasus
也可直接用 OpenAI 的音色名:alloy→Vega、nova→Capella、shimmer→Ursa、coral→Eclipse、sage→Lyra(女声);echo→Orbit、ash→Dipper、fable→Nova、onyx/ballad→Pegasus(男声)。方便从 OpenAI 迁移。
注意:OpenAI 的 nova(小写,女声)与 Gemini 的 Nova(大写,男声)是两个不同音色,按大小写区分。

说明

Gemini 语音识别(STT)

OpenAI 兼容的语音转文字接口 POST /v1/audio/transcriptions(multipart/form-data 上传音频文件)。同步返回转写文本,任意常见音频容器都接受,平台会自动转码。

模型与价格

模型价格令牌分组
gemini-stt$0.006 / 分钟(与 OpenAI whisper 平价)gemini-fast
按音频时长计费(每分钟 1000 token)。单文件上限 25MB。失败不计费。令牌分组需为 gemini-fast。

请求示例

curl https://YOUR_BASE/v1/audio/transcriptions \
  -H "Authorization: Bearer sk-xxx" \
  -F model=gemini-stt \
  -F file=@audio.mp3 \
  -F language=zh \
  -F response_format=json

参数

参数类型说明
filefile必填。音频文件,≤25MB。mp3/wav/m4a/ogg/webm 等常见格式均可,平台自动转码
modelstring固定 gemini-stt,不填默认即此
languagestring可选。语言提示,如 zh / en(会归一化为 cmn-Hans-CN / en-US)。不填默认英文为主、中文为辅自动识别
response_formatstringjson(默认,{"text":...})/ verbose_json / text。不支持 srt/vtt(无逐词时间戳)

返回示例

{ "text": "你好,这是一段语音识别测试。" }

verbose_json 额外返回 task、language、duration(音频秒数)字段;text 则直接返回纯文本。无语音内容时返回空串,不算失败。

Gemini 语音对话(Voice Chat)

把语音识别(STT)→ 对话(Chat)→ 语音合成(TTS)合成一次调用:说一句话进去,得到一段语音回答。一问一答(turn-based)、支持中英文、跑在同一个号池上。

两种用法,推荐第一种(能直接套用 OpenAI 语音 SDK,改个 base_url 就能跑)。

价格

按所用对话模型的文本计费(即你在 model 里填的那个 Gemini 对话模型的价格)。语音识别与语音合成这两段不额外收费。失败不计费。

语音回答的音色读的就是对话模型的回复原文,建议用速度快的 Flash 对话模型(如 gemini-3.5-flash)体验更自然;推理型模型可能会把代码块、公式也一起"读"出来。

用法一:OpenAI 兼容(/v1/chat/completions)

在普通对话请求里加 modalities:["text","audio"] 和 audio 两个字段即可,和 OpenAI 的 gpt-4o-audio 完全一致。用你现有的对话模型,无需申请新模型。

curl https://YOUR_BASE/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.5-flash",
    "modalities": ["text", "audio"],
    "audio": { "voice": "nova", "format": "mp3", "input_mode": "stt" },
    "messages": [
      { "role": "user", "content": [
        { "type": "input_audio", "input_audio": { "data": "<base64音频>", "format": "mp3" } }
      ]}
    ]
  }'

返回里,文字回答在 choices[0].message.content,语音回答在 choices[0].message.audio:

{
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "2 加 3 等于 5。",
      "audio": {
        "id": "audio_xxxx",
        "data": "<base64 的 mp3>",
        "transcript": "2 加 3 等于 5。",
        "format": "mp3"
      }
    }
  }]
}
字段说明
modalities必须包含 "audio" 才会返回语音
audio.voice音色,见下方列表(OpenAI 音色名如 nova/alloy 也接受)
audio.formatmp3(默认)/ opus / aac / flac / wav / pcm
audio.input_modestt(默认,先转文字,便宜、附带识别文本)/ native(让模型直接"听"音频,懂语气但更贵)
input_audio语音输入(可选)。也可以用纯文字提问、只要语音回答。输入的识别文本会放在响应头 X-Input-Transcript(base64)
语音输出只在非流式(stream=false)下返回。stream=true 时文字照常流式返回,但不带语音。

用法二:直连语音端点(/v1/audio/chat)

给原生音频应用准备的精简端点:multipart 上传音频,直接吐回音频字节流。此端点需直连网关使用。

curl https://YOUR_BASE/v1/audio/chat \
  -H "Authorization: Bearer sk-xxx" \
  -F model=gemini-voice \
  -F file=@question.mp3 \
  -F voice=Capella \
  -F response_format=mp3 \
  -F input_mode=stt \
  -F language=zh \
  --output answer.mp3

默认返回音频文件,识别文本与回答文本在响应头 X-Transcript / X-Reply-Text(都做了 base64 编码,避免中文乱码)。传 response_format=json 则返回 { "transcript": "...", "text": "...", "audio": { "data": "<base64>", "format": "mp3" } }。可选 messages 字段(JSON 数组)带对话上下文,speed 调语速(0.25–4.0)。

音色列表

性别音色名
女声Capella · Ursa · Vega · Eclipse · Lyra
男声Orbit · Dipper · Nova · Pegasus
也可直接用 OpenAI 音色名:alloy/nova/shimmer/coral/sage(女声)、echo/ash/fable/onyx/ballad(男声),会按性别映射。

通用说明 & FAQ

接入地址(两条独立线路,同一账号)

线路Base URL入口位置适用场景
主线路https://api.oairegbox.cc/v1欧洲默认使用;本文档所有示例均用此地址
备用线路https://newapi.oairegbox.cc/v1美东主线路连不上 / 延迟偏高时改用,只改域名,其他一行不动
两条线路是同一个平台、同一个账号、同一个令牌、同一份余额——只是网络入口不同,不需要重新注册、不需要换令牌、不需要重新充值,模型列表与价格完全一致。
哪条更快因地区 / 运营商而异,我方不做承诺;若主线路不通或延迟偏高,把域名换成备用线路再试一次即可。
历史地址 https://newapi-2.oairegbox.cc/v1 与 https://gpt2api.oairegbox.cc/v1 仍然可用,老代码无需改动;但这两个与主线路是同一个入口,换成它们不会改善网络问题——要换线路请用上表的备用线路。

鉴权

所有请求需携带 Authorization: Bearer sk-你的令牌 请求头。令牌在后台「令牌」页创建,分组必须与模型匹配(错误分组会返回"无可用渠道")。

错误码

HTTP含义处理计费
200成功正常取用成功才扣
400参数/素材问题按 message 改正不计费
401鉴权失败检查令牌不计费
404路径错误检查 URL(勿重复 /v1)不计费
429限速/额度不足降并发或充值不计费
502/5xx服务端临时故障直接重试不计费

FAQ

Q: 视频生成需要多久?

Omni 视频约 1-5 分钟,Grok 视频约 30s-3 分钟(时长越长越慢)。建议客户端超时 ≥300 秒。

Q: 失败会扣费吗?

不会。所有模型失败一律不扣费,仅成功出片/出图才计费。

Q: 参考图被内容策略拒绝怎么办?

包含可识别真人面孔的参考图可能触发 Gemini 内容策略。系统会自动尝试处理并重试。如仍失败,建议:使用非写实风格、虚构人物、侧面/背影/远景,或使用已授权的素材。

Q: 有多个接入地址,该用哪个?它们是不同账号吗?

不是不同账号——所有地址指向同一个平台,账号、令牌、余额、模型与价格完全通用,随时可以互换,不需要重新注册、也不需要重新充值。默认用主线路 api.oairegbox.cc;若你所在网络连不上或延迟偏高,改用备用线路 newapi.oairegbox.cc(美东入口)再试一次。两条线路对不同地区 / 运营商各有优劣,我方不承诺哪条更快。

视频生成 · 内容审查避坑指南

适用于 omni-fast / veo 系列视频模型 · 帮你避开 Google 内容审查,提高一次出片成功率

📊 近期实际拒绝统计(系统自动更新 · 2026-08-24 03:07)
按本平台真实拒绝自动统计(已脱敏,不含任何原始提示词):真人/版权/不安全内容 7701 次、参考图被拦截 5472 次、内容审核拒绝 698 次、违禁/侵权 589 次。
绝大多数为真人写实 / 版权·IP / 参考图含敏感元素——请重点对照下方雷区①⑤与「安全改写对照表」。

一、先看这条报错

如果你收到:

This request didn't pass content review (e.g. an identifiable real person, unsafe content, or protected IP). Retrying or switching accounts won't help. Try a non-photorealistic style, a non-identifiable or fictional subject (back/side/distant view), or rights-cleared content, then resubmit.

中文意思:请求没通过内容审查(可能涉及:可识别真人 / 不安全内容 / 受保护版权)。

⚠️ 这是 Google 的「确定性拒绝」
❌ 重试没用 ❌ 换账号没用 ✅ 只能改提示词或换参考图
别反复提交同一个请求,立刻按下面的方法改。

二、六大高危雷区(命中必拒)

① 可识别的真人 / 名人 最常踩
"appears to show specific people" / "展示特定人物"
  • 写实真人正脸、特写人像
  • 任何名人、明星、政治人物、网红的名字或长相
  • 上传真人照片当参考图(尤其正脸特写)
  • 🔑 photorealistic(超写实)+ 真人 = 高危组合
② 未成年人 零容忍
"minors in dangerous or compromising situations"
  • 画面出现儿童 / 婴儿 / 青少年 / 学生
  • 哪怕本意无害,未成年人 + 任何危险或暧昧情境都会被拒
③ 性 / 裸露 / 暧昧 高危
"sexual situations"
  • 裸露、性感、情色、内衣、暧昧亲密、床戏、诱惑等
④ 暴力 / 危险 / 血腥 高危
"dangerous situations" / "可能涉及危险情况"
  • 暴力、血腥、武器、打斗、战争、爆炸
  • 自杀、自残、事故、伤口、尸体、虐待
  • 危险动作 / 危险情境
⑤ 受保护版权(IP / 品牌) 版权
"protected intellectual property" / "受保护知识产权"
  • 动漫游戏角色:皮卡丘、马里奥、奥特曼、米老鼠、艾莎、蜘蛛侠、哆啦A梦、火影等
  • 品牌商标:Nike、苹果、迪士尼、可口可乐、LV 等任何 logo
  • 影视形象:具名电影/电视剧角色、海报、截图
⑥ 其他敏感主题 易忽略
  • 医疗病症:皮肤病、痤疮、湿疹、体味、伤口、疾病 ← 真实案例踩过
  • 政治 / 宗教:领导人、宗教冲突、种族议题
  • 毒品 / 违法:毒品、吸毒等
  • 仇恨 / 歧视言论

三、安全改写对照表

❌ 高危写法✅ 安全改写
超写实真人 + 正脸特写改 3D动画 / 插画 / 卡通 风格;或侧面、背面、远景
上传真人照片生成不要正脸;用远景/侧背面;或转动漫/卡通风格
奥特曼大战怪兽「一个通用的巨人英雄」(不点名具体 IP)
情侣处理痤疮/皮肤病去掉病名,改成中性的「情侣约会」
小孩在火边玩耍改成「成年人」,或移除危险元素
含名人姓名改成「一位虚构的人物」

四、万能保险公式

不确定会不会被拒时,套这个组合最稳:

非写实风格 (non-photorealistic / 3D cartoon / illustration / anime)
+ 虚构、不具名的主体 (fictional, non-identifiable subject)
+ 脸部不可识别 (背面 / 侧面 / 远景)
+ 内容健康、无版权

五、提交前自检清单

✅ 提交前过一遍,一次成功率最高
  • ☐ 有没有真人/名人?→ 转非写实风格或脸部不可识别
  • ☐ 有没有儿童/青少年?→ 移除或改成年人
  • ☐ 有没有性/暴力/危险/血腥?→ 删除相关描述
  • ☐ 有没有动漫角色/品牌/影视 IP?→ 换原创通用描述
  • ☐ 有没有病症/政治/毒品等敏感词?→ 中性化
  • ☐ 参考图是不是真人照片?→ 换非写实图或远景
💡 两类报错要分清
「temporarily unavailable / 暂时不可用」 → 后端临时波动,可稍后重试
「didn't pass content review / 没通过内容审查」 → 确定性拒绝,必须改内容,重试无用

MiniMax H3 · 按秒计费(768P / 2K)

MiniMax H3 按秒计费,两档清晰度、原生音频。支持文生 / 图生 / 首尾帧 / 参考图 / 参考音频;需参考视频驱动用 Pro 档。同一套 /v1/videos 接口:异步创建 → 轮询 → 下载。

⚠️ 内容合规要求(务必阅读)
MiniMax H3 为国内(中国大陆)模型,平台有严格内容审核。严禁提交任何色情、软色情、擦边、暴露、性暗示、血腥或其它违规提示词——此类请求被网关直接拦截(HTTP 400,不产任务、不计费);屡次违规可能触发平台风控致该模型临时不可用,请务必合规使用。

模型与价格

模型清晰度全能参考计费价格时长
minimax-h3-768p768P503按秒¥0.15/秒4–15 秒
minimax-h3-2k2K503按秒¥0.20/秒4–15 秒
minimax-h3-pro-768p768P913按秒¥0.25/秒4–15 秒
minimax-h3-pro-2k2K913按秒¥0.33/秒4–15 秒
按秒计费 = 单价 × 时长(例:minimax-h3-2k 10 秒 = ¥2.00)。全能参考数字 = 图·视频·音频张数上限:标准档 503(5 图 + 0 视频 + 3 音频),Pro 档 913(9 图 + 1 视频 + 3 音频,额外支持参考视频)。如需 933 全能参考请联系客服。失败不计费。

接口信息

项说明
提交任务POST /v1/videos(JSON)
轮询进度GET /v1/videos/{task_id}
下载成片完成后响应里的 video_url 直链
鉴权Authorization: Bearer sk-你的令牌
令牌分组minimax

核心参数

字段类型必填默认说明
modelstring是-上表四个之一
promptstring是-提示词,≤7000 字符(超出会被静默截断)
durationinteger否-4–15 秒(= 计费秒数)
ratiostring否-16:9/9:16/1:1/21:9/4:3/3:4/adaptive(文生视频不支持 adaptive)
referenceImagesstring[]否-参考图 ≤5(公网 URL 或 base64)
referenceAudiosstring[]否-参考音频 ≤3(须配参考图;合计 ≤15 秒)
referenceVideosstring[]否-Pro 档专用:1 段,时长 2–5 秒
first_image/last_imagestring否-首/尾帧;不能与 referenceImages 同用

提交方式

JSON,参考素材支持 公网 URL 或 base64。按传入素材自动判定模式:

模式最少必传
文生视频prompt
图生视频prompt + referenceImages(≤5)
首尾帧first_image(+ last_image);不与普通参考图同用
参考视频驱动Pro 档 + referenceVideos(1 段 2–5 秒)

示例请求

# 文生视频
curl https://newapi-2.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"minimax-h3-2k","prompt":"A calm ocean wave at golden sunset, cinematic","duration":5,"ratio":"16:9"}'

# 图生视频(参考图 · URL)
curl https://newapi-2.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"minimax-h3-768p","prompt":"角色转身微笑,镜头缓慢推近","duration":6,
       "referenceImages":["https://你的公网图片地址/ref1.jpg"]}'

# 图生视频(参考图 · base64,任何图片都可用、最稳妥)
curl https://newapi-2.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"minimax-h3-768p","prompt":"角色转身微笑,镜头缓慢推近","duration":6,
       "referenceImages":["data:image/jpeg;base64,/9j/4AAQ...(整段图片 base64)"]}'

# 参考视频驱动(Pro,1 段 2-5 秒)
curl https://newapi-2.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"minimax-h3-pro-768p","prompt":"角色跟随参考视频的动作与镜头运动","duration":5,
       "referenceVideos":["https://.../ref.mp4"]}'
参考素材用 URL 时必须公网可直接访问。若图片 / 视频托管在访问受限或不稳定的站点,可能返回 cannot download media URL(不产任务、不计费)。此时改用 base64(data:image/jpeg;base64,...)即可,任何素材都能用、最稳妥。

轮询取片

curl https://newapi-2.oairegbox.cc/v1/videos/TASK_ID -H "Authorization: Bearer $TOKEN"
# status=completed 后用响应里的 video_url 下载
curl -L "VIDEO_URL" -o result.mp4
轮询到 completed/failed 停止;video_url 为直链;失败不计费。

Python 完整请求

import time, requests
BASE = "https://newapi-2.oairegbox.cc/v1"
H = {"Authorization": "Bearer sk-你的minimax令牌", "Content-Type": "application/json"}
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "minimax-h3-2k",
    "prompt": "A calm ocean wave at golden sunset, cinematic",
    "duration": 5, "ratio": "16:9",
}).json()
tid = task["task_id"]
while True:
    r = requests.get(f"{BASE}/videos/{tid}", headers=H).json()
    if r["status"] in ("completed", "failed"):
        break
    time.sleep(5)
url = r.get("video_url") or (r.get("data") or [{}])[0].get("url")
open("minimax.mp4", "wb").write(requests.get(url).content)

注意事项

建议

Seedance 2.0 / 2.5 · 官方直连 Video

⚡ 字节跳动 · Seedance 2.0 / 2.5 官方直连:涵盖 mini(经济档)、fast(快速出片)、pro(满血旗舰,画质更高且独有 1080p/4K)与 Seedance 2.5。支持文生视频 / 图生视频(首帧 / 首尾帧) / 视频编辑 / 全能多模态参考。使用「Seedance 2.0」或「Doubao」分组令牌调用,按 token 计费、失败不计费、默认生成音频、无水印。

模型与价格

⚠️ 计费方式为按 token(按视频输出 token 计费,非按秒)。下表为客户售价(¥ / 百万输出 token);实际费用 = 输出 token 数 × 单价,token 数随分辨率 × 时长变化,每笔实际 token 与扣费可在控制台任务详情查看。传参考视频时按更低的「含视」价结算。
💡 计费直观换算说明:由于视频 Token 较抽象,平台按官方基准 Token 输出速率(480p 约 1.36万/秒、720p 约 2.16万/秒、1080p 约 4.86万/秒、4K 约 19.44万/秒)将百万 Token 单价换算成了直观的每秒单价与典型 5 秒参考花费。含参考视频档位享受官方专属特惠折扣(低至 5.8~8 折),基准每秒花费远低于纯文/图生。(注:如传入较长参考视频,官方源站会对输入素材时长按优惠单价计费,实际以接口返回的 usage 结算。)
模型档位 · 分辨率计费¥/百万token
(纯文/图生)
¥/百万token
(含参考视频)
折合每秒(含视频特惠)折合每秒(纯文/图生)典型 5 秒预计官方折扣
seedance-2.0-720p720p(特惠线)按token¥28.98¥17.64约 ¥0.38/秒约 ¥0.63/秒约 ¥1.90 ~ ¥3.136.3 折
seedance-2.0-fast-720pfast · 720p(特惠线)按token¥24.05¥14.30约 ¥0.31/秒约 ¥0.52/秒约 ¥1.55 ~ ¥2.606.5 折
seedance-2.0-mini-720pmini · 720p(特惠线)按token¥10.35¥6.30约 ¥0.14/秒约 ¥0.22/秒约 ¥0.68 ~ ¥1.124.5 折
seedance-2.5-720p2.5 · 720p(特惠线)按token¥49.00¥29.40约 ¥0.64/秒约 ¥1.06/秒约 ¥3.18 ~ ¥5.307 折
doubao-seedance-2.0-mini-480pmini · 480p按token¥13.34¥7.70约 ¥0.10/秒约 ¥0.18/秒约 ¥0.52 ~ ¥0.905.8 折
doubao-seedance-2.0-mini-720pmini · 720p按token¥13.34¥7.70约 ¥0.17/秒约 ¥0.29/秒约 ¥0.83 ~ ¥1.445.8 折
doubao-seedance-2.0-mini-1080pmini · 1080p按token¥14.79¥8.525约 ¥0.41/秒约 ¥0.72/秒约 ¥2.07 ~ ¥3.595.8 折
doubao-seedance-2.0-fast-480pfast · 480p按token¥25.90¥15.40约 ¥0.21/秒约 ¥0.35/秒约 ¥1.04 ~ ¥1.767 折
doubao-seedance-2.0-fast-720pfast · 720p按token¥25.90¥15.40约 ¥0.33/秒约 ¥0.56/秒约 ¥1.66 ~ ¥2.807 折
doubao-seedance-2.0-fast-1080pfast · 1080p按token¥28.35¥17.15约 ¥0.83/秒约 ¥1.38/秒约 ¥4.17 ~ ¥6.897 折
doubao-seedance-2.0-pro-480ppro(满血)· 480p按token¥35.88¥21.00约 ¥0.28/秒约 ¥0.49/秒约 ¥1.42 ~ ¥2.437.8 折
doubao-seedance-2.0-pro-720ppro(满血)· 720p按token¥35.88¥21.00约 ¥0.45/秒约 ¥0.77/秒约 ¥2.27 ~ ¥3.877.8 折
doubao-seedance-2.0-pro-1080ppro(满血)· 1080p按token¥39.78¥23.25约 ¥1.13/秒约 ¥1.93/秒约 ¥5.65 ~ ¥9.677.8 折
doubao-seedance-2.0-pro-4kpro(满血)· 4K按token¥20.28¥12.00约 ¥2.33/秒约 ¥3.94/秒约 ¥11.66 ~ ¥19.717.8 折
doubao-seedance-2.5-720p2.5 · 720p按token¥56.00¥33.60约 ¥0.73/秒约 ¥1.21/秒约 ¥3.63 ~ ¥6.058 折
doubao-seedance-2.5-1080p2.5 · 1080p按token¥61.60¥36.80约 ¥1.79/秒约 ¥2.99/秒约 ¥8.94 ~ ¥14.978 折
质量 mini < fast < pro(满血)< 2.5;4K 仅 pro 档有。模型名全部小写。失败不计费。
「特惠线」四款(seedance-2.0-720p / seedance-2.0-fast-720p / seedance-2.0-mini-720p / seedance-2.5-720p)只提供 720p,传入分辨率更高的参考视频会被拒绝。
fast 与 mini 档官方没有 1080p 规格,这两档的 1080p 由本平台提供。
✅ 可用性:默认 auto 智能令牌已可直接调用上述全部档位(含四款特惠线)。若某档位不在你令牌的 /v1/models 列表中,说明该令牌设了模型白名单或未含 Doubao 分组,联系我们开通即可。

接口信息

项说明
提交端点POST /v1/videos 或 POST /v1/video/generations(标准 JSON,双端点完全等价兼容)
轮询端点GET /v1/videos/{task_id} 或 GET /v1/video/generations/{task_id}
视频直出预览GET /v1/videos/{task_id}/content(带 Bearer 令牌鉴权 302 重定向流式返回成片)
下载成片完成后响应里的 video_url(官方高速下载直链)
鉴权方式Authorization: Bearer sk-你的令牌
令牌分组Doubao(或 auto 智能路由分组)

核心参数规范

参数类型必填默认说明
modelstring是-模型名,如 seedance-2.5-720p、seedance-2.0-720p、seedance-2.0-fast-720p、doubao-seedance-2.0-mini-480p 等
promptstring是-画面 / 风格 / 动作描述。无我方硬性长度上限
duration / secondsinteger / string否5视频输出时长(秒)。
• 2.0 系列:支持 4–15 秒 或 -1(模型自选);
• 2.5 系列:支持 4–30 秒 或 -1(编辑模式强制 -1)
ratio / aspect_ratiostring否adaptive / 16:9画幅比例。支持 21:9、16:9、4:3、1:1、3:4、9:16、adaptive。
• 重要修正:显式指定比例时(如 9:16 竖屏),模型将严格按该比例渲染,不再被参考图/参考视频强制改回横屏;
• 未指定时,有参考素材默认 adaptive,纯文生默认 16:9
resolutionstring否依模型视频分辨率,480p / 720p / 1080p
images / image_urlsarray否-参考图片数组。支持纯 URL 或 {url, role} 对象:
• 1张默认 first_frame(首帧);
• 2张默认首尾帧 first_frame + last_frame;
• 3张及以上全量作为 reference_image;
• 也可使用单字段 image_url、first_image_url、last_image_url、reference_images
videosarray否-参考视频数组(videos 或 reference_videos),支持纯 URL 或 {url, role: "reference_video"}。
• 2.0 限制 ≤3 段;2.5 限制 ≤10 段
audiosarray否-参考音频数组(audios 或 reference_audios),支持纯 URL 或 {url, role: "reference_audio"}。
• 2.0 限制 ≤3 段且不能仅音频;2.5 限制 ≤10 段且可仅音频
generate_audioboolean否true是否生成原生同步音轨,本站默认开启 true
watermarkboolean否false视频水印开关,本站默认关闭 false(无水印)
camera_fixedboolean否false锁定镜头开关,设为 true 可防止运镜漂移
seedinteger否随机随机种子(用于复现画面效果)
return_last_frameboolean否false是否在成片结果中额外返回尾帧图片(便于衔接下一段生成)
output_formatstring否mp4成片容器格式,可选 mp4 或 mov(推荐剪辑后期调色使用)
omni_reference_task_typestring否auto全模态任务意图:auto(自动推断)、edit(视频编辑)、extend(视频延长续写)
contentarray否-官方原生多模态数组,若客户端已封装官方 content 结构,支持整包直通透传
⚠️ 素材互斥与使用约束:
1. 首尾帧互斥:首帧(first_frame)与尾帧(last_frame)模式不能与全能参考(参考视频/参考音频)同时混用;
2. 音频依附性:2.0 系列参考音频不能单独使用,必须搭配至少一张参考图或一段参考视频;2.5 系列放宽允许仅音频驱动;
3. 音色与人物绑定:generate_audio 生成的同步配音音色/性别跟随画面人物设定;参考音频主要作为对白语速、动作节奏与配乐氛围参考;
4. 视频规格:参考视频分辨率不得超过所选档位(480p 档 ≤480p、720p 档 ≤720p、1080p 档 ≤1080p),单个时长 4–30 秒。

提交方式与玩法自动切换

标准 JSON 请求。服务端根据传入的素材字段自动判定并路由最佳玩法:

玩法模式触发方式 / 字段说明
文生视频 (T2V)只传 prompt + duration纯文字驱动,严格尊重 aspect_ratio 画幅(默认 16:9)
单图图生视频 (I2V)传 image_url 或 1 张 images单图首帧运镜动效化,可显式指定画幅或自适应
双图首尾帧过渡传 first_image_url + last_image_url 或 2 张 images连接两张关键帧平滑生成过渡镜头
视频编辑 (V2V)传 videos 或 reference_videos在原视频画面基础上按提示词重新演绎风格与光影
全能多模态参考组合传入 images + videos + audios综合多维素材,角色参考图片,动作跟随视频,节奏跟随音频
官方原生直通传入 content 数组客户端预构建的官方 content 多模态结构整包透传

示例请求

# 1. 标准调用格式(指定 12 秒 + 9:16 竖屏 + 生成原生音频)
curl -X POST https://api.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0-fast-720p",
    "prompt": "一只穿红大衣的小猫在雪地里抓雪花,电影微距",
    "duration": 12,
    "aspect_ratio": "9:16",
    "resolution": "720p",
    "generate_audio": true
  }'

# 2. 图生视频(单图首帧,8 秒)
curl -X POST https://api.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0-fast-720p",
    "prompt": "镜头缓慢平滑推进,光线逐渐变亮",
    "duration": 8,
    "aspect_ratio": "16:9",
    "image_url": "https://your-domain.com/start_frame.jpg"
  }'

# 3. 首尾帧平滑过渡(6 秒)
curl -X POST https://api.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0-mini-720p",
    "prompt": "从白天的宁静城市平滑过渡到夜晚霓虹闪烁",
    "duration": 6,
    "first_image_url": "https://your-domain.com/day.jpg",
    "last_image_url": "https://your-domain.com/night.jpg"
  }'

# 4. 全能多模态参考(多图 + 参考视频 + 参考音频)
curl -X POST https://api.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0-fast-720p",
    "prompt": "参考给定素材的风格与运镜动作生成",
    "duration": 10,
    "images": ["https://your-domain.com/char_1.jpg", "https://your-domain.com/char_2.jpg"],
    "videos": ["https://your-domain.com/camera_ref.mp4"],
    "audios": ["https://your-domain.com/bgm_ref.mp3"]
  }'

# 5. 原生 content 数组直通透传(官方格式)
curl -X POST https://api.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.5-720p",
    "content": [
      {"type": "text", "text": "现代都市街道,细雨霏霏,电影质感"},
      {"type": "image_url", "image_url": {"url": "https://your-domain.com/ref.jpg"}, "role": "reference_image"}
    ],
    "duration": 5,
    "aspect_ratio": "16:9"
  }'

轮询取片与成片预览

# 1. 轮询任务状态(双端点兼容)
curl -sS https://api.oairegbox.cc/v1/videos/TASK_ID -H "Authorization: Bearer $TOKEN"

# 2. 成片下载(完成后响应中返回 video_url 官方直链)
curl -L "VIDEO_URL" -o result.mp4

# 3. 视频直出预览(支持网关流式直出)
curl -L -H "Authorization: Bearer $TOKEN" https://api.oairegbox.cc/v1/videos/TASK_ID/content -o preview.mp4
返回的 video_url 为官方高速下载直链,稳定不过期。失败不计费。

Python 完整请求示例(全生命周期)

import time
import requests

BASE_URL = "https://api.oairegbox.cc"
API_KEY = "sk-你的令牌"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

# 1. 提交视频生成任务(指定时长 12 秒 + 9:16 竖屏 + 开启原生音频)
payload = {
    "model": "seedance-2.0-fast-720p",
    "prompt": "一只穿红大衣的小猫在雪地里抓雪花,电影微距镜头,毛发飞雪细节生动",
    "duration": 12,
    "aspect_ratio": "9:16",
    "resolution": "720p",
    "generate_audio": True
}

resp = requests.post(f"{BASE_URL}/v1/videos", headers=HEADERS, json=payload, timeout=60)
resp.raise_for_status()
task_id = resp.json()["task_id"]
print(f"任务已提交,Task ID: {task_id}")

# 2. 轮询直到生成完毕
start_time = time.time()
while time.time() - start_time < 900:
    poll_res = requests.get(f"{BASE_URL}/v1/videos/{task_id}", headers=HEADERS, timeout=30).json()
    status = poll_res.get("status")
    print(f"当前状态: {status} (耗时: {int(time.time() - start_time)}s)")
    if status == "completed":
        video_url = poll_res.get("video_url") or poll_res["data"][0]["url"]
        # 3. 下载保存成片
        content = requests.get(video_url, timeout=120).content
        with open("seedance_output.mp4", "wb") as f:
            f.write(content)
        print("成片已成功下载至本地 seedance_output.mp4!")
        break
    elif status in ("failed", "canceled"):
        raise RuntimeError(f"任务失败: {poll_res.get('error')}")
    time.sleep(5)

注意事项

多模态输入 · 官方素材规格要求

以下为官方多模态素材规格约束。建议素材使用公网可直接下载的稳定直链或 Base64 Data URI。

图片要求

项要求
传入方式公网 URL、Base64 Data URI
图片格式jpeg、png、webp、bmp、tif、gif、heic、heif
宽高比(宽/高)(0.4, 2.5)
边长(px)(300, 6000)
大小单张图片 < 30MB;大文件建议使用公网直链
图片数量首帧 1 张;首尾帧 2 张;参考图 2.0 支持 1–9 张,2.5 支持 1–30 张

视频要求

项要求
传入方式公网视频 URL 或 Base64 Data URI
视频格式mp4、mov(H.264/AVC、H.265/HEVC)
分辨率480p、720p、1080p(不超过请求档位)
时长单个视频 4–30 秒;2.0 最多 3 段,2.5 最多 10 段
大小单个视频 ≤ 50MB
帧率(FPS)[24, 60]

音频要求

项要求
传入方式公网音频 URL、Base64 Data URI
音频格式wav、mp3
时长单个音频 2–30 秒;2.0 最多 3 段(需配合图片或视频),2.5 最多 10 段(允许仅音频)
大小单个音频 ≤ 15MB

Seedream 图像生成 Image

🖼️ 字节「即梦 Seedream」官方图像模型(火山官方直出)。用同一「Seedance 2.0」令牌调用;同步出图 POST /v1/images/generations —— 请求返回即拿到图片,无需轮询。按张计费、失败不计费。

模型与价格

模型版本定位计费方式价格 (7折特惠)尺寸与档位说明
doubao-seedream-5-0-pro5.0 Pro旗舰画质,官方最新按张 (按分辨率阶梯)1K 档:¥0.225/张
2K 档:¥0.495/张
4K 档:¥0.495/张
传入 size 自动识别计费,无需切换模型名:
• ≤ 261万像素(如 1024x1024, 1920x1080):¥0.225
• > 261万像素(如 2048x2048, 2K, 4K):¥0.495
doubao-seedream-5-05.0新版,画质强、性价比最高按张¥0.24/张基础版支持到 4096×4096
doubao-seedream-4-54.5稳定成熟档按张¥0.25/张基础版支持到 4096×4096
📌 提示说明:平台对 doubao-seedream-5-0-pro 实施单一模型智能计费。调用标准 POST /v1/images/generations 时,无需在 model 后加 -1k、-2k 等冗余后缀,只需在请求体中传入目标 size,系统将根据实际像素规格自动扣除对应档位费用。每次调用返回 1 张图,按张计费,失败不计费。

接口信息

项说明
文生图POST /v1/images/generations(同步,返回即出图)
图生图 / 编辑同 /v1/images/generations(带 image 字段)或 /v1/images/edits
返回data[0].url(默认)或 data[0].b64_json
鉴权Authorization: Bearer sk-你的令牌
令牌分组Doubao

核心参数

参数类型必填默认说明
modelstring是-上表三个之一
promptstring是-图像描述提示词。无我方硬性长度上限(走火山官方)
sizestring否1024x1024图像生成尺寸规格,支持两种格式:
1. 像素规格(推荐):"1024x1024" (1K 档)、"2048x2048" (2K 档)、"3840x2160" (4K 档)、"2560x1440" 等;
2. 档位别名:"2K"、"4K";
(计费阶梯:总像素 ≤ 261 万归入 1K 基准档按 ¥0.21 收费;> 261 万归入高清档按 ¥0.42 收费)
response_formatstring否urlurl(图片直链)或 b64_json(base64 内嵌)
imagestring / array否-参考图(图生图 / 编辑 / 多图融合):单张字符串、多张数组。填了 image 即进入编辑;"二次编辑" = 把上一轮产图 URL 回传继续改,可反复迭代。参考图最多 14 张,参考图 + 产图合计 ≤ 15。元素为公网 URL 或 Base64(data:image/png;base64,...)
sequential_image_generationstring否disabled组图模式:设 "auto" 让模型一次连续生成一组相关图(组图,data 返回多张)。产图 + 参考图合计 ≤ 15 张
ninteger否1⚠️ 本线路 n 每次仅返回 1 张,请保持 n=1;n>1 会按 n 计费但仍只返回 1 张。要一次一组相关图请用上面的 sequential_image_generation:"auto" 组图

分辨率范围与档位说明(实测):

模型最高输出最低说明
doubao-seedream-4-54096×4096(真 4K)约 1920×1920基础版支持到 4K
doubao-seedream-5-04096×4096(真 4K)约 1920×1920基础版支持到 4K
doubao-seedream-5-0-pro4K(3840×2160 / 4096×4096)1024×1024全面支持 1K、2K、4K,按请求 size 像素智能阶梯计费
doubao-seedream-5-0-pro 支持从 1024×1024 到 4K 超高清全画幅生成,根据请求 size 自动匹配计费阶梯(≤ 261万像素为 1K 档 ¥0.225,> 261万像素为高清档 ¥0.495)。基础版 4-5 与 5-0 同样支持到 4096×4096。输出格式 JPEG。

提交方式

JSON(同步)。image 字段传单张字符串或多张数组即进入图生图 / 多图融合;参考图支持 URL / 多图 / Base64 三种(已实测)。加 "response_format":"b64_json" 可拿 base64 内嵌。

能力支持说明
URL 参考图✅公网 http/https 直链
多图融合✅image 传数组,参考图最多 14 张(参考图 + 产图 ≤ 15)
Base64 参考图✅data:image/png;base64,...(带前缀)
单张大小≤ 10 MB4.5 档服务上限 15MB,建议统一 ≤10MB
格式JPEG / PNG5.0 档另支持 webp/bmp/tiff/gif;建议优先 JPEG/PNG
输入图尺寸单边 ≤ 4096宽高比约 [1/3, 3]

示例请求

# 1. 默认 1K 标清生成(¥0.21 / 张)
curl -X POST https://api.oairegbox.cc/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-你的令牌" \
  -d '{
    "model": "doubao-seedream-5-0-pro",
    "prompt": "一只可爱的金毛幼犬在阳光草坪上奔跑,微距写实摄影",
    "size": "1024x1024"
  }'

# 2. 2K 高清生成(¥0.42 / 张)
curl -X POST https://api.oairegbox.cc/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-你的令牌" \
  -d '{
    "model": "doubao-seedream-5-0-pro",
    "prompt": "电影感雪山日出全景,光影通透细腻,壁纸级质感",
    "size": "2048x2048"
  }'

# 3. 16:9 宽画幅高清生成(2560x1440,¥0.42 / 张)
curl -X POST https://api.oairegbox.cc/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-你的令牌" \
  -d '{
    "model": "doubao-seedream-5-0-pro",
    "prompt": "电影感雪山日出全景,宽画幅",
    "size": "2560x1440"
  }'

# 4. 图生图:单张参考图(URL)
curl -X POST https://api.oairegbox.cc/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-你的令牌" \
  -d '{
    "model": "doubao-seedream-4-5",
    "prompt": "把背景换成落日海边",
    "size": "2048x2048",
    "image": "https://example.com/ref.jpg"
  }'

# 5. 多图融合:image 传数组(参考图最多 14 张,参考图 + 产图 ≤ 15)
curl -X POST https://api.oairegbox.cc/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-你的令牌" \
  -d '{
    "model": "doubao-seedream-5-0",
    "prompt": "把这两张融合成一张海报",
    "size": "2048x2048",
    "image": ["https://example.com/a.jpg", "https://example.com/b.jpg"]
  }'

# 6. 编辑 / 二次编辑(5.0 Pro):编辑与文生图同一接口,多带 image 字段(填上一轮产图的 URL);可反复迭代
curl -X POST https://api.oairegbox.cc/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-你的令牌" \
  -d '{
    "model": "doubao-seedream-5-0-pro",
    "prompt": "给这只柴犬戴上一顶红色圣诞帽,狗和纯白背景保持不变",
    "image": "https://<上一轮产图URL>",
    "size": "2048x2048"
  }'

# 7. 组图(5.0 Pro):sequential_image_generation=auto,一次连续生成一组相关图(产图 + 参考图 ≤ 15)
curl -X POST https://api.oairegbox.cc/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-你的令牌" \
  -d '{
    "model": "doubao-seedream-5-0-pro",
    "prompt": "柴犬的圣诞四联漫画,风格一致",
    "sequential_image_generation": "auto",
    "size": "2048x2048"
  }'

# 8. 返回 base64
curl -X POST https://api.oairegbox.cc/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-你的令牌" \
  -d '{
    "model": "doubao-seedream-4-5",
    "prompt": "极简红色圆形,纯白背景",
    "size": "2048x2048",
    "response_format": "b64_json"
  }'

轮询取片

同步接口,无需轮询:请求返回即拿到结果。默认 data[0].url 为可直接下载 / 内嵌的图片直链(有有效期,请及时保存);需 base64 内嵌时加 "response_format":"b64_json" 取 data[0].b64_json。

# 默认 url 返回结构:
# {"created":1786957747,"data":[{"url":"https://<官方签名直链>/xxx.jpeg"}]}
curl -L "IMAGE_URL" -o result.jpeg

Python 完整请求

1. 标准 OpenAI SDK 调用(推荐)

from openai import OpenAI

client = OpenAI(
    api_key="sk-你的令牌",
    base_url="https://api.oairegbox.cc/v1"
)

# 生成 2K 高清图像(系统自动按 2K 档位 ¥0.42 计费)
response = client.images.generate(
    model="doubao-seedream-5-0-pro",
    prompt="超写实未来赛博朋克城市雨夜,霓虹倒影,电影质感",
    size="2048x2048",
    response_format="url"
)

print("生成成功,图片直链:", response.data[0].url)

2. requests 库原生调用

import requests

BASE = "https://api.oairegbox.cc/v1"
H = {"Authorization": "Bearer sk-你的令牌", "Content-Type": "application/json"}

r = requests.post(f"{BASE}/images/generations", headers=H, json={
    "model": "doubao-seedream-5-0-pro",
    "prompt": "一只橘猫坐在窗台上,午后阳光洒落,超写实摄影",
    "size": "1024x1024",
}).json()

url = r["data"][0]["url"]
open("seedream.jpeg", "wb").write(requests.get(url).content)

注意事项

建议

Qwen 图像生成(通义千问)Image

🖼️ 阿里「通义千问」官方图像模型(阿里云百炼直出)。支持文生图(/v1/images/generations)与图生图 / 编辑(/v1/images/edits 传参考图),同步出图、无需轮询。返回阿里官方图片直链、无水印;1K ¥0.25/张、2K ¥0.50/张,按张计费、失败不计费。

模型与价格

模型分辨率档位定位计费价格 / 张
qwen-image-3.0-pro1K(默认 / ≤261万像素)通义千问图像 3.0 Pro,高画质文生图 + 图生图 / 编辑按张¥0.25
qwen-image-3.0-pro2K(长边 ≥2000 或 >261万像素)通义千问图像 3.0 Pro,2K 高清出图按张¥0.50
每次调用返回 1 张图,按张计费、失败不计费。返回阿里官方直链、无水印。

接口信息

项说明
文生图POST /v1/images/generations(同步,返回即出图)
图生图 / 编辑POST /v1/images/edits(传参考图 image + prompt,在原图上编辑);同模型、同档位同价(1K ¥0.25 / 2K ¥0.50)
返回data[0].url(默认,阿里官方直链)或 data[0].b64_json
鉴权Authorization: Bearer sk-你的令牌
令牌分组Wan 或 auto(智能路由)

核心参数

参数类型必填默认说明
modelstring是-固定 qwen-image-3.0-pro
promptstring是-图像描述提示词(中英文均可)
sizestring否2528x1696宽×高,如 1024x1024。精确生效(实测按传入 WxH 原样出图);不传默认约 2528×1696(≈3:2)。画幅只认 size
aspect_ratiostring——⚠️ 本模型不生效(会被忽略、仍出默认画幅)。要控画幅请用 size
response_formatstring否urlurl(阿里官方图片直链)或 b64_json(base64 内嵌,已实测)
ninteger否1每次返回 1 张,保持 n=1;需多张请多次调用
imagestring否-图生图 / 编辑(打 /v1/images/edits):参考图,公网 URL 或 base64(data:image/...;base64,)或 multipart 文件(-F "image=@ref.png")。实测参考图会被忠实读取(原图保留 + 按 prompt 编辑)
⚠️ 画幅用 size(精确 WxH),别用 aspect_ratio(本模型忽略它)。常用:1:1 1024x1024 / 1328x1328、16:9 1664x928、9:16 928x1664;不传则约 2528×1696。输出 PNG。

示例请求

# 文生图 —— 同步,一次返回即拿到图片(无需轮询)
curl -X POST https://YOUR_BASE/v1/images/generations \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"qwen-image-3.0-pro","prompt":"一只柯基犬坐在草地上,午后阳光,超写实摄影"}'

# 指定画幅:1:1(用 size,别用 aspect_ratio)
curl -X POST https://YOUR_BASE/v1/images/generations \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"qwen-image-3.0-pro","prompt":"国潮工笔锦鲤,红金配色","size":"1328x1328"}'

# 16:9 宽画幅
curl -X POST https://YOUR_BASE/v1/images/generations \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"qwen-image-3.0-pro","prompt":"电影感雪山日出全景","size":"1664x928"}'

# 返回 base64
curl -X POST https://YOUR_BASE/v1/images/generations \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"qwen-image-3.0-pro","prompt":"极简红色圆形,纯白背景","size":"1024x1024","response_format":"b64_json"}'

# 图生图 / 编辑 —— 传参考图打 /v1/images/edits(同模型、同档位同价 1K ¥0.25 / 2K ¥0.50,参考图不额外计费)
curl -X POST https://YOUR_BASE/v1/images/edits \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"qwen-image-3.0-pro","prompt":"保留主体,把背景换成落日海边","image":"https://example.com/ref.jpg"}'

# 图生图 —— 也可用文件上传参考图(multipart)
curl -X POST https://YOUR_BASE/v1/images/edits \
  -H "Authorization: Bearer $TOKEN" \
  -F "model=qwen-image-3.0-pro" -F "prompt=把它变成柯基脸,保持白色背景" -F "image=@ref.png"

轮询取片

同步接口,无需轮询:请求返回即拿到结果。默认 data[0].url 为阿里官方图片直链(有有效期,请及时保存);需 base64 内嵌时加 "response_format":"b64_json" 取 data[0].b64_json。

# 默认 url 返回结构:
# {"created":1786957747,"data":[{"url":"https://dashscope-<...>.aliyuncs.com/xxx.png"}]}
curl -L "IMAGE_URL" -o result.png

Python 完整请求

import requests
BASE = "https://YOUR_BASE/v1"
H = {"Authorization": "Bearer sk-你的令牌", "Content-Type": "application/json"}
r = requests.post(f"{BASE}/images/generations", headers=H, json={
    "model": "qwen-image-3.0-pro",
    "prompt": "一只柯基犬坐在草地上,午后阳光,超写实摄影",
    "size": "1328x1328",
}).json()
url = r["data"][0]["url"]
open("qwen.png", "wb").write(requests.get(url).content)

注意事项

建议

Meta Muse 全模态工作台(muse-fast 分组)

Meta Muse(Endo / Hatch) 是一套基于专属云端沙盒 VM 的全模态 AI 引擎。本平台通过独立分组 muse-fast(同时已纳入 auto 自动分组)提供全套 10 款模型:涵盖云端 Agent 文本与多模态对话、高清 AI 绘图与参考图编辑、AI 视频生成与 20s/30s 长视频续写、AI 多音色播客生成(Podcast)、Avocado v2 超拟真语音合成(TTS)、极速语音识别转写(ASR)、语音对话(Audio Chat)以及全双工实时语音流(Live Voice),并支持独家的云端沙盒会话粘性(Session Stickiness)。

一、模型矩阵与价格

模型 ID模态能力推荐端点计费方式价格 / 倍率核心特性说明
muse-chat文本 / 图文对话 / 云端 AgentPOST /v1/chat/completions按量 (Token)输入 ¥2.00/M(1.0x)· 输出 ¥8.00/M(4.0x)内置云端 Linux 沙盒,支持多模态识图、长上下文、代码执行与会话粘性
muse-image文生图 / 参考图编辑 / 透明抠图POST /v1/images/generations
POST /v1/images/edits
按次¥0.10 / 张支持画幅比例、分辨率、风格、负向提示词、最多 4 张参考图与 transparent 自动抠图
muse-video文生视频 / 首尾帧 / 多参考图(≤10 秒)POST /v1/videos
GET /v1/videos/{task_id}
按次¥0.30 / 个单段 1~10 秒有声无水印视频;支持比例/尺寸、时长裁剪、帧率、镜头运动(camera_motion)、首尾帧及参考图驱动
muse-video-20s20 秒长视频 / 视频续写(+10 秒)POST /v1/videos
GET /v1/videos/{task_id}
按次¥0.50 / 个两段末帧接力无缝拼接;传入 video_url 时自动续写 +10 秒(总长 ≤20 秒)
muse-video-30s30 秒长视频 / 视频续写(+20 秒)POST /v1/videos
GET /v1/videos/{task_id}
按次¥0.60 / 个三段末帧接力无缝拼接;传入 video_url 时自动续写 +20 秒(总长 ≤30 秒)
muse-podcastAI 多音色播客生成(MP3)POST /v1/videos
GET /v1/videos/{task_id}
按次¥0.30 / 期自动调研撰稿并用 Avocado v2 多音色合成双人/多人对谈 MP3,支持 prompt、language、seconds/minutes、speakers/voices;音频地址在 video_url / url 字段
muse-ttsAvocado v2 神经网络语音合成POST /v1/audio/speech
POST /v1/chat/completions
按次¥0.02 / 次支持 alloy (Aria)、nova、echo (Helio)、fable (Bud) 等高自然度音色,输出 MP3/WAV/OPUS/PCM
muse-asr极速语音识别转写 (STT/ASR)POST /v1/audio/transcriptions按次¥0.02 / 次兼容 MP3 / WAV / OGG / M4A / FLAC / WebM / PCM,云端沙盒秒级精准转写
muse-audio多模态语音输入 & 语音回复POST /v1/chat/completions按量 (Token)输入 ¥5.00/M(2.5x)· 输出 ¥20.00/M(10.0x)支持传入 input_audio 语音提问,同步返回文本回答 + Avocado v2 合成语音直链与 Base64
muse-live全双工实时语音流 / 虚拟人通话WS /v1/realtime?model=muse-live
POST /v1/chat/completions
按量 (Token)输入 ¥5.00/M(2.5x)· 输出 ¥20.00/M(10.0x)支持 OpenAI Realtime 风格 WebSocket 双向语音流及原生虚拟人通话信令

二、图像生成与编辑参数(muse-image)

既可调用标准 POST /v1/images/generations(JSON)、POST /v1/images/edits(multipart 表单),也可直接通过 POST /v1/chat/completions 指定 "model": "muse-image" 生成。

参数名类型必选可选值 / 说明
modelstring是固定传 "muse-image"
promptstring是图像画面描述提示词(支持中英文)
size / aspect_ratio / ratiostring否画幅比例或像素尺寸:"1:1"、"16:9"、"9:16"、"4:3"、"3:4"、"3:2"、"2:3";size 传具体像素(如 "1024x1024" / "1792x1024" / "1024x1792")时精确输出对应尺寸
resolution / qualitystring否画质档位:"1K"(长边 1024)、"2K"(长边 2048 原生)、"4K"(长边 3840 高清放大,例如 9:16 + 4K 输出 2160×3840)、"standard"、"hd"
stylestring否视觉风格指令,如 "photorealistic"、"anime"、"cinematic"、"3d"、"vivid"、"natural"
negative_promptstring否负向提示词(画面中需避免的元素)
seedinteger否随机种子(用于风格与构图复现)
image / images / reference_imagesstring / array否参考图(最多 4 张),支持公网 https:// URL、data:image/png;base64,... 或裸 Base64
backgroundstring否传 "transparent" 时自动执行主体抠图并返回透明通道 RGBA PNG;默认 "auto"
ninteger否生成张数(1–4,默认 1)
output_formatstring否可选 "png" / "jpeg" / "webp":支持真实重编码输出 PNG / JPEG / WebP(若 background="transparent" 则须搭配 "png" 或 "webp")
response_formatstring否"url"(默认,返回图片直链)或 "b64_json"(返回 Base64)
asyncboolean否传 true 时转为后台异步任务,通过 GET /v1/images/generations/{task_id} 轮询

三、视频生成与长视频续写自定义参数(muse-video / 20s / 30s)

支持异步任务接口 POST /v1/videos(兼容 JSON 与 multipart/form-data 上传首帧图),提交后轮询 GET /v1/videos/{task_id};完成后直接从 video_url(或 data[0].url / GET /v1/videos/{task_id}/content)获取 MP4 成片。

参数名类型必选可选值 / 说明
modelstring是三档可选:"muse-video"(单段 ≤10 秒,¥0.30/个)、"muse-video-20s"(20 秒或 +10s 续写,¥0.50/个)、"muse-video-30s"(30 秒或 +20s 续写,¥0.60/个)
promptstring是视频镜头、动作与光影描述提示词
size / aspect_ratio / ratiostring否视频画幅比例或尺寸:"16:9"(横屏)、"9:16"(竖屏)、"1:1"、"4:3"、"3:4"、"1280x720"、"720x1280"、"1920x1080"、"1080x1920"
resolution / qualitystring否分辨率档位:"720p"(如 16:9 为 1280×720)、"1080p"(如 16:9 为 1920×1080,9:16 为 1080×1920);也可直接在 size 传 "1920x1080" / "1080x1920"
secondsstring否⚠️ 在 /v1/videos 接口中 seconds 建议传字符串(如 "5"、"8"、"10",传整数在 OpenAI Video 协议层可能报类型错误);muse-video 支持 1~10 秒精确裁剪(超过 10 秒或传 video_url 续写请改用 muse-video-20s / muse-video-30s,否则返回 400)
fpsinteger否目标帧率,如 24、30、60
camera_motion / motionstring否运镜方式,如 "pan_left"、"zoom_in"、"orbit"、"tracking_shot"、"static"
stylestring否画面风格,如 "cinematic"、"anime"、"cyberpunk"、"realistic"
negative_promptstring否负向提示词(需排除的瑕疵或元素)
seedinteger否随机种子
image / first_frame / input_referencestring / file否首帧参考图(支持 URL、Data URL 或 multipart 文件上传)
last_frame / last_frame_urlstring否尾帧参考图(首尾帧过渡控制)
images / reference_imagesarray否多参考图列表(最多 4 张 URL 或 Base64)
video_urlstring否源视频公网 MP4 URL(仅限 muse-video-20s / muse-video-30s):进行末帧无缝续写(不支持改风格 restyle)
计费与文件保留说明:① 生成失败或超时自动全额退回预扣额度,不扣费;② 任务完成后 result 中固定返回真实 width、height、duration_s;③ 返回的媒体文件直链保留 14 天,请及时转存。

四、语音合成(muse-tts)、语音识别(muse-asr)与实时语音(muse-live)

音色别名 (voice)原生音色 ID音色特征支持输出格式 (response_format)
alloy / aria / coralavocado_v2:MAI_01Aria · 清亮自然女声mp3(默认)、wav、opus、pcm
nova / shimmer / sageavocado_v2:MAI_02Nova · 温暖亲和女声mp3、wav、opus、pcm
echo / helio / onyxavocado_v2:MAI_03Helio · 沉稳磁性男声mp3、wav、opus、pcm
fableavocado_v2:budBud · 叙事表现力男声mp3、wav、opus、pcm

五、云端沙盒会话粘性(Session Stickiness)

由于每个 Muse 账号对应一台独立的云端 VM 沙盒,当您需要进行多轮连续对话、跨请求读写同一工作区文件或保持同一虚拟人会话时,可通过以下任一方式指定会话粘性(TTL 默认 2 小时,活跃访问自动续期):

传参位置字段 / Header 名示例值优先级与说明
HTTP HeaderX-Muse-Account-Idacc_1935f0c924最高优先级:直接锁定指定云端 VM 节点
HTTP HeaderX-Session-Idmy_project_session_01推荐:按自定义会话 ID 一致性锁定同一云端 VM
JSON Body / Querysession_id / conversation_id / user"user": "user_8801"标准 OpenAI 兼容字段,无需改 Header 即可固定会话
自动指纹粘性无需传参(默认开启)自动提取首轮对话指纹多轮携带历史 messages 时,系统自动识别并路由至同一实例

六、完整调用示例

# 1. 云端 Agent 聊天(带 X-Session-Id 会话粘性)
curl -sS https://newapi-2.oairegbox.cc/v1/chat/completions \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -H "X-Session-Id: sess_demo_001" \
  -d '{
    "model": "muse-chat",
    "messages": [{"role": "user", "content": "你好!请帮我用 Python 写一段快速排序并验证输出。"}],
    "stream": true
  }'

# 2. 自定义参数生成图像(比例 + 风格 + 分辨率 + 负向提示词)
curl -sS https://newapi-2.oairegbox.cc/v1/images/generations \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "muse-image",
    "prompt": "赛博朋克雨夜霓虹街道,电影级光影,主角回眸特写",
    "aspect_ratio": "16:9",
    "resolution": "2K",
    "style": "cinematic",
    "negative_prompt": "blurry, watermark, low quality"
  }'

# 3. 自定义参数异步生成视频(比例 + 时长字符串 + 1080p + 运镜)
curl -sS https://newapi-2.oairegbox.cc/v1/videos \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "muse-video",
    "prompt": "金色夕阳下的海浪拍打礁石,镜头缓慢推进",
    "aspect_ratio": "16:9",
    "seconds": "8",
    "resolution": "1080p",
    "camera_motion": "zoom_in"
  }'

# 4. Avocado v2 语音合成 (muse-tts)
curl -sS https://newapi-2.oairegbox.cc/v1/audio/speech \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "muse-tts",
    "voice": "alloy",
    "input": "欢迎体验 Meta Muse 全模态极速语音合成服务。",
    "response_format": "mp3"
  }' -o muse_speech.mp3

# 5. 极速语音识别转写 (muse-asr)
curl -sS https://newapi-2.oairegbox.cc/v1/audio/transcriptions \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -F "model=muse-asr" \
  -F "file=@muse_speech.mp3"