创建令牌
在控制台创建 API Key,并确认目标模型对应分组已开通。
先选择模型原厂与能力,再按详情页确认令牌分组、请求参数和异步任务结果。所有既有模型文档都保留在本次改版中。
在控制台创建 API Key,并确认目标模型对应分组已开通。
视频统一走 POST /v1/videos,参数以对应模型章节为准。
用任务 ID 轮询,完成后读取脱敏后的 video_url。
模型原厂决定能力;令牌分组和路由则在每个模型详情页中确认。自定义线路单独标注,不与官方原厂链路混排。
适用于 Codex、Claude Code、Cursor、Windsurf、Cline 等工具。技能文件会先读取项目环境变量,再发现此令牌实际可见的模型,按本站模型页选择正确的调用方式。
不让 AI 猜模型名、分组、视频轮询或素材字段;模型列表由令牌实时读取,模型参数与价格仍回到本站对应章节核对。
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。它会将文件放到项目技能目录,并保留原始内容。
先下载文件,再和这段提示一并发送给你的 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/。目录不存在就新建,文件内容原样写入,完成后告诉我实际路径。
令牌只保存在项目本地环境变量,AI 后续从 `.env` 读取,不应再次要求你在对话中粘贴密钥。
我的 OAIREGBOX API Key 是:【粘贴 Key】。请把它写进项目根目录.env:OAIREGBOX_API_BASE_URL=https://newapi-2.oairegbox.ccOAIREGBOX_API_KEY=【粘贴 Key】如果已有 .env,只追加缺失变量,不要覆盖其它内容;确认 .env 已在 .gitignore 中。以后从 .env 读取,不要在代码、日志或浏览器端暴露 Key。
AI 会先用令牌调用 `/v1/models`,只使用实际可见的模型 ID;视频、图像与多参考素材均回到对应模型页核对参数。
请读取 OAIREGBOX 的 SKILL.md,先从 .env 取配置并 GET $OAIREGBOX_API_BASE_URL/v1/models。
按视频、图像、音频、文本分类列出我当前令牌可用的模型;不要猜模型名或价格。之后根据我的需求选择模型并给出接入方案,生成类请求先等我明确确认。以下提示都先要求 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 输出到终端或日志。
按 SDK 与任务类型选择协议。文本、Responses、Anthropic、图像、视频和音频使用不同的公开入口,模型名必须来自当前令牌可见列表。
所有可用的 Chat 模型共用 OpenAI Chat Completions 请求体。换 model 即切换模型;长响应或推理场景建议开启 stream: true。
OpenAI 兼容文本、多模态和工具调用入口。
| 参数 | 位置 | 必填 | 说明 |
|---|---|---|---|
model | body | 是 | 来自 GET /v1/models 的可见模型 ID。 |
messages | body | 是 | OpenAI 消息数组;多模态字段以目标模型章节为准。 |
stream | body | 否 | true 时按 SSE 输出。 |
temperature / max_tokens / tools | body | 否 | 按 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 SDK、Codex 与 Agent 工具链的原生输入格式。
| 参数 | 必填 | 说明 |
|---|---|---|
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 的理由"}'面向 Claude SDK 的原生 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"}]}'同步返回图片 URL 或 Base64。模型专属尺寸、质量与参考素材字段必须查看模型详情页。
| 参数 | 必填 | 说明 |
|---|---|---|
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"}'当前规范视频入口。模型可能接受 JSON、Base64、URL 或 multipart,不能跨模型复制素材字段。
| 参数 | 必填 | 说明 |
|---|---|---|
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,再进入“任务与轮询”页面查询结果。标准 OpenAI 音频入口;音乐模型的调用方式以对应模型详情页为准。
语音合成、音频转写与翻译均有 OpenAI 风格入口。
/v1/audio/speech/v1/audio/transcriptions/v1/audio/translations通用 /v1/audio/generations / /v1/media/generate 统一入口待更新;当前请使用上方已开放的音频路由。
当前视频与异步媒体任务使用视频任务 ID 查询。任务已受理后只轮询同一个 ID,不因客户端等待超时重复提交。
当前规范返回四个客户可处理状态。不同来源的原始状态在网关内部映射,客户不需要识别底层状态名。
任务已受理,等待执行。保留任务 ID。
任务正在处理。进度字段仅作参考。
读取结果 URL,停止轮询。
读取错误并保留任务 ID 供排查。
任务归属当前用户。不能查询其他令牌用户的任务。
| 参数 | 位置 | 必填 | 说明 |
|---|---|---|---|
task_id | path | 是 | 提交时返回的公开任务 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}完成后优先使用响应结果地址;已就绪的媒体也可通过内容路径下载。
GET /v1/videos/{task_id}/content统一 /v1/tasks/{task_id}(is_final、output_url、进度与统一错误对象)待更新。
音乐、语音、图像异步任务的统一查询待更新;当前以各模型实际文档为准。
先查询当前令牌能使用的模型,再从模型详情页确认参数、素材规则和价格。模型名、可见性和价格都不应由 AI 或客户端猜测。
OpenAI 兼容列表。返回值已经按令牌、用户分组、模型限制和可用配置过滤。
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单模型参数、可选值、默认值与素材限制。
GET /v1/skills/models/{model}只按当前令牌返回有效计费单位与公开价格,不泄露内部渠道。
GET /v1/skills/models/{model}/pricing时长、清晰度与素材组合影响价格时,复用真实账单逻辑估价。
POST /v1/pricing-estimate当前可查询令牌用量与限制;参考素材仍以模型协议为准。统一钱包余额与文件上传能力待更新。
读取当前令牌的额度、已用额度、模型限制和过期时间。
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 = 元)。仅在目标模型参数页明确支持时使用;链接必须可被目标模型访问。
模型字段为准部分模型支持 data:image/...;base64,...,其它模型可能忽略或拒绝。
模型字段为准仅使用目标模型公开的 multipart 字段,例如某些模型的 input_reference。
模型字段为准把响应里的 video_url 或图片 URL 当作不透明地址使用,及时保存需要长期保留的产物。
响应字段为准以下账户与文件能力待更新,敬请关注。
返回总额、预冻结、可用余额和实际币种;字段来自同一账本快照。
GET /v1/skills/balancemultipart 上传后返回客户安全、可被模型访问、具备过期策略的 URL。
POST /v1/files文件元数据、删除、所有权检查、存储清理和可见 URL 过期时间。
GET / DELETE /v1/files/{id}由模型参数接口声明 URL、Base64、multipart 和限制,AI 不再猜测输入格式。
GET /v1/skills/models/{model}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/models | data[].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/models | data = 账号所有可用分组里已启用的模型名数组(去重)。可选 ?group=组名 筛某组、?group=auto 看智能分组 |
| 账号总余额 | GET /api/user/self | data.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/ 控制台为准。
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)))
500000 = ¥1,即 人民币元 = quota / 500000(本站直扣、汇率 1)。sk- 打不了 /api/user/*(401);账号令牌也不用来打 /v1/* 生成。sk- 可被设 model_limits 只放行部分模型、可单独限额;账号级看的是整个账号(跨所有分组)已启用模型与共享钱包。当前对外提供两个视频别名: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-1 | Veo 3.1 标准视频生成;文生、单图首帧、首尾帧字段可用 | 按次 | ¥0.46 / 次 |
flow-veo-3-1-fast | Veo 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) |
| 耗时 | 通常数十秒至数分钟;客户端应轮询,不要重复提交同一任务 |
| 字段 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
model | string | 是 | - | 只使用 flow-veo-3-1 或 flow-veo-3-1-fast |
prompt | string | 是 | - | 画面、主体、动作、镜头和音频意图;建议写清主体数量与运动方向。无我方硬性长度上限(走 Veo 官方) |
seconds | string / number | 否 | - | 推荐字符串如 "4"。当前最低已验证 4 秒;实际成片可能被服务归一化为默认时长,以完成任务媒体信息为准 |
duration | number / string | 否 | - | seconds 的兼容写法,例如 4;不要同时传两个不同值 |
resolution | string | 否 | - | 兼容字段,建议改用官网式 video_resolution;当前仅 720p(⚠️ 官方已取消 1080p,当前仅 720p) |
size | string | 否 | - | 像素尺寸 1280x720/720x1280,或官网式纵横比 16:9/9:16(须同时传 video_resolution) |
video_resolution | string | 否 | - | 官网式清晰度 仅 720p(官方已取消 1080p)。仅当 size 传纵横比时使用;网关转换为等价像素后发送 |
aspect_ratio | string | 否 | - | 可传 16:9/9:16 作画幅意图;实测可提交,但服务可能归一化输出画幅 |
✅ image | string(base64) | 否 | - | 单图生视频主图 —— 经实测唯一生效的单图字段。必须传 data:image/...;base64,....(勿传图片 URL,系统抓不到会被忽略) |
✅ images | string[](base64) | 否 | - | 多图参考数组,最多 3 张,每个元素为 data:image/...;base64,....;经实测生效 |
❌ image_url | string | 否 | - | 实测不生效:图片被静默忽略、退化为文生视频。请改用 image |
❌ first_image_url/first_image/last_image_url | string | 否 | - | 实测不生效;首尾帧当前无可用字段。单图用 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。下载地址是临时地址,请及时转存。
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": "..." } }
queued/in_progress:继续轮询,不要重复 POST。completed:优先下载 video_url。若立刻请求 /content 得 409 video_not_ready,再查询一次任务后下载返回的 URL。failed:本次任务不计费;修改提示词 / 图片 / 参数后再提交。seconds/resolution/aspect_ratio 不完全相同,以完成任务和媒体探测为准。seconds="4" + 720p。成片可能被归一化(如 4 秒→8 秒),不是可依赖的固定规格。image(单图)/ images(多图,≤3 张)+ base64;image_url/first_image_url/input_reference/multipart 均实测不生效(图被忽略→变文生视频)。首尾帧当前不可用。基于 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-water | V2V(无水印) | 按次 | ¥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 |
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
model | string | 是 | - | 模型名,见上表 |
prompt | string | 是 | - | 视频描述提示词(无我方硬性长度上限,走 Gemini 官方) |
aspect_ratio | string | 否 | 16:9 | 画幅比例:16:9(横)、9:16(竖) |
seconds / duration | string/int | 否 | 10 | 时长秒数(接收但当前 Gemini 固定输出约 10 秒) |
image_url | string | 否 | - | 单张参考图(公网 URL 或 data:image Base64) |
first_image_url | string | 否 | - | 首帧参考图 URL |
last_image_url | string | 否 | - | 末帧参考图 URL |
video / video_url | string | 否 | - | V2V 源视频 URL(≤8MB、≤1920x1080)。传 2 个视频时可用这两个字段各放一个 |
videos | string[] | 否 | - | V2V 多源视频数组(最多 2 个,每个 ≤8MB) |
images | string[] | 否 | - | 多参考图数组(最多 5 张,每张 ≤8MB) |
| 字段 | 说明 |
|---|---|
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"
}'
# 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"
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"
把你自己的一段短视频接长:上传 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"
}'
不想传 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://..." 给链接。
| 要求 | 说明 |
|---|---|
| 匿名可下载 | 服务端下载时不会带你的任何鉴权头。需要签名/登录才能访问的私有链接一律取不到,请用预签名直链(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明确指定,这两个字段不看扩展名。
我们用 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 | 不要重试,换素材(素材级判定,重试无效) |
失败率是跟着你喂进去的参考视频长度走的,不是跟着输出长度走的:
| 参考视频长度 | 10 秒 | 20 秒 | 28 秒 |
|---|---|---|---|
| 成功 | 2/2 | 2/4 | 0/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"}]}
提供两大反重力独立分组: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 工具调用。
gemini-anti-ultra 分组(Gemini Antigravity Ultra · 反重力 Ultra 独立专线,倍率 1.0)| 分组代号 | 分组展示名 | 模型名 | 分组倍率 | 输入单价 | 输出单价 | 缓存单价 | 定位说明 |
|---|---|---|---|---|---|---|---|
gemini-anti-ultra | Gemini Antigravity Ultra | gemini-4-argon | 1.0 | ¥2/M(¥2.00/M) | ¥10/M(¥10.00/M) | ¥0.2/M | 反重力 Ultra 独立号池专线(官方基准 2/10 无折扣,支持工具调用,高稳主力) |
gemini-fast | Gemini Fast | gemini-4-argon-app | 1.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,避免与工具调用通道重名冲突。
gemini-anti 分组(0.28x 特惠)与反重力全系模型一览| 模型 | 类型 | 价格(¥ 与 $ 按 1:1) |
|---|---|---|
gemini-4-argon | Gemini 4 旗舰·图文/思维链/工具调用(分组 gemini-anti-ultra,倍率 1.0) | 入 ¥2/M · 出 ¥10/M · 缓存 ¥0.2/M |
claude-opus-4-6-thinking | Claude 顶配·带思考 | 入 $3.2/M · 出 $16/M · 缓存 $0.32 |
claude-sonnet-4-6 | Claude 均衡 | 入 $2.4/M · 出 $12/M · 缓存 $0.24 |
gemini-3.1-pro-low | Gemini Pro 文本 | 入 $0.48/M · 出 $2.88/M |
gemini-3-flash | Gemini Flash 文本 | 入 $0.4/M · 出 $1.6/M |
gemini-3.6-flash-high | Gemini 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/completionsGemini 原生: POST https://api.oairegbox.com/v1beta/models/gemini-4-argon:generateContent / :streamGenerateContent |
| Base URL | https://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) |
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 见上表;Claude / Gemini / 4K 出图切换 model 即可 |
messages | array | 是 | OpenAI 标准对话消息 |
stream | bool | 否 | true 开启流式 |
tools / tool_choice | array / 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)返回。
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":"用一句话解释量子纠缠"}]
}'
图像通过对话接口返回,结果在 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":"一只戴宇航头盔的柴犬,电影级布光"}]
}'
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。
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": "分析量子纠缠在量子通信中的核心作用"}]}]
}'
gemini-4-argon 需使用 gemini-anti-ultra 分组或 auto 自动分组令牌(入 ¥2/M · 出 ¥10/M · 缓存 ¥0.2/M,倍率 1.0);调用其余 0.28x 特惠模型需在 gemini-anti 分组下gemini-3.1-flash-image-4k 固定输出 4K,按次计费(¥0.112/张),失败不计费/v1/chat/completions,切换 model 即可;gemini-4-argon 同时支持 Gemini 原生端点 /v1beta/models/gemini-4-argon:generateContent 与 :streamGenerateContentclaude-opus-4-6-thinking;日常均衡用 claude-sonnet-4-6。gemini-3.1-flash-image-4k(固定 5632×3072,按次 ¥0.112/张),图在 message.images[].image_url.url 取。model 即可无缝切换;支持 tools function call 与 stream。直连 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.0× 官方基准 | gemini-vertex(1.8×)实际单价 | 单张图片预估成本 |
|---|---|---|---|---|---|
gemini-3-pro-image | Nano 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-image | Nano 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-image | Gemini 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)。
| 模型 | 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)| 模型 | 价格 |
|---|---|
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 | 按 token | gemini-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 | 按 token | gemini-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 | 按 token | gemini-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 URL | https://api.oairegbox.cc(备用 https://newapi.oairegbox.cc) |
| 令牌分组 | gemini-vertex(主力 Google Vertex AI 通道,倍率 1.8) / gemini-official(倍率 1.6) |
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 与 Google 官方一致,如 gemini-3-pro-image、gemini-2.5-pro 等 |
messages | array | OpenAI 格式 | OpenAI 标准对话消息(图像模型同样走对话,支持传入图片做图文编辑,生成图在响应返回) |
contents | array | Gemini 原生格式 | /v1beta/models/{model}:generateContent 标准请求体 |
prompt | string | 音乐 | 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":"生成一张赛博朋克风格的城市夜景海报,霓虹灯倒映在雨夜街道"}]}]
}'
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 视频生成」板块)。
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")
gemini-3-pro-image、gemini-3.1-flash-image、gemini-2.5-flash-image 等)请将令牌分组设为 gemini-vertex(倍率 1.8)gemini-3-pro-image 等原生图像模型走 /v1/chat/completions 或 /v1beta/models/{model}:generateContent,不走 /v1/images/generationsgemini-3-pro-image:使用 gemini-vertex 分组令牌(倍率 1.8,gemini-3-pro-image 单张图约 ¥0.27~¥0.29)。/v1/images/generations 接口:可使用 gemini-fast 分组的 gemini-image(¥0.11/张)或 gemini-image-pro(¥0.12/张),详见「Gemini 图像生成」章节。/v1/videos,提交后轮询取片,别用 chat 端点。上传带水印的视频,系统自动去除水印后返回去水印成片。异步任务,流程与视频生成一致。
| 模型 | 能力 | 计费 | 价格 |
|---|---|---|---|
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 |
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
model | string | 是 | - | 固定 veo-clean |
input_video | file | 是 | - | 带水印视频文件,≤20MB,必须 multipart 上传 |
prompt | string | 是 | - | 去水印指令,通常填 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"}]}
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 标准版、Veo 3.1 Fast(静音档,无音频)与 Veo 3.1 Fast Direct(含音频)。两者均使用 OpenAI 兼容的异步视频接口:提交任务后轮询,完成时从响应中的 video_url 获取成片。
本页仅列出当前已开放的 VEO 模型;请勿以模型名或参数猜测方式调用未列出的模型。
| 模型 | 说明 | 当前验收规格 |
|---|---|---|
firefly-veo-3.1 | Veo 3.1 标准版 · 含音频 | 文/图生视频,4 秒、6 秒、8 秒 |
firefly-veo-3.1-fast | Veo 3.1 Fast,优先低延迟 · 无音频(静音输出) | 文/图生视频,4 秒、6 秒、8 秒 |
firefly-veo-3.1-fast-direct | Veo 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 URL | https://newapi-2.oairegbox.cc |
| 提交任务 | POST /v1/videos |
| 查询任务 | GET /v1/videos/{task_id} |
| 鉴权 | Authorization: Bearer sk-你的令牌 |
| 任务模式 | 异步;提交成功仅表示任务已入队 |
| 成片交付 | 任务 status 为 completed 后,读取顶层 video_url |
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 使用上表中的一个模型名 |
prompt | string | 是 | 视频画面、主体、动作、镜头和风格描述 |
seconds | string | 是 | 目标时长(秒),可选 "4"、"6"、"8",三者均支持 |
video_seconds | string | 否 | 无需传;只传 seconds 即可 |
size | string | 是 | 两种传法,任选其一: ① 像素式 宽x高:"1280x720"(横 720p)、"720x1280"(竖 720p)、"1920x1080"(横 1080p)、"1080x1920"(竖 1080p)——画幅与清晰度自动识别,video_resolution 无需传。② 官网式 纵横比 "16:9"(横)/ "9:16"(竖)——此时必须同时传 video_resolution,否则报错。 |
video_resolution | string | 条件必填 | size 传像素时:无需传(清晰度由像素决定)。size 传纵横比(16:9/9:16)时:必填,取 "720p" 或 "1080p",否则报“size 为纵横比(16:9/9:16)时必须同时提供 video_resolution”。 |
input_reference | string / 文件 | 否 | 图生视频用:参考图(首帧)。可传图片 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(传这个) | 画幅 | 清晰度 |
|---|---|---|
"1280x720" | 横版 16:9 | 720p |
"720x1280" | 竖版 9:16 | 720p |
"1920x1080" | 横版 16:9 | 1080p |
"1080x1920" | 竖版 9:16 | 1080p |
size 纵横比 + video_resolution)size | video_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)。首尾帧模式与多参考图模式互斥,不可同一请求混用。
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"
}'
在文生的基础上,用 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_frame(起始帧)和 last_frame(结束帧)两张图,引导 Veo 从首帧画面过渡到尾帧画面。两个字段都支持图片 URL、base64(data:image/...;base64,)或 multipart 文件。只传 first_frame 等同于用首帧做图生视频(与上面的 input_reference 首帧一致)。首尾帧模式与下方“多参考图”模式互斥,不能同一请求混用(Adobe 官方规则,混传会在生成前返回 400、不计费)。
| 参数 | 类型 | 说明 |
|---|---|---|
first_frame | file / url / base64 | 起始帧图片(可单独使用=首帧图生视频)。别名:first_image_url |
last_frame | file / 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 传入多张参考图,引导角色、风格与构图。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。
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
completed 或 failed。firefly-veo-3.1 或 firefly-veo-3.1-fast-direct;firefly-veo-3.1-fast 是静音档、无音轨。size(如 1280x720)自动识别清晰度;官网式纵横比 16:9 需同时传 video_resolution。first_frame+last_frame,要角色 / 风格一致用 reference_images,别混用。Adobe Firefly 的 Seedance 2.0 与 Seedance 2.0 Fast 视频模型。支持文生视频与单图生视频,使用 OpenAI 兼容的异步视频接口:提交任务后轮询,完成时读取 video_url 获取成片。四档均原生自带音频(对白 / 音效 / 环境音同步生成),无需额外参数。
本页仅适用于 firefly 分组的 Adobe Firefly Seedance 模型;与导航中另一套 Seedance 服务是独立通道、独立模型和独立素材协议,不能混用模型名或多图参数。
| 模型 | 版本 | 固定输出分辨率 | 价格 |
|---|---|---|---|
firefly-Seedance-2.0-fast-480p | Seedance 2.0 Fast | 480p | ¥0.10/秒 |
firefly-Seedance-2.0-fast-720p | Seedance 2.0 Fast | 720p | ¥0.25/秒 |
firefly-Seedance-2.0-480p | Seedance 2.0 标准版 | 480p | ¥0.15/秒 |
firefly-Seedance-2.0-720p | Seedance 2.0 标准版 | 720p | ¥0.35/秒 |
视频默认带音频(AAC 音轨):Seedance 2.0 是 Adobe 官方原生音频模型,一次生成即同步产出对白 / 音效 / 环境音;四档(标准 / Fast × 480p / 720p)全部自带音频,无需额外参数、也不额外计费。
模型名已固定输出分辨率;video_resolution 只能填写与所选模型一致的值,不能用 480p SKU 请求 720p 输出。
| 项 | 说明 |
|---|---|
| Base URL | https://newapi-2.oairegbox.cc |
| 提交任务 | POST /v1/videos |
| 查询任务 | GET /v1/videos/{task_id} |
| 鉴权 | Authorization: Bearer sk-你的令牌 |
| 成片交付 | 任务 status 为 completed 后,读取顶层 video_url |
| 参数 | 可用值 | 说明 |
|---|---|---|
seconds / duration | 4 ~ 15(任意整数) | 输出时长(秒);Adobe 官方支持 4–15 秒 |
video_resolution | 480p、720p | 必须与模型名的固定 SKU 相同 |
size | 16:9 / 9:16,或下列精确像素 | 横竖画幅;也可使用 aspect_ratio |
| 输出档位 | 16:9 横版 | 9:16 竖版 |
|---|---|---|
| 480p | 854x480 | 480x854 |
| 720p | 1280x720 | 720x1280 |
提交一张首帧参考图即可启用图生视频;不带图片则为文生视频。input_reference 为单张首帧图。若需首尾帧或多图 / 视频 / 音频参考,见下方“首尾帧”“全能参考(Omni)”两节。可上传 JPEG/JPG、PNG、WebP。服务会按目标画幅进行居中裁切、缩放并转为 PNG 后提交;建议先按目标画幅准备主体清晰的图片,以免裁掉重要内容。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 上表之一 |
prompt | string | 是 | 描述运动、镜头和画面变化 |
seconds | integer/string | 否 | 4 ~ 15 任意整数;默认 4 |
video_resolution | string | 否 | 480p 或 720p,必须匹配模型 |
size | string | 否 | 16:9 / 9:16,或精确输出像素 |
input_reference | file | 图生时是 | 单张首帧图;使用 multipart/form-data 上传 |
image_style | string | 否 | 可选风格化:真人参考 → 漫剧角色时传 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。请改用三视图 / 多角度参考的方式——把同一人物的正面、侧面、背面等多张清晰照片作为多图参考传入(见下方“全能参考(Omni)”的仅多图参考示例),既能提高“真人脸”过审率,又能保持真人形象。image_style=anime。网关会在提交 Adobe 前把你的真人参考图整图风格化(动漫化),从而通过 Adobe 的“真人脸”内容审核,产出漫剧风格的角色视频。一句话:真人要真人 → 用三视图多图参考,别传image_style;真人要漫剧脸 → 传image_style=anime。不传该参数时行为完全不变(原图直发),主动权在你。
| 参数 | 可用值 | 说明 |
|---|---|---|
image_style | anime | 仅对带参考图的图生视频(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。
提供起始帧和结束帧图片,Seedance 生成从首帧平滑过渡到尾帧的视频。用 first_frame、last_frame 两个字段,支持 multipart 文件、图片 URL 或 base64(data:image/...;base64,)。只传 first_frame 即为单首帧动画。首尾帧模式与下方“全能参考”模式互斥,不能同一请求混用(Adobe 官方规则)。
| 参数 | 类型 | 说明 |
|---|---|---|
first_frame | file / url / base64 | 起始帧图片(可单独使用) |
last_frame | file / 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'
Seedance 2.0 的核心能力:一次最多提供 9 张图 + 3 段视频 + 3 段音频(总计 ≤ 9 个参考资产)作为风格、角色、构图、运镜、音效的引导。用 reference_images、reference_videos、reference_audios 传入,可在 prompt 里用文字说明各参考的作用。参考视频引导运动与氛围(不是直接动画化)。与首尾帧模式互斥。
| 参数 | 数量上限 | 单文件上限 | 说明 |
|---|---|---|---|
reference_images | 9 | 100 MiB | 参考图(风格 / 角色 / 构图) |
reference_videos | 3 | 50 MiB | 参考视频(运镜 / 氛围,建议 2–15s) |
reference_audios | 3 | 50 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 秒轮询一次,不要为同一请求并发重复提交。
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
video_resolution 须与模型一致。400、不计费。image_style;真人要漫剧脸传 image_style=anime。Adobe Firefly 的 Kling 3.0 与 Kling 3.0 Omni 视频模型。支持文生视频、图生视频(首帧参考图)与 Omni 多主体参考(@元素,单次最多 3 个),使用 OpenAI 兼容的异步视频接口:提交任务后轮询,完成时读取顶层 video_url 获取成片。
模型名区分大小写(Kling首字母大写、Omni首字母大写),请严格按下表填写,否则会报model_not_found。
| 模型 | 版本 | 清晰度 | 价格 | 时长 |
|---|---|---|---|---|
firefly-Kling-3.0-720p | Kling 3.0 标准 | 720p | ¥0.045/秒 | 5–15 秒(自定义) |
firefly-Kling-3.0-1080p | Kling 3.0 标准 | 1080p | ¥0.065/秒 | 5–15 秒(自定义) |
firefly-Kling-3.0-Omni-720p | Kling 3.0 Omni(全能参考) | 720p | ¥0.08/秒 | 5–15 秒(自定义) |
firefly-Kling-3.0-Omni-1080p | Kling 3.0 Omni(全能参考) | 1080p | ¥0.10/秒 | 5–15 秒(自定义) |
按秒计费 = 单价 × 时长。例如 Kling 3.0 720p 10 秒 = ¥0.45。失败不计费。
视频默认带音频(AAC 音轨):Kling 3.0 标准与 Omni 均自带生成音效,无需额外参数。
| 项 | 说明 |
|---|---|
| Base URL | https://newapi-2.oairegbox.cc |
| 提交任务 | POST /v1/videos |
| 查询任务 | GET /v1/videos/{task_id} |
| 鉴权 | Authorization: Bearer sk-你的令牌 |
| 任务模式 | 异步;提交成功仅表示任务已入队,需轮询 |
| 成片交付 | 任务 status 为 completed 后,读取顶层 video_url |
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 上表 4 个模型之一(区分大小写) |
prompt | string | 是 | 画面、主体、动作、镜头与风格描述 |
seconds / duration | string | 是 | "5" ~ "15" 任意整数;Adobe 官方支持自定义时长,最多 15 秒(标准与 Omni 同) |
size | string | 是 | 输出像素尺寸 宽x高;画幅(横/竖)与清晰度(720p/1080p)由像素自动识别(见下表) |
input_reference | string / 文件 | 否 | 图生视频用:首帧参考图,支持图片 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:9 | 720p |
"720x1280" | 竖版 9:16 | 720p |
"720x720" | 方形 1:1 | 720p |
"1920x1080" | 横版 16:9 | 1080p |
"1080x1920" | 竖版 9:16 | 1080p |
"1080x1080" | 方形 1:1 | 1080p |
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"
}'
用 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,<...>'。
@元素,最多 3 个)Kling 3.0 Omni 支持把参考图作为命名“元素”(主体/角色/物体/场景),在 prompt 中用 @元素名 引用,让生成画面保持该主体的一致性。单个视频请求最多引用 3 个元素(第 4 个起会被系统拒绝:reference_elements: List should have at most 3 items)。分两步:
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}删除。
@元素名 引用(最多 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(短期签名下载地址,请在有效期内下载或转存)。
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
firefly-Kling-3.0-720p / firefly-Kling-3.0-Omni-1080p 等(Kling/Omni 首字母大写)。5–15 秒任意整数。POST /v1/entities 建元素(每个 1–4 张、建议 4 张不同角度),再在 prompt 里 @元素名 引用。size 或 aspect_ratio 均可。Kling / Omni 首字母大写),否则报 model_not_found。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 URL | https://newapi-2.oairegbox.cc |
| 提交任务 | POST /v1/videos |
| 查询任务 | GET /v1/videos/{task_id} |
| 鉴权 | Authorization: Bearer sk-你的令牌 |
| 任务模式 | 异步;提交成功仅表示任务已入队 |
| 成片交付 | 任务 status 为 completed 后,读取顶层 video_url |
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 固定 firefly-gemini-omni-720p |
prompt | string | 是 | 视频画面、主体、动作、镜头和风格描述 |
seconds | string | 是 | 目标时长(秒),仅支持 "4"、"6"、"8"、"10" |
size | string | 是 | 画幅,取 "1280x720"(横 720p)或 "720x1280"(竖 720p);也接受纵横比 "16:9" / "9:16"。仅 720p,无需传 video_resolution |
video_resolution | string | 否 | 仅 "720p";传纵横比 size 时可选传,不传也默认 720p |
input_reference | string / 文件 | 否 | 图生视频(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 | 画幅 | 清晰度 |
|---|---|---|
"1280x720" 或 "16:9" | 横版 16:9 | 720p |
"720x1280" 或 "9:16" | 竖版 9:16 | 720p |
| 模式 | Content-Type | 参考素材 |
|---|---|---|
| 文生视频(T2V) | application/json | 无 |
| 图生视频(I2V) | multipart/form-data | input_reference(URL / base64 / 文件,单张) |
| 视频生视频(V2V) | multipart/form-data | input_video(仅文件 / base64,不收 http URL) |
同时传图和视频时按 V2V 处理;都不传即文生。
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"
}'
在文生的基础上,用 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,<...>'。
用 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。
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
seconds 只接受 4/6/8/10,其它值会报错。input_video 只收 multipart 文件或 base64 data URL,不会下载 http 链接;传 http 链接会被忽略、退化为文生。prompt=文生;加 input_reference=图生;加 input_video=视频生视频(同时给图和视频按 V2V)。4/6/8/10 四档。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-1k | 1K | medium(固定) |
firefly-gpt-image-2k | 2K | medium(固定) |
firefly-gpt-image-4k | 4K | medium(固定) |
| 服务端质量 | Adobe detailLevel | 客户侧 |
|---|---|---|
medium | 3 | 固定,不开放 quality 字段 |
客户请求不需要传quality;网关统一按medium提交。当前先按画布尺寸提供 1K / 2K / 4K,实际 Adobe 扣点以账号控制台结算记录为准,平台会持续观察质量档的真实扣费。
| 画幅 | 1k | 2k | 4k |
|---|---|---|---|
| 1:1 | 1024×1024 | 2048×2048 | 2880×2880 |
| 16:9 | 1088×608 | 2048×1136 | 3840×2128 |
| 9:16 | 608×1088 | 1136×2048 | 2128×3840 |
| 21:9 | 1248×528 | 2048×864 | 3840×1616 |
| 5:4 | 1024×816 | 2048×1648 | 3200×2576 |
| 4:3 | 1024×752 | 2048×1520 | 3328×2480 |
| 3:2 | 1024×672 | 2048×1360 | 3504×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 URL | https://newapi-2.oairegbox.cc |
| 提交任务 | POST /v1/videos |
| 查询任务 | GET /v1/videos/{task_id} |
| 鉴权 | Authorization: Bearer sk-你的令牌 |
| 成片交付 | 任务 status 为 completed 后,读取顶层 video_url |
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 上表之一 |
prompt | string | 是 | 图片描述 |
aspect_ratio | string | 否 | 画幅,见上;默认 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 文件。
# 提交任务: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 -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 可替换为本页支持的其它画幅。
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 供后台定位。
⚠️ 本通道不支持 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。 |
prompt | string | 是 | 你要如何编辑,例如“把背景换成海边日落,人物主体保持不变” |
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风格化。
medium(Adobe detailLevel=3),客户端不传 quality;质量不改变输出像素。image_style)。aspect_ratio 定画幅(默认 1:1),对照「实际输出像素」表核对最终尺寸。data:image/...;base64, 放进 reference_images 数组(单张也用数组)。Adobe Firefly 的内容审核较严格,视频任务失败大多来自 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_style | anime | 把参考图转成动漫 / 绘画风后再生成;仅对带参考图的图生视频(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 官方直连」相互独立、单独维护。共 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 服务是独立通道、独立模型;请勿跨线路混用模型名。
| 模型 | 480p | 720p | 时长 | 计费 | 定位 |
|---|---|---|---|---|---|
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.5720p 5 秒 = ¥4.00、默认 15 秒 = ¥12.00)。失败不计费。
| 项 | 说明 |
|---|---|
| 提交任务 | POST /v1/videos(JSON) |
| 轮询进度 | GET /v1/videos/{task_id} |
| 下载成片 | 完成后响应里的 video_url(可直接下载 / 嵌入的直链) |
| 鉴权 | Authorization: Bearer sk-你的令牌 |
| 令牌分组 | sd-videos(智能 auto 分组亦可路由) |
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | sd-2.0-mini / sd-2.0-fast / sd-2.0-standard / sd-2.5 之一 |
prompt | string | 是 | 视频描述提示词(文生视频) |
aspect_ratio | string | 否 | 画幅:16:9(默认)、9:16、1:1;也接受 size(如 1280x720),系统就近吸附到这三种 |
resolution | string | 否 | 清晰度:480p / 720p(默认 720p),两档价格不同、见模型价格表 |
duration | integer | 否 | 时长秒数,仅 sd-2.5 生效(默认 15 秒);sd-2.0-* 固定 15 秒、传入无效 |
referenceImages | array | 否 | 参考图(图生视频),元素为公网 URL 或 data:image/...;base64,;可传多张 |
referenceVideos | array | 否 | 参考视频,公网 URL 或 base64 |
referenceAudios | array | 否 | 参考音频,公网 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为可直接下载 / 嵌入的直链;失败不计费。
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)
resolution 选 480p / 720p(默认 720p),两档价格不同、见模型价格表。sd-2.0-mini/fast/standard 单次固定 15 秒(按次计费);sd-2.5 可用 duration 自定义时长(按秒计费)。aspect_ratio":"9:16"。video_url 为直链,请及时转存。失败不计费。prompt = 文生视频(T2V);带参考图 = 图生视频(I2V);带参考视频 = 视频编辑(V2V)。用「Seedance 2.0」令牌调用;按 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 智能路由分组) |
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
model | string | 是 | - | doubao-seedance-2.5-720p 或 doubao-seedance-2.5-1080p(分辨率即档位) |
prompt | string | 是 | - | 生成 / 编辑描述(如"一只橘猫在草地奔跑""改成夜景赛博朋克风格")。无我方硬性长度上限 |
seconds | string | 是 | - | 字符串,范围 4–30。文生 / 图生自选;视频编辑必须 = 参考视频时长 |
metadata.reference_images | array(URL / base64) | 否 | - | 图生视频用。公网图片 URL 或 base64 data-URI,≤30 张;放 metadata 内 |
metadata.reference_videos | array(URL / base64) | 否 | - | 视频编辑用。公网 mp4 URL 或 base64,单个 4–30 秒、分辨率 ≤ 档位,≤10 个(首个决定输出时长 / 画幅);放 metadata 内 |
metadata.reference_audios | array(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 为官方高速下载直链,有时效请及时保存。失败不计费。
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)
metadata.reference_images = 图生视频;metadata.reference_videos = 视频编辑。分辨率由模型名(720p / 1080p)决定。seconds 必须等于参考视频时长,否则报错并提示正确秒数(不产任务、不计费);文生 / 图生的 seconds 在 4–30 自选。seconds 传字符串。metadata、用公网 URL 或 base64 data-URI,不支持 multipart 文件上传;URL 须无需登录即可下载。单次上限 30 图 + 10 视频 + 10 音频。generate_audio 为画面人物合成配音,上传女声不会把男性角色改成女声;想要女声请让画面人物为女性。以下为官方对素材的技术约束(格式 / 尺寸 / 编码 / 保存)。各素材的数量与时长上限以本页「核心参数」为准(≤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 | .mp4 | video/mp4 | 视频:H.264/AVC、H.265/HEVC;音频:AAC、MP3 |
| QuickTime | .mov | video/quicktime | 视频:H.264/AVC、H.265/HEVC |
| 项 | 要求 |
|---|---|
| 传入方式 | 音频 URL、音频 Base64 编码 |
| 音频格式 | wav、mp3 |
| 大小 | 单个音频 ≤ 15MB;请求体 ≤ 64MB。大文件请勿使用 Base64 编码 |
| 对象 | 保存时长 |
|---|---|
| 任务记录 | 保存 7 天,查询区间 [T−7天, T),T 为请求发起时刻的 UTC 秒级时间戳 |
| 视频 URL | 保存 24 小时,超时后无法访问,请及时下载或转存 |
seconds 在 4–30 自选;想要更稳的风格 / 主体,用 metadata.reference_images 带 1–2 张参考图。seconds 填该片段实际秒数;1080p 高清源用 doubao-seedance-2.5-1080p,720p 源用 720p 档更省。基于 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-video | 480p(默认) | 按秒 | ¥0.05 / 秒 |
grok-imagine-video | 720p | 按秒 | ¥0.065 / 秒 |
grok-imagine-video-1.5-preview | 480p | 按秒 | ¥0.058 / 秒 |
grok-imagine-video-1.5-preview | 720p(推荐) | 按秒 | ¥0.12 / 秒 |
grok-imagine-video-1.5-preview | 1080p 高清 | 按秒 | ¥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(智能路由)分组均可 |
| 参数 | 取值 | 默认 | 说明 |
|---|---|---|---|
model | grok-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_images | URL 数组,最多 7 张 | - | 可选,多张参考图(图生视频)。仅 grok-imagine-video-1.5-preview 的 480p / 720p 生效;⚠️ 1080p 不支持多图(见下)。单张请用 image |
seconds | 字符串,1 ~ 15 | 6 | 视频时长(秒)。全系按秒计费:费用 = 单价 × 秒数(1.0 与 1.5 系列均按秒) |
aspect_ratio | 16:9(横屏)/ 9:16(竖屏)/ 1:1(方屏) | 16:9 | 可选,画幅比例。⚠️ Grok 视频仅支持此 3 种画幅(不支持 3:4、4:3 等;传入不支持比例官方将自动回退为 16:9 横屏)。手机竖版或电商主图请用 9:16 |
resolution | 480p / 720p(1.5-preview 另 1080p) | 480p | 决定分辨率与单价(见上表)。⚠️ grok-imagine-video-1.5-preview 的 1080p 只支持单张首帧 image,不支持多图 reference_images |
size | 如 720x1280 / 1024x1024 | - | 旧字段,已兼容:自动换算为最接近的 aspect_ratio(避免"请求竖屏却出横屏");也支持 portrait / landscape / square 等词 |
i2v 的参考图通过 image 字段传入,支持两种写法:
| 方式 | 写法 | 说明 |
|---|---|---|
| 公网 URL | "image": "https://.../a.jpg" | 公网可直接 GET 的图片直链(不能是需登录 / 内网 / 拦爬虫的链接) |
| base64 Data URI | "image": "data:image/jpeg;base64,/9j/4AAQ..." | 须带 data: 前缀 |
图片格式 JPG / PNG / WebP。
image(字符串,一个 URL 或 base64)。reference_images(URL 数组),grok-imagine-video-1.5-preview 最多 7 张,模型综合多张参考出片。示例:"reference_images": ["https://.../a.jpg", "https://.../b.jpg"]⚠️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 秒。
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(1.0)480p / 720p = ¥0.05 / 0.065 每秒;grok-imagine-video-1.5-preview 480p / 720p / 1080p = ¥0.058 / 0.12 / 0.15 每秒;失败不计费seconds 取 1~15;1.5-preview 分辨率由 resolution 参数决定(480p / 720p / 1080p)grok-imagine-video-1.5-preview(480p / 720p)用 reference_images 数组,最多 7 张;单张首帧用 image1080p 仅支持单张首帧 image,不支持多图 reference_images(传了也只取第一张作首帧)image 须为公网可直接抓取的 URL 或 base64 Data URI;需登录 / 内网 / 拦爬虫(如部分维基)的链接会失败grok-imagine-video 不带图为文生视频;grok-imagine-video-1.5-preview 为图生视频,建议带 image16:9、9:16、1:1。如需 3:4 比例视频,建议设置 aspect_ratio: "9:16" 生成后在本地裁切,切勿传 3:4 以免官方自动回退至横屏。grok-imagine-video-1.5-preview 定位图生视频,带一张清晰首帧 image 出片更稳、质感更好;纯文生优先用 grok-imagine-video。-1080p 只认单张首帧,需要多张参考时用 -720p + reference_images。aspect_ratio(三选一):推荐直接使用 aspect_ratio(9:16 竖屏 / 16:9 横屏 / 1:1 方屏),避免使用非标准比例;size 仅为兼容旧客户端保留。grok-imagine-video-6s · 6 秒定档(最省钱)专项说明grok-imagine-video-6s:Grok Imagine 的单段短视频,固定输出 6 秒 / 480p 档、按次计费 ¥0.15/条。文生(只给提示词)与图生(带参考图、运动跟随提示词)都支持;与其它 Grok 视频同一 /v1/videos 通道,JSON body 与 multipart 表单均可提交。
seconds / resolution 均被忽略。size(只决定竖 / 横 / 方,不决定清晰度):720x1280(竖 9:16,默认) / 1280x720(横 16:9) / 960x960(方 1:1);实际输出分别约 416×752 / 752×416 / 560×560(均 480p 档,数字仅为画幅代号,不代表出 720p)。image_url(公网 URL / base64 Data URI / 本地 @file 仅 multipart),字段名 image / images / reference_images / input_reference 亦兼容,最多 7 张,multipart 每张 ≤ 5MB。xAI / auto;客户端超时建议 ≥ 180 秒、轮询 3-5 秒。# 文生视频(只给提示词,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"}'
OpenAI 兼容的同步图像接口,请求成功后直接返回图像、无需轮询。文生图三档质量任选;图生图 / 图片编辑用 grok-imagine-image 或 grok-imagine-image-2.0 打 /v1/images/edits 传参考图即可,同名同价、由接口区分。
| 场景 | 端点 | 模型 |
|---|---|---|
| 文生图 | POST /v1/images/generations | grok-imagine-image / -2.0 / -lite |
| 图生图 / 图片编辑 | POST /v1/images/edits(传参考图) | grok-imagine-image / grok-imagine-image-2.0 |
| — | ❌ 不支持,-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-image | 1024x1024 / 1792x1024 / 1024x1792 | 1:1 / 16:9 / 9:16 / 2:3 / 3:2 / 4:3 / 3:4 | 1024x1024 |
grok-imagine-image-2.0 | 1024x1024 / 1792x1024 / 1024x1792 / 2048x2048(2K) | 同上 | 1024x1024 |
grok-imagine-image-quality | 1024x1024 / 1792x1024 / 1024x1792(仅 1K) | 同上 | 1024x1024 |
grok-imagine-image-lite | 1280x720 / 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") |
| 参数 | 取值 | 默认 | 说明 |
|---|---|---|---|
model | grok-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_format | url / b64_json | url | url 返回下载地址;b64_json 直接返回 Base64 图像数据 |
size | 1024x1024 / 1792x1024 / 1024x1792 / 2048x2048(2048x2048 仅 -2.0;-lite 见画幅说明) | 1024x1024 | 可选,输出尺寸;grok-imagine-image / -2.0 / -quality 适用 |
resolution | 1k / 2k | 1k | 可选,仅 grok-imagine-image-2.0 支持 2k;与 size 效果等价,二者皆可 |
aspect_ratio | 1: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,... 格式 |
images | URL / 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。
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"])
先文生图拿到一张图,再把它当参考图做编辑——同一个 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")
data 返回后再处理结果。data:image/...;base64,)内联。images 数组;使用 multipart 多图时重复传 image[] 字段。url 与 b64_json 二选一:前者适合直接展示或下载,后者适合本地持久化或二次处理。n 建议传 1,需要多张分多次请求,稳定性更好。url,落库用 b64_json:前者拿代理下载地址(30 天有效),后者拿 Base64 便于本地持久化。wan3.0-video(全能多模态参考版)与 wan3.0-video-prime(优速版,30fps 高帧率、质感更高且出片更快)。现已全面支持全多模态参考架构:涵盖 A. 文生视频、B. 图生视频(首帧 / 首尾帧)、C. 多图参考生视频、D. 图 + 视频 + 音频多模态参考、E. 文件 / 网页链接参考 5 种核心模式。OpenAI 兼容异步接口、按秒 × 分辨率计费、失败不计费。| 模型 | 分辨率(resolution) | 计费 | 价格 |
|---|---|---|---|
wan3.0-video | 480p(默认) | 按秒 | ¥0.21 / 秒 |
wan3.0-video | 720p | 按秒 | ¥0.42 / 秒 |
wan3.0-video | 1080p | 按秒 | ¥0.84 / 秒 |
wan3.0-video-prime | 480p(默认) | 按秒 | ¥0.38 / 秒 |
wan3.0-video-prime | 720p | 按秒 | ¥0.76 / 秒 |
wan3.0-video-prime | 1080p | 按秒 | ¥1.52 / 秒 |
按秒 × 分辨率计费:费用 = 该分辨率单价 ×duration(秒数)(例:wan3.0-video720p × 5 秒 = ¥2.10)。分辨率用resolution参数控制(480p/720p/1080p),不传默认 480p。失败不计费,成功出片才扣。wan3.0-video-prime为优速版(30fps、质量更高且出片更快),价格高一档;两者能力与参数完全兼容,按预算与时效要求选取。
| 模式 | 场景名称 | 核心能力 | 触发参数 / 字段写法 | 说明与适用业务 |
|---|---|---|---|---|
| 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 URL | https://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 分钟(多模态与高分辨率耗时相应增加);客户端请异步轮询取片,切勿在超时前重复发起同一任务 |
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
model | string | 是 | - | wan3.0-video(全能多模态参考版)或 wan3.0-video-prime(优速版,30fps) |
prompt | string | 是 | - | 画面内容、动态走势、光影氛围或镜头运动描述。走官方模型上下文,无我方硬性长度限制 |
resolution | string | 否 | 480p | 决定清晰度与计费单价:480p / 720p / 1080p(大小写兼容)。也可用 size 传 宽x高(如 1280x720),系统自动匹配就近档位 |
ratio | string | 否 | adaptive | 画幅比例:16:9(横屏)、9:16(竖屏)、1:1(方屏)、4:3、3:4、adaptive(默认根据参考素材自适应)。兼容 portrait / landscape 等别名 |
duration / seconds | integer / string | 否 | 5 | 视频生成时长(秒),支持 5–30 秒。实际扣费以此秒数结算 |
images | array | 否 | - | 参考图片列表:支持纯 URL 字符串数组或带角色对象数组 [{ "url": "...", "role": "..." }]。单图默认首帧;双图默认首尾帧;3 张以上默认参考图。显式角色支持 first_frame(首帧)、last_frame(尾帧)、reference_image(参考图) |
videos | array | 否 | - | 参考视频列表:纯 URL 字符串数组或 [{ "url": "...", "role": "reference_video" }]。作为画面运动节奏与镜头轨迹的参考素材 |
audios | array | 否 | - | 参考音频列表:纯 URL 字符串数组或 [{ "url": "...", "role": "reference_audio" }]。⚠️ 不可作为唯一参考素材,至少需搭配一张图片或一段视频 |
files | array | 否 | - | 参考文档列表:纯 URL 字符串数组或 [{ "url": "...", "role": "file" }]。支持公网可直接下载的 PDF、Word、TXT、Markdown 等文档 |
links | array | 否 | - | 参考网页列表:纯 URL 字符串数组或 [{ "url": "...", "role": "link" }]。支持公网可抓取的 HTTP/HTTPS 网页,模型自动提取网页图文进行视频创作 |
image_url | string | 否 | - | 单图快捷参数:传了=图生视频首帧。公网直链 URL 或完整 Base64 Data URI;兼容 image、input_reference |
⚠️ 素材组合与互斥规则(调用前必读):
1. 首尾帧互斥:首帧(first_frame)与尾帧(last_frame)为定点平滑补帧模式,严禁与参考视频、音频、文件、网页链接等参考类素材混合传入。
2. 音频依附性:参考音频(audios)不能作为孤立的唯一输入,必须配合至少一张参考图片或一段参考视频。
3. 多模态自愈机制:若你在传入参考视频/音频/文件/链接的同时传入了普通图片,系统会自动将图片转换为reference_image角色,避免官方底层误判为首尾帧导致冲突报错。
4. 素材公网可达性:所有 URL 素材必须能被公网直接 GET 访问,无需登录授权;图片亦可使用data:image/...;base64,...格式传参。
通义万相 3.0 支持双端点(/v1/video/generations 与 /v1/videos)。以下示例均以标准 OpenAI 规范给出完整的 curl 请求与 Python 异步生命周期完整脚本。
只传文字描述,模型完全凭空渲染。支持自由指定分辨率(480p/720p/1080p)、画幅比例(16:9/9:16/1:1 等)与时长(5–30 秒)。
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
}'
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")
包括单图首帧动效与双图首尾帧过渡:
first_frame 与 last_frame,模型生成连接首尾两帧的自然运动轨迹。# ① 单图首帧动效(图片亦可传 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
}'
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)
传入 3 张或更多参考图片(或显式指定 role: "reference_image"),模型综合提取所有参考图中的主体角色、服装配饰与环境风格,生成风格高度统一的连续视频,解决 AI 视频人物脸部不一致的问题。
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
}'
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)
跨越单一维度的多模态协同创作:传入角色主体图片、动作参考视频与节奏音频。模型将结合参考视频的镜头运动与运镜轨迹、参考音频的节拍/情绪,并映射到参考图的角色身上,输出高精度的动作与视听协同成片。
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
}'
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)
支持将长文档(策划案、剧本、产品白皮书 PDF 等)或公开网页链接直接喂给模型。模型深度解析文档要点或网页的图文资产,生成专业的宣传解说、资讯播报或产品介绍视频。
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
}'
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 转发至成片流。
duration 时长挂钩;生成失败不扣费。wan3.0-video:全能版,多模态参考适应面最广,性价比极高;wan3.0-video-prime:优速版,原生 30fps 流畅高帧率、运动画质更细腻且出片速度更快,适合对质感与效率有极高要求的商用场景。本平台提供三档不同清晰度的固定模型(底层均完整具备多图融合与视频参考能力):
| 模型名称 | 档位说明 | 分辨率 | 计费单价 | 适用场景 |
|---|---|---|---|---|
kling-v3-standard | 标准版 | 720p | ¥0.765/秒 | 性价比首选,适合快速出片与日常生成 |
kling-v3-pro | 专业版 | 1080p | ¥1.020/秒 | 高清写实,光影与细节更丰富 |
kling-v3-4k | 4K 超清版 | 3840×2160 (4K) | ¥2.550/秒 | 影视级超高清成片输出 |
计费规则:任务费用 = 实际出片秒数 × 档位每秒单价(例:kling-v3-standard5 秒 = ¥3.825,kling-v3-pro5 秒 = ¥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 智能路由分组) |
| 参数名 | 类型 | 必填 | 默认值 | 详细说明与取值范围 |
|---|---|---|---|---|
model | string | 是 | - | 模型名,如 kling-v3-standard、kling-v3-pro 或 kling-v3-4k |
prompt | string | 是 | - | 画面动作描述,字数上限 2000 字符 |
negative_prompt | string | 否 | - | 负向提示词,用于过滤低画质、多肢体、杂乱文字等不需要的元素 |
duration / seconds | integer / string | 否 | 5 | 生成时长(秒),支持 5 或 10(如 5、10、"5"、"10") |
ratio / aspect_ratio | string | 否 | 16:9 | 视频画幅比例,支持 16:9(横屏)、9:16(竖屏)、1:1(方形) |
resolution | string | 否 | 依模型 | 视频清晰度,各模型已固定清晰度;亦可通过 resolution 或 size 显式指定 |
images / image_urls | array | 否 | - | 参考图片链接数组或对象数组: • 传入 1 张图片:作为图生视频首帧; • 传入 2 张图片:第一张为首帧,第二张为尾帧,模型平滑过渡; • 传入对象数组:支持显式指定 role,可选 first_frame(首帧)、last_frame(尾帧)、reference_image(参考图) |
videos | array | 否 | - | (Omni 多模态专属) 参考视频链接数组,传入视频 URL 用于动作复刻或风格迁移 |
generate_audio | boolean | 否 | true | 是否生成配套音效。本平台默认开启;注:当请求包含参考视频时,模型限制暂不支持同时生成音频 |
camera_control | object | 否 | - | 镜头运镜控制对象(包含 type: "simple" 或 "config"),支持通过各项维度微调运镜动作:• pan:水平平移(左右);• tilt:垂直俯仰(上下);• zoom:镜头变焦推拉;• roll:镜头旋转 |
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
}'
传入 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
}'
支持传入多张参考图,通过对象指定 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
}'
可同时传入参考图与参考视频,实现人物外观由图片决定、主体招式动作与镜头由视频决定的混合生成。
⚠️ 重要注意事项:当传入参考视频时,平台将根据规则自动关闭音频生成(官方规则:视频参考模式与音频生成互斥),无需客户端额外排查。
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"
}
]
}
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)
POST /v1/videos 与 POST /v1/video/generations 提交,支持 /content 视频直出预览。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 URL | https://api.oairegbox.cc |
| 提交任务 | POST /v1/videos(JSON) |
| 轮询进度 | GET /v1/videos/{task_id},status=completed 表示完成 |
| 下载成片 | 用轮询返回的顶层 video_url 直接下载 mp4(地址已脱敏、我方域名) |
| 鉴权 | Authorization: Bearer sk-你的令牌 |
| 令牌分组 | Gemini flow |
| 耗时 | 通常 1–2 分钟;客户端应轮询,不要重复提交同一任务 |
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
model | string | 是 | - | 固定 flow-omni-1.1-flash(文生 / 图生 / 视频编辑都用这一个名字) |
prompt | string | 是 | - | 画面 / 运动描述 |
resolution | string | 否 | 720p | 固定 720p(本模型仅提供 720p) |
aspect_ratio | string | 否 | 16:9 | 决定画幅 / 朝向:16:9(横屏,默认)/ 9:16(竖屏)。不传即横屏,要竖屏传 9:16 |
size | string | 否 | - | 也可用 WxH 指定朝向(如 1280x720 横 / 720x1280 竖);传了 size 时以它为准。清晰度恒 720p |
seconds | string(必须字符串) | 否 | "8" | 成片时长(秒):可选 "4" / "6" / "8" / "10",四档同价。必须传字符串——写成数字 10 会报 invalid_json;请用 seconds,duration 不生效;传档位以外的值(如 "7")按 8 秒出片、不报错 |
images | 数组(URL / base64) | 否 | - | 图生视频:多图参考(建议 ≤6 张,多传模型可能只取前几张、不提升效果);公网可直取 URL 或 data:image/...;base64,。单张也可用 image |
input_reference | string(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指定朝向。
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",...}
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")
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 秒;勿重复提交同一任务。
flow-omni-1.1-flash、自动切换:带参考视频(input_reference)= 视频编辑;带参考图(images)= 图生视频;不带 = 文生视频。文生 / 图生 ¥0.75 / 次,视频编辑(v2v)¥0.90 / 次。aspect_ratio(16:9 横屏默认 / 9:16 竖屏),也可用 size 的 WxH;清晰度恒 720p。aspect_ratio:"9:16"。"4" / "6" / "8" / "10"(字符串):传四档以外的值不会报错,会静默按 8 秒出片;写成数字(没加引号)会报 invalid_json。时长要紧的场景请核验成片实际时长,见上方「时长档位」一节。images:参考图须公网可直接下载或用 base64(需登录 / 内网 / 拦爬虫的链接会失败)。input_reference:参考视频 ≤15 秒。可传 base64(data:video/mp4;base64, 或裸 base64;本站自动托管为中国可达链接,mp4/mov、解码后 ≤64MB)或公网 URL(须中国可直接下载;国外 / 需登录的 URL 会取不到→退化为文生)。高速分组的文本 / 多模态对话模型,与 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-pro | Pro 档,长文 / 复杂推理 | ✅ 图 / 视频 / 音频 | 按 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-ultra | Gemini Antigravity Ultra | gemini-4-argon | 1.0 | ¥2/M(¥2.00/M) | ¥10/M(¥10.00/M) | ¥0.2/M | 反重力 Ultra 独立号池专线(官方基准 2/10 无折扣,高稳主力,已纳入 auto 链) |
gemini-vertex | Gemini Vertex | gemini-4-argon | 1.8 | ¥3.6/M | ¥18/M | ¥0.36/M | Google Vertex AI 官方企业级通道(详见「Google Vertex / 官方原生」章节) |
gemini-fast | Gemini Fast | gemini-4-argon-app | 1.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 通道) |
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
model | string | 是 | - | 见上表模型名;统一网关不加 -fast 后缀 |
messages | array | 是 | - | OpenAI 消息数组;content 可含图片实现多模态 |
stream | bool | 否 | false | 是否流式返回 |
temperature | number | 否 | - | 采样温度 |
max_tokens | int | 否 | - | 最大输出 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 token | 1024×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"}}
]}]
}'
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)
role: "user" 轮上传;多轮对话里重复贴同一个 URL 不会重复上传,也不会重复计费。本接口为同步对话接口,无需轮询。一次 POST 即可在 choices[0].message.content 取得完整回复;设置 stream: true 时按 SSE 标准流式增量推送。
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)
当回答触发了联网搜索,我们会把 Gemini 实际引用的网页按 OpenAI 官方 annotations / url_citation 规范一并返回,同时正文里的 markdown 链接原样保留(不会被压成裸域名)。GEO / AEO 监测、引用溯源、竞品可见度分析可直接消费该字段。
| 平台 | 令牌分组 | 支持的模型 |
|---|---|---|
统一网关 newapi.oairegbox.cc | gemini-fast | gemini-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 键(是省略,不是空数组),请按「键存在与否」判断,不要假设它一定存在。
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"])
想稳定拿到引用,提示词里明确要求「请给出来源网址」之类的联网意图,命中率更高。
-fast 后缀(如 gemini-3.8-flash-app)。早期带 -fast 后缀的旧名称已下线,继续使用会直接报模型不存在。prompt_tokens。base_url + api_key)接入最省事。stream 改善体验。DeepSeek V4.1 Flash 对话模型,OpenAI Chat 兼容,1M 上下文,支持缓存命中优惠。按北京时间分高峰 / 空闲两档计价:周末全天与工作日非高峰时段都按空闲价。
| 模型 | 能力 | 计费 |
|---|---|---|
deepseek-v4-1-flash-260910 | DeepSeek 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 令牌直接可用) |
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
model | string | 是 | - | deepseek-v4-1-flash-260910 |
messages | array | 是 | - | OpenAI 消息数组 |
stream | bool | 否 | false | 是否流式返回 |
max_tokens | int | 否 | - | 最大输出 token。思考内容也计入输出并占用此上限,开启思考时请给足(建议 ≥ 1024),否则可能只拿到空正文 |
thinking | object | 否 | 开启 | {"type":"disabled"} 关闭思考,直接出正文、更快更省;{"type":"enabled"} 开启 |
temperature | number | 否 | - | 采样温度 |
# 关闭思考,直接回答
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
}'
usage.completion_tokens_details.reasoning_tokens 是思考部分,按输出价计费;不需要思考时加 "thinking": {"type": "disabled"}。usage 里可看到命中数。提供两条 Gemini 图像生成线路:gemini-fast 分组(固定按张计费,走 POST /v1/images/generations 标准生图接口)与 gemini-vertex 分组(Google Vertex AI 官方原生模型 gemini-3-pro-image 等,按 token 计费,走 POST /v1/chat/completions 或 /v1beta 原生接口)。
gemini-fast 分组(按次计费 · /v1/images/generations)| 模型 | 分组 | 计费 | 价格 | 调用端点 |
|---|---|---|---|---|
gemini-image | gemini-fast | 按次 | ¥0.11/张 | POST /v1/images/generations / /v1/images/edits |
gemini-image-pro | gemini-fast | 按次 | ¥0.12/张 | POST /v1/images/generations / /v1/images/edits |
gemini-vertex 分组(Google Vertex AI 官方原生模型 · 按 token 计费)| 模型 | 定位说明 | 分组(倍率 1.8) | 实际单价(入 / 出 / 缓存) | 单张图片预估 | 调用端点 |
|---|---|---|---|---|---|
gemini-3-pro-image | Nano Banana Pro 旗舰原生多模态生图 / 图文编辑 | gemini-vertex | 入 ¥3.6/M · 出 ¥216/M · 缓存 ¥0.36/M | 约 ¥0.27 ~ ¥0.29 / 张 | POST /v1/chat/completionsPOST /v1beta/models/gemini-3-pro-image:generateContent |
gemini-3.1-flash-image | Nano Banana 2 轻量高速原生生图 | gemini-vertex | 入 ¥0.9/M · 出 ¥108/M · 缓存 ¥0.09/M | 约 ¥0.13 ~ ¥0.15 / 张 | 同上 |
gemini-2.5-flash-image | Gemini 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"
}'
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | gemini-image / gemini-image-pro |
prompt | string | 是 | 图片描述 |
size | string | 否 | 控制横 / 竖 / 方画幅,详见下方「画幅与方向」;竖屏为尽力而为 |
image / images | string / string[] | 否 | 参考图(图生图 / 编辑),单张字符串或多张数组,公网 URL 或 base64;最多 5 张、每张 ≤ 5MB |
mask | string | 否 | 蒙版图,局部重绘可选 |
| 模式 | 端点 | 参考图 |
|---|---|---|
| 文生图 | POST /v1/images/generations(JSON) | 无 |
| 图生图 / 编辑 | 同一端点(JSON),或 /v1/images/edits | image 字段(URL 或 base64,单张或数组) |
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:
| 字段 | 类型 | 说明 |
|---|---|---|
image | string 或 string[] | 单张参考图(字符串)或多张参考图(数组)均可 |
images | string[] | 多张参考图数组(与 image 等效) |
mask | string | 蒙版图,局部重绘可选 |
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[] 返回图片,无需轮询。
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()
宽x高 或方向关键词(portrait / landscape)可显著提高竖屏命中率。image 传单张字符串或多张数组均可(已兼容早期数组报错),公网 URL 或 base64;最多 5 张、每张 ≤ 5MB。1024 / 2k)不含方向信息,按模型默认方向出图。宽x高(如 720x1280)或方向关键词,命中率更高。gemini-image-pro(¥0.12),常规用 gemini-image(¥0.11)。image 数组一次传多张融合。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-2 | 1K 基准版 | 1024² (1:1), 1536×1024 (16:9), 1024×1536 (9:16) | ¥0.025 | 10~20s 快速出图返回图片 | 立即返回 task_id,后台轮询取图 |
gpt-image-2-2k | 2K 高清版 | 2048×2048 (1:1), 2048×1152 (16:9), 1152×2048 (9:16) | ¥0.045 | 支持(需客户端超时 ≥600s,防断连丢图) | ⭐ 强烈推荐:立即返回 task_id,轮询取图零丢失 |
gpt-image-2-4k | 4K 超清版 | 3840×2160 (16:9 真 4K), 2160×3840 (9:16), 2880² (1:1) | ¥0.065 | 支持(需客户端超时 ≥600s,防断连丢图) | ⭐ 强烈推荐:立即返回 task_id,轮询取图零丢失 |
gpt-image-2-2k 与 gpt-image-2-4k(以及 2.5 系列的 2K / 4K 模型)输出像素量极大,单张渲染及多通道容灾切换耗时较长(通常 60~180 秒,高峰期自动切流重试可达 300 秒以上)。request_id)通过接口反查恢复。"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/generations | JSON | 同步直出(传 async:true 转异步) | 官方原生文生图标准端点,完美适配官方 OpenAI SDK |
POST /v1/images/edits | multipart / JSON | 同步直出(传 async:true 转异步) | 图生图 / 图像编辑(参考图 + 提示词描述修改) |
POST /v1/chat/completions | JSON | 同步直出 | Chat 对话生图(在 messages content 中传入 Base64 image_url) |
POST /v1/videos 或 /v1/video/generations | JSON | 异步任务轮询 | 存量兼容端点:100% 保持历史行为返回 task_id,老脚本零改动、零报错 |
无需额外参数,直接调用即可。网关内部自动等待生成完毕并返回标准 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' 的痛点!
在请求 Body 中传 "async": true,或在 URL 中添加 ?async=true,或携带 Header X-New-Api-Async: true。接口将立即返回任务 ID,规避客户端长连接超时:
{
"id": "task_GEDO8H85WHxQV98z4tM2kEfJMcVxzLlq",
"status": "queued",
"created_at": 1726567200
}
GET /v1/images/generations/{id}(老客户端调 GET /v1/videos/{id} 亦通用);GET /v1/images/generations/{id}/content 或响应内的 image_url / data[0].url。| 参数名 | 类型 | 必填 | 默认值 | 详细说明与取值范围 |
|---|---|---|---|---|
model | string | 是 | - | 模型名:gpt-image-2、gpt-image-2-2k、gpt-image-2-4k(兼容历史名 gpt-image-2-1k) |
prompt | string | 是 | - | 画面动作与细节描述词。按字符数计(中英文一视同仁),建议 ≤ 8000 字符(硬上限约 1 万字符) |
size | string | 否 | 依模型 | 精确像素分辨率(如 1024x1024、2048x2048、3840x2160 等);size 优先级高于 aspect_ratio |
aspect_ratio / ratio | string | 否 | 1:1 | 画幅比例,支持 1:1、16:9、9:16、4:3、3:4。平台自动根据模型清晰度档位换算为对应标准像素尺寸 |
response_format | string | 否 | url | 返回格式:url(默认下载直链)或 b64_json(Base64 编码数据) |
async | boolean | 否 | false | 是否开启异步任务模式。默认 false 为同步直接返图;设为 true 即刻返回 task_id 供轮询 |
n | integer | 否 | 1 | 单次生成图片张数,默认 1 |
平台支持三种灵活的参考图传递方式:
POST /v1/images/edits,传 -F "image=@local_file.png"(支持多张重复 -F image=@...,最多 6 张,解码后合计 ≤ 5MB);POST /v1/images/generations 或 /v1/images/edits,支持在 Body 中传入 image(公网直链或 Base64 data: URI)、images(数组)、input_reference 或 metadata.content,平台全自动兼容提取;POST /v1/chat/completions,在 messages 数组的 content 中传入 {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,..."}}。| 模型 | 推荐分辨率 | 约等于 | 像素量 | 典型用途 | 价格 |
|---|---|---|---|---|---|
gpt-image-2 | 1024×1024 (1:1), 1536×1024 (16:9), 1024×1536 (9:16) | 1K 基准版 | 约 105~157 万 | 头像、缩略图、社媒配图、快速出图 | ¥0.025/张 |
gpt-image-2-2k | 2048×2048 (1:1), 2048×1152 (16:9), 1152×2048 (9:16) | 2K 高清版 | 约 236~419 万 | 常规海报、Banner、电商主图 | ¥0.045/张 |
gpt-image-2-4k | 3840×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 长边恒 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:16 | 2160×3840 | 竖 | 手机屏 / 竖版海报 / 短视频封面 |
3:4 | 2880×3840 | 竖 | 竖版海报 / 电商详情页 |
1:1 方图 | 2880×2880 / 2048×2048 | 方 | 社媒方图 / 高清头像 |
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)
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}]}
# ① 提交任务(传 "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
# 方式 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"
}'
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>"}}
]
}]
}'
# 存量老脚本继续请求 /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} 轮询取片,存量业务零修改
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!")
"async": true。/v1/images/generations 与 /v1/images/edits;存量 /v1/videos 保持 100% 兼容。gpt-image-2)可直接使用默认同步模式(10~20s 出图),配合官方 OpenAI SDK 无需写轮询逻辑。gpt-image-2-2k、gpt-image-2-4k)强烈建议必传 "async": true 走异步轮询模式,避免因客户端或网关超时(如 300s 限制)断开连接而导致图片丢失;若强走同步模式,请确保客户端与网关超时 ≥ 600 秒。gpt-image-2-4k 搭配 aspect_ratio: "16:9" 或 "9:16",输出标称真 4K(3840×2160 / 2160×3840)。async: true 异步任务轮询双模态,并 100% 保持对存量 POST /v1/videos 视频端点的向下兼容。支持文生图与图生图编辑。按张固定计费,生成失败不扣费,成品纯净无水印。| 核心模型名 | 变体定位 | 分辨率规格 | 单价 (元/张) | 调用模态支持 |
|---|---|---|---|---|
gpt-image-2.5-flare-2k | Flare(真实摄影感) | 2K(2048×2048) | ¥0.040/张 | 同步直出 + 异步轮询 + 视频端点兼容 |
gpt-image-2.5-flare-4k | Flare(精细摄影) | 真 4K UHD(16:9→3840×2160 / 9:16→2160×3840) | ¥0.065/张 | 同步直出 + 异步轮询 + 视频端点兼容 |
gpt-image-2.5-sunburst-2k | Sunburst(艺术插画) | 2K(2048×2048) | ¥0.040/张 | 同步直出 + 异步轮询 + 视频端点兼容 |
gpt-image-2.5-sunburst-4k | Sunburst(超精艺术) | 真 4K UHD(16:9→3840×2160 / 9:16→2160×3840) | ¥0.065/张 | 同步直出 + 异步轮询 + 视频端点兼容 |
Flare 与 Sunburst 风格选择说明:
• Flare:真实物理世界质感、商品写实摄影、人像、纪实风光,光影与细节更细腻;
• Sunburst:概念艺术插画、二次元、扁平视觉、海报设计、丰富色彩张力;
两画风变体的分辨率、参考图能力、价格完全一致;原-sync冗余后缀模型已全面收敛至主模型,默认支持同步直出。
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 秒以上)。request_id)通过接口反查恢复。"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=true | 2K/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_ratio | 2K 档(-2k) | 4K 档(-4k) |
|---|---|---|
默认(不传)/ 1:1 | 2048×2048 | 3840×2160(⚠ 4K 无方图 → 退横版) |
16:9 | 2048×1152 | 3840×2160 |
9:16 | 1152×2048 | 2160×3840 |
4:3 | 2048×1536 | 3840×2880 |
3:4 | 1536×2048 | 2880×3840 |
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)
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
# ① 提交任务(传 "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
用 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"
async: true 时进入异步任务模式,返回 task_id 供轮询。Authorization: Bearer sk-你的生图分组令牌。| 模型名称 | 风格定位与特点 | 所属分组 | 官方原价 (汇率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。
经平台真机生产验证,本系列模型支持以下 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 与常用网络库零改造兼容:
以下为即插即用的 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"
)
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}")
# 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"
}'
size: "3840x2160"、"2160x3840" 与 "2880x2880" 原生真 4K 输出,画面微观细节与文字边缘锐利清晰,绝非低清后期超分插值拉伸;gpt-fast 分组下的按次生图模型(如 gpt-image-2 ¥0.025/张一口价);Chatgpt 分组下的 -token 官方满血版,享受官方原版画质与 5.7 折实量扣费。通过 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 秒 |
standard | 180 秒 | 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 代码,完全不产出音乐。 改用温和的「顺便把歌词也附上」,或者干脆用英文下这条指令(主题仍可以是中文歌),都能正常出歌。
涉及现当代诗词/歌词时模型会以版权为由拒绝复刻,转而生成「意境相近」的原创作品 —— 实测连已进入公有领域的唐诗也会先声明一句再照唱。这是模型自身的策略,我们无法绕过。
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 接口没有结构化参数,系统会从你的文字里读取意图:
3分钟」「90秒」「3 minutes」→ 归入最接近的档位(不写则按 short)纯音乐」「不要人声」「instrumental」→ 不带人声要有人声」「有歌词」「with vocals」→ 带人声演唱需要显式控制时用 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
}'
| 参数 | 类型 | 说明 |
|---|---|---|
prompt | string | 必填。曲风、情绪、乐器、用途等描述 |
length | string | short / standard,见上方时长档位。不填按 short |
vocals | bool | true=带人声演唱,false=纯音乐。不填=交给模型决定 |
attachments | string[] | 可选。参考音频或图片,支持 data URI / http(s) URL / 裸 base64,单个 ≤20MB,仅 audio/* 与 image/* |
duration | int | 旧版数值参数(秒,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 后再交付,对你是透明的。
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
| 参数 | 类型 | 说明 |
|---|---|---|
model | string | 必填,固定 gemini-tts |
input | string | 必填。要朗读的文本,中英文混排均可。服务端按文本自动识别语言 |
voice | string | 音色,见下表。不填用默认音色。OpenAI 音色名(alloy/nova/echo…)也接受,会按性别映射到对应 Gemini 音色 |
response_format | string | mp3(默认)/ opus / aac / flac / wav / pcm |
speed | float | 语速 0.25–4.0,默认 1.0。官方源站不支持变速,由本平台用音频后处理实现,不影响音色 |
language | string | 可选 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(大写,男声)是两个不同音色,按大小写区分。
mp3/opus/pcm 为流式下发,wav/aac/flac 合成完再整体返回。speed 由平台用变速后处理保证可用。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
| 参数 | 类型 | 说明 |
|---|---|---|
file | file | 必填。音频文件,≤25MB。mp3/wav/m4a/ogg/webm 等常见格式均可,平台自动转码 |
model | string | 固定 gemini-stt,不填默认即此 |
language | string | 可选。语言提示,如 zh / en(会归一化为 cmn-Hans-CN / en-US)。不填默认英文为主、中文为辅自动识别 |
response_format | string | json(默认,{"text":...})/ verbose_json / text。不支持 srt/vtt(无逐词时间戳) |
{ "text": "你好,这是一段语音识别测试。" }
verbose_json 额外返回 task、language、duration(音频秒数)字段;text 则直接返回纯文本。无语音内容时返回空串,不算失败。
把语音识别(STT)→ 对话(Chat)→ 语音合成(TTS)合成一次调用:说一句话进去,得到一段语音回答。一问一答(turn-based)、支持中英文、跑在同一个号池上。
两种用法,推荐第一种(能直接套用 OpenAI 语音 SDK,改个 base_url 就能跑)。
按所用对话模型的文本计费(即你在 model 里填的那个 Gemini 对话模型的价格)。语音识别与语音合成这两段不额外收费。失败不计费。
语音回答的音色读的就是对话模型的回复原文,建议用速度快的 Flash 对话模型(如 gemini-3.5-flash)体验更自然;推理型模型可能会把代码块、公式也一起"读"出来。
在普通对话请求里加 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.format | mp3(默认)/ opus / aac / flac / wav / pcm |
audio.input_mode | stt(默认,先转文字,便宜、附带识别文本)/ native(让模型直接"听"音频,懂语气但更贵) |
input_audio | 语音输入(可选)。也可以用纯文字提问、只要语音回答。输入的识别文本会放在响应头 X-Input-Transcript(base64) |
语音输出只在非流式(stream=false)下返回。stream=true时文字照常流式返回,但不带语音。
给原生音频应用准备的精简端点: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(男声),会按性别映射。
| 线路 | 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 | 服务端临时故障 | 直接重试 | 不计费 |
Omni 视频约 1-5 分钟,Grok 视频约 30s-3 分钟(时长越长越慢)。建议客户端超时 ≥300 秒。
不会。所有模型失败一律不扣费,仅成功出片/出图才计费。
包含可识别真人面孔的参考图可能触发 Gemini 内容策略。系统会自动尝试处理并重试。如仍失败,建议:使用非写实风格、虚构人物、侧面/背影/远景,或使用已授权的素材。
不是不同账号——所有地址指向同一个平台,账号、令牌、余额、模型与价格完全通用,随时可以互换,不需要重新注册、也不需要重新充值。默认用主线路 api.oairegbox.cc;若你所在网络连不上或延迟偏高,改用备用线路 newapi.oairegbox.cc(美东入口)再试一次。两条线路对不同地区 / 运营商各有优劣,我方不承诺哪条更快。
适用于 omni-fast / veo 系列视频模型 · 帮你避开 Google 内容审查,提高一次出片成功率
如果你收到:
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.
中文意思:请求没通过内容审查(可能涉及:可识别真人 / 不安全内容 / 受保护版权)。
"appears to show specific people" / "展示特定人物"
photorealistic(超写实)+ 真人 = 高危组合"minors in dangerous or compromising situations"
"sexual situations"
"dangerous situations" / "可能涉及危险情况"
"protected intellectual property" / "受保护知识产权"
| ❌ 高危写法 | ✅ 安全改写 |
|---|---|
| 超写实真人 + 正脸特写 | 改 3D动画 / 插画 / 卡通 风格;或侧面、背面、远景 |
| 上传真人照片生成 | 不要正脸;用远景/侧背面;或转动漫/卡通风格 |
| 奥特曼大战怪兽 | 「一个通用的巨人英雄」(不点名具体 IP) |
| 情侣处理痤疮/皮肤病 | 去掉病名,改成中性的「情侣约会」 |
| 小孩在火边玩耍 | 改成「成年人」,或移除危险元素 |
| 含名人姓名 | 改成「一位虚构的人物」 |
不确定会不会被拒时,套这个组合最稳:
非写实风格 (non-photorealistic / 3D cartoon / illustration / anime) + 虚构、不具名的主体 (fictional, non-identifiable subject) + 脸部不可识别 (背面 / 侧面 / 远景) + 内容健康、无版权
MiniMax H3 按秒计费,两档清晰度、原生音频。支持文生 / 图生 / 首尾帧 / 参考图 / 参考音频;需参考视频驱动用 Pro 档。同一套 /v1/videos 接口:异步创建 → 轮询 → 下载。
| 模型 | 清晰度 | 全能参考 | 计费 | 价格 | 时长 |
|---|---|---|---|---|---|
minimax-h3-768p | 768P | 503 | 按秒 | ¥0.15/秒 | 4–15 秒 |
minimax-h3-2k | 2K | 503 | 按秒 | ¥0.20/秒 | 4–15 秒 |
minimax-h3-pro-768p | 768P | 913 | 按秒 | ¥0.25/秒 | 4–15 秒 |
minimax-h3-pro-2k | 2K | 913 | 按秒 | ¥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 |
| 字段 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
model | string | 是 | - | 上表四个之一 |
prompt | string | 是 | - | 提示词,≤7000 字符(超出会被静默截断) |
duration | integer | 否 | - | 4–15 秒(= 计费秒数) |
ratio | string | 否 | - | 16:9/9:16/1:1/21:9/4:3/3:4/adaptive(文生视频不支持 adaptive) |
referenceImages | string[] | 否 | - | 参考图 ≤5(公网 URL 或 base64) |
referenceAudios | string[] | 否 | - | 参考音频 ≤3(须配参考图;合计 ≤15 秒) |
referenceVideos | string[] | 否 | - | Pro 档专用:1 段,时长 2–5 秒 |
first_image/last_image | string | 否 | - | 首/尾帧;不能与 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为直链;失败不计费。
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)
prompt ≤7000 字符,超出静默截断——长提示词请自行精简,别指望超出部分生效。ratio 字段控画幅(不是 size/aspect_ratio);文生视频不支持 adaptive。first_image/last_image 与 referenceImages 互斥;参考音频须配参考图。cannot download media URL——改用 base64(data:...;base64,)即可,任何图 / 视频都行。ratio":"9:16";参考视频请截取你要的关键 2–5 秒片段。| 模型 | 档位 · 分辨率 | 计费 | ¥/百万token (纯文/图生) | ¥/百万token (含参考视频) | 折合每秒(含视频特惠) | 折合每秒(纯文/图生) | 典型 5 秒预计 | 官方折扣 |
|---|---|---|---|---|---|---|---|---|
seedance-2.0-720p | 720p(特惠线) | 按token | ¥28.98 | ¥17.64 | 约 ¥0.38/秒 | 约 ¥0.63/秒 | 约 ¥1.90 ~ ¥3.13 | 6.3 折 |
seedance-2.0-fast-720p | fast · 720p(特惠线) | 按token | ¥24.05 | ¥14.30 | 约 ¥0.31/秒 | 约 ¥0.52/秒 | 约 ¥1.55 ~ ¥2.60 | 6.5 折 |
seedance-2.0-mini-720p | mini · 720p(特惠线) | 按token | ¥10.35 | ¥6.30 | 约 ¥0.14/秒 | 约 ¥0.22/秒 | 约 ¥0.68 ~ ¥1.12 | 4.5 折 |
seedance-2.5-720p | 2.5 · 720p(特惠线) | 按token | ¥49.00 | ¥29.40 | 约 ¥0.64/秒 | 约 ¥1.06/秒 | 约 ¥3.18 ~ ¥5.30 | 7 折 |
doubao-seedance-2.0-mini-480p | mini · 480p | 按token | ¥13.34 | ¥7.70 | 约 ¥0.10/秒 | 约 ¥0.18/秒 | 约 ¥0.52 ~ ¥0.90 | 5.8 折 |
doubao-seedance-2.0-mini-720p | mini · 720p | 按token | ¥13.34 | ¥7.70 | 约 ¥0.17/秒 | 约 ¥0.29/秒 | 约 ¥0.83 ~ ¥1.44 | 5.8 折 |
doubao-seedance-2.0-mini-1080p | mini · 1080p | 按token | ¥14.79 | ¥8.525 | 约 ¥0.41/秒 | 约 ¥0.72/秒 | 约 ¥2.07 ~ ¥3.59 | 5.8 折 |
doubao-seedance-2.0-fast-480p | fast · 480p | 按token | ¥25.90 | ¥15.40 | 约 ¥0.21/秒 | 约 ¥0.35/秒 | 约 ¥1.04 ~ ¥1.76 | 7 折 |
doubao-seedance-2.0-fast-720p | fast · 720p | 按token | ¥25.90 | ¥15.40 | 约 ¥0.33/秒 | 约 ¥0.56/秒 | 约 ¥1.66 ~ ¥2.80 | 7 折 |
doubao-seedance-2.0-fast-1080p | fast · 1080p | 按token | ¥28.35 | ¥17.15 | 约 ¥0.83/秒 | 约 ¥1.38/秒 | 约 ¥4.17 ~ ¥6.89 | 7 折 |
doubao-seedance-2.0-pro-480p | pro(满血)· 480p | 按token | ¥35.88 | ¥21.00 | 约 ¥0.28/秒 | 约 ¥0.49/秒 | 约 ¥1.42 ~ ¥2.43 | 7.8 折 |
doubao-seedance-2.0-pro-720p | pro(满血)· 720p | 按token | ¥35.88 | ¥21.00 | 约 ¥0.45/秒 | 约 ¥0.77/秒 | 约 ¥2.27 ~ ¥3.87 | 7.8 折 |
doubao-seedance-2.0-pro-1080p | pro(满血)· 1080p | 按token | ¥39.78 | ¥23.25 | 约 ¥1.13/秒 | 约 ¥1.93/秒 | 约 ¥5.65 ~ ¥9.67 | 7.8 折 |
doubao-seedance-2.0-pro-4k | pro(满血)· 4K | 按token | ¥20.28 | ¥12.00 | 约 ¥2.33/秒 | 约 ¥3.94/秒 | 约 ¥11.66 ~ ¥19.71 | 7.8 折 |
doubao-seedance-2.5-720p | 2.5 · 720p | 按token | ¥56.00 | ¥33.60 | 约 ¥0.73/秒 | 约 ¥1.21/秒 | 约 ¥3.63 ~ ¥6.05 | 8 折 |
doubao-seedance-2.5-1080p | 2.5 · 1080p | 按token | ¥61.60 | ¥36.80 | 约 ¥1.79/秒 | 约 ¥2.99/秒 | 约 ¥8.94 ~ ¥14.97 | 8 折 |
质量 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 智能路由分组) |
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
model | string | 是 | - | 模型名,如 seedance-2.5-720p、seedance-2.0-720p、seedance-2.0-fast-720p、doubao-seedance-2.0-mini-480p 等 |
prompt | string | 是 | - | 画面 / 风格 / 动作描述。无我方硬性长度上限 |
duration / seconds | integer / string | 否 | 5 | 视频输出时长(秒)。 • 2.0 系列:支持 4–15 秒 或 -1(模型自选); • 2.5 系列:支持 4–30 秒 或 -1(编辑模式强制 -1) |
ratio / aspect_ratio | string | 否 | adaptive / 16:9 | 画幅比例。支持 21:9、16:9、4:3、1:1、3:4、9:16、adaptive。• 重要修正:显式指定比例时(如 9:16 竖屏),模型将严格按该比例渲染,不再被参考图/参考视频强制改回横屏;• 未指定时,有参考素材默认 adaptive,纯文生默认 16:9 |
resolution | string | 否 | 依模型 | 视频分辨率,480p / 720p / 1080p |
images / image_urls | array | 否 | - | 参考图片数组。支持纯 URL 或 {url, role} 对象:• 1张默认 first_frame(首帧);• 2张默认首尾帧 first_frame + last_frame;• 3张及以上全量作为 reference_image;• 也可使用单字段 image_url、first_image_url、last_image_url、reference_images |
videos | array | 否 | - | 参考视频数组(videos 或 reference_videos),支持纯 URL 或 {url, role: "reference_video"}。• 2.0 限制 ≤3 段;2.5 限制 ≤10 段 |
audios | array | 否 | - | 参考音频数组(audios 或 reference_audios),支持纯 URL 或 {url, role: "reference_audio"}。• 2.0 限制 ≤3 段且不能仅音频;2.5 限制 ≤10 段且可仅音频 |
generate_audio | boolean | 否 | true | 是否生成原生同步音轨,本站默认开启 true |
watermark | boolean | 否 | false | 视频水印开关,本站默认关闭 false(无水印) |
camera_fixed | boolean | 否 | false | 锁定镜头开关,设为 true 可防止运镜漂移 |
seed | integer | 否 | 随机 | 随机种子(用于复现画面效果) |
return_last_frame | boolean | 否 | false | 是否在成片结果中额外返回尾帧图片(便于衔接下一段生成) |
output_format | string | 否 | mp4 | 成片容器格式,可选 mp4 或 mov(推荐剪辑后期调色使用) |
omni_reference_task_type | string | 否 | auto | 全模态任务意图:auto(自动推断)、edit(视频编辑)、extend(视频延长续写) |
content | array | 否 | - | 官方原生多模态数组,若客户端已封装官方 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 为官方高速下载直链,稳定不过期。失败不计费。
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)
duration: 12 即出真实 12 秒成片;显式传 aspect_ratio: "9:16" 严格出竖屏,不会被素材强制改为横屏。generate_audio: true),默认关闭水印(watermark: false,交付干净成品)。/v1/videos 与 /v1/video/generations 双提交/轮询端点,支持 /content 视频直出预览。data:...;base64, 编码;官方 content[] 结构亦直接支持透传。以下为官方多模态素材规格约束。建议素材使用公网可直接下载的稳定直链或 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 |
POST /v1/images/generations —— 请求返回即拿到图片,无需轮询。按张计费、失败不计费。| 模型 | 版本 | 定位 | 计费方式 | 价格 (7折特惠) | 尺寸与档位说明 |
|---|---|---|---|---|---|
doubao-seedream-5-0-pro | 5.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-0 | 5.0 | 新版,画质强、性价比最高 | 按张 | ¥0.24/张 | 基础版支持到 4096×4096 |
doubao-seedream-4-5 | 4.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 |
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
model | string | 是 | - | 上表三个之一 |
prompt | string | 是 | - | 图像描述提示词。无我方硬性长度上限(走火山官方) |
size | string | 否 | 1024x1024 | 图像生成尺寸规格,支持两种格式: 1. 像素规格(推荐): "1024x1024" (1K 档)、"2048x2048" (2K 档)、"3840x2160" (4K 档)、"2560x1440" 等;2. 档位别名: "2K"、"4K";(计费阶梯:总像素 ≤ 261 万归入 1K 基准档按 ¥0.21 收费;> 261 万归入高清档按 ¥0.42 收费) |
response_format | string | 否 | url | url(图片直链)或 b64_json(base64 内嵌) |
image | string / array | 否 | - | 参考图(图生图 / 编辑 / 多图融合):单张字符串、多张数组。填了 image 即进入编辑;"二次编辑" = 把上一轮产图 URL 回传继续改,可反复迭代。参考图最多 14 张,参考图 + 产图合计 ≤ 15。元素为公网 URL 或 Base64(data:image/png;base64,...) |
sequential_image_generation | string | 否 | disabled | 组图模式:设 "auto" 让模型一次连续生成一组相关图(组图,data 返回多张)。产图 + 参考图合计 ≤ 15 张 |
n | integer | 否 | 1 | ⚠️ 本线路 n 每次仅返回 1 张,请保持 n=1;n>1 会按 n 计费但仍只返回 1 张。要一次一组相关图请用上面的 sequential_image_generation:"auto" 组图 |
分辨率范围与档位说明(实测):
| 模型 | 最高输出 | 最低 | 说明 |
|---|---|---|---|
doubao-seedream-4-5 | 4096×4096(真 4K) | 约 1920×1920 | 基础版支持到 4K |
doubao-seedream-5-0 | 4096×4096(真 4K) | 约 1920×1920 | 基础版支持到 4K |
doubao-seedream-5-0-pro | 4K(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 MB | 4.5 档服务上限 15MB,建议统一 ≤10MB |
| 格式 | JPEG / PNG | 5.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
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)
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)
doubao-seedream-5-0-pro 智能阶梯计费:无需切换模型名,总像素 ≤ 261 万(如 1024x1024, 1920x1080)按 1K 档 ¥0.225/张 计费;> 261 万(如 2048x2048, 2560x1440, 3840x2160, 2K, 4K)按高清档 ¥0.495/张 计费。/v1/images/generations,多带 image 字段(填参考图或上一轮产图 URL)即进入编辑;产图 URL 可反复回传迭代。n=1 每次 1 张;要一次一组相关图用 sequential_image_generation:"auto"(组图,data 多张,产图 + 参考图 ≤ 15)。doubao-seedream-5-0-pro:官方最新架构,支持 1K 到 4K 全画幅;高性价比日常出图可选 5-0。2560x1440 或 3840x2160、9:16 推荐 1440x2560 或 2160x3840、1:1 推荐 1024x1024 或 2048x2048。/v1/images/generations)与图生图 / 编辑(/v1/images/edits 传参考图),同步出图、无需轮询。返回阿里官方图片直链、无水印;1K ¥0.25/张、2K ¥0.50/张,按张计费、失败不计费。| 模型 | 分辨率档位 | 定位 | 计费 | 价格 / 张 |
|---|---|---|---|---|
qwen-image-3.0-pro | 1K(默认 / ≤261万像素) | 通义千问图像 3.0 Pro,高画质文生图 + 图生图 / 编辑 | 按张 | ¥0.25 |
qwen-image-3.0-pro | 2K(长边 ≥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(智能路由) |
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
model | string | 是 | - | 固定 qwen-image-3.0-pro |
prompt | string | 是 | - | 图像描述提示词(中英文均可) |
size | string | 否 | 2528x1696 | 宽×高,如 1024x1024。精确生效(实测按传入 WxH 原样出图);不传默认约 2528×1696(≈3:2)。画幅只认 size |
aspect_ratio | string | — | — | ⚠️ 本模型不生效(会被忽略、仍出默认画幅)。要控画幅请用 size |
response_format | string | 否 | url | url(阿里官方图片直链)或 b64_json(base64 内嵌,已实测) |
n | integer | 否 | 1 | 每次返回 1 张,保持 n=1;需多张请多次调用 |
image | string | 否 | - | 图生图 / 编辑(打 /v1/images/edits):参考图,公网 URL 或 base64(data:image/...;base64,)或 multipart 文件(-F "image=@ref.png")。实测参考图会被忠实读取(原图保留 + 按 prompt 编辑) |
⚠️ 画幅用size(精确 WxH),别用aspect_ratio(本模型忽略它)。常用:1:11024x1024/1328x1328、16:91664x928、9:16928x1664;不传则约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
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)
prompt(可加 size)打 /v1/images/generations。图生图 / 编辑:传参考图 image 打 /v1/images/edits,同模型、同档位同价(1K ¥0.25 / 2K ¥0.50),参考图不额外计费。size(精确 WxH);aspect_ratio 会被忽略、仍出默认约 2528×1696。n=1 每次 1 张;需多张请多次调用。*.aliyuncs.com)、无水印;链接有有效期,请及时下载保存。输出 PNG。size:1:1 1328x1328、16:9 1664x928、9:16 928x1664;不在意画幅可不传(默认约 2528×1696)。"response_format":"b64_json",否则默认拿直链最省事。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 | 文本 / 图文对话 / 云端 Agent | POST /v1/chat/completions | 按量 (Token) | 输入 ¥2.00/M(1.0x)· 输出 ¥8.00/M(4.0x) | 内置云端 Linux 沙盒,支持多模态识图、长上下文、代码执行与会话粘性 |
muse-image | 文生图 / 参考图编辑 / 透明抠图 | POST /v1/images/generationsPOST /v1/images/edits | 按次 | ¥0.10 / 张 | 支持画幅比例、分辨率、风格、负向提示词、最多 4 张参考图与 transparent 自动抠图 |
muse-video | 文生视频 / 首尾帧 / 多参考图(≤10 秒) | POST /v1/videosGET /v1/videos/{task_id} | 按次 | ¥0.30 / 个 | 单段 1~10 秒有声无水印视频;支持比例/尺寸、时长裁剪、帧率、镜头运动(camera_motion)、首尾帧及参考图驱动 |
muse-video-20s | 20 秒长视频 / 视频续写(+10 秒) | POST /v1/videosGET /v1/videos/{task_id} | 按次 | ¥0.50 / 个 | 两段末帧接力无缝拼接;传入 video_url 时自动续写 +10 秒(总长 ≤20 秒) |
muse-video-30s | 30 秒长视频 / 视频续写(+20 秒) | POST /v1/videosGET /v1/videos/{task_id} | 按次 | ¥0.60 / 个 | 三段末帧接力无缝拼接;传入 video_url 时自动续写 +20 秒(总长 ≤30 秒) |
muse-podcast | AI 多音色播客生成(MP3) | POST /v1/videosGET /v1/videos/{task_id} | 按次 | ¥0.30 / 期 | 自动调研撰稿并用 Avocado v2 多音色合成双人/多人对谈 MP3,支持 prompt、language、seconds/minutes、speakers/voices;音频地址在 video_url / url 字段 |
muse-tts | Avocado v2 神经网络语音合成 | POST /v1/audio/speechPOST /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-livePOST /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" 生成。
| 参数名 | 类型 | 必选 | 可选值 / 说明 |
|---|---|---|---|
model | string | 是 | 固定传 "muse-image" |
prompt | string | 是 | 图像画面描述提示词(支持中英文) |
size / aspect_ratio / ratio | string | 否 | 画幅比例或像素尺寸:"1:1"、"16:9"、"9:16"、"4:3"、"3:4"、"3:2"、"2:3";size 传具体像素(如 "1024x1024" / "1792x1024" / "1024x1792")时精确输出对应尺寸 |
resolution / quality | string | 否 | 画质档位:"1K"(长边 1024)、"2K"(长边 2048 原生)、"4K"(长边 3840 高清放大,例如 9:16 + 4K 输出 2160×3840)、"standard"、"hd" |
style | string | 否 | 视觉风格指令,如 "photorealistic"、"anime"、"cinematic"、"3d"、"vivid"、"natural" |
negative_prompt | string | 否 | 负向提示词(画面中需避免的元素) |
seed | integer | 否 | 随机种子(用于风格与构图复现) |
image / images / reference_images | string / array | 否 | 参考图(最多 4 张),支持公网 https:// URL、data:image/png;base64,... 或裸 Base64 |
background | string | 否 | 传 "transparent" 时自动执行主体抠图并返回透明通道 RGBA PNG;默认 "auto" |
n | integer | 否 | 生成张数(1–4,默认 1) |
output_format | string | 否 | 可选 "png" / "jpeg" / "webp":支持真实重编码输出 PNG / JPEG / WebP(若 background="transparent" 则须搭配 "png" 或 "webp") |
response_format | string | 否 | "url"(默认,返回图片直链)或 "b64_json"(返回 Base64) |
async | boolean | 否 | 传 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 成片。
| 参数名 | 类型 | 必选 | 可选值 / 说明 |
|---|---|---|---|
model | string | 是 | 三档可选:"muse-video"(单段 ≤10 秒,¥0.30/个)、"muse-video-20s"(20 秒或 +10s 续写,¥0.50/个)、"muse-video-30s"(30 秒或 +20s 续写,¥0.60/个) |
prompt | string | 是 | 视频镜头、动作与光影描述提示词 |
size / aspect_ratio / ratio | string | 否 | 视频画幅比例或尺寸:"16:9"(横屏)、"9:16"(竖屏)、"1:1"、"4:3"、"3:4"、"1280x720"、"720x1280"、"1920x1080"、"1080x1920" |
resolution / quality | string | 否 | 分辨率档位:"720p"(如 16:9 为 1280×720)、"1080p"(如 16:9 为 1920×1080,9:16 为 1080×1920);也可直接在 size 传 "1920x1080" / "1080x1920" |
seconds | string | 否 | ⚠️ 在 /v1/videos 接口中 seconds 建议传字符串(如 "5"、"8"、"10",传整数在 OpenAI Video 协议层可能报类型错误);muse-video 支持 1~10 秒精确裁剪(超过 10 秒或传 video_url 续写请改用 muse-video-20s / muse-video-30s,否则返回 400) |
fps | integer | 否 | 目标帧率,如 24、30、60 |
camera_motion / motion | string | 否 | 运镜方式,如 "pan_left"、"zoom_in"、"orbit"、"tracking_shot"、"static" |
style | string | 否 | 画面风格,如 "cinematic"、"anime"、"cyberpunk"、"realistic" |
negative_prompt | string | 否 | 负向提示词(需排除的瑕疵或元素) |
seed | integer | 否 | 随机种子 |
image / first_frame / input_reference | string / file | 否 | 首帧参考图(支持 URL、Data URL 或 multipart 文件上传) |
last_frame / last_frame_url | string | 否 | 尾帧参考图(首尾帧过渡控制) |
images / reference_images | array | 否 | 多参考图列表(最多 4 张 URL 或 Base64) |
video_url | string | 否 | 源视频公网 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 / coral | avocado_v2:MAI_01 | Aria · 清亮自然女声 | mp3(默认)、wav、opus、pcm |
nova / shimmer / sage | avocado_v2:MAI_02 | Nova · 温暖亲和女声 | mp3、wav、opus、pcm |
echo / helio / onyx | avocado_v2:MAI_03 | Helio · 沉稳磁性男声 | mp3、wav、opus、pcm |
fable | avocado_v2:bud | Bud · 叙事表现力男声 | mp3、wav、opus、pcm |
由于每个 Muse 账号对应一台独立的云端 VM 沙盒,当您需要进行多轮连续对话、跨请求读写同一工作区文件或保持同一虚拟人会话时,可通过以下任一方式指定会话粘性(TTL 默认 2 小时,活跃访问自动续期):
| 传参位置 | 字段 / Header 名 | 示例值 | 优先级与说明 |
|---|---|---|---|
| HTTP Header | X-Muse-Account-Id | acc_1935f0c924 | 最高优先级:直接锁定指定云端 VM 节点 |
| HTTP Header | X-Session-Id | my_project_session_01 | 推荐:按自定义会话 ID 一致性锁定同一云端 VM |
| JSON Body / Query | session_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"