文档中心 / 欢迎使用
从一个模型名开始,完成稳定的媒体生成接入。
先选择模型原厂与能力,再按详情页确认令牌分组、请求参数和异步任务结果。所有既有模型文档都保留在本次改版中。
步骤 01 创建令牌 在控制台创建 API Key,并确认目标模型对应分组已开通。
查看分组说明 →
步骤 02 提交任务 视频统一走 POST /v1/videos,参数以对应模型章节为准。
复制视频示例 →
步骤 03 读取结果 用任务 ID 轮询,完成后读取脱敏后的 video_url。
查看任务规则 →
视频生成,按原厂与自定义线路发现
模型原厂决定能力;令牌分组和路由则在每个模型详情页中确认。自定义线路单独标注,不与官方原厂链路混排。
首次接入建议先用 Omni 或 Flow 完成一笔最小视频任务;随后再按厂商、模型和输入模式扩展。
AI 编程工具 / 推荐接入方式
把一个 SKILL.md 交给 AI,让它按真实接口完成接入。
适用于 Codex、Claude Code、Cursor、Windsurf、Cline 等工具。技能文件会先读取项目环境变量,再发现此令牌实际可见的模型,按本站模型页选择正确的调用方式。
一个文件,覆盖接入时最常见的错误点
不让 AI 猜模型名、分组、视频轮询或素材字段;模型列表由令牌实时读取,模型参数与价格仍回到本站对应章节核对。
令牌可见模型实时发现 OpenAI 兼容调用入口 视频任务与轮询规则 不自动试跑付费生成
SKILL.md · API Gateway
name: aihubcc-api-gateway
description: Integrate the gateway
1. Read .env
2. GET /v1/models
3. Pick visible model ID
4. Follow model documentation
5. Poll existing video task
Never expose API keys.
开始使用
下载技能文件后,与下方提示词一起交给 AI。它会将文件放到项目技能目录,并保留原始内容。
01 把 SKILL.md 放进项目 先下载文件,再和这段提示一并发送给你的 AI 编程工具。它会按所用工具的项目目录创建技能文件夹。
这是 aihubcc 的 API 接入技能文件 SKILL.md。请把它放到本项目的技能目录:
Claude Code 放 .claude/skills/aihubcc-api-gateway/;Cursor 放 .cursor/skills/aihubcc-api-gateway/;
Windsurf 放 .windsurf/skills/aihubcc-api-gateway/;Cline 放 .cline/skills/aihubcc-api-gateway/;
其它工具放项目根目录 ai-gateway-skill/。目录不存在就新建,文件内容原样写入,完成后告诉我实际路径。
02 把令牌存入 .env 令牌只保存在项目本地环境变量,AI 后续从 `.env` 读取,不应再次要求你在对话中粘贴密钥。
我的 aihubcc API Key 是:【粘贴 Key】。请把它写进项目根目录 .env:
aihubcc_API_BASE_URL=https://aihubcc.cc
aihubcc_API_KEY=【粘贴 Key】
如果已有 .env,只追加缺失变量,不要覆盖其它内容;确认 .env 已在 .gitignore 中。以后从 .env 读取,不要在代码、日志或浏览器端暴露 Key。
03 先发现模型,再写接入代码 AI 会先用令牌调用 `/v1/models`,只使用实际可见的模型 ID;视频、图像与多参考素材均回到对应模型页核对参数。
请读取 aihubcc 的 SKILL.md,先从 .env 取配置并 GET $aihubcc_API_BASE_URL/v1/models。
按视频、图像、音频、文本分类列出我当前令牌可用的模型;不要猜模型名或价格。之后根据我的需求选择模型并给出接入方案,生成类请求先等我明确确认。
可以直接交给 AI 的需求
以下提示都先要求 AI 读取技能文件和令牌可见模型,避免项目被写入无法调用的模型名。
读一下 aihubcc 的 SKILL.md,从 .env 拉一遍 /v1/models。按对话、图片、视频、音频分类列出当前令牌可用的模型,并各给一个适用场景。
我的项目已经使用 OpenAI SDK。读取 aihubcc 的 SKILL.md,把 base_url 和 API Key 改为从 .env 读取,其它业务代码尽量不动;先只用 GET /v1/models 验证配置,不要发起付费生成。
读取 aihubcc 的 SKILL.md 和目标视频模型页。帮我做一个图生视频工具:提交任务后按 4 秒间隔轮询同一个 task_id,完成时保存响应中的 video_url;失败时保留 task_id 和错误信息。
从 .env 查询 aihubcc 令牌使用情况,读取 /api/usage/token/。告诉我可用额度、是否有限制模型、是否设置过期时间;不要把 Key 输出到终端或日志。
技能文件会实时读取令牌可见模型,但当前没有公开的机器可读价格、通用文件上传或通用参数 Schema 接口。AI 必须将价格和素材参数回到本站目标模型章节核对,不得猜测。
调用入口
按 SDK 与任务类型选择协议。文本、Responses、Anthropic、图像、视频和音频使用不同的公开入口,模型名必须来自当前令牌可见列表。
POST /v1/chat/completionsPOST /v1/responsesPOST /v1/messagesPOST /v1/images/generationsPOST /v1/videosPOST /v1/audio/speech
对话补全
所有可用的 Chat 模型共用 OpenAI Chat Completions 请求体。换 model 即切换模型;长响应或推理场景建议开启 stream: true。
Chat Completions OpenAI 兼容文本、多模态和工具调用入口。
POST /v1/chat/completions核心参数 参数 位置 必填 说明 modelbody 是 来自 GET /v1/models 的可见模型 ID。 messagesbody 是 OpenAI 消息数组;多模态字段以目标模型章节为准。 streambody 否 true 时按 SSE 输出。temperature / max_tokens / toolsbody 否 按 OpenAI 规范传递,模型支持度不同。
请求示例 curl "$BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"MODEL_ID","messages":[{"role":"user","content":"用一句话介绍你自己"}],"stream":true}' 推理类模型的推理内容会以 reasoning_content 或流式 delta.reasoning_content 返回;正文仍从 content 读取。
原生协议
参数 必填 说明 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 的理由"}'
参数 必填 说明 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"}]}'
图像生成与编辑
参数 必填 说明 model / prompt是 模型 ID 与生成描述。 n / size / quality / response_format否 仅在目标模型支持时传递。
curl -X POST "$BASE_URL/v1/images/generations" \
-H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" \
-d '{"model":"MODEL_ID","prompt":"一只戴帽子的柴犬","n":1,"size":"1024x1024"}' 图片调用是同步入口。客户端、CDN 与反向代理必须允许目标模型实际所需的等待时间。
视频生成
参数 必填 说明 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 风格入口。
/v1/audio/speech/v1/audio/transcriptions/v1/audio/translations音乐异步统一入口 通用 /v1/audio/generations / /v1/media/generate 统一入口待更新;当前请使用上方已开放的音频路由。
任务与轮询 当前视频与异步媒体任务使用视频任务 ID 查询。任务已受理后只轮询同一个 ID,不因客户端等待超时重复提交。
GET /v1/videos/{task_id}GET /v1/videos/{task_id}/content
状态速查 当前规范返回四个客户可处理状态。不同来源的原始状态在网关内部映射,客户不需要识别底层状态名。
queued 任务已受理,等待执行。保留任务 ID。
in_progress 任务正在处理。进度字段仅作参考。
completed 读取结果 URL,停止轮询。
failed 读取错误并保留任务 ID 供排查。
查询任务 查询当前令牌的任务 任务归属当前用户。不能查询其他令牌用户的任务。
GET /v1/videos/{task_id}参数 位置 必填 说明 task_idpath 是 提交时返回的公开任务 ID。
curl "$BASE_URL/v1/videos/$TASK_ID" \
-H "Authorization: Bearer $API_KEY" 完成响应的兼容读取顺序 status = response["status"]
if status == "completed":
url = response.get("video_url") \
or response.get("data", [{}])[0].get("url") \
or response.get("metadata", {}).get("url")
elif status == "failed":
error = response.get("error") or response.get("fail_reason")
轮询与下载规则 轮询已有任务 建议每 3–5 秒查询一次。queued 与 in_progress 时继续轮询,不要重复 POST。
GET /v1/videos/{task_id}结果 URL 完成后优先使用响应结果地址;已就绪的媒体也可通过内容路径下载。
GET /v1/videos/{task_id}/content统一任务契约 统一 /v1/tasks/{task_id}(is_final、output_url、进度与统一错误对象)待更新。
任务类型统一 音乐、语音、图像异步任务的统一查询待更新;当前以各模型实际文档为准。
客户端超时只代表当前 HTTP 等待结束,不代表任务失败。先查询原任务 ID;失败时保留 ID 与客户安全的错误对象。
模型接口与发现 先查询当前令牌能使用的模型,再从模型详情页确认参数、素材规则和价格。模型名、可见性和价格都不应由 AI 或客户端猜测。
GET /v1/models待更新 /v1/skills/models待更新 /v1/pricing-estimate
当前模型列表 curl "$BASE_URL/v1/models" \
-H "Authorization: Bearer $API_KEY"
# {"object":"list","data":[{"id":"model-id","object":"model"}]} 只使用响应中的 data[].id。未出现在列表中的模型,对当前令牌不可用或无权使用。
当前参数与价格来源 模型详情页 视频时长、分辨率、参考图、参考视频、Base64 与 multipart 字段,以对应模型章节为准。
本站模型文档控制台价格 实际模型价格与分组倍率以控制台为准;程序化获取见「账户信息 API」章节 :GET /api/pricing(带账号令牌得专属价)。
控制台模型列表
机器可读接口(待更新) 以下机器可读接口用于让 Skill 与客户程序自助发现模型、参数与价格,待更新 ;当前请以已开放的 /v1/models 为准。
模型目录 按令牌返回显示名、类型、标签、能力和调用入口。
GET /v1/skills/models参数 Schema 单模型参数、可选值、默认值与素材限制。
GET /v1/skills/models/{model}客户可见价格 只按当前令牌返回有效计费单位与公开价格,不泄露内部渠道。
GET /v1/skills/models/{model}/pricing按参数估价 时长、清晰度与素材组合影响价格时,复用真实账单逻辑估价。
POST /v1/pricing-estimate
账户与素材 当前可查询令牌用量与限制;参考素材仍以模型协议为准。统一钱包余额与文件上传能力待更新。
GET /api/usage/token/MODEL 素材参数页待更新 /v1/skills/balance待更新 /v1/files
当前令牌用量 curl "$BASE_URL/api/usage/token/" \
-H "Authorization: Bearer $API_KEY"
# data.total_available / data.total_used / data.model_limits / data.expires_at 这是令牌 配额接口(单把 sk- 令牌)。账号总余额现已可用 ,见「账户信息 API」章节:GET /api/user/self(data.quota / 500000 = 元)。
当前参考素材方式 公网 URL 仅在目标模型参数页明确支持时使用;链接必须可被目标模型访问。
模型字段为准Data URI 部分模型支持 data:image/...;base64,...,其它模型可能忽略或拒绝。
模型字段为准本地文件表单 仅使用目标模型公开的 multipart 字段,例如某些模型的 input_reference。
模型字段为准结果链接 把响应里的 video_url 或图片 URL 当作不透明地址使用,及时保存需要长期保留的产物。
响应字段为准
账户与文件能力(待更新) 以下账户与文件能力待更新 ,敬请关注。
钱包余额 返回总额、预冻结、可用余额和实际币种;字段来自同一账本快照。
GET /v1/skills/balance文件上传 multipart 上传后返回客户安全、可被模型访问、具备过期策略的 URL。
POST /v1/files文件生命周期 文件元数据、删除、所有权检查、存储清理和可见 URL 过期时间。
GET / DELETE /v1/files/{id}模型素材声明 由模型参数接口声明 URL、Base64、multipart 和限制,AI 不再猜测输入格式。
GET /v1/skills/models/{model}
账户信息 API Account
🔑 通过 API 查询模型 与余额 两类信息,支持两种鉴权粒度:令牌级 (用调用令牌 sk-,看这把令牌的可见模型与额度)与账号级 (用账号凭据,看整个账号已开启 的模型、总余额 与专属价格 )。均为只读、可安全轮询。Base URL https://aihubcc.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://aihubcc.cc"
# 方式②:账号密码换令牌(返回 data.access_token)
curl -sS -X POST "$BASE_URL/api/user/login" \
-H "Content-Type: application/json" \
-d '{"username":"你的账号","password":"你的密码"}'
# => {"success":true,"data":{"access_token":"eyJhbGci...","user":{...}}}
拿到的账号访问令牌 / access_token 都作为 Authorization: Bearer <它> 打下面的账号级接口。账号访问令牌等于账号钥匙,请妥善保管、勿写进前端、勿泄露 ;泄露可在后台重置。
⚠️ 方式②会创建登录会话 :每次 POST /api/user/login 都会新建一个 30 天有效的登录会话。反复程序化登录会堆满账号活跃会话上限(默认 50),导致账号被临时锁定。 自动化请一律用 ①账号访问令牌(PAT) ——无状态查询、不产生会话 。被锁解法:任一已登录设备点「退出其他登录会话」,或重置密码。
① 令牌级:模型 + 额度(用 sk-)
能力 接口 返回
令牌可见模型 GET /v1/modelsdata[].id = 这把令牌可调用的模型(已按令牌 / 分组 / 模型限制过滤)
令牌额度 GET /api/usage/token/total_available / total_used / total_granted / unlimited_quota / model_limits / expires_at
# 令牌可见模型
curl -sS "$BASE_URL/v1/models" -H "Authorization: Bearer sk-你的令牌"
# 令牌额度(人民币余额 = 数值 / 500000;unlimited_quota=true 表示不限额)
curl -sS "$BASE_URL/api/usage/token/" -H "Authorization: Bearer sk-你的令牌"
# => {"data":{"total_available":..., "total_used":..., "unlimited_quota":false, "model_limits":[...], "expires_at":...}}
② 账号级:已开启模型 + 总余额(用账号令牌)
能力 接口 返回
账号已开启模型 GET /api/user/modelsdata = 账号所有可用分组里已启用 的模型名数组(去重)。可选 ?group=组名 筛某组、?group=auto 看智能分组
账号总余额 GET /api/user/selfdata.quota(剩余额度)、data.used_quota(已用)、data.group(账号分组)
账号分组与倍率 GET /api/user/self/groups账号可用分组及各组倍率
PAT="账号访问令牌或登录返回的 access_token"
# 账号已开启的全部模型(跨该账号所有可用分组、去重)
curl -sS "$BASE_URL/api/user/models" -H "Authorization: Bearer $PAT"
# => {"success":true,"data":["gemini-3-flash","claude-sonnet-4-6","flow-omni-1.1-flash", ...]}
# 账号总余额(人民币余额 = data.quota / 500000)
curl -sS "$BASE_URL/api/user/self" -H "Authorization: Bearer $PAT"
# => {"success":true,"data":{"username":"...","group":"...","quota":...,"used_quota":..., ...}}
# quota=... → 人民币余额 = quota / 500000
模型价格
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该模型所属分组
group_ratio(顶层)各分组倍率
usable_group(顶层)可用分组(账号鉴权时按账号过滤)
# 未鉴权 = 公开价格目录;带账号令牌 = 账号有效价格
curl -sS "$BASE_URL/api/pricing" -H "Authorization: Bearer $PAT"
价格算法 :按次(quota_type=1)每次价格(人民币) = model_price × group_ratio[该模型分组];按量(quota_type=0)按 token 计费、倍率 = model_ratio × group_ratio,有 published_price 时直接用它更直观。用 sk- 打此接口不触发账号鉴权(按匿名基准价返回) ,要专属价请用账号令牌。若账号有专属折扣(用户级倍率覆盖分组倍率) ,以 published_price / 控制台为准。
Python 完整示例(账号级:余额 + 模型 + 价格)
import requests
BASE = "https://aihubcc.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)))
单位与注意事项
额度换算 :人民币余额 = quota / 500000。
只读、不计费 :以上都是查询接口,不产生任何生成费用,可轮询(建议间隔 ≥ 数秒)。
两类凭据不互通 :sk- 打不了 /api/user/*(401);账号令牌也不用来打 /v1/* 生成。
令牌级 vs 账号级 :sk- 可被设 model_limits 只放行部分模型、可单独限额;账号级看的是整个账号(跨所有分组)已启用模型与共享钱包。
价格以本站 / 控制台为准,接口数值供程序对账。
通用说明 & FAQ
接入地址(两条独立线路,同一账号)
线路 Base URL 入口位置 适用场景
主线路 https://aihubcc.cc/v1欧洲 默认使用;本文档所有示例均用此地址
备用线路 https://aihubcc.cc/v1美东 主线路连不上 / 延迟偏高时改用,只改域名,其他一行不动
两条线路是同一个平台、同一个账号、同一个令牌、同一份余额 ——只是网络入口不同,不需要重新注册、不需要换令牌、不需要重新充值 ,模型列表与价格完全一致。哪条更快因地区 / 运营商而异 ,我方不做承诺;若主线路不通或延迟偏高,把域名换成备用线路再试一次即可。 历史地址 https://aihubcc.cc/v1 仍然可用(与主线路同一入口),老代码无需改动。
鉴权
所有请求需携带 Authorization: Bearer sk-你的令牌 请求头。令牌在后台「令牌」页创建,分组必须与模型匹配 (错误分组会返回"无可用渠道")。
错误码
HTTP 含义 处理 计费
200 成功 正常取用 成功才扣
400 参数/素材问题 按 message 改正 不计费
401 鉴权失败 检查令牌 不计费
404 路径错误 检查 URL(勿重复 /v1) 不计费
429 限速/额度不足 降并发或充值 不计费
502/5xx 服务端临时故障 直接重试 不计费
FAQ
Q: 视频生成需要多久?
Omni 视频约 1-5 分钟,Grok 视频约 30s-3 分钟(时长越长越慢)。建议客户端超时 ≥300 秒。
Q: 失败会扣费吗?
不会。所有模型失败一律不扣费,仅成功出片/出图才计费。
Q: 参考图被内容策略拒绝怎么办?
包含可识别真人面孔的参考图可能触发 Gemini 内容策略。系统会自动尝试处理并重试。如仍失败,建议:使用非写实风格、虚构人物、侧面/背影/远景,或使用已授权的素材。
Q: 有多个接入地址,该用哪个?它们是不同账号吗?
不是不同账号 ——所有地址指向同一个平台 ,账号、令牌、余额、模型完全通用 ,随时可以互换,不需要重新注册、也不需要重新充值 。默认用主线路 aihubcc.cc;若你所在网络连不上或延迟偏高,改用备用线路 aihubcc.cc(美东入口)再试一次。两条线路对不同地区 / 运营商各有优劣,我方不承诺哪条更快。
视频生成 · 内容审查避坑指南
适用于 omni-fast / veo 系列视频模型 · 帮你避开 Google 内容审查,提高一次出片成功率
📊 近期实际拒绝统计(系统自动更新 · 2026-08-24 03:07)
按本平台真实拒绝自动统计(已脱敏,不含任何原始提示词):真人/版权/不安全内容
7701 次、参考图被拦截
5472 次、内容审核拒绝
698 次、违禁/侵权
589 次。
绝大多数为
真人写实 / 版权·IP / 参考图含敏感元素 ——请重点对照下方雷区①⑤与「安全改写对照表」。
一、先看这条报错
如果你收到:
This request didn't pass content review (e.g. an identifiable real person, unsafe content, or protected IP). Retrying or switching accounts won't help. Try a non-photorealistic style, a non-identifiable or fictional subject (back/side/distant view), or rights-cleared content, then resubmit.
中文意思:请求没通过内容审查 (可能涉及:可识别真人 / 不安全内容 / 受保护版权)。
⚠️ 这是 Google 的「确定性拒绝」
❌ 重试没用 ❌ 换账号没用 ✅
只能改提示词或换参考图 别反复提交同一个请求,立刻按下面的方法改。
二、六大高危雷区(命中必拒)
① 可识别的真人 / 名人 最常踩
"appears to show specific people" / "展示特定人物"
写实真人正脸、特写人像
任何名人、明星、政治人物、网红 的名字或长相
上传真人照片 当参考图(尤其正脸特写)
🔑 photorealistic(超写实)+ 真人 = 高危组合
② 未成年人 零容忍
"minors in dangerous or compromising situations"
画面出现儿童 / 婴儿 / 青少年 / 学生
哪怕本意无害,未成年人 + 任何危险或暧昧情境都会被拒
③ 性 / 裸露 / 暧昧 高危
"sexual situations"
④ 暴力 / 危险 / 血腥 高危
"dangerous situations" / "可能涉及危险情况"
暴力、血腥、武器、打斗、战争、爆炸
自杀、自残、事故、伤口、尸体、虐待
危险动作 / 危险情境
⑤ 受保护版权(IP / 品牌) 版权
"protected intellectual property" / "受保护知识产权"
动漫游戏角色 :皮卡丘、马里奥、奥特曼、米老鼠、艾莎、蜘蛛侠、哆啦A梦、火影等
品牌商标 :Nike、苹果、迪士尼、可口可乐、LV 等任何 logo
影视形象 :具名电影/电视剧角色、海报、截图
⑥ 其他敏感主题 易忽略
医疗病症 :皮肤病、痤疮、湿疹、体味、伤口、疾病 ← 真实案例踩过
政治 / 宗教 :领导人、宗教冲突、种族议题
毒品 / 违法 :毒品、吸毒等
仇恨 / 歧视 言论
三、安全改写对照表
❌ 高危写法 ✅ 安全改写
超写实真人 + 正脸特写 改 3D动画 / 插画 / 卡通 风格;或侧面、背面、远景
上传真人照片生成 不要正脸;用远景/侧背面;或转动漫/卡通风格
奥特曼大战怪兽 「一个通用的巨人英雄」(不点名具体 IP)
情侣处理痤疮/皮肤病 去掉病名,改成中性的「情侣约会」
小孩在火边玩耍 改成「成年人」,或移除危险元素
含名人姓名 改成「一位虚构的人物」
四、万能保险公式
不确定会不会被拒时,套这个组合最稳:
非写实风格 (non-photorealistic / 3D cartoon / illustration / anime)
+ 虚构、不具名的主体 (fictional, non-identifiable subject)
+ 脸部不可识别 (背面 / 侧面 / 远景)
+ 内容健康、无版权
五、提交前自检清单
✅ 提交前过一遍,一次成功率最高
☐ 有没有真人/名人 ?→ 转非写实风格或脸部不可识别
☐ 有没有儿童/青少年 ?→ 移除或改成年人
☐ 有没有性/暴力/危险/血腥 ?→ 删除相关描述
☐ 有没有动漫角色/品牌/影视 IP ?→ 换原创通用描述
☐ 有没有病症/政治/毒品 等敏感词?→ 中性化
☐ 参考图是不是真人照片 ?→ 换非写实图或远景
💡 两类报错要分清
「temporarily unavailable / 暂时不可用」 → 后端临时波动,
可稍后重试
「didn't pass content review / 没通过内容审查」 → 确定性拒绝,
必须改内容 ,重试无用
Flow · Veo 3.1 视频
当前对外提供两个视频别名:flow-veo-3-1(标准)与 flow-veo-3-1-fast(Fast)。两者均为异步任务,固定按次计费;失败任务不计费。
⚠️ 图生视频(要用参考图)必看 —— 上传图片只有一种正确姿势:
✅ 用 application/json 请求体,图片放进 image(单图)或 images(多图数组)字段,值必须是 base64(data URI,形如 data:image/jpeg;base64,....)。 经我方实测,只有这两个字段+base64 会真正被系统采用。
❌ 以下方式图片会被静默忽略 ,成片直接退化成"文生视频"(这就是"生成的视频没用到参考图"的原因):
用 multipart/form-data 表单上传(含 Sora 风格的 input_reference / input_reference[0]);
用 image_url / first_image_url / first_image / last_image_url 字段(无论传 URL 还是 base64,均实测不生效);
传图片 URL (系统要自行抓取,外部图床/带鉴权的链接大多抓不到 → 当没传处理)。所以一律转 base64 。
模型
模型 能力 计费
flow-veo-3-1Veo 3.1 标准视频生成;文生、单图首帧、首尾帧字段可用 按次
flow-veo-3-1-fastVeo 3.1 Fast;请求结构与标准版相同,优先低延迟 按次
价格是固定任务价,不是按秒价。即使传入 seconds,本组仍只扣一次对应模型的价格。失败任务不计费。
接口信息
项 说明
提交任务 POST /v1/videos(当前公开契约:JSON)
轮询进度 GET /v1/videos/{task_id} → status=completed 后取顶层 video_url(兼容 data[0].url)
下载成片 优先下载完成任务返回的 video_url;媒体已就绪后也可使用 /v1/videos/{task_id}/content
鉴权 Authorization: Bearer sk-你的令牌
令牌分组 gemini-flow-1(Gemini flow)
耗时 通常数十秒至数分钟;客户端应轮询,不要重复提交同一任务
核心参数
字段 类型 必填 默认
modelstring 是 只使用 flow-veo-3-1 或 flow-veo-3-1-fast
promptstring 是 画面、主体、动作、镜头和音频意图;建议写清主体数量与运动方向。无我方硬性长度上限(走 Veo 官方)
secondsstring / number 否 推荐字符串如 "4"。当前最低已验证 4 秒;实际成片可能被服务归一化为默认时长,以完成任务媒体信息为准
durationnumber / string 否 seconds 的兼容写法,例如 4;不要同时传两个不同值
resolutionstring 否 兼容字段,建议改用官网式 video_resolution;当前仅 720p (⚠️ 官方已取消 1080p,当前仅 720p)
sizestring 否 像素尺寸 1280x720/720x1280,或官网式纵横比 16:9/9:16(须同时传 video_resolution)
video_resolutionstring 否 官网式清晰度 仅 720p (官方已取消 1080p)。仅当 size 传纵横比时使用;网关转换为等价像素后发送
aspect_ratiostring 否 可传 16:9/9:16 作画幅意图;实测可提交,但服务可能归一化输出画幅
✅ 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://aihubcc.cc"
TOKEN="sk-你的Flow令牌"
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "flow-veo-3-1",
"prompt": "一只橘猫在窗边抬头,阳光缓慢移动,固定机位,电影感",
"seconds": "4",
"size": "16:9",
"video_resolution": "720p"
}'
Fast 版把 model 改为 flow-veo-3-1-fast。竖屏把 size 改为 9:16。
单图生视频(I2V)—— 用 image + base64(唯一生效)
IMG=$(base64 < ./start.jpg | tr -d '\n')
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d "{
\"model\": \"flow-veo-3-1-fast\",
\"prompt\": \"保持人物外观和服装一致,让人物自然回头并向镜头走来\",
\"seconds\": \"4\", \"resolution\": \"720p\",
\"image\": \"data:image/jpeg;base64,$IMG\"
}"
多图参考(最多 3 张)—— 用 images + base64
A=$(base64 < ./character.jpg | tr -d '\n'); B=$(base64 < ./scene.jpg | tr -d '\n')
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d "{
\"model\": \"flow-veo-3-1-fast\",
\"prompt\": \"把图 1 的人物置于图 2 的场景,镜头缓慢推进\",
\"seconds\": \"4\", \"resolution\": \"720p\",
\"images\": [\"data:image/jpeg;base64,$A\", \"data:image/jpeg;base64,$B\"]
}"
❌ 首尾帧过渡(first / last frame)当前不可用 :first_image_url / first_image / last_image_url 实测均不生效,请改用单图 image 或多图 images。
轮询取片
TASK_ID="task_xxx"
# shell 轮询示例(每 5 秒一次)
while :; do
BODY=$(curl -fsS "$BASE_URL/v1/videos/$TASK_ID" -H "Authorization: Bearer $TOKEN") || exit 1
STATUS=$(printf '%s' "$BODY" | jq -r '.status // "unknown"')
echo "status=$STATUS"
case "$STATUS" in
completed|success|succeeded) break ;;
failed|error) printf '%s\n' "$BODY" | jq .; exit 1 ;;
esac
sleep 5
done
VIDEO_URL=$(printf '%s' "$BODY" | jq -r '.video_url // .data[0].url // empty')
curl -fL "$VIDEO_URL" -o flow-veo-result.mp4
完成任务通常返回顶层 video_url;客户端应同时兼容 data[0].url。下载地址是临时地址,请及时转存。
Python 完整请求
import time, requests
BASE = "https://aihubcc.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 均实测不生效(图被忽略→变文生视频)。首尾帧当前不可用。
图片用 JPEG/PNG/WebP,务必转成 base64 data URI (不要传 URL,系统要自行抓取,外链/带鉴权的大多抓不到)。
提示词写清"图 1 是谁 / 做什么""首帧到尾帧如何过渡",比堆素材更稳定。
示例中的令牌 / URL / 任务 ID 均为占位符,勿把真实令牌提交到前端或公开仓库。
Flow · Omni 1.1 Flash Video
🎬 Flow · Omni 1.1 Flash :一个模型名 flow-omni-1.1-flash ,支持文生视频、多图参考图生视频、视频编辑(v2v) 三种模式,按请求里的素材自动切换 。无水印、时长 4 / 6 / 8 / 10 秒可选(默认 8 秒)、720p 出片,OpenAI 兼容异步接口,按次计费、失败不计费 。画幅朝向用 aspect_ratio(16:9 横屏默认 / 9:16 竖屏),也可用 size 指定。
模型
模型 模式 分辨率 计费
flow-omni-1.1-flash文生视频 / 多图参考图生视频 720p 按次
flow-omni-1.1-flash(v2v)视频编辑(传参考视频 input_reference,含图 + 视频同时参考) 720p 按次
按次计费 :文生视频、多图参考图生视频 ;视频编辑(v2v,请求里带参考视频 input_reference)。时长可选 4 / 6 / 8 / 10 秒(不传默认 8 秒),四档同价 ,720p ,失败不计费 。
三种模式(按素材自动切换)
模式 怎么触发 说明
文生视频(T2V) 只传 prompt,不带图 / 视频 纯文字生成视频
图生视频(I2V) prompt + images(或单张 image)多图参考图生视频
视频编辑(V2V) prompt + input_reference(参考视频)在原视频基础上按 prompt 编辑(如加特效 / 改天气 / 换风格);参考视频 ≤15 秒 ,可传 base64 (本站自动托管)或公网 URL (须中国可访问)
选档优先级 :带参考视频 (input_reference)→ 视频编辑 ;否则带参考图 (images)→ 图生视频 ;都不带 → 文生视频 。三种模式同一模型名 flow-omni-1.1-flash;文生 / 图生 ,视频编辑(v2v)。
接口信息
项 说明
Base URL https://aihubcc.cc
提交任务 POST /v1/videos(JSON)
轮询进度 GET /v1/videos/{task_id},status=completed 表示完成
下载成片 用轮询返回的顶层 video_url 直接下载 mp4(地址已脱敏、我方域名)
鉴权 Authorization: Bearer sk-你的令牌
令牌分组 Gemini flow
耗时 通常 1–2 分钟;客户端应轮询,不要重复提交同一任务
核心参数
参数 类型 必填 默认 说明
modelstring 是 固定 flow-omni-1.1-flash(文生 / 图生 / 视频编辑都用这一个名字)
promptstring 是 画面 / 运动描述
resolutionstring 否 720p固定 720p (本模型仅提供 720p)
aspect_ratiostring 否 16:9决定画幅 / 朝向 :16:9(横屏,默认)/ 9:16(竖屏)。不传即横屏 ,要竖屏传 9:16
sizestring 否 也可用 WxH 指定朝向(如 1280x720 横 / 720x1280 竖);传了 size 时以它为准。清晰度恒 720p
secondsstring(必须字符串 ) 否 "8"成片时长(秒) :可选 "4" / "6" / "8" / "10",四档同价 。必须传字符串 ——写成数字 10 会报 invalid_json;请用 seconds,duration 不生效 ;传档位以外的值(如 "7")按 8 秒 出片、不报错
images数组(URL / base64) 否 图生视频 :多图参考(建议 ≤6 张 ,多传模型可能只取前几张、不提升效果);公网可直取 URL 或 data:image/...;base64,。单张也可用 image
input_referencestring(URL 或 base64) 否(v2v 必填) 仅视频编辑(v2v)用 :文生 / 图生视频无需 此字段;做 v2v 时必填 ——参考视频,可传公网 URL (≤15 秒 、须中国可访问 )或 base64 (data:video/mp4;base64, 或裸 base64;本站自动托管为中国可达链接,无需自己找公网地址;mp4/mov、解码后 ≤64MB);传了即进入编辑模式,按 prompt 在原视频上编辑
⚠️ 时长用 seconds 传「字符串」 :可选 "4" / "6" / "8" / "10",不传默认 8 秒,四档同价、不加钱 。写成数字(10)会直接报 invalid_json;duration 字段不生效;档位以外的值(如 "7")按 8 秒出片、不报错。 朝向用 aspect_ratio(或 size),清晰度恒 720p 。
时长档位(实测对照 · 务必只传这四个值)
传 seconds 实际成片时长 帧数(24fps) 说明
"4"4.0 秒 96 正常
"6"6.0 秒 144 正常
"8" 或 不传 8.0 秒 192 默认档
"10"10.0 秒 240 正常
四档以外的值 (如 "7"、"15")8.0 秒 192 ⚠️ 不报错、静默按 8 秒出片 ——你以为拿到 7 秒,实际是 8 秒
数字 10(没加引号 ) 请求直接被拒 :400 invalid_json
duration 字段8.0 秒 该字段不生效 ,等同没传时长
⚠️ 这是本接口最容易踩的坑:传错档位不会报错。 平台对 seconds 不做档位校验 ,四档以外的值会直接按默认 8 秒 出片,且不返回任何警告或提示 。所以:① 只传 "4" / "6" / "8" / "10" 四个字符串之一 ,别传 "5" / "7" / "12" 这类值;② 若时长对你的流程重要 (剪辑对轨、投放平台时长限制、按秒二次计费等),请在拿到成片后自行核验实际时长 (播放器属性,或 ffprobe -v error -show_entries format=duration -of csv=p=0 out.mp4),不要以请求参数为准 。 上表时长为实测值,各档位误差在 ±0.02 秒 内。
画幅与朝向(横屏 / 竖屏怎么定)
想要 用 aspect_ratio 或用 size 输出(恒 720p)
横屏(默认) 不传 或 "16:9" "1280x720"1280 × 720
竖屏 "9:16""720x1280"(或 "1080x1920")720 × 1280
比例不是必填 :不传默认出横屏 16:9 (1280×720);要竖屏传 aspect_ratio:"9:16",或 用 size 传竖版 WxH(如 720x1280、1080x1920——超过 720p 会自动缩放到 720p)。同时传 size 和 aspect_ratio 时以 size 为准 。清晰度恒 720p ;图生视频同样用 aspect_ratio / size 指定朝向。
示例请求(curl)
BASE_URL="https://aihubcc.cc"
TOKEN="sk-你的令牌"
# 1) 文生视频(720p 横屏,默认)
# seconds 可选 "4"/"6"/"8"/"10"(字符串),不传默认 8 秒,四档同价
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"model":"flow-omni-1.1-flash","prompt":"日出时分平静的湖面雾气升腾,电影感镜头","seconds":"10"}'
# 2) 文生视频(竖屏 9:16)
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"model":"flow-omni-1.1-flash","prompt":"竖屏短视频:城市夜景延时,霓虹流光","aspect_ratio":"9:16"}'
# 3) 图生视频(参考图,URL 或 base64)
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"model":"flow-omni-1.1-flash","prompt":"参考这些图片生成连贯运镜","images":["https://img1.jpg","https://img2.jpg"]}'
# 4) 视频编辑 v2v(传参考视频 input_reference:公网 URL 或 base64 data-uri,≤15 秒)
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"model":"flow-omni-1.1-flash","prompt":"给这段视频加上飘雪,保持原画面","input_reference":"https://your-public-video.mp4"}'
# 或把参考视频转 base64(本站自动托管为中国可达链接,无需公网地址):把 input_reference 换成 "data:video/mp4;base64,<BASE64>"
# => {"task_id":"task_xxx","status":"queued",...}
Python 完整示例(提交 → 轮询 → 下载)
import time, requests
BASE = "https://aihubcc.cc"
TOKEN = "sk-你的令牌"
H = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}
# 提交:文生 720p 横屏。
# 竖屏 -> 加 "aspect_ratio": "9:16"
# 图生 -> 加 "images": ["https://.../a.jpg", "https://.../b.jpg"](也支持 base64)
# 视频编辑 -> 加 "input_reference": "https://.../clip.mp4"(也支持 base64: data:video/mp4;base64,) # 参考视频 ≤15s
payload = {
"model": "flow-omni-1.1-flash",
"prompt": "日出时分平静的湖面雾气升腾,电影感镜头",
"aspect_ratio": "16:9", # 16:9 横屏 / 9:16 竖屏
}
r = requests.post(f"{BASE}/v1/videos", headers=H, json=payload, timeout=60)
r.raise_for_status()
task = r.json()
task_id = task.get("task_id") or task.get("id")
print("task_id:", task_id)
# 轮询直到完成(通常 1-2 分钟,与时长档位无关)
while True:
time.sleep(5)
d = requests.get(f"{BASE}/v1/videos/{task_id}", headers=H, timeout=30).json()
status = str(d.get("status", "")).lower()
print("status:", status, d.get("progress"))
if status == "completed":
video_url = d.get("video_url") or (d.get("data") or [{}])[0].get("url")
print("成片:", video_url)
break
if status == "failed":
raise RuntimeError(d.get("error") or d)
# 下载成片:用轮询返回的 video_url(地址已脱敏、我方域名)
mp4 = requests.get(video_url, timeout=180)
open("out.mp4", "wb").write(mp4.content)
print("已保存 out.mp4")
Python 示例:图 + 视频同时参考(全能模式)
flow-omni-1.1-flash 支持同时 传参考视频(input_reference,1 段)+ 参考图(images,可多张)。⚠️ images 必须是数组 ["u1","u2"],不要写成 images0 / images1 (部分客户端会把数组拆成索引键,导致参考图不生效)。参考视频只支持 1 段 ;参考图建议 ≤6 张 。带参考视频即按视频编辑(v2v) 计费。
import time, base64, requests
BASE = "https://aihubcc.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)= 图生视频;不带 = 文生视频。文生 / 图生 ,视频编辑(v2v)。
朝向用 aspect_ratio (16:9 横屏默认 / 9:16 竖屏),也可用 size 的 WxH;清晰度恒 720p 。
比例非必填 :不传默认横屏 16:9;要竖屏传 aspect_ratio:"9:16" 。
无水印、时长 4 / 6 / 8 / 10 秒可选(默认 8 秒、四档同价) ;文生 / 图生 、视频编辑(v2v) ;按次计费、失败不计费 。
⚠️ 时长只传 "4" / "6" / "8" / "10"(字符串) :传四档以外的值不会报错 ,会静默按 8 秒 出片;写成数字(没加引号)会报 invalid_json。时长要紧的场景请核验成片实际时长,见上方「时长档位 」一节。
多图参考 images:参考图须公网可直接下载 或用 base64(需登录 / 内网 / 拦爬虫的链接会失败)。
视频编辑 input_reference:参考视频 ≤15 秒 。可传 base64 (data:video/mp4;base64, 或裸 base64;本站自动托管为中国可达链接,mp4/mov、解码后 ≤64MB)或公网 URL (须中国可直接下载;国外 / 需登录的 URL 会取不到→退化为文生)。
生成约 1–2 分钟;轮询取片、勿重复提交同一任务。
提示词与参考图 / 视频避免暴露 / 未成年 / 血腥暴力等敏感内容,否则被内容安全拦截(不计费)。
Omni 视频生成
基于 Gemini Veo 的视频生成服务,支持文生视频、图生视频(最多 5 张参考图)、视频转视频(V2V,最多 2 个参考视频)。
模型
模型 能力 计费
omni-fast文生视频 / 图生视频 按次
omni-fast-v2v视频转视频(V2V) 按次
omni-fast-no-water文生/图生视频(无水印) 按次
omni-fast-v2v-no-waterV2V(无水印) 按次
omni-extend-20s视频续写(原片 + 约 8~10 秒) 按次
omni-extend-20s-no-water视频续写(无水印) 按次
无水印模型输出经过自动清洗处理,完成前可能多一个 processing 阶段,稍慢。失败不计费。
接口信息
项 说明
提交任务 POST /v1/videos(JSON 或 multipart)
轮询进度 GET /v1/videos/{task_id}
下载成片 GET /v1/videos/{task_id}/content 或返回的 data[0].url
鉴权 Authorization: Bearer sk-你的令牌
令牌分组 gemini-fast
核心参数
参数 类型 必填 默认 说明
modelstring 是 模型名,见上表
promptstring 是 视频描述提示词(无我方硬性长度上限,走 Gemini 官方)
aspect_ratiostring 否 16:9画幅比例:16:9(横)、9:16(竖)
seconds / durationstring/int 否 10时长秒数(接收但当前 Gemini 固定输出约 10 秒)
image_urlstring 否 单张参考图(公网 URL 或 data:image Base64)
first_image_urlstring 否 首帧参考图 URL
last_image_urlstring 否 末帧参考图 URL
video / video_urlstring 否 V2V 源视频 URL(≤8MB、≤1920x1080)。传 2 个视频时可用这两个字段各放一个
videosstring[] 否 V2V 多源视频数组(最多 2 个,每个 ≤8MB)
imagesstring[] 否 多参考图数组(最多 5 张,每张 ≤8MB)
Multipart 提交(支持文件上传)
字段 说明
input_reference / input_reference[]参考图文件上传(最多 5 张,每张 ≤8MB)。input_reference[] 为浏览器画布 / Sora 兼容客户端的数组写法:单张=图生视频(首帧动画),多张=多参考图;两种写法均可
input_video / input_video2 / videos[]V2V 源视频文件上传(每个 ≤12MB,最多 2 个)。传 2 个视频用 input_video+input_video2;浏览器画布 / Sora 兼容客户端用数组写法 videos[](同名重复),网关均可解析
示例:文生视频
curl -X POST https://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/v1/videos \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "omni-fast",
"prompt": "保持人物一致,缓慢走动",
"image_url": "https://your-cdn.com/photo.jpg",
"aspect_ratio": "16:9"
}'
示例:视频转视频(V2V)
# Multipart 文件上传
curl -X POST https://aihubcc.cc/v1/videos \
-H "Authorization: Bearer sk-xxx" \
-F "model=omni-fast-v2v" \
-F "prompt=将画面风格转换为赛博朋克风" \
-F "input_video=@source.mp4"
示例:双视频 V2V(2 个参考视频)
curl -X POST https://aihubcc.cc/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://aihubcc.cc/v1/videos \
-H "Authorization: Bearer sk-xxx" \
-F "model=omni-fast-v2v" \
-F "prompt=第一个视频的人和第二个视频的人一起跳舞" \
-F "input_video=@person1.mp4" \
-F "input_video2=@person2.mp4"
视频续写(omni-extend-20s)
把你自己的一段短视频接长:上传 12 秒以内 的视频,返回「原片 + 约 8~10 秒新画面 」。10 秒素材约得 18~20 秒成片,原片内容原样保留,只在后面自然接上。
curl -X POST https://aihubcc.cc/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://aihubcc.cc/v1/videos \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "omni-extend-20s",
"videos": ["https://your-cdn.com/host.mp4"],
"images": ["https://your-cdn.com/product.jpg"],
"prompt": "continue naturally"
}'
用 URL 传参考视频和参考图
不想传 base64、也不想走 multipart,可以直接给公网 URL ,视频和图片都支持。服务端会替你下载(经代理,不暴露你我的 IP),你只要保证链接能被匿名 GET 到。
# 参考视频 + 参考图,全部用 URL
curl -X POST https://aihubcc.cc/v1/videos \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "omni-extend-20s",
"prompt": "continue naturally",
"videos": ["https://your-cdn.com/clip.mp4"],
"images": ["https://your-cdn.com/product.jpg"]
}'
字段对照
要传的东西 推荐字段 也接受 上限
参考视频 videos(数组)video_url / video / input_video(各放一个)最多 2 个,每个 ≤12MB、≤12 秒、≤1920×1080
参考图 images(数组)image_url / first_image_url / last_image_url最多 5 张,每张 ≤12MB
同一个字段里 URL 和 data:...;base64, 可以混着写,服务端按前缀自己分辨。multipart 也能混用 :视频用 -F "input_video=@clip.mp4" 上传文件,图片同时用 -F "image_url=https://..." 给链接。
URL 必须满足
要求 说明
匿名可下载 服务端下载时不会带你的任何鉴权头 。需要签名/登录才能访问的私有链接一律取不到,请用预签名直链(presigned URL)或公开对象。
直链,返回 200 要指向文件本身,不是网盘的分享页 / 播放页。302 跳转可以,会自动跟随。
时效要够 预签名 URL 的有效期建议留 30 分钟以上 :任务排队 + 生成的中位耗时约 3.5 分钟,最慢见过 12 分钟。
Content-Type 不强制。服务端识别不了时按 video/mp4 / image/jpeg 兜底。
一个容易踩的坑:把视频 URL 放进 input_reference / reference 这类混合字段时,是靠扩展名 判断它是不是视频的 (.mp4 .mov .webm .m4v .avi .mkv .mpeg .ogv,查询串会先被剥掉)。 所以形如 https://cdn.example.com/asset/9f3a1c 这种没有扩展名的直链会被当成图片 ,请求就退化成了「图生视频」。解决办法:视频一律用 videos / video_url 明确指定 ,这两个字段不看扩展名。
题材决定成败(实测 140 次)
我们用 7 组不同的提示词写法 × 20 条不同题材的源片各跑了一遍。结论很干脆:提示词怎么写几乎不影响成功率,源片是什么题材才是决定性因素。
七组提示词的成功率全部落在 10~13 / 20,差异在噪声范围内:
提示词写法 成功 提示词写法 成功
4 词极短(continue naturally) 13/20 中文提示词 11/20
25 词中等 10/20 指定台词 12/20
110 词长提示 12/20 带参考图 / 带分镜图 11/20 / 13/20
所以直接用最短的 continue naturally 就行,把精力花在选素材上。
✅ 高成功率题材 实测 ❌ 高风险题材 实测
产品广告 14/14 幼儿 / 亲子 0/14
产品演示 / 教程 13/14 纯动作、无对白 1/14
口播带货 15/21 情绪冲突剧情 9/28
动物 / 自然 12/14
风景 / 空镜 11/14
「纯动作无对白」要特别小心 :它不报错、状态是 completed,但实测 5 次全部是等长重拍 ,而且画幅被翻转。一定要按时长校验,别直接交付。
不同失败的处理方式是相反的
现象 怎么办
重拍 (输出时长 < 原片 + 2 秒)原地重试 ,最多 3 次,多数第 2 次就过
video_route_misroute原地重试 ,偶发
content_policy不要重试,换素材 (素材级判定,重试无效)
做 20 秒以上:尾部窗口链式
失败率是跟着你喂进去的参考视频长度 走的,不是跟着输出长度走的:
参考视频长度 10 秒 20 秒 28 秒
成功 2/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://aihubcc.cc/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"}]}
Veo-Clean 去水印
上传带水印的视频,系统自动去除水印后返回去水印成片。异步任务,流程与视频生成一致。
模型
按视频实际时长计费,例如 10 秒视频 = 。失败不计费,不消耗 Gemini 生成配额。
接口信息
项 说明
提交任务 POST /v1/videos(仅 multipart ,需上传文件)
轮询进度 GET /v1/videos/{task_id}
下载成片 GET /v1/videos/{task_id}/content 或返回的 data[0].url
鉴权 Authorization: Bearer sk-你的令牌
令牌分组 gemini-fast
核心参数
参数 类型 必填 默认
modelstring 是 固定 veo-clean
input_videofile 是 带水印视频文件,≤20MB ,必须 multipart 上传
promptstring 是 去水印指令,通常填 remove watermark;网关要求必填,缺省会返回 400 prompt is required
提交方式
仅支持 multipart/form-data (必须上传视频文件,不支持 JSON / URL 传视频)。字段 input_video 放本地文件。
示例请求
# Multipart 上传去水印
curl -X POST https://aihubcc.cc/v1/videos \
-H "Authorization: Bearer sk-xxx" \
-F "model=veo-clean" \
-F "prompt=remove watermark" \
-F "input_video=@watermarked.mp4"
轮询取片
curl https://aihubcc.cc/v1/videos/{task_id} \
-H "Authorization: Bearer sk-xxx"
# 完成后:
# {"status":"completed","data":[{"url":"/v1/videos/{task_id}/content"}]}
Python 完整请求
import time, requests
BASE = "https://aihubcc.cc/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://aihubcc.cc" + url
open("clean.mp4", "wb").write(requests.get(url, headers=H).content)
注意事项
仅支持 multipart/form-data 提交(需上传视频文件)。
视频文件大小限制 20MB 。
处理时间通常 20–60 秒(取决于视频长度),清洗前可能多一个 processing 阶段。
不涉及 Gemini 视频生成,不消耗生成配额;失败不计费。
建议
源视频尽量 ≤20MB、时长越短处理越快。
清晰源视频去水印效果更好;严重压缩 / 低清源可能残留痕迹。
Gemini 高速文本模型
高速分组的文本 / 多模态对话模型,支持 OpenAI Chat 兼容接口。
模型
AIHUB Gemini 高速分组(gemini-fast)
模型 能力 多模态附件 计费
gemini-4-argon旗舰档,1M 上下文 / 复杂推理最强 ✅ 图 / 视频 / 音频 按 token
gemini-3.8-flash-app当前主力高速文本,最省 ✅ 图 / 视频 / 音频 按 token
gemini-3.5-flash高速文本,综合能力更强 ✅ 图 / 视频 / 音频 按 token
gemini-3.1-proPro 档,长文 / 复杂推理 ✅ 图 / 视频 / 音频 按 token
gemini-3.1-flash-lite轻量高速 ✅ 图 / 视频 / 音频 按 token
gemini-3.5-flash-lite轻量高速(新版) ✅ 图 / 视频 / 音频 按 token
gemini-2.0-flash-thinking思维链档,最省 ✅ 图 / 视频 / 音频 按 token
以上 7 个模型走同一条服务链路,多模态附件行为一致。同分组还有 gemini-image / gemini-image-pro(图像生成)与 gemini-music(音乐),见各自章节。不同客户分组倍率可能不同,实际单价以账号「模型广场」为准。
接口信息
项 说明
请求 POST /v1/chat/completions(OpenAI 兼容,同步;stream:true 可流式)POST /v1beta/models/{model}:generateContent(Gemini 原生格式;流式用 :streamGenerateContent?alt=sse)
鉴权 OpenAI 格式用 Authorization: Bearer sk-你的令牌;Gemini 原生格式用 x-goog-api-key: sk-你的令牌
令牌分组 gemini-fast
核心参数
参数 类型 必填 默认 说明
modelstring 是 见上表模型名。
messagesarray 是 OpenAI 消息数组;content 可含图片实现多模态
streambool 否 false 是否流式返回
temperaturenumber 否 采样温度
max_tokensint 否 最大输出 token
提示词长度上限 = 模型上下文窗口(走 Gemini 官方,可容纳很长文本),无我方硬性字符限制。
提交方式
标准 OpenAI Chat JSON。可直接用 OpenAI SDK:把 base_url 指向网关、api_key 用你的令牌即可。
示例请求
# 基础对话(非流式)
curl https://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
-d '{
"model": "gemini-3.8-flash-app",
"messages": [{"role":"user","content":[
{"type":"text","text":"把这段音频转写成文字"},
{"type":"input_audio","input_audio":{"data":"<BASE64>","format":"mp3"}}
]}]
}'
Python(OpenAI SDK)
from openai import OpenAI
client = OpenAI(base_url="https://aihubcc.cc/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)
说明
图片与视频 已在生产链路实测稳定(同一素材连续 5 次全部正确识别附件内容)。
音频 模型对压缩容器(mp3/m4a)的识别不稳定,平台会在转交前统一转成 16kHz 单声道 WAV,并在检测到「模型没收到附件」时自动重试一次;实测转换 + 重试后 8/8 命中。纯合成音(正弦音等)模型的描述会比较发散 ,语音 / 环境音场景更可靠。
附件只在 role: "user" 轮上传;多轮对话里重复贴同一个 URL 不会重复上传,也不会重复计费。
响应说明(同步即返,无需轮询)
本接口为同步对话接口 ,无需轮询。一次 POST 即可在 choices[0].message.content 取得完整回复;设置 stream: true 时按 SSE 标准流式增量推送。
Python 完整请求
from openai import OpenAI
client = OpenAI(base_url="https://aihubcc.cc/v1", api_key="sk-xxx")
resp = client.chat.completions.create(
model="gemini-3.8-flash-app",
messages=[{"role": "user", "content": "用一句话介绍杭州"}],
)
print(resp.choices[0].message.content)
联网来源引用(annotations)
当回答触发了联网搜索,我们会把 Gemini 实际引用的网页按 OpenAI 官方 annotations / url_citation 规范 一并返回,同时正文里的 markdown 链接原样保留 (不会被压成裸域名)。GEO / AEO 监测、引用溯源、竞品可见度分析可直接消费该字段。
平台 令牌分组 支持的模型
统一网关 aihubcc.cc gemini-fastgemini-3.1-pro · gemini-3.5-flash · gemini-3.1-flash-lite · gemini-3.5-flash-lite · gemini-3.8-flash-app · gemini-2.0-flash-thinking
上表模型走同一套服务体系,行为一致。反重力 gemini-anti 分组(gemini-3.1-pro-low / gemini-3.8-flash 等)是另一条独立源站线路,不返回 annotations。 需要引用来源请务必用上表中的模型。
非流式:在 choices[].message 下
{
"choices": [{
"message": {
"role": "assistant",
"content": "…**来源网址**:[semrush.com](https://www.semrush.com/) …",
"annotations": [
{
"type": "url_citation",
"url_citation": {
"url": "https://www.da-vinci.com.tw/cn/seo-tools",
"title": "2026年SEO人必看!最新、最齐全的32个SEO软体介绍!"
}
}
]
},
"finish_reason": "stop"
}]
}
流式:在最后一个带 finish_reason 的 chunk 上
stream:true 时正文照常增量下发,完整的 annotations 随收尾 chunk 一次性给出 (该 chunk finish_reason 非空、delta.content 为空)。中间 chunk 不会携带引用。
data: {"choices":[{"delta":{"content":"…正文…"},"finish_reason":null}]}
data: {"choices":[{"delta":{"annotations":[{"type":"url_citation","url_citation":{"url":"https://…","title":"…"}}]},"finish_reason":"stop"}]}
data: [DONE]
字段说明
字段 说明
type固定 "url_citation"
url必有 。已还原为可直接访问的真实地址,非跳转包装链接;末尾的 #:~:text= 高亮片段已去除,并按 URL 去重
title平台给出时返回;取不到则该键省略
start_index / end_index不返回 。官方未提供引用与正文字符区间的对应关系,凭空构造会得到错误的定位,故按规范允许的方式省略
未触发联网搜索的普通问答不会 带 annotations 键(是省略,不是空数组),请按「键存在与否」判断,不要假设它一定存在。
取引用示例(Python)
from openai import OpenAI
client = OpenAI(base_url="https://aihubcc.cc/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 后缀的旧名称已下线,继续使用会直接报模型不存在。
按 token 计费,分组倍率不同单价不同,以模型广场为准。
支持多模态附件:图片、视频(视频反推) 、音频,见上方「多模态附件」一节;附件按实际体量计入 prompt_tokens。
需要联网引用来源时,见上方「联网来源引用(annotations)」——注意反重力分组不支持。
建议
直接用 OpenAI SDK(改 base_url + api_key)接入最省事。
大输出 / 长响应建议开 stream 改善体验。
Gemini 图像生成
基于 Gemini 的图像生成服务。
模型
模型
gemini-image
gemini-image-pro
接口信息
通过 POST /v1/images/generations 调用,参数与 GPT-Image-2 类似。
示例请求
curl -X POST https://aihubcc.cc/v1/images/generations \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-image",
"prompt": "赛博朋克风格的东京夜景",
"size": "1024x1024"
}'
核心参数
参数 类型 必填 说明
modelstring 是 gemini-image / gemini-image-pro
promptstring 是 图片描述
sizestring 否 控制横 / 竖 / 方画幅,详见下方「画幅与方向」;竖屏为尽力而为
image / imagesstring / string[] 否 参考图(图生图 / 编辑),单张字符串或多张数组,公网 URL 或 base64;最多 5 张、每张 ≤ 5MB
maskstring 否 蒙版图,局部重绘可选
提交方式
模式 端点 参考图
文生图 POST /v1/images/generations(JSON)无
图生图 / 编辑 同一端点(JSON),或 /v1/images/edits image 字段(URL 或 base64,单张或数组)
画幅与方向(size)
size 决定出图方向。现已支持任意像素尺寸 与方向关键词,网关会据此让模型生成对应画幅:
size 取值 方向 说明
1024x1024 / 512x512(宽=高)方形 1:1 默认方向
1024x1824 / 720x1280(高>宽)竖屏 9:16 宽小于高即竖屏
1824x1024 / 1280x720(宽>高)横屏 16:9 宽大于高即横屏
portrait / vertical竖屏 9:16 方向关键词
landscape / horizontal横屏 16:9 方向关键词
9:16 / 16:9 / 1:1按比例 直接传纵横比
说明: 只传单一数字 (如 1024)或清晰度名 (如 2k/4k)不含方向信息,此时按模型默认方向出图。竖屏为尽力而为 (Gemini 侧对画幅遵循为概率性),带明确的 宽x高 或方向关键词可显著提高竖屏命中率。/v1/images/edits(图生图)同样支持 size 控制方向。
参考图(图生图 / 编辑)
附带参考图即可进行图生图 / 编辑。image 字段同时支持字符串与数组两种写法 ,取值可为公网 URL 或 data:image Base64:
字段 类型 说明
imagestring 或 string[] 单张参考图(字符串)或多张参考图(数组)均可
imagesstring[] 多张参考图数组(与 image 等效)
maskstring 蒙版图,局部重绘可选
curl -X POST https://aihubcc.cc/v1/images/generations \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-image",
"prompt": "把这两张图融合成一张海报",
"image": ["https://cdn.example.com/a.jpg", "https://cdn.example.com/b.jpg"]
}'
兼容说明: image 传单张用字符串、传多张用数组均可 。早期部分客户端把图片写成数组会报 cannot unmarshal array into ... image of type string,现已兼容修复,无需改动客户端 。参考图最多 5 张、每张 ≤5MB。
轮询取片
本模型为同步接口 ,请求成功后直接在响应 data[] 返回图片,无需轮询 。
Python 完整请求
import requests
BASE = "https://aihubcc.cc/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()
注意事项
竖屏为尽力而为 :Gemini 对画幅遵循是概率性的,带明确 宽x高 或方向关键词(portrait / landscape)可显著提高竖屏命中率。
参考图 :image 传单张字符串或多张数组均可(已兼容早期数组报错),公网 URL 或 base64;最多 5 张、每张 ≤ 5MB。
只传单一数字 / 清晰度名 (如 1024 / 2k)不含方向信息,按模型默认方向出图。
建议
要竖屏 / 横屏 直接传 宽x高(如 720x1280)或方向关键词,命中率更高。
pro 更强 :复杂构图 / 细节用 gemini-image-pro(),常规用 gemini-image()。
图生图多图 用 image 数组一次传多张融合。
Gemini 音乐生成
通过 Chat Completions 接口生成音乐。同步返回 (约 40–70 秒),结果是一个可直接下载的 MP3 链接 (无需鉴权即可 GET 下载)。
模型
模型 令牌分组
gemini-musicgemini-fast
令牌分组必须为 gemini-fast,否则返回"无可用渠道"。失败不计费。
时长档位
提供两个档位,用 length 参数选择:
档位 目标长度 纯音乐实测 带人声实测
short(不填时的默认)60 秒 54–67 秒中位 62 秒 58–155 秒中位 63 秒,P90 约 103 秒
standard180 秒 145–180 秒
⚠️ 时长是「目标」不是「约定」,我们不保证精确长度。
服务模型把长度当作创作参考,同一档位多次生成的成品长度会浮动 —— 这是模型行为,不是故障,也无法通过参数消除。
带人声的曲子会明显更长。 模型会为了把歌词唱完而突破目标时长:同样是 short 档,纯音乐基本贴着 60 秒,带人声的中位数也是 60 出头,但约 10% 的样本会超过 90 秒 ,最长实测到 155 秒 (唱整首古诗、日语歌词这类需要唱完长段落的情形)。歌词越长,成品越长。
上表区间来自 2026-09 的 43 次实测采样,可能随服务模型更新而变化。
如果你的业务需要精确时长 (卡点、广告位、循环 BGM),请把成品当素材,自行裁剪或循环到目标长度。
关于歌词
默认不会返回歌词文本 ,只会返回一句生成说明。实测 38 个默认用例中,只有 1 个自带了歌词。
想要歌词就在提示词里明确要求 ,例如「请在回复里把完整歌词逐行写出来 」或指定结构:
In your text reply, output the lyrics in this structure:
[Verse 1] ... [Chorus] ... [Verse 2] ...
Write the actual lyric lines, not a description.
加了这类要求后,6 个用例中有 5 个返回了带 [Verse]/[Chorus] 结构的完整歌词。歌词出现在 chat 返回正文的分隔线之后,或结构化接口的 message 字段里。
⚠️ 中文提示词里不要用命令式的「把歌词写成文字给我」。
实测这类措辞会把请求推向纯文本模型,服务直接回一段文字歌词甚至一段 Python 代码,完全不产出音乐 。
改用温和的「顺便把歌词也附上」,或者干脆用英文下这条指令(主题仍可以是中文歌),都能正常出歌。
涉及现当代诗词/歌词 时服务会以版权为由拒绝复刻,转而生成「意境相近」的原创作品 —— 实测连已进入公有领域的唐诗也会先声明一句再照唱。这是服务的策略,我们无法绕过。
请求示例(Chat Completions)
curl https://aihubcc.cc/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://aihubcc.cc/v1/audio/generations \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-music",
"prompt": "大气的电影配乐,弦乐为主",
"length": "standard",
"vocals": false
}'
参数 类型 说明
promptstring 必填。曲风、情绪、乐器、用途等描述
lengthstring short / standard,见上方时长档位。不填按 short
vocalsbool true=带人声演唱,false=纯音乐。不填 =交给模型决定
attachmentsstring[] 可选。参考音频或图片,支持 data URI / http(s) URL / 裸 base64,单个 ≤20MB,仅 audio/* 与 image/*
durationint 旧版数值参数(秒,5–180),仍然可用;同时传 length 时以 length 为准
返回体里会回显 length、target_seconds 和 duration_is_exact: false,后者就是在提醒你:那是目标值,不是成品长度。
返回示例
下载链接在 choices[0].message.content 里(Markdown 链接 + 纯 URL 各一份):
{
"choices": [{
"message": {
"role": "assistant",
"content": "✅ 音乐生成完成\n\n[⬇️ 点击下载音乐](https://download.oaibox.xyz/v1/audio/aud-xxxx.mp3)\n\nhttps://download.oaibox.xyz/v1/audio/aud-xxxx.mp3"
},
"finish_reason": "stop"
}]
}
从 content 中取出形如 .../v1/audio/aud-xxxx.mp3 的 URL,直接 GET 即可下载(无需带 Authorization )。响应头为 Content-Type: audio/mpeg + Content-Disposition: attachment,浏览器、curl、ffmpeg、下载工具都能直接当文件处理。也支持 "stream": true,链接会在流式结束的那条消息里返回。
请原样使用返回的 URL,不要自己拼域名。 下载域名由服务端决定,手工拼接的地址可能取不到文件。
旧版 .../v1/audio/aud-xxxx/content 形式的链接仍然有效,无需改造既有集成。
链接为生成后即时缓存,建议尽快下载保存。
关于成品格式
交付的一定是 MP3 (立体声 44.1kHz)。服务同时会产出一段带封面动画的 MP4,我们不把它作为音乐成品返回;若服务本次未直接提供 MP3,系统会从该 MP4 中提取音轨转成 MP3 后再交付,对你是透明的。
Gemini 语音合成(TTS)
OpenAI 兼容的文字转语音接口 POST /v1/audio/speech。同步返回音频字节流 (mp3/opus/pcm 边合成边下发,首包约 0.3–0.5 秒),直接把响应体当音频文件保存即可,无需二次下载。
模型
模型 令牌分组
gemini-ttsgemini-fast
按输入字符数 计费(中英文都按字符/码点数算),不按音频时长。失败不计费。令牌分组需为 gemini-fast,否则返回"无可用渠道"。
请求示例
curl https://aihubcc.cc/v1/audio/speech \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-tts",
"input": "你好,欢迎使用语音合成服务。",
"voice": "Capella",
"response_format": "mp3"
}' --output speech.mp3
参数
参数 类型 说明
modelstring 必填,固定 gemini-tts
inputstring 必填。要朗读的文本,中英文混排均可。服务端按文本自动识别语言
voicestring 音色,见下表。不填用默认音色。OpenAI 音色名(alloy/nova/echo…)也接受 ,会按性别映射到对应 Gemini 音色
response_formatstring mp3(默认)/ opus / aac / flac / wav / pcm
speedfloat 语速 0.25–4.0,默认 1.0。官方源站不支持变速,由本平台用音频后处理实现,不影响音色
languagestring 可选 BCP-47 口音提示(如 es-ES vs es-US)。只选地区变体,不决定语种——语种由文本自动判定
音色列表
9 个音色,跨语言通用(中文、英文等都用同一组名字):
性别 音色名
女声 Capella · Ursa · Vega · Eclipse · Lyra
男声 Orbit · Dipper · Nova · Pegasus
也可直接用 OpenAI 的音色名:alloy→Vega、nova→Capella、shimmer→Ursa、coral→Eclipse、sage→Lyra(女声);echo→Orbit、ash→Dipper、fable→Nova、onyx/ballad→Pegasus(男声)。方便从 OpenAI 迁移。
注意:OpenAI 的 nova(小写,女声)与 Gemini 的 Nova(大写,男声)是两个不同音色,按大小写区分。
说明
响应体就是音频本身:mp3/opus/pcm 为流式下发,wav/aac/flac 合成完再整体返回。
速度参考:约 30–40ms/字符。4000 字英文约 36 秒、1800 字中文约 65 秒合成完毕。
语速、音高这类字段官方源站一律忽略;speed 由平台用变速后处理保证可用。
Gemini 语音识别(STT)
OpenAI 兼容的语音转文字接口 POST /v1/audio/transcriptions(multipart/form-data 上传音频文件)。同步返回转写文本,任意常见音频容器都接受,平台会自动转码。
模型
模型 令牌分组
gemini-sttgemini-fast
按音频时长 计费(每分钟 1000 token)。单文件上限 25MB 。失败不计费。令牌分组需为 gemini-fast。
请求示例
curl https://aihubcc.cc/v1/audio/transcriptions \
-H "Authorization: Bearer sk-xxx" \
-F model=gemini-stt \
-F file=@audio.mp3 \
-F language=zh \
-F response_format=json
参数
参数 类型 说明
filefile 必填。音频文件,≤25MB。mp3/wav/m4a/ogg/webm 等常见格式均可,平台自动转码
modelstring 固定 gemini-stt,不填默认即此
languagestring 可选。语言提示,如 zh / en(会归一化为 cmn-Hans-CN / en-US)。不填默认英文为主、中文为辅自动识别
response_formatstring json(默认,{"text":...})/ verbose_json / text。不支持 srt/vtt(无逐词时间戳)
返回示例
{ "text": "你好,这是一段语音识别测试。" }
verbose_json 额外返回 task、language、duration(音频秒数)字段;text 则直接返回纯文本。无语音内容时返回空串,不算失败。
Gemini 语音对话(Voice Chat)
把语音识别(STT)→ 对话(Chat)→ 语音合成(TTS) 合成一次调用:说一句话进去,得到一段语音回答 。一问一答(turn-based)、支持中英文、跑在同一个号池上。
两种用法,推荐第一种 (能直接套用 OpenAI 语音 SDK,改个 base_url 就能跑)。
价格
按所用对话模型的文本计费 (即你在 model 里填的那个 Gemini 对话模型的价格)。语音识别与语音合成这两段不额外收费 。失败不计费。
语音回答的音色读的就是对话模型的回复原文,建议用速度快的 Flash 对话模型 (如 gemini-3.5-flash)体验更自然;推理型模型可能会把代码块、公式也一起"读"出来。
用法一:OpenAI 兼容(/v1/chat/completions)
在普通对话请求里加 modalities:["text","audio"] 和 audio 两个字段即可,和 OpenAI 的 gpt-4o-audio 完全一致。用你现有的对话模型 ,无需申请新模型。
curl https://aihubcc.cc/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.5-flash",
"modalities": ["text", "audio"],
"audio": { "voice": "nova", "format": "mp3", "input_mode": "stt" },
"messages": [
{ "role": "user", "content": [
{ "type": "input_audio", "input_audio": { "data": "<base64音频>", "format": "mp3" } }
]}
]
}'
返回里,文字回答在 choices[0].message.content,语音回答在 choices[0].message.audio:
{
"choices": [{
"message": {
"role": "assistant",
"content": "2 加 3 等于 5。",
"audio": {
"id": "audio_xxxx",
"data": "<base64 的 mp3>",
"transcript": "2 加 3 等于 5。",
"format": "mp3"
}
}
}]
}
字段 说明
modalities必须包含 "audio" 才会返回语音
audio.voice音色,见下方列表(OpenAI 音色名如 nova/alloy 也接受)
audio.formatmp3(默认)/ opus / aac / flac / wav / pcm
audio.input_modestt(默认,先转文字,便宜、附带识别文本)/ native(让模型直接"听"音频,懂语气但更贵)
input_audio语音输入(可选)。也可以用纯文字提问、只要语音回答。输入的识别文本会放在响应头 X-Input-Transcript(base64)
语音输出只在非流式(stream=false)下返回。 stream=true 时文字照常流式返回,但不带语音。
用法二:直连语音端点(/v1/audio/chat)
给原生音频应用准备的精简端点:multipart 上传音频,直接吐回音频字节流 。此端点需直连网关 使用。
curl https://aihubcc.cc/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(男声),会按性别映射。
官方 Key(Google AI Studio 原生模型)
直连 Google AI Studio 的官方标准模型,模型名与官方完全一致。令牌分组 gemini-official。文本 / 图像走 /v1/chat/completions;音乐为异步按次任务。价格 = 官方价 × 分组倍率。
模型
三类模型(文本 / 图像 / 音乐),价格 = 官方价 × 分组倍率(当前 1.6):
文本模型(按 token)
模型
gemini-2.5-pro
gemini-2.5-flash
gemini-3.1-pro-preview
gemini-3.1-pro-preview-customtools
gemini-pro-latest
gemini-3.5-flash
gemini-flash-latest
gemini-3-flash-preview
gemini-3.1-flash-lite / gemini-3.1-flash-lite-preview
gemini-flash-lite-latest
gemini-robotics-er-1.6-preview
图像模型
模型 计费
gemini-3-pro-image / -preview按 token
gemini-3.1-flash-image按 token
gemini-3.1-flash-image-preview按 token
gemini-3.1-flash-lite-image按 token
gemini-2.5-flash-image按 token
gemini-3-pro-image-preview-1k按次
gemini-3-pro-image-2k按次
gemini-3-pro-image-4k按次
按 token 的图像模型,生成图像本身计入输出 token(故输出单价看似高)。
音乐(异步按次)
模型 类型
lyria-3-pro-preview音乐
lyria-3-clip-preview音乐·短
接口信息
项 说明
文本 / 图像 POST /v1/chat/completions
音乐 异步任务 POST /v1/videos 提交 → 轮询取片(同「Omni 视频生成」板块)
Base URL https://aihubcc.cc
令牌分组 gemini-official
核心参数
参数 类型 必填 说明
modelstring 是 与 Google 官方一致,见上表
messagesarray 文本 / 图像 OpenAI 标准对话消息(图像模型同样走对话,图在响应返回)
promptstring 音乐 lyria 音乐任务的描述(异步 /v1/videos)
stream / tools 等否 OpenAI 标准参数(文本 / 图像走 chat)
提交方式
类型 端点 结果
文本 / 图像 POST /v1/chat/completions(同步)文本在 message.content,图在对话响应返回
音乐(lyria) POST /v1/videos(异步)提交拿 task_id → 轮询取片
示例:官方文本
curl https://aihubcc.cc/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-2.5-pro",
"messages": [{"role":"user","content":"你好"}]
}'
示例:官方出图
curl https://aihubcc.cc/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3-pro-image",
"messages": [{"role":"user","content":"赛博朋克风格的城市夜景"}]
}'
示例:官方音乐(lyria,异步任务)
curl -X POST https://aihubcc.cc/v1/videos \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "lyria-3-pro-preview",
"prompt": "轻快的钢琴爵士,适合咖啡馆"
}'
# 轮询取片同上(GET /v1/videos/{task_id})
轮询取片
文本 / 图像为同步 对话接口,直接返回、无需轮询。音乐(lyria)为异步任务 :POST /v1/videos 提交拿 task_id,再 GET /v1/videos/{task_id} 轮询到 completed 取结果(同「Omni 视频生成」板块)。
Python 完整请求
from openai import OpenAI
client = OpenAI(api_key="sk-xxx", base_url="https://aihubcc.cc/v1")
# 官方文本
resp = client.chat.completions.create(
model="gemini-2.5-pro",
messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)
# 官方音乐(lyria,异步:用 requests 提交 /v1/videos 后轮询)
import time, requests
BASE = "https://aihubcc.cc/v1"
H = {"Authorization": "Bearer sk-xxx", "Content-Type": "application/json"}
task = requests.post(f"{BASE}/videos", headers=H, json={
"model": "lyria-3-pro-preview", "prompt": "轻快的钢琴爵士,适合咖啡馆"}).json()
tid = task.get("task_id") or task.get("id")
while True:
time.sleep(6)
s = requests.get(f"{BASE}/videos/{tid}", headers=H).json()
if s.get("status") == "completed": break
if s.get("status") == "failed": break
注意事项
令牌需在 gemini-official 分组下
模型名与 Google 官方一致,价格 = 官方价 × 分组倍率(当前 1.6)
音乐(lyria)为异步按次任务,提交与轮询方式见「Omni 视频生成」板块
图像模型部分按 token、部分按次,见上表
建议
要官方原生模型名 就用本组:模型名与 Google AI Studio 完全一致,价格 = 官方价 × 分组倍率(当前 1.6)。
图像模型分两类 :按 token 的(生成图计入输出 token)与按次的(gemini-3-pro-image-*k,;按需选。
音乐 lyria 走异步 /v1/videos,提交后轮询取片,别用 chat 端点。
Adobe Firefly · Veo 3.1
Adobe Firefly 视频生成现已提供 Veo 3.1 标准版、Veo 3.1 Fast(静音档,无音频 )与 Veo 3.1 Fast Direct(含音频)。两者均使用 OpenAI 兼容的异步视频接口:提交任务后轮询,完成时从响应中的 video_url 获取成片。
本页仅列出当前已开放的 VEO 模型;请勿以模型名或参数猜测方式调用未列出的模型。
模型
模型 说明 当前验收规格
firefly-veo-3.1Veo 3.1 标准版 · 含音频 文/图生视频,4 秒、6 秒、8 秒
firefly-veo-3.1-fastVeo 3.1 Fast,优先低延迟 · 无音频(静音输出) 文/图生视频,4 秒、6 秒、8 秒
firefly-veo-3.1-fast-directVeo 3.1 Fast 高质档 · 含音频 (同为 Fast,仅积分档可用) 文/图生视频,4 秒、6 秒、8 秒
⚠️ 音频说明(重要) :firefly-veo-3.1-fast 是无音频 的静音档,成片不含任何音频轨 。如需带音频,请改用 firefly-veo-3.1-fast-direct (同为 Fast、含音频 )或 firefly-veo-3.1 标准版(含音频)。
实际计费、模型可见性和可用额度以控制台模型列表及你的 API 令牌权限为准。
接口信息
项 说明
Base URL https://aihubcc.cc
提交任务 POST /v1/videos
查询任务 GET /v1/videos/{task_id}
鉴权 Authorization: Bearer sk-你的令牌
任务模式 异步;提交成功仅表示任务已入队
成片交付 任务 status 为 completed 后,读取顶层 video_url
核心参数
参数 类型 必填 说明
modelstring 是 使用上表中的一个模型名
promptstring 是 视频画面、主体、动作、镜头和风格描述
secondsstring 是 目标时长(秒),可选 "4"、"6"、"8",三者均支持
video_secondsstring 否 无需传;只传 seconds 即可
sizestring 是 两种传法,任选其一: ① 像素式 宽x高:"1280x720"(横 720p)、"720x1280"(竖 720p)、"1920x1080"(横 1080p)、"1080x1920"(竖 1080p)——画幅与清晰度自动识别,video_resolution 无需传。 ② 官网式 纵横比 "16:9"(横)/ "9:16"(竖)——此时必须同时传 video_resolution ,否则报错。
video_resolutionstring 条件必填 size 传像素 时:无需传(清晰度由像素决定)。size 传纵横比 (16:9/9:16)时:必填 ,取 "720p" 或 "1080p",否则报“size 为纵横比(16:9/9:16)时必须同时提供 video_resolution”。
input_referencestring / 文件 否 图生视频用 :参考图(首帧)。可传图片 URL、base64(data:image/...;base64,)或 multipart 文件(@frame.jpg);不传即为文生视频。带此参数时整个请求改用 multipart 表单提交(见下方“图生视频”示例)
size 支持两种传法 :① 像素尺寸 (如 1280x720),画幅与清晰度自动识别,无需 video_resolution;② 官网式 纵横比(16:9/9:16)+ 必填 video_resolution(720p/1080p),对齐 Adobe 官网“画幅 + 分辨率”两栏。两套输出完全一致。音频区分:firefly-veo-3.1(标准版)与 firefly-veo-3.1-fast-direct 默认含音频 ;而 firefly-veo-3.1-fast 为静音档、无音频轨 。
size 取值与输出
size(传这个)画幅 清晰度
"1280x720"横版 16:9 720p
"720x1280"竖版 9:16 720p
"1920x1080"横版 16:9 1080p
"1080x1920"竖版 9:16 1080p
官网式取值(size 纵横比 + video_resolution)
sizevideo_resolution输出
"16:9""720p"横版 1280x720
"16:9""1080p"横版 1920x1080
"9:16""720p"竖版 720x1280
"9:16""1080p"竖版 1080x1920
提交方式
模式 Content-Type 参考素材
文生视频(T2V) application/json无
图生 / 首尾帧 / 多参考图 multipart/form-data(-F)带 input_reference / first_frame+last_frame / reference_images 时改用表单
纯文字走 JSON;一旦带任何参考图 / 首尾帧 / 多图,整个请求用 multipart 表单提交(字段用 -F)。首尾帧模式与多参考图模式互斥 ,不可同一请求混用。
示例:提交 6 秒 Fast 视频
BASE_URL="https://aihubcc.cc"
TOKEN="sk-xxx"
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "firefly-veo-3.1-fast",
"prompt": "日出时一盏彩色纸灯笼缓缓飘过安静的湖面,水面泛起微光,电影感镜头,无文字无标志。",
"seconds": "6",
"size": "1280x720"
}'
示例:官网式参数(纵横比 + 分辨率)
与像素式输出完全一致,区别只是把画幅和清晰度拆成 size(纵横比)+ video_resolution 两栏,对齐 Adobe 官网 UI。size 传纵横比时 video_resolution 必填 。
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "firefly-veo-3.1-fast",
"prompt": "日出时一盏彩色纸灯笼缓缓飘过安静的湖面,水面泛起微光,电影感镜头,无文字无标志。",
"seconds": "6",
"size": "16:9",
"video_resolution": "720p"
}'
示例:图生视频(带参考图 input_reference)
在文生的基础上,用 multipart 表单 额外带一张参考图作为首帧,其余参数(seconds、size)一致。input_reference 支持本地文件 、图片 URL 或 base64 三种传法。
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" \
-F 'model=firefly-veo-3.1' \
-F 'prompt=让画面里的主体自然动起来,镜头缓慢向前推进,保持构图。' \
-F 'seconds=6' \
-F 'size=1280x720' \
-F 'input_reference=@frame.jpg;type=image/jpeg'
用图片 URL :把最后一行换成 -F 'input_reference=https://your-cdn.com/frame.jpg';用 base64 :换成 -F 'input_reference=data:image/jpeg;base64,<...>'。提交后与文生一样轮询 GET /v1/videos/{task_id},完成后取顶层 video_url。
首尾帧(First / Last Frame)
用 first_frame(起始帧)和 last_frame(结束帧)两张图,引导 Veo 从首帧画面过渡到尾帧画面。两个字段都支持图片 URL 、base64 (data:image/...;base64,)或 multipart 文件 。只传 first_frame 等同于用首帧做图生视频 (与上面的 input_reference 首帧一致)。首尾帧模式与下方“多参考图”模式互斥,不能同一请求混用 (Adobe 官方规则,混传会在生成前返回 400、不计费)。
参数 类型 说明
first_framefile / url / base64 起始帧图片(可单独使用=首帧图生视频)。别名:first_image_url
last_framefile / url / base64 结束帧图片(与 first_frame 一起=首尾过渡)。别名:last_image_url
⚠️ Veo 的首尾帧按两张参考图 处理(首帧、尾帧各作为一个参考引导),过渡的具体表现由模型把控、未必是逐帧线性插值,实际以成片为准。参考图请用真实、合规的照片 (勿用随机占位图 / 纯色图;含可识别真人面孔可能触发内容策略)。
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "firefly-veo-3.1",
"prompt": "镜头从清晨薄雾笼罩的湖面缓缓推进,雾气逐渐散去,远处倒影渐渐清晰",
"seconds": "8",
"size": "16:9",
"video_resolution": "720p",
"first_frame": "https://your-cdn.com/first.jpg",
"last_frame": "https://your-cdn.com/last.jpg"
}'
首尾帧也可走 multipart 文件 :改成 -F 'model=firefly-veo-3.1' -F 'first_frame=@first.jpg;type=image/jpeg' -F 'last_frame=@last.jpg;type=image/jpeg'(prompt/seconds/size 同样用 -F 传)。
多参考图(Reference Images)
用 reference_images 传入多张参考图,引导角色、风格与构图。Veo 取用前若干张作参考 (标准版 firefly-veo-3.1 最多 3 张、Fast 版最多 2 张),支持图片 URL、base64 或 multipart(重复字段名传多张)。与首尾帧模式互斥 :同一请求不能同时传 first_frame/last_frame,混传在生成前返回 400、不计费。
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" \
-F 'model=firefly-veo-3.1' \
-F 'prompt=保持这几张参考图的人物形象与画面风格,让主体自然动起来' \
-F 'seconds=6' \
-F 'size=1280x720' \
-F 'reference_images=@char.jpg;type=image/jpeg' \
-F 'reference_images=@style.jpg;type=image/jpeg'
参考图须为真实合规照片 ;超量或与首尾帧字段混用会在生成前返回 400(不扣积分)。
成功提交会返回异步任务,例如:
{
"id": "task_xxx",
"status": "queued",
"model": "firefly-veo-3.1-fast",
"progress": 0
}
轮询取片
curl -sS "$BASE_URL/v1/videos/task_xxx" \
-H "Authorization: Bearer $TOKEN"
当响应中的 status 为 completed 时,读取 video_url:
{
"id": "task_xxx",
"status": "completed",
"model": "firefly-veo-3.1-fast",
"video_url": "https://..."
}
video_url 是短期签名下载地址,请在有效期内下载或转存。当前请直接使用完成任务返回的 video_url,不要依赖 /v1/videos/{task_id}/content。
Python 完整请求
import time, requests
BASE = "https://aihubcc.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
注意事项
提交成功但还没有视频: 继续查询同一个任务 ID,直到状态变为 completed 或 failed。
模型不可见或返回权限错误: 确认 API 令牌已开通 Firefly VEO 模型权限。
任务失败: 保留任务 ID 与错误响应,提交给技术支持排查;不要为同一任务并发重复提交。
建议
要带音频 用 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
Adobe Firefly 的 Seedance 2.0 与 Seedance 2.0 Fast 视频模型。支持文生视频 与单图生视频 ,使用 OpenAI 兼容的异步视频接口:提交任务后轮询,完成时读取 video_url 获取成片。四档均原生自带音频 (对白 / 音效 / 环境音同步生成),无需额外参数。
本页仅适用于 firefly 分组的 Adobe Firefly Seedance 模型;与导航中另一套 Seedance 服务是独立通道、独立模型和独立素材协议,不能混用模型名或多图参数。
模型
模型 版本 固定输出分辨率
firefly-Seedance-2.0-fast-480pSeedance 2.0 Fast 480p
firefly-Seedance-2.0-fast-720pSeedance 2.0 Fast 720p
firefly-Seedance-2.0-480pSeedance 2.0 标准版 480p
firefly-Seedance-2.0-720pSeedance 2.0 标准版 720p
视频默认带音频 (AAC 音轨):Seedance 2.0 是 Adobe 官方原生音频 模型,一次生成即同步产出对白 / 音效 / 环境音;四档(标准 / Fast × 480p / 720p)全部自带音频,无需额外参数、也不额外计费 。
模型名已固定输出分辨率;video_resolution 只能填写与所选模型一致的值,不能用 480p SKU 请求 720p 输出。
接口信息
项 说明
Base URL https://aihubcc.cc
提交任务 POST /v1/videos
查询任务 GET /v1/videos/{task_id}
鉴权 Authorization: Bearer sk-你的令牌
成片交付 任务 status 为 completed 后,读取顶层 video_url
已支持规格
参数 可用值 说明
seconds / duration4 ~ 15(任意整数)输出时长(秒);Adobe 官方支持 4–15 秒
video_resolution480p、720p必须与模型名的固定 SKU 相同
size16:9 / 9:16,或下列精确像素横竖画幅;也可使用 aspect_ratio
输出档位 16:9 横版 9:16 竖版
480p 854x480480x854
720p 1280x720720x1280
核心参数
提交一张首帧参考图即可启用图生视频;不带图片则为文生视频。input_reference 为单张首帧图。若需首尾帧或多图 / 视频 / 音频参考,见下方“首尾帧”“全能参考(Omni)”两节。 可上传 JPEG/JPG、PNG、WebP。服务会按目标画幅进行居中裁切、缩放并转为 PNG 后提交;建议先按目标画幅准备主体清晰的图片,以免裁掉重要内容。
字段 类型 必填 说明
modelstring 是 上表之一
promptstring 是 描述运动、镜头和画面变化
secondsinteger/string 否 4 ~ 15 任意整数;默认 4
video_resolutionstring 否 480p 或 720p,必须匹配模型
sizestring 否 16:9 / 9:16,或精确输出像素
input_referencefile 图生时是 单张首帧图;使用 multipart/form-data 上传
image_stylestring 否 可选风格化:真人参考 → 漫剧角色 时传 anime(详见下方“参考图含真人脸 · image_style”一节);留空 = 原图直发 ,想保留真人请勿传
提交方式
模式 Content-Type 参考素材
文生视频(T2V) application/json无
图生 / 首尾帧 / 全能参考(Omni) multipart/form-data(-F)input_reference / first_frame+last_frame / reference_images·reference_videos·reference_audios
参考图可走公网 URL 或 base64(JSON 亦可);参考视频 / 音频仅接受 multipart 文件或 base64,不收 http URL 。首尾帧模式与全能参考模式互斥 。
示例:文生视频
BASE_URL="https://aihubcc.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_styleanime仅对带参考图的图生视频(i2v) 生效:提交 Adobe 前把参考图转成动漫 / 绘画风 ,用于把真人参考做成漫剧角色。留空 = 不处理(原图直发) 。目前支持 anime 一种,后续按需增加。
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" \
-F 'model=firefly-Seedance-2.0-fast-480p' \
-F 'prompt=参考图中的人物,转成漫剧角色在城市街头行走,日系动漫画风' \
-F 'seconds=5' \
-F 'video_resolution=480p' \
-F 'size=854x480' \
-F 'input_reference=@person.jpg;type=image/jpeg' \
-F 'image_style=anime'
参考图门过了之后,Adobe 输出侧 的内容 / 版权审核仍是概率性的,个别任务可能要重试 1–2 次 才出片;失败不计费 。想保留真人、不要漫剧脸时,用上面“三视图多图参考”的做法,别传 image_style。
首尾帧(First / Last Frame)
提供起始帧 和结束帧 图片,Seedance 生成从首帧平滑过渡到尾帧的视频。用 first_frame、last_frame 两个字段,支持 multipart 文件、图片 URL 或 base64(data:image/...;base64,)。只传 first_frame 即为单首帧动画。首尾帧模式与下方“全能参考”模式互斥,不能同一请求混用 (Adobe 官方规则)。
参数 类型 说明
first_framefile / url / base64 起始帧图片(可单独使用)
last_framefile / url / base64 结束帧图片(与 first_frame 一起=首尾过渡)
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" \
-F 'model=firefly-Seedance-2.0-fast-480p' \
-F 'prompt=镜头从第一张画面平滑过渡到第二张画面,电影感运镜' \
-F 'seconds=5' \
-F 'size=854x480' \
-F 'first_frame=@first.jpg;type=image/jpeg' \
-F 'last_frame=@last.jpg;type=image/jpeg'
全能参考(Omni · 图 / 视频 / 音频)
Seedance 2.0 的核心能力:一次最多提供 9 张图 + 3 段视频 + 3 段音频 (总计 ≤ 9 个参考资产 )作为风格、角色、构图、运镜、音效的引导。用 reference_images、reference_videos、reference_audios 传入,可在 prompt 里用文字说明各参考的作用。参考视频引导运动与氛围(不是直接动画化)。与首尾帧模式互斥。
参数 数量上限 单文件上限 说明
reference_images9 100 MiB 参考图(风格 / 角色 / 构图)
reference_videos3 50 MiB 参考视频(运镜 / 氛围,建议 2–15s)
reference_audios3 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 秒轮询一次,不要为同一请求并发重复提交。
Python 完整请求
import time, requests
BASE = "https://aihubcc.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
注意事项
四档全带音频 (AAC),原生同步生成对白 / 音效 / 环境音,无需额外参数、不额外计费。
模型名已固定分辨率 :480p SKU 不能请求 720p 输出;video_resolution 须与模型一致。
参考素材 :图支持 URL / base64 / 文件;视频、音频仅接受文件或 base64,不收 http URL ;三类合计 ≤ 9 个。
首尾帧模式与全能参考模式互斥 ;超量 / 超大 / 混用在生成前返回 400、不计费。
建议
真人要真人 用三视图多图参考、别传 image_style;真人要漫剧脸 传 image_style=anime。
按目标画幅裁好图 再传(服务端会居中裁切缩放),避免主体被裁掉。
输出侧审核为概率性,个别任务重试 1–2 次即可,失败不计费 。
Adobe Firefly · Kling 3.0
Adobe Firefly 的 Kling 3.0 与 Kling 3.0 Omni 视频模型。支持文生视频 、图生视频(首帧参考图) 与 Omni 多主体参考(@元素,单次最多 3 个) ,使用 OpenAI 兼容的异步视频接口:提交任务后轮询,完成时读取顶层 video_url 获取成片。
模型名区分大小写 (Kling 首字母大写、Omni 首字母大写),请严格按下表填写,否则会报 model_not_found。
模型 · 按秒计费
模型 版本 清晰度 时长
firefly-Kling-3.0-720pKling 3.0 标准 720p 5–15 秒(自定义)
firefly-Kling-3.0-1080pKling 3.0 标准 1080p 5–15 秒(自定义)
firefly-Kling-3.0-Omni-720pKling 3.0 Omni(全能参考) 720p 5–15 秒(自定义)
firefly-Kling-3.0-Omni-1080pKling 3.0 Omni(全能参考) 1080p 5–15 秒(自定义)
按秒计费 = 单价 × 时长。例如 Kling 3.0 720p 10 秒 = 。失败不计费 。
视频默认带音频 (AAC 音轨):Kling 3.0 标准与 Omni 均自带生成音效,无需额外参数。
接口信息
项 说明
Base URL https://aihubcc.cc
提交任务 POST /v1/videos
查询任务 GET /v1/videos/{task_id}
鉴权 Authorization: Bearer sk-你的令牌
任务模式 异步;提交成功仅表示任务已入队,需轮询
成片交付 任务 status 为 completed 后,读取顶层 video_url
核心参数(参考 Adobe 官方)
参数 类型 必填 说明
modelstring 是 上表 4 个模型之一(区分大小写)
promptstring 是 画面、主体、动作、镜头与风格描述
seconds / durationstring 是 "5" ~ "15" 任意整数;Adobe 官方支持自定义时长,最多 15 秒(标准与 Omni 同)
sizestring 是 输出像素尺寸 宽x高;画幅(横/竖)与清晰度(720p/1080p)由像素自动识别(见下表)
input_referencestring / 文件 否 图生视频用 :首帧参考图,支持图片 URL、base64 或 multipart 文件;带此参数时整个请求改用 multipart 表单
@元素名(写在 prompt 里)prompt 内引用 否 Omni 多主体参考用 :先用 POST /v1/entities 把参考图创建成命名“元素”,再在 prompt 中用 @元素名 引用。单个请求最多 3 个元素 (第 4 个起被系统拒:reference_elements: at most 3 items)。详见下方“多主体参考”示例。仅 firefly-Kling-3.0-Omni-* 支持
size(传这个)画幅 清晰度
"1280x720"横版 16: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://aihubcc.cc"
TOKEN="sk-xxx"
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "firefly-Kling-3.0-720p",
"prompt": "一只雄鹰在金色夕阳下掠过雪山之巅,电影感镜头,缓慢推进。",
"seconds": "5",
"size": "1280x720"
}'
示例:图生视频(首帧参考图 input_reference)
用 multipart 表单 带一张参考图作为首帧,其余参数一致。input_reference 支持本地文件、图片 URL 或 base64。
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" \
-F 'model=firefly-Kling-3.0-720p' \
-F 'prompt=让画面中的主体自然动起来,镜头缓慢向前推进,保持构图。' \
-F 'seconds=5' \
-F 'size=1280x720' \
-F 'input_reference=@frame.jpg;type=image/jpeg'
用图片 URL :把最后一行换成 -F 'input_reference=https://your-cdn.com/frame.jpg';用 base64 :换成 -F 'input_reference=data:image/jpeg;base64,<...>'。
示例:Omni 多主体参考(@元素,最多 3 个)
Kling 3.0 Omni 支持把参考图作为命名“元素”(主体/角色/物体/场景) ,在 prompt 中用 @元素名 引用,让生成画面保持该主体的一致性。单个视频请求最多引用 3 个元素 (第 4 个起会被系统拒绝:reference_elements: List should have at most 3 items)。分两步:
第 1 步:创建元素(POST /v1/entities)
每个元素用 1~4 张参考图构建(建议 4 张不同角度,效果更稳)。type 取 character(角色)/ object(物体)/ location(场景)。
curl -sS -X POST "$BASE_URL/v1/entities" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Alice",
"type": "character",
"images": [
"https://your-cdn.com/alice_front.jpg",
"https://your-cdn.com/alice_side.jpg"
]
}'
图片可传图片 URL 或 base64 (data:image/...;base64,);每个元素 1~4 张 。可重复调用创建多个元素(如 Alice、Bob、Cafe)。用 GET /v1/entities 查看已建元素,DELETE /v1/entities/{id} 删除。
第 2 步:生成时用 @元素名 引用(最多 3 个)
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "firefly-Kling-3.0-Omni-720p",
"prompt": "@Alice 和 @Bob 在 @Cafe 里相视而笑,暖色灯光,电影感镜头。",
"seconds": "5",
"size": "1280x720"
}'
上限:单次最多 3 个 @元素 (本网关经 Adobe Firefly,硬上限为 3;超过报 reference_elements: at most 3 items)。被引用的元素须已通过第 1 步创建;同一请求引用的多个元素需属于同一账号(网关自动路由,无需手动指定)。此功能仅 firefly-Kling-3.0-Omni-720p / firefly-Kling-3.0-Omni-1080p 支持。
轮询取片
curl -sS "$BASE_URL/v1/videos/task_xxx" \
-H "Authorization: Bearer $TOKEN"
当响应中的 status 为 completed 时,读取顶层 video_url(短期签名下载地址,请在有效期内下载或转存)。
Python 完整请求
import time, requests
BASE = "https://aihubcc.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
注意事项
model_not_found: 检查大小写,必须是 firefly-Kling-3.0-720p / firefly-Kling-3.0-Omni-1080p 等(Kling/Omni 首字母大写)。
时长不支持: 标准版与 Omni 均支持 5–15 秒任意整数。
任务失败: 保留任务 ID 与错误响应交技术支持;不要为同一任务并发重复提交。
建议
要多主体一致 用 Omni 版:先 POST /v1/entities 建元素(每个 1–4 张、建议 4 张不同角度),再在 prompt 里 @元素名 引用。
清晰度按预算选 :720p 便宜、1080p 更清晰;画幅用像素 size 或 aspect_ratio 均可。
模型名区分大小写 (Kling / Omni 首字母大写),否则报 model_not_found。
Adobe Firefly · Gemini Omni Flash
Google Gemini Omni Flash 视频模型,经 Adobe Firefly 接入。同一个模型名支持三种模式,按你传入的素材自动切换 :只传 prompt = 文生视频(T2V);额外带一张参考图 = 图生视频(I2V);额外带一段参考视频 = 视频生视频(V2V)。OpenAI 兼容异步接口:提交任务后轮询,完成时从响应顶层 video_url 获取成片。
成片无音频 (静音输出)。三种模式的规格、时长档、计费完全一致。
模型
模型 模式 时长 清晰度 计费
firefly-gemini-omni-720p文生 / 图生 / 视频生视频(自动) 4 / 6 / 8 / 10 秒 720p 按秒
按秒计费,三种模式同价:4 秒 、6 秒 、8 秒 、10 秒 。实际计费、模型可见性与可用额度以控制台模型列表及你的 API 令牌权限为准。
接口信息
项 说明
Base URL https://aihubcc.cc
提交任务 POST /v1/videos
查询任务 GET /v1/videos/{task_id}
鉴权 Authorization: Bearer sk-你的令牌
任务模式 异步;提交成功仅表示任务已入队
成片交付 任务 status 为 completed 后,读取顶层 video_url
核心参数
参数 类型 必填 说明
modelstring 是 固定 firefly-gemini-omni-720p
promptstring 是 视频画面、主体、动作、镜头和风格描述
secondsstring 是 目标时长(秒),仅支持 "4"、"6"、"8"、"10"
sizestring 是 画幅,取 "1280x720"(横 720p)或 "720x1280"(竖 720p);也接受纵横比 "16:9" / "9:16"。仅 720p,无需传 video_resolution
video_resolutionstring 否 仅 "720p";传纵横比 size 时可选传,不传也默认 720p
input_referencestring / 文件 否 图生视频(I2V)用 :参考图(首帧)。可传图片 URL、base64(data:image/...;base64,)或 multipart 文件(@frame.jpg)。带此参数时整个请求改用 multipart 表单提交(见下方示例)。首发支持单张 参考图
input_video文件 / base64 否 视频生视频(V2V)用 :参考视频。仅支持 multipart 文件(@clip.mp4)或 base64(data:video/mp4;base64,);不支持纯 http URL 。带此参数时整个请求改用 multipart 表单提交(见下方示例)
模式互斥优先级:同时传图和视频时按 视频生视频 处理。input_reference(图)与 input_video(视频)都是可选,都不传即为文生视频。
size 取值与输出
size画幅 清晰度
"1280x720" 或 "16:9"横版 16:9 720p
"720x1280" 或 "9:16"竖版 9:16 720p
提交方式
模式 Content-Type 参考素材
文生视频(T2V) application/json无
图生视频(I2V) multipart/form-datainput_reference(URL / base64 / 文件,单张)
视频生视频(V2V) multipart/form-datainput_video(仅文件 / base64,不收 http URL )
同时传图和视频时按 V2V 处理;都不传即文生。
示例一:文生视频(T2V,JSON)
BASE_URL="https://aihubcc.cc"
TOKEN="sk-xxx"
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "firefly-gemini-omni-720p",
"prompt": "日出时一只金毛小狗在草地上奔跑,柔和晨光,电影感镜头。",
"seconds": "4",
"size": "1280x720"
}'
示例二:图生视频(I2V,带参考图 input_reference)
在文生的基础上,用 multipart 表单 额外带一张参考图作为首帧,其余参数(seconds、size)一致。input_reference 支持本地文件 、图片 URL 或 base64 三种传法。
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" \
-F 'model=firefly-gemini-omni-720p' \
-F 'prompt=让画面里的小狗自然转头看向镜头并摇尾巴,镜头缓慢推进。' \
-F 'seconds=4' \
-F 'size=1280x720' \
-F 'input_reference=@frame.jpg;type=image/jpeg'
用图片 URL :把最后一行换成 -F 'input_reference=https://your-cdn.com/frame.jpg';用 base64 :换成 -F 'input_reference=data:image/jpeg;base64,<...>'。
示例三:视频生视频(V2V,带参考视频 input_video)
用 multipart 表单 带一段参考视频,模型在其基础上按 prompt 重新演绎(改风格、加动作等)。input_video 仅支持本地文件(@clip.mp4)或 base64,不支持纯 http URL。
curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $TOKEN" \
-F 'model=firefly-gemini-omni-720p' \
-F 'prompt=把这段片子改成水彩画风格,保留原有的运动。' \
-F 'seconds=4' \
-F 'size=1280x720' \
-F 'input_video=@clip.mp4;type=video/mp4'
用 base64 :把最后一行换成 -F 'input_video=data:video/mp4;base64,<...>'。
轮询取片
三种模式提交后都返回异步任务,轮询方式一致:
curl -sS "$BASE_URL/v1/videos/task_xxx" \
-H "Authorization: Bearer $TOKEN"
当响应中的 status 为 completed 时,读取顶层 video_url:
{
"id": "task_xxx",
"status": "completed",
"model": "firefly-gemini-omni-720p",
"video_url": "https://..."
}
video_url 是短期签名下载地址,请在有效期内下载或转存。当前请直接使用完成任务返回的 video_url,不要依赖 /v1/videos/{task_id}/content。
Python 完整请求
import time, requests
BASE = "https://aihubcc.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,其它值会报错。
V2V 视频来源: input_video 只收 multipart 文件或 base64 data URL,不会下载 http 链接 ;传 http 链接会被忽略、退化为文生。
I2V 参考图: 首发支持单张参考图作首帧。
无音频: 成片为静音输出,不含音频轨。
模型权限: 确认 API 令牌已开通 Firefly 分组权限;任务失败请保留任务 ID 与错误响应交技术支持,勿对同一任务并发重复提交。
建议
一模型三模式 :只给 prompt=文生;加 input_reference=图生;加 input_video=视频生视频(同时给图和视频按 V2V)。
V2V 视频只走文件 / base64 ,不下载 http 链接;传 http 会退化成文生。
成片无音频 (静音输出);时长仅 4/6/8/10 四档。
Adobe Firefly · GPT Image 2
Adobe Firefly 的 GPT Image 2 文生图模型。客户侧只选择画布尺寸(1K / 2K / 4K) ,服务端统一使用 medium 质量(Adobe detailLevel=3)。接口使用 OpenAI 兼容的异步视频任务契约 :提交任务后轮询,完成时从 video_url 下载 PNG 图片。
本页为 firefly 分组的 Adobe Firefly GPT Image 2,与导航中 gpt-fast 分组的 GPT-Image-2 是独立通道、独立线路 ,模型名不同、不能混用。
模型
模型 画布尺寸 服务端质量
firefly-gpt-image-1k1K medium(固定)
firefly-gpt-image-2k2K medium(固定)
firefly-gpt-image-4k4K medium(固定)
质量策略
服务端质量 Adobe detailLevel 客户侧
medium3 固定,不开放 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://aihubcc.cc
提交任务 POST /v1/videos
查询任务 GET /v1/videos/{task_id}
鉴权 Authorization: Bearer sk-你的令牌
成片交付 任务 status 为 completed 后,读取顶层 video_url
核心参数
字段 类型 必填 说明
modelstring 是 上表之一
promptstring 是 图片描述
aspect_ratiostring 否 画幅,见上;默认 1:1
提交方式
模式 端点 参考素材
文生图 POST /v1/videos(JSON,异步契约,输出 PNG)无
图生图 / 图片编辑(i2i) 同一 POST /v1/videos(JSON) reference_images 数组,每项 data:image/...;base64,,最多 6 张
⚠️ 本通道不支持 /v1/images/edits (会 404、不计费);图生图 / 编辑同样走 /v1/videos 异步契约。参考图只接受 base64 内联,不支持 multipart 文件 。
curl 示例:提交与轮询
# 提交任务:1K + 16:9(质量由服务端固定为 medium)
curl https://aihubcc.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://aihubcc.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://aihubcc.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://aihubcc.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://aihubcc.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://aihubcc.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://aihubcc.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://aihubcc.cc/v1/videos/task_xxx \
-H "Authorization: Bearer $TOKEN"
# 完成时读取响应中的 video_url(PNG 图片直链)
Python 完整请求
依赖:python -m pip install requests。脚本只提交一次任务;提交成功后持续轮询同一个任务 ID,完成后把 PNG 保存到本地。不要在客户端超时后重新提交同一张图。
#!/usr/bin/env python3
import os
import time
from pathlib import Path
import requests
BASE_URL = "https://aihubcc.cc"
TOKEN = os.environ["AIHUB_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 AIHUB_TOKEN="sk-你的令牌"。把 model 改成 firefly-gpt-image-1k 或 firefly-gpt-image-4k 即可切换画布档位;aspect_ratio 可替换为本页支持的其它画幅。
shell 自动轮询
TASK_ID="task_xxx"
while true; do
BODY=$(curl -fsS "https://aihubcc.cc/v1/videos/$TASK_ID" \
-H "Authorization: Bearer $TOKEN") || exit 1
STATUS=$(printf '%s' "$BODY" | jq -r '.status // empty')
printf 'status=%s\n' "$STATUS"
case "$STATUS" in
completed|succeeded)
printf '%s\n' "$BODY" | jq -r '.video_url // .data[0].url'
break ;;
failed|failure|error|cancelled|canceled)
printf '%s\n' "$BODY" | jq . >&2
exit 2 ;;
esac
sleep 10
done
不要重复提交已被接受的任务。 如果客户端超时,继续轮询原 task;任务失败后再根据错误信息修改请求。任务失败是否计费以控制台账单为准,仍应保留 task ID 供后台定位。
图生图 / 图片编辑(i2i)
⚠️ 本通道不支持 OpenAI 的 /v1/images/edits 端点。 firefly-gpt-image-* 的文生图与图片编辑都走上面同一套异步 /v1/videos 契约 。若客户端按 OpenAI 习惯调 /v1/images/edits 做图片编辑,网关会返回 404 Not Found——请求在路由层即被拒,不会创建任务、平台后台查不到记录、也不计费 。需要图片编辑请改用下面的 /v1/videos 写法。
本通道支持两种带图用法,都走同一套 /v1/videos :图生图 (传 1-6 张参考图,参考其风格 / 主体生成新图)与图片编辑 (传原图,改背景 / 换元素 / 局部修改)。两者请求格式完全一样 ,区别只在参考图张数与 prompt 的意图——都是在 JSON 请求体里加一个 reference_images 参考图数组;其余字段(model / aspect_ratio)、轮询方式、从 video_url 下载 PNG,都与文生图一致。
字段 类型 必填 说明
reference_images数组 图生图/编辑必填 原图 / 参考图列表,每项为 data:image/...;base64, 内联的 Base64 图片。单张也要放进数组 (直接传字符串会 400)。最多 6 张。字段名也可用 images。
promptstring 是 你要如何编辑,例如“把背景换成海边日落,人物主体保持不变”
model / aspect_ratio同文生图 与本页文生图一致(firefly-gpt-image-1k/2k/4k + 画幅)
# ① 图生图:参考图 + 描述 → 生成新图(参考风格 / 主体,可传 1-6 张)
REF1="data:image/png;base64,$(base64 < ref1.png | tr -d '\n')"
REF2="data:image/png;base64,$(base64 < ref2.png | tr -d '\n')"
curl https://aihubcc.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://aihubcc.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://aihubcc.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 ;质量不改变输出像素。
宽幅 1K 的最长边可能大于 1024(Adobe 总像素 / 最小像素硬限制),非质量档变化。
图生图 / 编辑参考图只接受 base64 内联,不支持 multipart 文件 ;含真人脸会被 Adobe 审核拒绝(解法见错误码页 image_style)。
不要重复提交已被接受的任务 ;客户端超时继续轮询原 task,失败按控制台账单为准。
建议
按画布档选价 :1K / 2K / 4K 只改画布尺寸、质量恒 medium;实际扣点以控制台结算为准。
要精确构图 先用 aspect_ratio 定画幅(默认 1:1),对照「实际输出像素」表核对最终尺寸。
图生图 / 编辑 把参考图转 data:image/...;base64, 放进 reference_images 数组(单张也用数组)。
Adobe Firefly · 错误码 & 审核问题归档
Adobe Firefly 的内容审核较严格,视频任务失败大多来自 Adobe 侧的内容审核 或输入不合规 ,而非网关故障。收到失败后请先看错误类型判断能否重试 :内容审核 / 参数类属确定性失败 (同样输入重试必然再失败,需改输入);账号 / 过载类属可自动恢复 (网关会自动换号或重试,通常自愈)。失败不计费。
⚠️ Adobe 审核严(重点) :真人脸参考图、涉敏/名人/品牌等提示词、生成结果被判不安全、生成音频疑似版权 都会被 Adobe 拒绝。这类是确定性拒绝 ——同一张图 / 同一句提示词重试永远失败 ,必须更换输入,请勿对同一失败任务反复重试 。
一、内容审核类(Adobe 拒绝 · 重试无效 · 需改输入)
错误 触发 返回提示(示例) 处理
参考图含真人脸 reference_image_privacy_error参考图 / 首帧里出现真实人物面孔 参考图中包含真人面孔,Adobe 内容策略拒绝生成… 换成不含真人脸的参考图;确需用真人图时,加可选参数 image_style=anime(见下)让网关先把参考图风格化(动漫化) 再生成
提示词不安全 prompt_unsafe提示词含 Adobe 判定的不适宜内容 (暴力 / 成人 / 名人 / 品牌等) 提示词被 Adobe 内容安全策略判定为不适宜… 改写提示词,去掉敏感 / 名人 / 品牌 / 违规描述
生成结果不安全 video_unsafe成片被 Adobe 事后审核 判定不安全(提交时未拦、生成后拒绝) 请求被 Adobe 内容策略拒绝(video_unsafe)… 调整提示词或更换随机种子后重试
音频疑似版权 native audio copyright带音频 的模型(如 Seedance)生成的音频被 Adobe 判可能涉版权 Adobe 判定本次生成的音频可能涉及版权限制… 调整提示词或更换参考素材 后重试(尽量避免具体歌曲 / 台词 / 品牌音效等易触发版权的描述)
参考图含真人脸的解法 · image_style 风格化(可选)
参考图真人脸 是最常见的审核拒绝之一。确需用真人照片 做图生视频(i2v)时,可加一个可选参数 image_style:网关会在提交 Adobe 前把你的参考图整图风格化 (转成明显非真实照片的画风),从而通过 Adobe 的“真人脸”内容审核。不传 image_style 时行为完全不变(原图直发) ——是否风格化的主动权在你。
参数 取值 说明
image_styleanime把参考图转成动漫 / 绘画风 后再生成;仅对带参考图的图生视频(i2v) 生效,适用于 Seedance / VEO / Kling / Gemini-Omni。留空 = 不处理 。目前支持 anime 一种,后续按需增加。
作为顶层字段 传(与 prompt / model / seconds 同级)。示例(multipart):
curl https://aihubcc.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 charactersprompt 超过 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 loadAdobe 服务瞬时过载 网关自动重试;持续可稍后再试
服务内部错误 Unknown internal errorAdobe 生成侧瞬时内部错误 网关自动重试;重试后仍失败 再联系我们
超时 timeout / 参考图下载超时生成超时,或参考图 URL 下载慢 / 失败 重试;参考图尽量用稳定直链或直接上传文件
📌 排查建议 :失败时请保留 任务 ID(task_xxx) 与完整错误响应 再联系我们——凭任务 ID 可在后台定位到具体那一条。内容审核 / 参数类属确定性失败,请勿对同一任务反复重试 (既不会成功,也占用账号请求配额)。
Seedance 2.0 / 2.5 · 官方直连 Video
⚡ 字节跳动 · Seedance 2.0 / 2.5 官方直连 :涵盖 mini (经济档)、fast (快速出片)、pro (满血旗舰,画质更高且独有 1080p/4K)与 Seedance 2.5 。支持文生视频 / 图生视频(首帧 / 首尾帧) / 视频编辑 / 全能多模态参考 。使用「Seedance 2.0」或「Doubao」分组令牌调用,按 token 计费、失败不计费、默认生成音频、无水印。
模型
⚠️ 计费方式为按 token (按视频输出 token 计费,非按秒)。实际费用 = 输出 token 数 × 单价 ,token 数随分辨率 × 时长 变化,每笔实际 token 与扣费可在控制台任务详情查看。
💡 计费直观换算说明 :由于视频 Token 较抽象,平台按官方基准 Token 输出速率(480p 约 1.36万/秒、720p 约 2.16万/秒、1080p 约 4.86万/秒、4K 约 19.44万/秒)将百万 Token 单价换算成了直观的每秒单价与典型 5 秒参考花费 。含参考视频档位享受官方专属特惠折扣(低至 5.8~),基准每秒花费远低于纯文/图生。 (注:如传入较长参考视频,官方源站会对输入素材时长按优惠单价计费,实际以接口返回的 usage 结算。)
模型 档位 · 分辨率 计费 折合每秒(含视频特惠) 折合每秒(纯文/图生) 典型 5 秒预计
seedance-2.0-720p720p(特惠线) 按token 约 约 约 ~
seedance-2.0-fast-720pfast · 720p(特惠线) 按token 约 约 约 ~
seedance-2.0-mini-720pmini · 720p(特惠线) 按token 约 约 约 ~
seedance-2.5-720p2.5 · 720p(特惠线) 按token 约 约 约 ~
doubao-seedance-2.0-mini-480pmini · 480p 按token 约 约 约 ~
doubao-seedance-2.0-mini-720pmini · 720p 按token 约 约 约 ~
doubao-seedance-2.0-mini-1080pmini · 1080p 按token 约 约 约 ~
doubao-seedance-2.0-fast-480pfast · 480p 按token 约 约 约 ~
doubao-seedance-2.0-fast-720pfast · 720p 按token 约 约 约 ~
doubao-seedance-2.0-fast-1080pfast · 1080p 按token 约 约 约 ~
doubao-seedance-2.0-pro-480ppro(满血)· 480p 按token 约 约 约 ~
doubao-seedance-2.0-pro-720ppro(满血)· 720p 按token 约 约 约 ~
doubao-seedance-2.0-pro-1080ppro(满血)· 1080p 按token 约 约 约 ~
doubao-seedance-2.0-pro-4kpro(满血)· 4K 按token 约 约 约 ~
doubao-seedance-2.5-720p2.5 · 720p 按token 约 约 约 ~
doubao-seedance-2.5-1080p2.5 · 1080p 按token 约 约 约 ~
质量 mini < fast < pro(满血)< 2.5 ;4K 仅 pro 档有。模型名全部小写 。失败不计费。 「特惠线」四款(seedance-2.0-720p / seedance-2.0-fast-720p / seedance-2.0-mini-720p / seedance-2.5-720p)只提供 720p ,传入分辨率更高的参考视频会被拒绝。fast 与 mini 档官方没有 1080p 规格 ,这两档的 1080p 由本平台提供。 ✅ 可用性 :默认 auto 智能令牌已可直接调用上述全部档位 (含四款特惠线)。若某档位不在你令牌的 /v1/models 列表中,说明该令牌设了模型白名单或未含 Doubao 分组,联系我们开通即可。
接口信息
项 说明
提交端点 POST /v1/videos 或 POST /v1/video/generations(标准 JSON,双端点完全等价兼容)
轮询端点 GET /v1/videos/{task_id} 或 GET /v1/video/generations/{task_id}
视频直出预览 GET /v1/videos/{task_id}/content(带 Bearer 令牌鉴权 302 重定向流式返回成片)
下载成片 完成后响应里的 video_url(官方高速下载直链)
鉴权方式 Authorization: Bearer sk-你的令牌
令牌分组 Doubao(或 auto 智能路由分组)
核心参数规范
参数 类型 必填 默认 说明
modelstring 是 模型名,如 seedance-2.5-720p、seedance-2.0-720p、seedance-2.0-fast-720p、doubao-seedance-2.0-mini-480p 等
promptstring 是 画面 / 风格 / 动作描述。无我方硬性长度上限
duration / secondsinteger / string 否 5 视频输出时长(秒)。 • 2.0 系列:支持 4–15 秒 或 -1(模型自选); • 2.5 系列:支持 4–30 秒 或 -1(编辑模式强制 -1)
ratio / aspect_ratiostring 否 adaptive / 16:9 画幅比例。支持 21:9、16:9、4:3、1:1、3:4、9:16、adaptive。 • 重要修正 :显式指定比例时(如 9:16 竖屏),模型将严格按该比例渲染,不再被参考图/参考视频强制改回横屏; • 未指定时,有参考素材默认 adaptive,纯文生默认 16:9
resolutionstring 否 依模型 视频分辨率,480p / 720p / 1080p
images / image_urlsarray 否 参考图片数组。支持纯 URL 或 {url, role} 对象: • 1张默认 first_frame(首帧); • 2张默认首尾帧 first_frame + last_frame; • 3张及以上全量作为 reference_image; • 也可使用单字段 image_url、first_image_url、last_image_url、reference_images
videosarray 否 参考视频数组(videos 或 reference_videos),支持纯 URL 或 {url, role: "reference_video"}。 • 2.0 限制 ≤3 段;2.5 限制 ≤10 段
audiosarray 否 参考音频数组(audios 或 reference_audios),支持纯 URL 或 {url, role: "reference_audio"}。 • 2.0 限制 ≤3 段且不能仅音频;2.5 限制 ≤10 段且可仅音频
generate_audioboolean 否 true 是否生成原生同步音轨,本站默认开启 true
watermarkboolean 否 false 视频水印开关,本站默认关闭 false(无水印)
camera_fixedboolean 否 false 锁定镜头开关,设为 true 可防止运镜漂移
seedinteger 否 随机 随机种子(用于复现画面效果)
return_last_frameboolean 否 false 是否在成片结果中额外返回尾帧图片(便于衔接下一段生成)
output_formatstring 否 mp4 成片容器格式,可选 mp4 或 mov(推荐剪辑后期调色使用)
omni_reference_task_typestring 否 auto 全模态任务意图:auto(自动推断)、edit(视频编辑)、extend(视频延长续写)
contentarray 否 官方原生多模态数组,若客户端已封装官方 content 结构,支持整包直通透传
⚠️ 素材互斥与使用约束:
1. 首尾帧互斥 :首帧(first_frame)与尾帧(last_frame)模式不能与全能参考(参考视频/参考音频)同时混用;
2. 音频依附性 :2.0 系列参考音频不能单独使用,必须搭配至少一张参考图或一段参考视频;2.5 系列放宽允许仅音频驱动;
3. 音色与人物绑定 :generate_audio 生成的同步配音音色/性别跟随画面人物设定;参考音频主要作为对白语速、动作节奏与配乐氛围参考;
4. 视频规格 :参考视频分辨率不得超过所选档位(480p 档 ≤480p、720p 档 ≤720p、1080p 档 ≤1080p),单个时长 4–30 秒。
提交方式与玩法自动切换
标准 JSON 请求。服务端根据传入的素材字段自动判定并路由最佳玩法:
玩法模式 触发方式 / 字段 说明
文生视频 (T2V) 只传 prompt + duration 纯文字驱动,严格尊重 aspect_ratio 画幅(默认 16:9)
单图图生视频 (I2V) 传 image_url 或 1 张 images 单图首帧运镜动效化,可显式指定画幅或自适应
双图首尾帧过渡 传 first_image_url + last_image_url 或 2 张 images 连接两张关键帧平滑生成过渡镜头
视频编辑 (V2V) 传 videos 或 reference_videos 在原视频画面基础上按提示词重新演绎风格与光影
全能多模态参考 组合传入 images + videos + audios 综合多维素材,角色参考图片,动作跟随视频,节奏跟随音频
官方原生直通 传入 content 数组 客户端预构建的官方 content 多模态结构整包透传
示例请求
# 1. 标准调用格式(指定 12 秒 + 9:16 竖屏 + 生成原生音频)
curl -X POST https://aihubcc.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://aihubcc.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://aihubcc.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://aihubcc.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://aihubcc.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://aihubcc.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://aihubcc.cc/v1/videos/TASK_ID/content -o preview.mp4
返回的 video_url 为官方高速下载直链,稳定不过期。失败不计费。
Python 完整请求示例(全生命周期)
import time
import requests
BASE_URL = "https://aihubcc.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 视频直出预览。
多模态素材格式 :参考图 / 参考音频除公网 URL 外,也支持 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
Seedance 2.5 官方直连 Video
🎬 字节 Seedance 2.5 官方视频模型 (官方直出)。一个模型名支持三种模式,按你传入的素材自动切换 :只传 prompt = 文生视频(T2V);带参考图 = 图生视频(I2V);带参考视频 = 视频编辑(V2V)。用「Seedance 2.0」令牌调用;按 token 计费 、失败不计费、默认生成音频。
模型
⚠️ 按 token 计费 (按视频输出 token 计,非按秒)。文生 / 图生(无参考视频)与视频编辑(带参考视频)单价不同——视频编辑更低。 实际费用 = 输出 token 数 × 单价,token 数随分辨率 × 时长变化;以实际返回的 token 用量结算 ,每笔可在控制台任务详情核对。
档位 折合每秒(视频编辑特惠) 折合每秒(纯文/图生) 典型 5 秒预计
720p · doubao-seedance-2.5-720p 约 约 约 ~
1080p · doubao-seedance-2.5-1080p 约 约 约 ~
分辨率由模型名决定 (720p / 1080p),模型名全小写 。文生 / 图生(无参考视频)单价高于视频编辑(带参考视频);失败不计费。
三种模式
模式 怎么触发 seconds参考媒体(放 metadata)
文生视频 T2V 只传 prompt,不带任何参考素材 4–30,自选 无
图生视频 I2V 带参考图 4–30,自选 reference_images
视频编辑 V2V 带参考视频 必须 = 参考视频时长 reference_videos
接口信息
项 说明
提交端点 POST /v1/videos 或 POST /v1/video/generations(标准 JSON,双端点完全等价兼容)
轮询端点 GET /v1/videos/{task_id} 或 GET /v1/video/generations/{task_id}
视频直出预览 GET /v1/videos/{task_id}/content(带 Bearer 令牌鉴权 302 重定向流式返回成片)
下载成片 完成后响应里的 video_url(官方高速下载直链)
鉴权方式 Authorization: Bearer sk-你的令牌
令牌分组 Doubao(或 auto 智能路由分组)
核心参数
参数 类型 必填 默认
modelstring 是 doubao-seedance-2.5-720p 或 doubao-seedance-2.5-1080p(分辨率即档位)
promptstring 是 生成 / 编辑描述(如"一只橘猫在草地奔跑""改成夜景赛博朋克风格")。无我方硬性长度上限
secondsstring 是 字符串 ,范围 4–30。文生 / 图生自选;视频编辑必须 = 参考视频时长
metadata.reference_imagesarray(URL / base64) 否 图生视频用。 公网图片 URL 或 base64 data-URI,≤30 张 ;放 metadata 内
metadata.reference_videosarray(URL / base64) 否 视频编辑用。 公网 mp4 URL 或 base64,单个 4–30 秒、分辨率 ≤ 档位,≤10 个 (首个决定输出时长 / 画幅);放 metadata 内
metadata.reference_audiosarray(URL / base64) 否 配乐 / 音效参考,公网 URL 或 base64,≤10 个 ;放 metadata 内
参考媒体统一放 metadata 里、用公网 URL 或 base64 data-URI,不支持 multipart 文件上传 (URL 须无需登录即可下载)。单次最多 30 图 + 10 视频 + 10 音频 ,超出报错、不产任务、不计费。
提交方式
JSON(POST /v1/videos)。三种模式由素材自动切换 :不带参考素材 = 文生视频;metadata.reference_images 带图 = 图生视频;metadata.reference_videos 带视频 = 视频编辑。所有参考媒体(图 / 视频 / 音频)都放 metadata,用公网 URL 或 base64 data-URI,不支持 multipart 文件上传 (URL 须无需登录即可下载)。默认生成音频。
示例请求
# ① 文生视频:只传 prompt + seconds(字符串)+ 模型名(分辨率自带)
curl -X POST https://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/v1/videos/TASK_ID -H "Authorization: Bearer $TOKEN"
# status=completed 后用 video_url 下载
curl -L "VIDEO_URL" -o result.mp4
返回的 video_url 为官方高速下载直链,有时效请及时保存。失败不计费。
Python 完整请求
import time, requests
BASE = "https://aihubcc.cc/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 音频。
参考视频须 mp4、单个 4–30 秒、分辨率不超过档位(720p ≤1280×720、1080p ≤1920×1080),超出被拒;编辑高清源选 1080p 档。
⚠️ 价格分两档 :文生 / 图生(无参考视频)单价高于视频编辑(带参考视频);以实际返回的 token 用量结算 ,可在控制台任务详情核对。
⚠️ 配音音色 / 性别跟随画面人物,不跟随上传的参考音频 :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 张参考图。
视频编辑 :先截好要编辑的关键片段(4–30 秒),seconds 填该片段实际秒数;1080p 高清源用 doubao-seedance-2.5-1080p,720p 源用 720p 档更省。
提示词写清"要什么风格 / 保留什么",编辑 / 图生类配参考图能更稳定地锁定风格。
Seedream 图像生成 Image
🖼️ 字节「即梦 Seedream」官方图像模型 (火山官方直出)。用同一「Seedance 2.0」令牌 调用;同步出图 POST /v1/images/generations —— 请求返回即拿到图片,无需轮询 。按张计费、失败不计费。
模型
模型 版本 定位 计费方式 尺寸与档位说明
doubao-seedream-5-0-pro5.0 Pro 旗舰画质,官方最新 按张 (按分辨率阶梯) 传入 size 自动识别计费,无需切换模型名: • ≤ 261万像素(如 1024x1024, 1920x1080): • > 261万像素(如 2048x2048, 2K, 4K):
doubao-seedream-5-05.0 新版,画质强、性价比最高 按张 基础版支持到 4096×4096
doubao-seedream-4-54.5 稳定成熟档 按张 基础版支持到 4096×4096
📌 提示说明 :平台对 doubao-seedream-5-0-pro 实施单一模型智能计费。调用标准 POST /v1/images/generations 时,无需在 model 后加 -1k、-2k 等冗余后缀,只需在请求体中传入目标 size,系统将根据实际像素规格自动扣除对应档位费用。每次调用返回 1 张图,按张计费,失败不计费。
接口信息
项 说明
文生图 POST /v1/images/generations(同步 ,返回即出图)
图生图 / 编辑 同 /v1/images/generations(带 image 字段)或 /v1/images/edits
返回 data[0].url(默认)或 data[0].b64_json
鉴权 Authorization: Bearer sk-你的令牌
令牌分组 Doubao
核心参数
参数 类型 必填 默认 说明
modelstring 是 上表三个之一
promptstring 是 图像描述提示词。无我方硬性长度上限(走火山官方)
sizestring 否 1024x1024图像生成尺寸规格,支持两种格式: 1. 像素规格(推荐):"1024x1024" (1K 档)、"2048x2048" (2K 档)、"3840x2160" (4K 档)、"2560x1440" 等; 2. 档位别名:"2K"、"4K"; (计费阶梯:总像素 ≤ 261 万归入 1K 基准档按 收费;> 261 万归入高清档按 收费)
response_formatstring 否 url url(图片直链)或 b64_json(base64 内嵌)
imagestring / array 否 参考图(图生图 / 编辑 / 多图融合):单张字符串、多张数组。填了 image 即进入编辑 ;"二次编辑" = 把上一轮产图 URL 回传继续改,可反复迭代。参考图最多 14 张,参考图 + 产图合计 ≤ 15 。元素为公网 URL 或 Base64 (data:image/png;base64,...)
sequential_image_generationstring 否 disabled组图模式 :设 "auto" 让模型一次连续生成一组相关图 (组图,data 返回多张)。产图 + 参考图合计 ≤ 15 张
ninteger 否 1 ⚠️ 本线路 n 每次仅返回 1 张 ,请保持 n=1;n>1 会按 n 计费但仍只返回 1 张。要一次一组相关图请用上面的 sequential_image_generation:"auto" 组图
分辨率范围与档位说明(实测):
模型 最高输出 最低 说明
doubao-seedream-4-54096×4096 (真 4K)约 1920×1920 基础版支持到 4K
doubao-seedream-5-04096×4096 (真 4K)约 1920×1920 基础版支持到 4K
doubao-seedream-5-0-pro4K(3840×2160 / 4096×4096) 1024×1024 全面支持 1K、2K、4K,按请求 size 像素智能阶梯计费
doubao-seedream-5-0-pro 支持从 1024×1024 到 4K 超高清全画幅生成,根据请求 size 自动匹配计费阶梯(≤ 261万像素为 1K 档 ,> 261万像素为高清档 )。基础版 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 标清生成(
curl -X POST https://aihubcc.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 高清生成(
curl -X POST https://aihubcc.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,
curl -X POST https://aihubcc.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://aihubcc.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://aihubcc.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://aihubcc.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://aihubcc.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://aihubcc.cc/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-你的令牌" \
-d '{
"model": "doubao-seedream-4-5",
"prompt": "极简红色圆形,纯白背景",
"size": "2048x2048",
"response_format": "b64_json"
}'
轮询取片
同步接口,无需轮询 :请求返回即拿到结果。默认 data[0].url 为可直接下载 / 内嵌的图片直链(有有效期,请及时保存);需 base64 内嵌时加 "response_format":"b64_json" 取 data[0].b64_json。
# 默认 url 返回结构:
# {"created":1786957747,"data":[{"url":"https://<官方签名直链>/xxx.jpeg"}]}
curl -L "IMAGE_URL" -o result.jpeg
Python 完整请求
1. 标准 OpenAI SDK 调用(推荐)
from openai import OpenAI
client = OpenAI(
api_key="sk-你的令牌",
base_url="https://aihubcc.cc/v1"
)
# 生成 2K 高清图像(系统自动按 2K 档位 计费)
response = client.images.generate(
model="doubao-seedream-5-0-pro",
prompt="超写实未来赛博朋克城市雨夜,霓虹倒影,电影质感",
size="2048x2048",
response_format="url"
)
print("生成成功,图片直链:", response.data[0].url)
2. requests 库原生调用
import requests
BASE = "https://aihubcc.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 档 计费;> 261 万(如 2048x2048, 2560x1440, 3840x2160, 2K, 4K)按高清档 计费。
编辑 / 二次编辑 :与文生图同一接口 /v1/images/generations,多带 image 字段(填参考图或上一轮产图 URL )即进入编辑;产图 URL 可反复回传迭代。
本线路 n=1 每次 1 张;要一次一组相关图 用 sequential_image_generation:"auto"(组图,data 多张,产图 + 参考图 ≤ 15)。
参考图 ≤10MB、JPEG/PNG、单边 ≤4096、最多 14 张(参考图 + 产图 ≤ 15) ;非法参考图返回 400 不计费。输出格式 JPEG。
建议
旗舰首选 doubao-seedream-5-0-pro :官方最新架构,支持 1K 到 4K 全画幅;高性价比日常出图可选 5-0。
16:9 推荐 2560x1440 或 3840x2160、9:16 推荐 1440x2560 或 2160x3840、1:1 推荐 1024x1024 或 2048x2048。
多图融合把主体图放前、风格图放后,提示词点明"融合成一张"。
Grok 视频
基于 xAI Grok Imagine 官方接口的视频生成,OpenAI 兼容异步接口。三个模型 :grok-imagine-video(1.0,文生 / 图生视频)、grok-imagine-video-1.5-preview(1.5 代,画面质感更好)、grok-imagine-video-6s(固定 6 秒 / 480p,最省钱)。带参考图即图生视频,不带图则为纯文生视频 (1.5 建议带图)。
📌 模型已精简,分辨率不再外显成模型名 :以前按分辨率拆出的一堆模型(…-480p / …-720p / …-1080p)已合并 ——现在 1.0 / 1.5 的分辨率由请求里的 resolution 参数决定 ,你只需记住 3 个模型名 。想要多少清晰度,在请求体传 resolution 即可,不用换模型。
模型与价格倍率
模型 分辨率(resolution) 计费 价格倍率
grok-imagine-video480p(默认) 按秒 1×
grok-imagine-video720p 按秒 1.30×
grok-imagine-video-1.5-preview480p 按秒 2.29×
grok-imagine-video-1.5-preview720p(推荐 ) 按秒 3.31×
grok-imagine-video-1.5-preview1080p 高清 按秒 6.31×
价格倍率 :表中固定以 grok-imagine-video 480p(默认)为 1× ,同一时长下可直接比较不同档位的价格倍率。未对客户发布的模型不会出现在表中,实际扣费以控制台为准。1.0 / 1.5 的分辨率由 resolution 控制。全系失败不计费 ,成功出片才扣。
接口信息
项 说明
提交任务 POST /v1/videos(JSON)
轮询进度 GET /v1/videos/{task_id},status=completed 时返回 video_url
下载成片 轮询返回的 video_url 直接 GET 下载(地址已脱敏)
鉴权 Authorization: Bearer sk-你的令牌
令牌分组 xAI 或 auto(智能路由)分组均可
核心参数
参数 取值 默认 说明
modelgrok-imagine-video(1.0)/ grok-imagine-video-1.5-preview(1.5)/ grok-imagine-video-6s(6 秒定档)必填。三个模型名 ;1.0 / 1.5 的分辨率用 resolution 参数,-6s 固定 480p / 6 秒(见文末专项说明)
prompt文本 必填,画面 / 运动描述
image公网 URL 或 base64 Data URI 可选。单张首帧 ;带图=图生视频;grok-imagine-video 不带图=纯文生视频,grok-imagine-video-1.5-preview 建议带图
reference_imagesURL 数组 ,最多 7 张 可选,多张参考图 (图生视频)。仅 grok-imagine-video-1.5-preview 的 480p / 720p 生效;⚠️ 1080p 不支持多图 (见下)。单张请用 image
seconds字符串,1 ~ 15 6视频时长(秒)。1.0 与 1.5 系列按秒计费 :费用 = 单价 × 秒数(1.0 与 1.5 系列均按秒)
aspect_ratio16:9(横屏)/ 9:16(竖屏)/ 1:1(方屏)16:9可选,画幅比例。⚠️ Grok 视频仅支持此 3 种画幅 (不支持 3:4、4:3 等;传入不支持比例官方将自动回退为 16:9 横屏)。手机竖版或电商主图请用 9:16
resolution480p / 720p(1.5-preview 另 1080p)480p决定分辨率与相对消耗档位 (见上表)。⚠️ grok-imagine-video-1.5-preview 的 1080p 只支持单张首帧 image ,不支持多图 reference_images
size如 720x1280 / 1024x1024 旧字段,已兼容 :自动换算为最接近的 aspect_ratio(避免"请求竖屏却出横屏");也支持 portrait / landscape / square 等词
提交方式(传图 · 单张首帧 vs 多张参考图)
i2v 的参考图通过 image 字段传入,支持两种写法:
方式 写法 说明
公网 URL "image": "https://.../a.jpg"公网可直接 GET 的图片直链(不能是需登录 / 内网 / 拦爬虫的链接)
base64 Data URI "image": "data:image/jpeg;base64,/9j/4AAQ..."须带 data: 前缀
图片格式 JPG / PNG / WebP。
单张首帧 vs 多张参考图
单张首帧 :用 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://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/v1/videos/task_xxx \
-H "Authorization: Bearer sk-xxx"
# => {"status":"completed","video_url":"https://.../xxx.mp4",...}
轮询到 completed 后取 video_url 直接下载成片;下载地址已脱敏,不暴露源站域名。轮询间隔建议 3-5 秒。
Python 完整请求
import time, requests
BASE = "https://aihubcc.cc/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)与 grok-imagine-video-1.5-preview 按秒计费;grok-imagine-video-6s 固定 6 秒、按次计费。不同档位的相对消耗见上表,失败不计费 。
seconds 取 1~15;1.5-preview 分辨率由 resolution 参数决定 (480p / 720p / 1080p)
多张参考图 :grok-imagine-video-1.5-preview(480p / 720p)用 reference_images 数组,最多 7 张 ;单张首帧用 image
⚠️ 1080p 仅支持单张首帧 image ,不支持多图 reference_images(传了也只取第一张作首帧)
图生视频的 image 须为公网可直接抓取 的 URL 或 base64 Data URI;需登录 / 内网 / 拦爬虫(如部分维基)的链接会失败
grok-imagine-video 不带图为文生视频;grok-imagine-video-1.5-preview 为图生视频,建议带 image
客户端超时建议 ≥ 300 秒;轮询间隔建议 3-5 秒
⚠️ 视频画幅与生图不同 :Grok 生图支持 3:4 / 4:3 / 2:3 等画幅,但 Grok 视频官方底层仅支持 16:9、9:16、1:1 。如需 3:4 比例视频,建议设置 aspect_ratio: "9:16" 生成后在本地裁切,切勿传 3:4 以免官方自动回退至横屏。
建议
1.5 代优先带参考图 :grok-imagine-video-1.5-preview 定位图生视频,带一张清晰首帧 image 出片更稳、质感更好;纯文生优先用 grok-imagine-video。
要 1080p 就别传多图 :-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 档 、按次计费 。文生(只给提示词)与图生(带参考图、运动跟随提示词)都支持;与其它 Grok 视频同一 /v1/videos 通道,JSON body 与 multipart 表单均可提交 。
时长固定 6 秒、分辨率固定 480p 档 ;传 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://aihubcc.cc/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://aihubcc.cc/v1/videos \
-H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
-d '{"model":"grok-imagine-video-6s","prompt":"人物轻轻转头微笑,柔光","image_url":"https://your-public-image.jpg","size":"720x1280"}'
Grok 图像生成(文生图 / 图生图)
OpenAI 兼容的同步 图像接口,请求成功后直接返回图像、无需轮询 。文生图三档质量任选;图生图 / 图片编辑用 grok-imagine-image 或 grok-imagine-image-2.0 打 /v1/images/edits 传参考图即可,同名同价、由接口区分。
用法总览(选场景 → 端点 + 模型)
场景 端点 模型
文生图 POST /v1/images/generationsgrok-imagine-image / -2.0 / -lite
图生图 / 图片编辑 POST /v1/images/edits(传参考图)grok-imagine-image / grok-imagine-image-2.0
-lite 图生图 / 编辑 ❌ 不支持 ,-lite 仅文生图;图生图请用 grok-imagine-image 或 -2.0
⚠️ grok-imagine-image 与 -2.0 都是一名两用 :打 /v1/images/generations = 文生图、打 /v1/images/edits(带参考图)= 图生图 / 编辑,同名同价 。-2.0(新版,质感更好)现已支持图生图 / 编辑 ;仅 -lite(basic 档,最省)只做文生图 。 三档怎么选:-lite 最省,适合批量草图;grok-imagine-image 为标准档;-2.0 是新版、质感最好且是唯一支持 2K 的一档,推荐默认用它 ;grok-imagine-image-quality 是另一代质感档,风格取向不同、仅 1K,可在 -2.0 出图不合意时作为备选。
画幅(size / aspect_ratio · 按模型)
模型 size 可选aspect_ratio 可选默认
grok-imagine-image1024x1024 / 1792x1024 / 1024x17921:1 / 16:9 / 9:16 / 2:3 / 3:2 / 4:3 / 3:41024x1024
grok-imagine-image-2.01024x1024 / 1792x1024 / 1024x1792 / 2048x2048(2K)同上 1024x1024
grok-imagine-image-quality1024x1024 / 1792x1024 / 1024x1792(仅 1K )同上 1024x1024
grok-imagine-image-lite1280x720 / 720x1280 / 960x960—(改用 size)
size 与 aspect_ratio 二选一;其它取值可能报错。 2K 仅 grok-imagine-image-2.0 支持(传 size="2048x2048" 或 resolution="2k")。其它模型传 2K 会返回明确报错并提示改用 grok-imagine-image-2.0,不会悄悄按 1K 出图。
模型
模型 能力 计费
grok-imagine-image-lite文生图(basic 档) 按张
grok-imagine-image文生图 + 图生图 / 编辑 按张
grok-imagine-image-2.0文生图 + 图生图 / 编辑(新版,质感更好,支持 2K) 按张
grok-imagine-image-quality文生图 + 图生图 / 编辑(质感档,仅 1K) 按张
按张计费 :每张图片按模型价格计费;生成失败不扣费。
鉴权与分组
项 说明
鉴权 Authorization: Bearer sk-xxx
令牌分组 xAI 或 auto(智能路由)分组均可
请求格式 文生图走 JSON;图生图 / 编辑走 JSON 或 multipart(传文件用 -F "image[]=@a.png")
核心参数
参数 取值 默认 说明
modelgrok-imagine-image-lite / grok-imagine-image / grok-imagine-image-2.0;图生图 / 编辑用 grok-imagine-image 或 grok-imagine-image-2.0(打 /v1/images/edits);-lite 仅文生图必填
prompt文本 必填,描述希望生成或修改的画面
n整数 1可选,生成数量;建议一次请求传 1
response_formaturl / b64_jsonurlurl 返回下载地址;b64_json 直接返回 Base64 图像数据
size1024x1024 / 1792x1024 / 1024x1792 / 2048x2048(2048x2048 仅 -2.0;-lite 见画幅说明)1024x1024可选,输出尺寸;grok-imagine-image / -2.0 / -quality 适用
resolution1k / 2k1k可选,仅 grok-imagine-image-2.0 支持 2k;与 size 效果等价,二者皆可
aspect_ratio1:1/16:9/9:16/2:3/3:2/4:3/3:4可选,grok-imagine-image / -2.0 / -quality 用,与 size 二选一
image公网 URL 或 base64 Data URI 图生图可选,单张参考图。base64 必须为完整的 data:image/...;base64,... 格式
imagesURL / Data URI 数组 图生图可选,多张参考图;仅 JSON 请求使用
提交方式(传图 · 图生图)
方式 字段 / 写法 说明
单张公网图片 "image": "https://.../a.jpg"图片地址必须能从公网直接访问
单张 base64 "image": "data:image/png;base64,..."使用完整 Data URI,不要只传裸 Base64
多张 JSON 图片 "images": ["https://.../a.jpg", "data:image/png;base64,..."]数组中可混用公网 URL 与 Data URI
multipart 文件上传 -F "image[]=@a.png" -F "image[]=@b.jpg"单图也可使用 -F "image=@a.png"
示例请求
# 文生图
curl https://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/v1/images/proxy/<encrypted-token>"
}
]
}
response_format=url 时返回平台下载代理地址,浏览器或程序可直接访问;地址不暴露源站下载域名和签名参数,默认有效期 30 天。需要自行保存图片数据时用 response_format=b64_json 并读取 data[].b64_json。
Python 完整请求
import requests
BASE = "https://aihubcc.cc/v1"
H = {"Authorization": "Bearer sk-xxx", "Content-Type": "application/json"}
# 文生图(同步,直接拿结果)
r = requests.post(f"{BASE}/images/generations", headers=H, json={
"model": "grok-imagine-image-lite",
"prompt": "一座漂浮在云海上的未来城市,清晨柔光,电影感",
"n": 1,
"response_format": "url"
}).json()
print("图片:", r["data"][0]["url"])
# 图生图:单张公网图片
r2 = requests.post(f"{BASE}/images/edits", headers=H, json={
"model": "grok-imagine-image",
"prompt": "保留主体构图,将背景改为雨后的霓虹街道",
"image": "https://your-public-image.jpg",
"response_format": "url"
}).json()
print("图片:", r2["data"][0]["url"])
Python 示例:文生图 → 图生图(base64 参考图闭环)
先文生图拿到一张图,再把它当参考图做编辑——同一个 grok-imagine-image,只换接口(/generations → /edits);用 b64_json 免下载直接复用,参考图传完整的 data:image/...;base64, Data URI。
import requests, base64
BASE = "https://aihubcc.cc/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 返回后再处理结果。
参考图公网 URL 必须能被服务端直接下载(含中国境内可访问) ,否则会失败或被忽略;需要登录、内网、访问受限或境外不可达的链接,请改用 base64 (data:image/...;base64,)内联。
使用 JSON 多图时传 images 数组;使用 multipart 多图时重复传 image[] 字段。
url 与 b64_json 二选一:前者适合直接展示或下载,后者适合本地持久化或二次处理。
建议
一次请求出一张 :n 建议传 1,需要多张分多次请求,稳定性更好。
直接展示用 url,落库用 b64_json :前者拿代理下载地址(30 天有效),后者拿 Base64 便于本地持久化。
图生图选清晰参考 :参考图主体清晰、无遮挡,改风格 / 换背景类指令效果最稳。
MiniMax H3 · 按秒计费(768P / 2K)
MiniMax H3 按秒计费 ,两档清晰度、原生音频 。支持文生 / 图生 / 首尾帧 / 参考图 / 参考音频;需参考视频 驱动用 Pro 档 。同一套 /v1/videos 接口:异步创建 → 轮询 → 下载。
⚠️ 内容合规要求(务必阅读)
MiniMax H3 为国内(中国大陆)模型 ,平台有严格内容审核 。严禁提交任何色情、软色情、擦边、暴露、性暗示、血腥或其它违规提示词 ——此类请求被网关直接拦截(HTTP 400,不产任务、不计费) ;屡次违规可能触发平台风控致该模型临时不可用 ,请务必合规使用。
模型
模型 清晰度 全能参考 计费 时长
minimax-h3-768p768P 503 按秒 4–15 秒
minimax-h3-2k2K 503 按秒 4–15 秒
minimax-h3-pro-768p768P 913 按秒 4–15 秒
minimax-h3-pro-2k2K 913 按秒 4–15 秒
按秒计费 = 单价 × 时长(例:minimax-h3-2k 10 秒 = )。全能参考数字 = 图·视频·音频张数上限:标准档 503 (5 图 + 0 视频 + 3 音频),Pro 档 913 (9 图 + 1 视频 + 3 音频,额外支持参考视频)。如需 933 全能参考请联系客服。失败不计费。
接口信息
项 说明
提交任务 POST /v1/videos(JSON)
轮询进度 GET /v1/videos/{task_id}
下载成片 完成后响应里的 video_url 直链
鉴权 Authorization: Bearer sk-你的令牌
令牌分组 minimax
核心参数
字段 类型 必填 默认
modelstring 是 上表四个之一
promptstring 是 提示词,≤7000 字符(超出会被静默截断)
durationinteger 否 4–15 秒(= 计费秒数)
ratiostring 否 16:9/9:16/1:1/21:9/4:3/3:4/adaptive(文生视频不支持 adaptive)
referenceImagesstring[] 否 参考图 ≤5 (公网 URL 或 base64)
referenceAudiosstring[] 否 参考音频 ≤3 (须配参考图;合计 ≤15 秒)
referenceVideosstring[] 否 Pro 档专用 :1 段,时长 2–5 秒
first_image/last_imagestring 否 首/尾帧;不能与 referenceImages 同用
提交方式
JSON,参考素材支持 公网 URL 或 base64 。按传入素材自动判定模式:
模式 最少必传
文生视频 prompt
图生视频 prompt + referenceImages(≤5)
首尾帧 first_image(+ last_image);不与普通参考图同用
参考视频驱动 Pro 档 + referenceVideos(1 段 2–5 秒)
示例请求
# 文生视频
curl https://aihubcc.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://aihubcc.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://aihubcc.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://aihubcc.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://aihubcc.cc/v1/videos/TASK_ID -H "Authorization: Bearer $TOKEN"
# status=completed 后用响应里的 video_url 下载
curl -L "VIDEO_URL" -o result.mp4
轮询到 completed/failed 停止;video_url 为直链;失败不计费。
Python 完整请求
import time, requests
BASE = "https://aihubcc.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)
注意事项
严格内容审核 :违规提示词直接 400(不产任务、不计费),屡犯可能致模型临时不可用。
prompt ≤7000 字符,超出静默截断 ——长提示词请自行精简,别指望超出部分生效。
用 ratio 字段控画幅(不是 size/aspect_ratio);文生视频不支持 adaptive。
first_image/last_image 与 referenceImages 互斥;参考音频须配参考图。
参考素材 URL 必须公网可直接访问 ;访问受限的地址会报 cannot download media URL——改用 base64 (data:...;base64,)即可,任何图 / 视频都行。
参考视频仅 Pro 档、1 段 2–5 秒;2K / 参考视频出片较慢,高峰期偶发排队请重试。
建议
走量用 768P,画质优先用 2K;需要视频驱动动作 / 运镜才用 Pro 档。
竖屏传 ratio":"9:16";参考视频请截取你要的关键 2–5 秒片段。
提示词全英文或中文均可,但务必合规、避免任何擦边表述。
通义万相 3.0 视频 Video
🎬 阿里通义万相 3.0(阿里云百炼官方直连) 。提供两个模型:wan3.0-video(全能多模态参考版)与 wan3.0-video-prime(优速版,30fps 高帧率、质感更高且出片更快)。现已全面支持全多模态参考架构 :涵盖 A. 文生视频 、B. 图生视频(首帧 / 首尾帧) 、C. 多图参考生视频 、D. 图 + 视频 + 音频多模态参考 、E. 文件 / 网页链接参考 5 种核心模式。OpenAI 兼容异步接口、按秒 × 分辨率计费、失败不计费。
模型与价格倍率
模型 分辨率(resolution) 计费 价格倍率
wan3.0-video480p(默认) 按秒 1×
wan3.0-video720p 按秒 2×
wan3.0-video1080p 按秒 4×
wan3.0-video-prime480p(默认) 按秒 1.71×
wan3.0-video-prime720p 按秒 3.43×
wan3.0-video-prime1080p 按秒 6.86×
按秒 × 分辨率计费 :表中倍率以 wan3.0-video 480p(默认)的每秒消耗为 1× ,同一时长下可直接比较不同档位的相对消耗;实际扣费以控制台为准。分辨率用 resolution 参数控制(480p / 720p / 1080p),不传默认 480p。失败不计费 ,成功出片才扣。wan3.0-video-prime 为优速版(30fps、出片更快),相对消耗更高;两者能力一致,按预算 / 时效选。
五大参考场景速查(ABCDE 模式总览)
模式 场景名称 核心能力 触发参数 / 字段写法 说明与适用业务
A 文生视频 纯文字创意生成 仅传 prompt,不带任何素材 概念演示、光影特效、CG 场景想象
B 图生视频(首帧 / 首尾帧) 单图动效 / 双图定格转场 传 1 张图片为首帧(images 或 image_url); 或传 2 张图片分别指定 first_frame 与 last_frame 静态立绘动效化、前后两张分镜之间精准平滑过渡
C 多图参考生视频 主体角色 / 场景一致性 images 传入多张图片(≥3 张,或传 role: "reference_image")保持主体人物面容、服饰、环境特征与艺术风格连续统一
D 图 + 视频 + 音频多模态参考 跨模态运镜与节拍同步 同时组合 images + videos + audios 角色参考图片,运镜与动作跟随参考视频,节奏与对白跟随参考音频
E 文件 / 网页链接参考 文档解析与网页推演 传入 files(文档 URL 数组)或 links(网页 URL 数组) 研报/策划案/长文解析视频化、电商产品落地页一键生成推广视频
接口信息
项 说明
Base URL https://aihubcc.cc(或 https://aihubcc.cc)
提交端点 POST /v1/video/generations 或 POST /v1/videos(标准 JSON,双端点完全等价兼容)
轮询端点 GET /v1/video/generations/{task_id} 或 GET /v1/videos/{task_id}
成片下载 轮询状态为 completed 时,直接读取响应中的顶层 video_url(阿里云 OSS 官方高速直链,稳定且不脱敏);亦支持通过网关端点 GET /v1/videos/{task_id}/content(带 Bearer 鉴权 302 重定向)流式下载
鉴权方式 Authorization: Bearer sk-你的令牌
令牌分组 Wan(通义万相)或 auto(智能路由分组)
生成耗时 通常 1–5 分钟(多模态与高分辨率耗时相应增加);客户端请异步轮询取片,切勿在超时前重复发起同一任务
核心参数规范
参数 类型 必填 默认 说明
modelstring 是 wan3.0-video(全能多模态参考版)或 wan3.0-video-prime(优速版,30fps)
promptstring 是 画面内容、动态走势、光影氛围或镜头运动描述。走官方模型上下文,无我方硬性长度限制
resolutionstring 否 480p决定清晰度与计费单价 :480p / 720p / 1080p(大小写兼容)。也可用 size 传 宽x高(如 1280x720),系统自动匹配就近档位
ratiostring 否 adaptive画幅比例 :16:9(横屏)、9:16(竖屏)、1:1(方屏)、4:3、3:4、adaptive(默认根据参考素材自适应)。兼容 portrait / landscape 等别名
duration / secondsinteger / string 否 5视频生成时长(秒),支持 5–30 秒 。实际扣费以此秒数结算
imagesarray 否 参考图片列表 :支持纯 URL 字符串数组或带角色对象数组 [{ "url": "...", "role": "..." }]。单图默认首帧;双图默认首尾帧;3 张以上默认参考图。显式角色支持 first_frame(首帧)、last_frame(尾帧)、reference_image(参考图)
videosarray 否 参考视频列表 :纯 URL 字符串数组或 [{ "url": "...", "role": "reference_video" }]。作为画面运动节奏与镜头轨迹的参考素材
audiosarray 否 参考音频列表 :纯 URL 字符串数组或 [{ "url": "...", "role": "reference_audio" }]。⚠️ 不可作为唯一参考素材 ,至少需搭配一张图片或一段视频
filesarray 否 参考文档列表 :纯 URL 字符串数组或 [{ "url": "...", "role": "file" }]。支持公网可直接下载的 PDF、Word、TXT、Markdown 等文档
linksarray 否 参考网页列表 :纯 URL 字符串数组或 [{ "url": "...", "role": "link" }]。支持公网可抓取的 HTTP/HTTPS 网页,模型自动提取网页图文进行视频创作
image_urlstring 否 单图快捷参数 :传了=图生视频首帧。公网直链 URL 或完整 Base64 Data URI;兼容 image、input_reference
⚠️ 素材组合与互斥规则(调用前必读):
1. 首尾帧互斥 :首帧(first_frame)与尾帧(last_frame)为定点平滑补帧模式,严禁与参考视频、音频、文件、网页链接等参考类素材混合传入 。
2. 音频依附性 :参考音频(audios)不能作为孤立的唯一输入,必须配合至少一张参考图片或一段参考视频 。
3. 多模态自愈机制 :若你在传入参考视频/音频/文件/链接的同时传入了普通图片,系统会自动将图片转换为 reference_image 角色,避免官方底层误判为首尾帧导致冲突报错。
4. 素材公网可达性 :所有 URL 素材必须能被公网直接 GET 访问,无需登录授权;图片亦可使用 data:image/...;base64,... 格式传参。
全场景调用详解与示例(ABCDE 全覆盖)
通义万相 3.0 支持双端点(/v1/video/generations 与 /v1/videos)。以下示例均以标准 OpenAI 规范给出完整的 curl 请求与 Python 异步生命周期完整脚本。
场景 A:文生视频(Text-to-Video)
只传文字描述,模型完全凭空渲染。支持自由指定分辨率(480p/720p/1080p)、画幅比例(16:9/9:16/1:1 等)与时长(5–30 秒)。
A-1. curl 示例(文生视频)
curl -sS -X POST "https://aihubcc.cc/v1/video/generations" \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"prompt": "一只金毛寻回犬在金色秋叶中奔跑,电影感慢镜头,阳光穿透树林,毛发细节清晰",
"resolution": "720p",
"ratio": "16:9",
"duration": 5
}'
A-2. Python 完整示例(文生视频 · 提交 + 轮询 + 下载成片)
import time
import requests
BASE_URL = "https://aihubcc.cc"
API_KEY = "sk-xxx"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
# 1. 提交文生视频任务
payload = {
"model": "wan3.0-video",
"prompt": "浩瀚宇宙中的星际飞船正在穿越瑰丽的紫色星云,科幻史诗感,超高清光影",
"resolution": "720p",
"ratio": "16:9",
"duration": 5
}
resp = requests.post(f"{BASE_URL}/v1/video/generations", headers=HEADERS, json=payload, timeout=60)
resp.raise_for_status()
data = resp.json()
task_id = data.get("task_id") or data.get("id")
print(f"[A. 文生视频] 任务已提交,Task ID: {task_id}")
# 2. 轮询任务状态直至完成
start_time = time.time()
video_url = None
while time.time() - start_time < 600:
poll_resp = requests.get(f"{BASE_URL}/v1/video/generations/{task_id}", headers=HEADERS, timeout=30)
poll_resp.raise_for_status()
poll_data = poll_resp.json()
status = poll_data.get("status")
print(f"当前状态: {status} (已等待 {int(time.time() - start_time)}s)")
if status == "completed":
video_url = poll_data.get("video_url") or (poll_data.get("data") and poll_data["data"][0].get("url"))
break
elif status in ("failed", "canceled"):
raise RuntimeError(f"任务生成失败: {poll_data.get('error')}")
time.sleep(5)
# 3. 下载视频文件
if video_url:
print(f"成片下载地址: {video_url}")
video_content = requests.get(video_url, timeout=120).content
with open("wan_scene_a.mp4", "wb") as f:
f.write(video_content)
print("成片已成功保存至本地 wan_scene_a.mp4")
场景 B:图生视频(首帧 / 首尾帧)
包括单图首帧动效 与双图首尾帧过渡 :
单图首帧 :传入 1 张图片,模型以该图作为视频起始画面,随提示词运镜演绎;
双图首尾帧 :传入两张图分别标注 first_frame 与 last_frame,模型生成连接首尾两帧的自然运动轨迹。
B-1. curl 示例(单图首帧 & 双图首尾帧)
# ① 单图首帧动效(图片亦可传 base64)
curl -sS -X POST "https://aihubcc.cc/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://aihubcc.cc/v1/video/generations" \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"prompt": "镜头由近景平滑拉远并旋转,画面由第一张日间场景自然过渡到第二张夜幕降临",
"images": [
{ "url": "https://your-domain.com/day_view.jpg", "role": "first_frame" },
{ "url": "https://your-domain.com/night_view.jpg", "role": "last_frame" }
],
"resolution": "720p",
"duration": 5
}'
B-2. Python 完整示例(双图首尾帧过渡)
import time
import requests
BASE_URL = "https://aihubcc.cc"
API_KEY = "sk-xxx"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
payload = {
"model": "wan3.0-video",
"prompt": "镜头缓慢平移推进,人物由低头沉思自然抬起头并露出微笑",
"images": [
{"url": "https://your-domain.com/head_down.png", "role": "first_frame"},
{"url": "https://your-domain.com/look_up_smile.png", "role": "last_frame"}
],
"resolution": "720p",
"ratio": "16:9",
"duration": 5
}
resp = requests.post(f"{BASE_URL}/v1/video/generations", headers=HEADERS, json=payload, timeout=60)
resp.raise_for_status()
task_id = resp.json()["task_id"]
print(f"[B. 首尾帧图生视频] 任务已提交: {task_id}")
while True:
res = requests.get(f"{BASE_URL}/v1/video/generations/{task_id}", headers=HEADERS, timeout=30).json()
st = res.get("status")
if st == "completed":
video_url = res.get("video_url") or res["data"][0]["url"]
with open("wan_scene_b_keyframes.mp4", "wb") as f:
f.write(requests.get(video_url, timeout=120).content)
print("首尾帧过渡视频下载完成!")
break
elif st in ("failed", "canceled"):
raise RuntimeError(f"失败: {res.get('error')}")
time.sleep(5)
场景 C:多图参考生视频(Multi-Image Reference)
传入 3 张或更多参考图片(或显式指定 role: "reference_image"),模型综合提取所有参考图中的主体角色、服装配饰与环境风格,生成风格高度统一的连续视频,解决 AI 视频人物脸部不一致的问题。
C-1. curl 示例(多图参考保持主体一致)
curl -sS -X POST "https://aihubcc.cc/v1/video/generations" \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"prompt": "参考图片中的主角身着同一套战袍,在古代演武场上挥舞长剑,动作凌厉,保持脸部与服装一致",
"images": [
{ "url": "https://your-domain.com/character_front.jpg", "role": "reference_image" },
{ "url": "https://your-domain.com/character_side.jpg", "role": "reference_image" },
{ "url": "https://your-domain.com/character_armor_detail.jpg", "role": "reference_image" }
],
"resolution": "720p",
"ratio": "16:9",
"duration": 5
}'
C-2. Python 完整示例(多图参考角色一致性)
import time
import requests
BASE_URL = "https://aihubcc.cc"
API_KEY = "sk-xxx"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
# 传入多张不同角度/细节的主体图片
ref_images = [
"https://your-domain.com/hero_angle_1.png",
"https://your-domain.com/hero_angle_2.png",
"https://your-domain.com/hero_close_up.png"
]
payload = {
"model": "wan3.0-video",
"prompt": "主角在繁华的赛博朋克夜市街道穿行,霓虹倒影,画面忠实再现参考图中的人物外貌与发型细节",
"images": [{"url": u, "role": "reference_image"} for u in ref_images],
"resolution": "1080p",
"ratio": "16:9",
"duration": 5
}
r = requests.post(f"{BASE_URL}/v1/video/generations", headers=HEADERS, json=payload, timeout=60).json()
task_id = r["task_id"]
print(f"[C. 多图参考] 任务提交成功: {task_id}")
while True:
data = requests.get(f"{BASE_URL}/v1/video/generations/{task_id}", headers=HEADERS).json()
if data["status"] == "completed":
url = data.get("video_url") or data["data"][0]["url"]
with open("wan_scene_c_multiref.mp4", "wb") as f:
f.write(requests.get(url, timeout=120).content)
print("多图参考一致性视频已保存!")
break
elif data["status"] in ("failed", "canceled"):
raise RuntimeError(data.get("error"))
time.sleep(5)
场景 D:图 + 视频 + 音频多模态参考(Multimodal Reference)
跨越单一维度的多模态协同创作:传入角色主体图片 、动作参考视频 与节奏音频 。模型将结合参考视频的镜头运动与运镜轨迹、参考音频的节拍/情绪,并映射到参考图的角色身上,输出高精度的动作与视听协同成片。
D-1. curl 示例(图 + 视频 + 音频多模态)
curl -sS -X POST "https://aihubcc.cc/v1/video/generations" \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"prompt": "让画面中的虚拟歌姬跟随参考视频的舞蹈动作起舞,动作节奏与参考音频的高潮卡点完全吻合",
"images": [
{ "url": "https://your-domain.com/singer_character.png", "role": "reference_image" }
],
"videos": [
{ "url": "https://your-domain.com/dance_motion_ref.mp4", "role": "reference_video" }
],
"audios": [
{ "url": "https://your-domain.com/bgm_beat_ref.mp3", "role": "reference_audio" }
],
"resolution": "1080p",
"ratio": "16:9",
"duration": 5
}'
D-2. Python 完整示例(图视音频全模态协同)
import time
import requests
BASE_URL = "https://aihubcc.cc"
API_KEY = "sk-xxx"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
# 组装跨模态素材
payload = {
"model": "wan3.0-video",
"prompt": "角色身形与外貌严格参照图片,动作与运镜跟随参考视频,节奏与节拍跟随音频",
"images": ["https://your-domain.com/actor_portrait.jpg"],
"videos": ["https://your-domain.com/action_scene_ref.mp4"],
"audios": ["https://your-domain.com/audio_tempo_ref.mp3"],
"resolution": "1080p",
"ratio": "16:9",
"duration": 5
}
resp = requests.post(f"{BASE_URL}/v1/video/generations", headers=HEADERS, json=payload, timeout=60)
resp.raise_for_status()
task_id = resp.json()["task_id"]
print(f"[D. 全模态协同] 任务已提交: {task_id}")
while True:
status_resp = requests.get(f"{BASE_URL}/v1/video/generations/{task_id}", headers=HEADERS).json()
st = status_resp.get("status")
print(f"生成进度: {st}")
if st == "completed":
url = status_resp.get("video_url") or status_resp["data"][0]["url"]
with open("wan_scene_d_multimodal.mp4", "wb") as f:
f.write(requests.get(url, timeout=180).content)
print("多模态视听联动视频生成完毕!")
break
elif st in ("failed", "canceled"):
raise RuntimeError(status_resp.get("error"))
time.sleep(6)
场景 E:文件 / 网页链接参考(Doc & Link Reference)
支持将长文档(策划案、剧本、产品白皮书 PDF 等)或公开网页链接直接喂给模型。模型深度解析文档要点或网页的图文资产,生成专业的宣传解说、资讯播报或产品介绍视频。
E-1. curl 示例(文档 + 网页链接参考)
curl -sS -X POST "https://aihubcc.cc/v1/video/generations" \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"prompt": "根据所附产品策划文档与官网产品落地页的内容,制作一段具有科技感的新品发布概念视频",
"files": [
{ "url": "https://your-domain.com/product_brief.pdf", "role": "file" }
],
"links": [
{ "url": "https://your-domain.com/product_landing_page", "role": "link" }
],
"resolution": "1080p",
"ratio": "16:9",
"duration": 5
}'
E-2. Python 完整示例(文档与网页生视频)
import time
import requests
BASE_URL = "https://aihubcc.cc"
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://aihubcc.cc/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://aihubcc.cc/v1/videos/{task_id}/content(附带 Bearer 令牌),网关将自动 302 转发至成片流。
注意事项与最佳实践
按秒 × 分辨率精准计费 :无论文生还是多模态参考,计费单价仅与分辨率档位及 duration 时长挂钩;生成失败不扣费 。
分辨率名实相符 :请求 720p 即出 720p,请求 1080p 即出真实 1080p 高清视频,底层绝不偷换低清降级。
模型版本选择 :
wan3.0-video:全能版,多模态参考适应面最广,性价比极高;
wan3.0-video-prime:优速版,原生 30fps 流畅高帧率、运动画质更细腻且出片速度更快,适合对质感与效率有极高要求的商用场景。
素材访问要求 :所有图片、视频、音频、文档、网页的 URL 必须能被公网直接 GET 访问(避免放在需登录或存在严格防盗链的私有云上);图片支持 Base64 Data URI。
素材互斥守则 :不要在单次请求中将首尾帧与视频/音频/文件/链接混合传入。
内容安全合规 :提示词与所有多模态素材请遵守公序良俗,避免暴力、未成年、涉政等敏感内容,拦截任务不计费。
Qwen 图像生成(通义千问)Image
🖼️ 阿里「通义千问」官方图像模型 (阿里云百炼直出)。支持文生图 (/v1/images/generations)与图生图 / 编辑 (/v1/images/edits 传参考图),同步出图、无需轮询 。返回阿里官方图片直链 、无水印 ;两种都 、按张计费、失败不计费。
模型
模型 定位 计费
qwen-image-3.0-pro通义千问图像 3.0 Pro,高画质文生图 + 图生图 / 编辑 按张
每次调用返回 1 张图 ,按张计费、失败不计费。返回阿里官方直链、无水印 。
接口信息
项 说明
文生图 POST /v1/images/generations(同步 ,返回即出图)
图生图 / 编辑 POST /v1/images/edits(传参考图 image + prompt,在原图上编辑);同模型、同价 ,参考图不额外计费
返回 data[0].url(默认,阿里官方直链)或 data[0].b64_json
鉴权 Authorization: Bearer sk-你的令牌
令牌分组 Wan 或 auto(智能路由)
核心参数
参数 类型 必填 默认 说明
modelstring 是 固定 qwen-image-3.0-pro
promptstring 是 图像描述提示词(中英文均可)
sizestring 否 2528x1696宽×高,如 1024x1024。精确生效 (实测按传入 WxH 原样出图);不传默认约 2528×1696 (≈3:2)。画幅只认 size
aspect_ratiostring ⚠️ 本模型不生效 (会被忽略、仍出默认画幅)。要控画幅请用 size
response_formatstring 否 urlurl(阿里官方图片直链)或 b64_json(base64 内嵌,已实测)
ninteger 否 1每次返回 1 张,保持 n=1;需多张请多次调用
imagestring 否 图生图 / 编辑 (打 /v1/images/edits):参考图,公网 URL 或 base64(data:image/...;base64,)或 multipart 文件(-F "image=@ref.png")。实测参考图会被忠实读取 (原图保留 + 按 prompt 编辑)
⚠️ 画幅用 size(精确 WxH),别用 aspect_ratio (本模型忽略它)。常用:1:1 1024x1024 / 1328x1328、16:9 1664x928、9:16 928x1664;不传则约 2528×1696。输出 PNG 。
示例请求
# 文生图 —— 同步,一次返回即拿到图片(无需轮询)
curl -X POST https://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/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(同模型、同价 ,参考图不额外计费)
curl -X POST https://aihubcc.cc/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://aihubcc.cc/v1/images/edits \
-H "Authorization: Bearer $TOKEN" \
-F "model=qwen-image-3.0-pro" -F "prompt=把它变成柯基脸,保持白色背景" -F "image=@ref.png"
轮询取片
同步接口,无需轮询 :请求返回即拿到结果。默认 data[0].url 为阿里官方图片直链(有有效期,请及时保存);需 base64 内嵌时加 "response_format":"b64_json" 取 data[0].b64_json。
# 默认 url 返回结构:
# {"created":1786957747,"data":[{"url":"https://dashscope-<...>.aliyuncs.com/xxx.png"}]}
curl -L "IMAGE_URL" -o result.png
Python 完整请求
import requests
BASE = "https://aihubcc.cc/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,同模型、同价 ,参考图不额外计费。
画幅只认 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",否则默认拿直链最省事。
快手可灵 · Kling 3.0 / Kling-v3 官方直连 Video
🎬 快手可灵 AI(Kling 3.0)具备顶尖的物理模拟能力与动作连贯性 。本平台以 OpenAI 兼容的异步视频接口提供完整生成能力。支持经典文生视频 、首尾帧图生视频 、多图融合参考 以及 图视多模态混合生成 。按秒计费、失败或审核拦截不计费、默认自带生成音效与 AAC 原生音轨。
模型列表与计费说明(按秒计费 · 全默认有声)
本平台提供三档不同清晰度的固定模型(底层均完整具备多图融合与视频参考能力):
模型名称 档位说明 分辨率 适用场景
kling-v3-standard标准版 720p 性价比首选,适合快速出片与日常生成
kling-v3-pro专业版 1080p 高清写实,光影与细节更丰富
kling-v3-4k4K 超清版 3840×2160 (4K) 影视级超高清成片输出
计费规则 :任务费用 = 实际出片秒数 × 档位每秒单价(例:kling-v3-standard 5 秒 = ,kling-v3-pro 5 秒 = )。失败或审核拦截不计费。成片默认自带生成音效与 AAC 原生音轨。
接口信息
项 说明
提交端点 POST /v1/videos 或 POST /v1/video/generations(标准 JSON,双端点完全等价兼容)
轮询端点 GET /v1/videos/{task_id} 或 GET /v1/video/generations/{task_id}
视频直出预览 GET /v1/videos/{task_id}/content(带 Bearer 令牌鉴权 302 重定向流式返回成片)
下载成片 完成后响应里的 data[0].url(官方腾讯 VOD 高速直链,稳定不过期)
鉴权方式 Authorization: Bearer sk-你的令牌
令牌分组 Kling(或 auto 智能路由分组)
完整参数字典
参数名 类型 必填 默认值 详细说明与取值范围
modelstring 是 模型名,如 kling-v3-standard、kling-v3-pro 或 kling-v3-4k
promptstring 是 画面动作描述,字数上限 2000 字符
negative_promptstring 否 负向提示词,用于过滤低画质、多肢体、杂乱文字等不需要的元素
duration / secondsinteger / string 否 5 生成时长(秒),支持 5 或 10(如 5、10、"5"、"10")
ratio / aspect_ratiostring 否 16:9 视频画幅比例,支持 16:9(横屏)、9:16(竖屏)、1:1(方形)
resolutionstring 否 依模型 视频清晰度,各模型已固定清晰度;亦可通过 resolution 或 size 显式指定
images / image_urlsarray 否 参考图片链接数组或对象数组: • 传入 1 张图片:作为图生视频首帧; • 传入 2 张图片:第一张为首帧 ,第二张为尾帧 ,模型平滑过渡; • 传入对象数组:支持显式指定 role,可选 first_frame(首帧)、last_frame(尾帧)、reference_image(参考图)
videosarray 否 (Omni 多模态专属) 参考视频链接数组,传入视频 URL 用于动作复刻或风格迁移
generate_audioboolean 否 true 是否生成配套音效。本平台默认开启;注:当请求包含参考视频时,模型限制暂不支持同时生成音频
camera_controlobject 否 镜头运镜控制对象(包含 type: "simple" 或 "config"),支持通过各项维度微调运镜动作: • pan:水平平移(左右); • tilt:垂直俯仰(上下); • zoom:镜头变焦推拉; • roll:镜头旋转
调用代码示例
A. 经典文生视频(Text-to-Video)
curl -X POST https://aihubcc.cc/v1/videos \
-H "Authorization: Bearer sk-你的令牌" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-v3-pro",
"prompt": "繁华都市霓虹灯下的雨夜,一个打着雨伞的行人在积水的路面上缓慢行走,写实电影风格,光影斑驳",
"negative_prompt": "画面模糊,低画质,崩坏肢体,水印",
"ratio": "16:9",
"duration": 5
}'
B. 经典图生视频(首尾帧控制)
传入 2 张图片链接:第一张自动作为首帧、第二张作为尾帧,由模型生成过渡画面。
curl -X POST https://aihubcc.cc/v1/videos \
-H "Authorization: Bearer sk-你的令牌" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-v3-pro",
"prompt": "画面由第一张图片的人物微笑平滑过渡到第二张图片的惊讶表情,动作写实自然",
"images": [
"https://example.com/smile_face.png",
"https://example.com/surprised_face.png"
],
"duration": 5
}'
C. 多图融合参考(Omni 特性)
支持传入多张参考图,通过对象指定 role(如角色外观首帧 + 场景风格参考图)。
curl -X POST https://aihubcc.cc/v1/videos \
-H "Authorization: Bearer sk-你的令牌" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-v3-pro",
"prompt": "参考图片一中的女主角和图片二的复古咖啡馆场景,绘制一段平稳摇臂运镜的画面",
"images": [
{
"url": "https://example.com/character.png",
"role": "first_frame"
},
{
"url": "https://example.com/coffee_shop.png",
"role": "reference_image"
}
],
"resolution": "1080p",
"duration": 5
}'
D. 图像参考 + 视频参考多模态混合生成(动作/运镜复刻)
可同时传入参考图与参考视频,实现人物外观由图片决定、主体招式动作与镜头由视频决定的混合生成。
⚠️ 重要注意事项: 当传入参考视频时,平台将根据规则自动关闭音频生成(官方规则:视频参考模式与音频生成互斥),无需客户端额外排查。
curl -X POST https://aihubcc.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://aihubcc.cc/v1/videos/你的任务ID \
-H "Authorization: Bearer sk-你的令牌"
任务完成响应示例(200 OK):
{
"id": "task_zbpGfYv1qStMwLwVtPW8G59KOGfDJr9k",
"status": "completed",
"object": "video.generation",
"data": [
{
"url": "https://gpt2api.aihubcc.cc/d/kling/1251015623-AigcVideoTask-ecdc586e9cf2b2419844a1309e3b3691t"
}
]
}
Python 完整请求示例(全生命周期)
import time
import requests
BASE_URL = "https://aihubcc.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)
注意事项
按秒计费规则 :任务费用 = 实际出片秒数 × 档位每秒单价;失败或审核拦截不计费。
成片默认自带音频 :标准版与专业版成片默认自带生成音效与 AAC 原生音轨;⚠️ 当请求包含参考视频(video reference)时,受官方规则限制:视频参考模式与音频生成互斥,平台将自动关闭音频生成 ,无需客户端额外排查。
双端点全面兼容 :支持 POST /v1/videos 与 POST /v1/video/generations 提交,支持 /content 视频直出预览。
素材公网可访问 :参考图片和参考视频 URL 必须能被公网直接访问下载。
GPT-Image-2(1K / 2K / 4K · 全系列支持同步与异步) Image
📢 全清晰度档位就绪 & 双模态无感升级 :GPT-Image-2 覆盖 1K 基准版、2K 高清版与真 4K UHD 超清版 三大主力档位。全系列所有模型均原生支持默认同步直接出图(完美适配官方 OpenAI SDK 零报错即插即用)与 async: true 异步任务轮询双模态 ,并 100% 保持对存量 POST /v1/videos 视频端点的向下兼容。支持文生图、图生图编辑与 Chat 对话生图。按张固定计费,生成失败不扣费,成品纯净无水印。
输入限制: JSON 请求体最多 8 MiB;参考图可使用公网 HTTPS 直链或完整 data:image/png;base64,...、data:image/jpeg;base64,...,Base64 解码后的参考图合计最多 5 MiB。超过限制会在提交前返回 400,不会扣费。
模型
核心模型名 档位定位 标称长边 / 推荐分辨率 同步能力 (Sync) 异步能力 (Async)
gpt-image-21K 基准版 1024² (1:1), 1536×1024 (16:9), 1024×1536 (9:16) 10~20s 快速出图返回图片 立即返回 task_id,后台轮询取图
gpt-image-2-2k2K 高清版 2048×2048 (1:1), 2048×1152 (16:9), 1152×2048 (9:16) 长连接阻塞出图返回图片 立即返回 task_id,后台轮询取图
gpt-image-2-4k4K 超清版 3840×2160 (16:9 真 4K), 2160×3840 (9:16), 2880² (1:1) 长连接阻塞出图返回图片 立即返回 task_id,后台轮询取图
模型合并说明:
• 模型合并: 原 gpt-image-2-1k 已完全合并进 gpt-image-2,对外统一展示为 gpt-image-2,系统已配置同名平滑兼容映射(历史传参 gpt-image-2-1k 完全正常处理);
• 遗留模型下线: 历史遗留模型(gpt-image-2-1k-async、gpt-image-2-3.5k)已彻底下线停运,请直接使用对应标准档位;
• 风格变体: 若需要 Adobe Firefly 真实摄影质感或艺术插画设计,请查看邻近页签「GPT Image 2.5 」。
接口信息
端点 方式 默认模态 功能说明
POST /v1/images/generationsJSON 同步直出(传 async:true 转异步) 官方原生文生图标准端点,完美适配官方 OpenAI SDK
POST /v1/images/editsmultipart / JSON 同步直出(传 async:true 转异步) 图生图 / 图像编辑(参考图 + 提示词描述修改)
POST /v1/chat/completionsJSON 同步直出 Chat 对话生图(在 messages content 中传入 Base64 image_url)
POST /v1/videos 或 /v1/video/generationsJSON 异步任务轮询 存量兼容端点 :100% 保持历史行为返回 task_id,老脚本零改动、零报错
双模态调用机制(同步 / 异步自由切换)
模式 A:默认同步阻塞模式(全面支持官方 OpenAI SDK)
无需额外参数,直接调用即可。网关内部自动等待生成完毕并返回标准 ImageResponse 结构:
{
"created": 1726567200,
"data": [
{
"url": "https://gpt2api.aihubcc.cc/simg/yaimg_xxx.png",
"b64_json": null
}
]
}
开发优势: 完美适配 Python client.images.generate()、Node.js openai.images.generate() 等官方 SDK,彻底告别以往报 Task object has no attribute 'data' 的痛点!
模式 B:显式异步任务模式(适合大批量并发 / 长耗时任务)
在请求 Body 中传 "async": true,或在 URL 中添加 ?async=true,或携带 Header X-New-Api-Async: true。接口将立即返回任务 ID,规避客户端长连接超时:
{
"id": "task_GEDO8H85WHxQV98z4tM2kEfJMcVxzLlq",
"status": "queued",
"created_at": 1726567200
}
轮询端点: GET /v1/images/generations/{id}(老客户端调 GET /v1/videos/{id} 亦通用);
取片端点: GET /v1/images/generations/{id}/content 或响应内的 image_url / data[0].url。
统一参数字典与多模态输入
参数名 类型 必填 默认值 详细说明与取值范围
modelstring 是 模型名:gpt-image-2、gpt-image-2-2k、gpt-image-2-4k(兼容历史名 gpt-image-2-1k)
promptstring 是 画面动作与细节描述词。按字符数计(中英文一视同仁),建议 ≤ 8000 字符(硬上限约 1 万字符)
sizestring 否 依模型 精确像素分辨率(如 1024x1024、2048x2048、3840x2160 等);size 优先级高于 aspect_ratio
aspect_ratio / ratiostring 否 1:1 画幅比例,支持 1:1、16:9、9:16、4:3、3:4。平台自动根据模型清晰度档位换算为对应标准像素尺寸
response_formatstring 否 url 返回格式:url(默认下载直链)或 b64_json(Base64 编码数据)
asyncboolean 否 false 是否开启异步任务模式。默认 false 为同步直接返图;设为 true 即刻返回 task_id 供轮询
ninteger 否 1 单次生成图片张数,默认 1
图生图 / 参考图(Edits)多模态支持说明
平台支持三种灵活的参考图传递方式:
方式 1(标准表单上传): 使用 POST /v1/images/edits,传 -F "image=@local_file.png"(支持多张重复 -F image=@...,最多 6 张,解码后合计 ≤ 5MB);
方式 2(JSON 统一传参): 使用 POST /v1/images/generations 或 /v1/images/edits,支持在 Body 中传入 image(公网直链或 Base64 data: URI)、images(数组)、input_reference 或 metadata.content,平台全自动兼容提取;
方式 3(Chat 对话生图): 使用 POST /v1/chat/completions,在 messages 数组的 content 中传入 {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,..."}}。
清晰度档位与真 4K 规格详解
模型 推荐分辨率 约等于 像素量 典型用途
gpt-image-21024×1024 (1:1), 1536×1024 (16:9), 1024×1536 (9:16) 1K 基准版 约 105~157 万 头像、缩略图、社媒配图、快速出图
gpt-image-2-2k2048×2048 (1:1), 2048×1152 (16:9), 1152×2048 (9:16) 2K 高清版 约 236~419 万 常规海报、Banner、电商主图
gpt-image-2-4k3840×2160 (16:9), 2160×3840 (9:16), 2880×2880 (1:1)真 4K UHD 约 829 万 宽屏/竖屏海报、视频封面、影视级超高清大图
关于真 4K UHD 规格: gpt-image-2-4k 输出标准 4K UHD 画幅——横版 3840×2160 (16:9)或竖版 2160×3840 (9:16),长边恒 3840,与 4K 电视/显示器同规格。方图推荐输出 2880×2880 或使用 2K 档的 2048×2048。画幅不影响计费,一律 。
4K 各画幅尺寸标准
真 4K 长边恒 3840 ,支持任意非方图比例(不再只有 16:9 / 9:16)。传 aspect_ratio 或 size 即按该比例出图、长边保持 3840。方图 1:1 推荐 2880×2880 或 2K 档 2048² 。下表为实测输出;画幅不影响计费 ,一律 。
aspect_ratio(或 size)实测输出 方向 典型用途
16:9(不传时默认)3840×2160 横 视频封面 / 宽屏壁纸 / 横版海报
9:162160×3840 竖 手机屏 / 竖版海报 / 短视频封面
3:42880×3840 竖 竖版海报 / 电商详情页
1:1 方图2880×2880 / 2048×2048方 社媒方图 / 高清头像
调用代码示例
1. 模式 A:默认同步出图(标准 OpenAI 官方 SDK)
from openai import OpenAI
client = OpenAI(
base_url="https://aihubcc.cc/v1",
api_key="sk-你的生图令牌"
)
# 默认同步直出:原生返回 ImageResponse,无需轮询
response = client.images.generate(
model="gpt-image-2-2k",
prompt="一只可爱的金毛犬在草地上奔跑,高清写真,柔和晨光",
size="2048x2048",
response_format="url"
)
print("图片已生成:", response.data[0].url)
2. 模式 A:默认同步出图(curl)
curl -X POST https://aihubcc.cc/v1/images/generations -H "Authorization: Bearer sk-你的生图令牌" -H "Content-Type: application/json" -d '{
"model": "gpt-image-2-2k",
"prompt": "一只橘猫趴在窗台上晒太阳,水彩画风格,细节丰富",
"size": "2048x2048",
"response_format": "url"
}'
# 直接返回 {"created": 1726567200, "data": [{"url": "https://...", "b64_json": null}]}
3. 模式 B:显式异步任务模式(curl)
# ① 提交任务(传 "async": true,立即返回 task_id)
curl -X POST https://aihubcc.cc/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://aihubcc.cc/v1/images/generations/task_GEDO8H85WHxQV98z4tM2kEfJMcVxzLlq -H "Authorization: Bearer sk-你的生图令牌"
# 完成后响应中 data[0].url 包含图片直链。
# ③ 成片下载(从 completed 响应里的 url 或直接访问 /content)
curl -L "https://aihubcc.cc/v1/images/generations/task_GEDO8H85WHxQV98z4tM2kEfJMcVxzLlq/content" -H "Authorization: Bearer sk-你的生图令牌" -o city_4k.png
4. 图生图 / 原图编辑(Edits 多模态)
# 方式 1:标准 multipart 表单上传(本地文件)
curl -X POST https://aihubcc.cc/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://aihubcc.cc/v1/images/edits -H "Authorization: Bearer sk-你的生图令牌" -H "Content-Type: application/json" -d '{
"model": "gpt-image-2-4k",
"prompt": "保留人物主体不变,将背景改为赛博朋克夜市街道",
"image": "https://cdn.example.com/portrait.jpg",
"aspect_ratio": "16:9"
}'
5. Chat 对话生图(POST /v1/chat/completions)
curl -X POST https://aihubcc.cc/v1/chat/completions -H "Authorization: Bearer sk-你的生图令牌" -H "Content-Type: application/json" -d '{
"model": "gpt-image-2",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "把这张参考图绘制成未来赛博朋克风格的海报"},
{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,<BASE64>"}}
]
}]
}'
6. 存量兼容端点(POST /v1/videos 保持无感)
# 存量老脚本继续请求 /v1/videos,完全保持原有 task_id 异步轮询体验
curl -X POST https://aihubcc.cc/v1/videos -H "Authorization: Bearer sk-你的生图令牌" -H "Content-Type: application/json" -d '{
"model": "gpt-image-2-4k",
"prompt": "a cinematic product poster, ultra sharp",
"aspect_ratio": "16:9"
}'
# 返回 task_id,通过 GET /v1/videos/{task_id} 轮询取片,存量业务零修改
Python 完整异步生命周期脚本(4K 实测)
import time
import requests
BASE_URL = "https://aihubcc.cc/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% 兼容。
提示词长度: 按字符数计(中英文一视同仁),建议控制在 8000 字符以内。
参考图大小: 图生图上传参考图单张及合计解码后建议 ≤ 5MiB,支持 Base64 与公网直链。
错误处理: 400 参数格式错误不会扣费;任务失败或内容安全拦截均自动免计费。
建议
快速交互 / SDK 集成 直接使用默认同步模式,配合官方 OpenAI SDK 无需写轮询逻辑。
大批量并发 / 弱网环境 开启 async: true 异步任务模式,避免 HTTP 长连接超时断开。
4K 宽屏海报 使用 gpt-image-2-4k 搭配 aspect_ratio: "16:9" 或 "9:16",输出标称真 4K(3840×2160 / 2160×3840)。
图生图 支持本地文件 multipart 上传与 JSON 传公网直链,灵活适配各类前端与后端。
GPT-Image 2.5(Flare / Sunburst · 全系列支持同步与异步) Image
🎨 新一代 GPT-Image 2.5 艺术与摄影双引擎 :提供 Flare (真实摄影感与物理光影)与 Sunburst (艺术插画设计与视觉海报)两个画风变体。全系模型均原生支持默认同步直接出图(标准 OpenAI SDK 零报错即插即用)与 async: true 异步任务轮询双模态 ,并 100% 保持对存量 POST /v1/videos 视频端点的向下兼容。支持文生图与图生图编辑。按张固定计费,生成失败不扣费,成品纯净无水印。
模型
核心模型名 变体定位 分辨率规格 调用模态支持
gpt-image-2.5-flare-2kFlare(真实摄影感) 2K(2048×2048) 同步直出 + 异步轮询 + 视频端点兼容
gpt-image-2.5-flare-4kFlare(精细摄影) 真 4K UHD (16:9→3840×2160 / 9:16→2160×3840)同步直出 + 异步轮询 + 视频端点兼容
gpt-image-2.5-sunburst-2kSunburst(艺术插画) 2K(2048×2048) 同步直出 + 异步轮询 + 视频端点兼容
gpt-image-2.5-sunburst-4kSunburst(超精艺术) 真 4K UHD (16:9→3840×2160 / 9:16→2160×3840)同步直出 + 异步轮询 + 视频端点兼容
Flare 与 Sunburst 风格选择说明:
• Flare :真实物理世界质感、商品写实摄影、人像、纪实风光,光影与细节更细腻;
• Sunburst :概念艺术插画、二次元、扁平视觉、海报设计、丰富色彩张力;
两画风变体的分辨率、参考图能力、价格完全一致;原 -sync 冗余后缀模型已全面收敛至主模型,默认支持同步直出。
端点与调用方式
调用模式 请求端点 参数特征 出图机制与说明
同步出图(默认推荐) POST /v1/images/generations 或 /v1/images/edits无需传 async(或 async: false) 标准 OpenAI ImageResponse:直接阻塞并返回图片,任何 OpenAI 官方 SDK(Python / Node)即插即用!
异步任务(图片端点) POST /v1/images/generations 或 /v1/images/edits传 "async": true 或 ?async=true 立即返回 {"id": "task_xxx", "status": "queued"} → 轮询 GET /v1/images/generations/{id} → 读 /content
异步任务(视频端点兼容) 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:92048×1152 3840×2160
9:161152×2048 2160×3840
4:32048×1536 3840×2880
3:41536×2048 2880×3840
调用代码示例
1. 模式 A:默认同步出图(标准 OpenAI 官方 Python SDK)
from openai import OpenAI
client = OpenAI(
base_url="https://aihubcc.cc/v1",
api_key="sk-你的生图令牌"
)
# 默认同步直出:无需轮询,直接返回图片
response = client.images.generate(
model="gpt-image-2.5-flare-2k",
prompt="a single red apple on a white ceramic plate, studio product photo, soft lighting",
size="2048x2048",
response_format="url"
)
print("2.5 Flare 摄影图片生成成功:", response.data[0].url)
2. 模式 A:默认同步出图(curl)
curl -X POST https://aihubcc.cc/v1/images/generations -H "Authorization: Bearer sk-你的生图令牌" -H "Content-Type: application/json" -d '{
"model": "gpt-image-2.5-sunburst-2k",
"prompt": "futuristic flying car soaring through neon cloudy sky, colorful concept art",
"size": "2048x2048",
"response_format": "url"
}'
# 一次返回标准 ImageResponse,直接获取成片 URL
3. 模式 B:显式异步任务模式(curl 4K 示例)
# ① 提交任务(传 "async": true,立即返回 task_id)
curl -X POST https://aihubcc.cc/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://aihubcc.cc/v1/images/generations/task_xxx -H "Authorization: Bearer sk-你的生图令牌"
# ③ 下载成片
curl -L "https://aihubcc.cc/v1/images/generations/task_xxx/content" -H "Authorization: Bearer sk-你的生图令牌" -o flare_4k.png
4. 图生图 / 原图编辑 · POST /v1/images/edits
用 POST /v1/images/edits 上传原图文件 + 提示词描述改动;亦可在 /v1/images/generations JSON Body 中传入 image 直链或 Base64:
curl -X POST https://aihubcc.cc/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"
注意事项
双模态切换: 默认直接同步返回图片(适配官方 OpenAI SDK);传入 async: true 时进入异步任务模式,返回 task_id 供轮询。
鉴权约定: 请求均需携带 Authorization: Bearer sk-你的生图分组令牌。
计费规则: 按张固定计费、生成失败不扣费、成品纯净无水印。
图生图编辑输出尺寸: 编辑模式输出尺寸由模型自适应分配,需精确指定分辨率请使用文生图。
ChatGPT 官方线路生图(Token 实量计费) Official
🛡️ OpenAI 官方线路 & C2PA 官方正版鉴真 :
本系列模型使用 OpenAI 官方线路,严格按照 OpenAI 官方 Input/Output Token 计量算法扣费。生成图像均内嵌官方不可篡改的 C2PA 鉴真元数据。支持 1024×1024、2560×1440(2K)、3840×2160(真 4K)等任意标准画幅与长宽比,无任何后期超分或画质压缩,成品纯净无水印。实际价格以控制台显示为准。
一、模型与计费方式
模型名称
风格定位与特点
所属分组
gpt-image-2-token
OpenAI 第二代官方旗舰生图底座,支持全分辨率与自由画幅
Chatgpt
gpt-image-2.5-flare-token
Flare 摄影变体:真实物理世界光影、商品静物、人像纪实
Chatgpt
gpt-image-2.5-sunburst-token
Sunburst 艺术变体:概念艺术插画、海报设计、视觉张力
Chatgpt
📌 分组使用说明:
- 本系列模型属于 Chatgpt 分组;
- 平台的 default 分组令牌已自动连通,可直接发起调用;若新建专用令牌,请在分组中勾选 Chatgpt;
- 按输入与输出 Token 实量计费,任务失败系统 100% 自动返还 Quota。
二、实测尺寸与画幅矩阵(实测输出分辨率与 Token 消耗)
经平台真机生产验证,本系列模型支持以下 8 档标准尺寸规格。系统原生直出对应画幅,真实输出像素与消耗 Token 实测对照如下:
分辨率档位
尺寸参数 (size)
画幅比例
实测输出分辨率
实测 Token 输出消耗
典型业务场景
1K 标清
1024x1024
1:1 方屏
1024 × 1024
196 image tokens
社交头像、商品正方形缩略图、ICON 设计
1K 标清
1536x1024
3:2 横屏
1536 × 1024
158 image tokens
单反横版摄影、文章博客配图、风景大片
1K 标清
1024x1536
2:3 竖屏
1024 × 1536
158 image tokens
人像全身写真、手机竖屏壁纸、角色立绘
2K 高清
2560x1440
16:9 横屏
2560 × 1440
205 image tokens
2K 桌面壁纸、视频 16:9 封面、演示文稿展板
2K 高清
1440x2560
9:16 竖屏
1440 × 2560
205 image tokens
小红书/抖音高清封面、移动端信息流海报
真 4K 超清
3840x2160
16:9 横屏
3840 × 2160
371 image tokens
影视级真 4K 巨幕壁纸、高精微距摄影、印刷海报
真 4K 超清
2160x3840
9:16 竖屏
2160 × 3840
371 image tokens
商用超清竖版灯箱、展会大型展架、精细排版设计
真 4K 超清
2880x2880
1:1 方屏
2880 × 2880
659 image tokens
超高精细度方形印刷画、高密度艺术设计
📌 尺寸调用避坑要点:
1. 严格使用白名单 size :请传表格中支持的宽×高规格字符串(如 "1024x1024"、"2560x1440"、"3840x2160" 等),请勿传入非白名单尺寸(如 1792x1024 或 2048x2048);
2. 原生返回 b64_json(内嵌不可篡改 C2PA 鉴真元数据) :官方原生接口直接返回 Base64 图片数据(单张约 1.5MB~6MB,PNG 格式),客户端解码写入本地文件即可,永久免除第三方临时直链过期失效或跨域受阻问题;请求体中无需且请勿传 response_format: "url"。
三、调用方式与完整代码示例
采用标准 OpenAI POST /v1/images/generations 同步端点,官方 SDK 与常用网络库零改造兼容:
1. Python 官方 SDK 完整脚本(推荐 · 生产可用)
以下为即插即用的 Python 完整脚本,演示从任务提交、多画幅尺寸指定、解码 Base64 自动保存到本地文件的完整流程:
import base64
import os
from openai import OpenAI
# 1. 初始化客户端
client = OpenAI(
base_url="https://aihubcc.cc/v1",
api_key="sk-你的API令牌" # default 分组令牌或 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)")
except Exception as e:
print(f"❌ 生图失败: {e}")
return None
if __name__ == "__main__":
# 示例 A: 真实摄影 Flare 变体生成真 4K 宽屏风景大图
generate_official_image(
model="gpt-image-2.5-flare-token",
prompt="a cinematic macro shot of a dewdrop on a fresh monstera leaf, early morning golden light, 8k professional photography",
size=SIZES["4k_landscape"],
output_path="monstera_leaf_4k.png"
)
# 示例 B: 概念艺术 Sunburst 变体生成 2K 手机竖屏概念插画
generate_official_image(
model="gpt-image-2.5-sunburst-token",
prompt="a futuristic cyberpunk samurai standing on a neon rain rooftop, vibrant colors, artistic poster",
size=SIZES["2k_portrait"],
output_path="cyberpunk_samurai_2k.png"
)
2. Python requests 库原生调用脚本
import requests
import base64
API_URL = "https://aihubcc.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("✅ 图片生成成功并落盘!")
else:
print(f"❌ 失败 [{response.status_code}]: {response.text}")
3. cURL 命令行请求示例
# 1. 概念艺术 Sunburst 变体 · 1024x1024 方屏
curl -X POST https://aihubcc.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://aihubcc.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"
}'
四、核心优势与版本选型指南
官方真 4K 原生渲染 :支持 size: "3840x2160"、"2160x3840" 与 "2880x2880" 原生真 4K 输出,画面微观细节与文字边缘锐利清晰,绝非低清后期超分插值拉伸;
纯净交付与正版鉴真 :全系生成图片默认无水印,保留完整色彩动态范围,且内嵌不可篡改的 C2PA 官方正版数字鉴真签名;
业务版本选型建议 :
走量与日常高性价比场景 :选用 gpt-fast 分组下的按次生图模型。
高端商用、精细画面与版权鉴真场景 :选用本系列 Chatgpt 分组下的 -token 官方线路版,使用官方原版画质并按 Token 实量计费。
反重力 Antigravity(Claude + Gemini 图文)
基于 Google Antigravity 免费额度的独立分组,提供 Claude (Opus / Sonnet 4.6)+ Gemini 文本 + 原生 4K 出图 。标准 OpenAI 兼容接口,支持 function call 。令牌分组 gemini-anti。
模型
模型 类型
claude-opus-4-6-thinkingClaude 顶配·带思考
claude-sonnet-4-6Claude 均衡
gemini-3.1-pro-lowGemini Pro 文本
gemini-3-flashGemini Flash 文本
gemini-3.6-flash-highGemini Flash 高质
gemini-3.1-flash-image-4k原生 4K 出图(5632×3072)
以上为 gemini-anti 分组卖价(已含分组倍率)。实际以模型广场为准。
接口信息
项 说明
请求 POST /v1/chat/completions
Base URL https://aihubcc.cc
令牌分组 gemini-anti
Function Call 支持(tools / tool_choice)
流式 支持("stream": true)
核心参数
参数 类型 必填 说明
modelstring 是 见上表;Claude / Gemini / 4K 出图切换 model 即可
messagesarray 是 OpenAI 标准对话消息
streambool 否 true 开启流式
tools / tool_choicearray / string 否 Function Call(Claude / Gemini 均支持)
temperature / max_tokens 等否 OpenAI 标准采样参数
提交方式
文本对话、Function Call、4K 出图全部走同一端点 POST /v1/chat/completions,切换 model 即可。4K 出图(gemini-3.1-flash-image-4k)的图片在响应 choices[0].message.images[].image_url.url(data:image/jpeg;base64)返回。
示例:Claude 对话
curl https://aihubcc.cc/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [{"role":"user","content":"用一句话解释量子纠缠"}]
}'
示例:4K 出图
图像通过对话接口返回,结果在 choices[0].message.images[].image_url.url(data:image/jpeg;base64)。强制输出 4K(5632×3072)。
curl https://aihubcc.cc/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image-4k",
"messages": [{"role":"user","content":"一只戴宇航头盔的柴犬,电影级布光"}]
}'
示例:Function Call
curl https://aihubcc.cc/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [{"role":"user","content":"北京天气如何"}],
"tools": [{"type":"function","function":{
"name":"get_weather",
"parameters":{"type":"object","properties":{"city":{"type":"string"}}}
}}]
}'
轮询取片
本分组均为同步对话接口 (含 4K 出图,图片直接在对话响应里返回),无需轮询 task_id。
Python 完整请求
from openai import OpenAI
client = OpenAI(api_key="sk-xxx", base_url="https://aihubcc.cc/v1")
resp = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)
注意事项
令牌需在 gemini-anti 分组下
gemini-3.1-flash-image-4k 固定输出 4K,按次计费(,失败不计费
Claude 与 Gemini 均走同一 /v1/chat/completions,切换 model 即可
建议
Claude 顶配 用带思考版 claude-opus-4-6-thinking;日常均衡用 claude-sonnet-4-6。
要 4K 出图 用 gemini-3.1-flash-image-4k(固定 5632×3072,按次 ,图在 message.images[].image_url.url 取。
Claude 与 Gemini 同端点 ,用 OpenAI SDK 只换 model 即可无缝切换;支持 tools function call 与 stream。
Seedance 自定义线路
字节跳动 Seedance 系列的自定义线路 ,与「Seedance 官方直连」相互独立、单独维护。共 4 个模型 :sd-2.0-mini / sd-2.0-fast / sd-2.0-standard 与新一代 sd-2.5。支持 480p / 720p 两档清晰度 ,使用 OpenAI 兼容的异步视频接口:提交任务后轮询,完成时读取 video_url 获取成片。各模型调用方式完全一致,切换只需改 model 字段。
本线路为 sd-videos 分组,与导航中另外两套 Seedance 服务是独立通道、独立模型;请勿跨线路混用模型名。
模型
模型 480p 720p 时长
sd-2.0-mini固定 15 秒 按次 经济档,走量首选
sd-2.0-fast固定 15 秒 按次 快速出片,性价比高
sd-2.0-standard固定 15 秒 按次 标准质量,画质更佳
sd-2.5默认 15 秒 · 可自定义 按秒 新一代 2.5,按秒计费更灵活
用 resolution 选清晰度(480p / 720p,默认 720p),两档价格不同、见上表。sd-2.0-mini/fast/standard 为按次计费 ,单次固定 15 秒成片、与传入时长无关;sd-2.5 为按秒计费 = 单价 × duration(例:sd-2.5 720p 5 秒 = 、默认 15 秒 = )。失败不计费。
接口信息
项 说明
提交任务 POST /v1/videos(JSON)
轮询进度 GET /v1/videos/{task_id}
下载成片 完成后响应里的 video_url(可直接下载 / 嵌入的直链)
鉴权 Authorization: Bearer sk-你的令牌
令牌分组 sd-videos(智能 auto 分组亦可路由)
核心参数
参数 类型 必填 说明
modelstring 是 sd-2.0-mini / sd-2.0-fast / sd-2.0-standard / sd-2.5 之一
promptstring 是 视频描述提示词(文生视频)
aspect_ratiostring 否 画幅:16:9(默认)、9:16、1:1;也接受 size(如 1280x720),系统就近吸附到这三种
resolutionstring 否 清晰度:480p / 720p(默认 720p),两档价格不同、见模型价格表
durationinteger 否 时长秒数,仅 sd-2.5 生效 (默认 15 秒);sd-2.0-* 固定 15 秒、传入无效
referenceImagesarray 否 参考图(图生视频),元素为公网 URL 或 data:image/...;base64,;可传多张
referenceVideosarray 否 参考视频,公网 URL 或 base64
referenceAudiosarray 否 参考音频,公网 URL 或 base64
只传 prompt 即为文生视频;附带 referenceImages 即为图生视频。参考素材均支持公网 URL 或 base64。失败不计费。
示例请求
# 文生视频(sd-2.0-standard,固定 15 秒)
curl -X POST https://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/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://aihubcc.cc/v1/videos/TASK_ID -H "Authorization: Bearer sk-xxx"
# status=completed 后用响应里的 video_url 直链下载
curl -L "VIDEO_URL" -o result.mp4
轮询到 completed/failed 停止;video_url 为可直接下载 / 嵌入的直链;失败不计费 。
Python 完整请求
import time, requests
BASE = "https://aihubcc.cc/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 自定义时长(按秒计费)。
画幅 仅支持 16:9 / 9:16 / 1:1 三种,其它比例会就近吸附;竖屏传 aspect_ratio":"9:16"。
下载 video_url 为直链,请及时转存。失败不计费。
没有找到相关内容
请尝试搜索模型名称、参数或接口路径。