AIHUB Docs

Omni 视频生成

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

模型

模型能力计费
omni-fast文生视频 / 图生视频按次
omni-fast-v2v视频转视频(V2V)按次
omni-fast-no-water文生/图生视频(无水印)按次
omni-fast-v2v-no-waterV2V(无水印)按次
无水印模型输出经过自动清洗处理,完成前可能多一个 processing 阶段,稍慢。失败不计费。

接口信息

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

核心参数

参数类型必填默认说明
modelstring-模型名,见上表
promptstring-视频描述提示词(无我方硬性长度上限,走服务 Gemini)
aspect_ratiostring16:9画幅比例:16:9(横)、9:16(竖)
seconds / durationstring/int10时长秒数(接收但当前 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"
  }'

示例:图生视频

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"

轮询取片

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", "Content-Type": "application/json"}

# 提交
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "omni-fast",
    "prompt": "雨夜霓虹街道,镜头缓慢推进",
    "aspect_ratio": "16:9"
}).json()
task_id = task["task_id"]

# 轮询
while True:
    time.sleep(8)
    s = requests.get(f"{BASE}/videos/{task_id}", headers=H).json()
    if s["status"] == "completed":
        print("下载:", s["data"][0]["url"])
        break
    if s["status"] == "failed":
        print("失败:", s.get("error"))
        break
    print(f"进度: {s.get('progress', 0)}%")

注意事项

  • 视频生成通常需要 1-5 分钟,请设置足够的超时时间
  • 轮询间隔建议 5-10 秒
  • 参考图最多 5 张,每张 ≤8MB
  • V2V 源视频:最多 2 个,每个 ≤8MB 且 ≤1920x1080
  • 画幅仅支持 16:9(横屏)和 9:16(竖屏),9:16 为尽力而为模式
  • 输出分辨率固定 720p
  • 包含可识别真人面孔的参考图可能触发内容策略(系统会自动尝试处理)
  • 被内容策略拒绝的图片会明确提示「请更换图片」
  • 服务重启时进行中的任务自动恢复

建议(如何提高视频成功率)

omni 视频偶发失败(被拒 / 误出图 / 超时重试)多与调用方式有关。高成功率用户普遍遵循以下几点,可显著降低失败率:

  • 优先「图生视频」,少用纯文生视频 —— 附参考图(或首帧图)再生成,模型能明确知道你要的是视频,极少被误路由成图片或拒绝;纯文字描述生成视频最容易失败。
  • 参考图 + 明确编号映射 —— 多图时在提示词里把每张图讲清楚,例如:图1是角色奥莉维亚,图2是角色达米安,图3是场景咖啡馆…,消除歧义。
  • 加身份 / 一致性约束 —— 需要角色一致时明确指示,例如:【人脸身份最高优先级】以图2的模特为最终视频主体,保持面部一致
  • 内容合规 —— 避开暴力 / 血腥 / 成人 / 名人肖像等政策敏感内容,这类最容易被直接拒绝;商用带货、正常剧情通过率高。
  • 模型选择 —— 常规用 omni-fast / omni-fast-no-water(无水印);omni-fast-v2v(视频转视频)成功率相对低,非必要少用。
  • 失败自动重试 —— 偶发失败属正常(Gemini 服务波动),客户端做失败自动重试即可,系统也会自动换号重试。
一句话:带参考图 + 讲清每张图是谁 / 什么场景 + 内容合规,成功率能明显提升。

Veo-Clean 去水印

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

模型

模型能力计费
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-高速

核心参数

参数类型必填默认说明
modelstring-固定 veo-clean
input_videofile-带水印视频文件,≤20MB,必须 multipart 上传
promptstringremove watermark一般无需填写;无长度限制

提交方式

仅支持 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 "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"}, 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 高速文本模型

高速分组的文本 / 多模态对话模型,使用独立 -fast 名称,与 Official 分组的官方标准模型名和价格完全隔离。OpenAI Chat 兼容。

模型

模型能力计费
gemini-3.1-flash-lite-fast轻量高速文本 / 多模态按 token
gemini-3.5-flash-fast高速文本 / 多模态按 token
不同客户分组倍率可能不同,实际单价以账号「模型广场」为准。高速令牌请用带 -fast 后缀的名称。

接口信息

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

核心参数

参数类型必填默认说明
modelstring-见上表 -fast 名称
messagesarray-OpenAI 消息数组;content 可含图片实现多模态
streamboolfalse是否流式返回
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.5-flash-fast",
    "messages": [{"role":"user","content":"你好"}]
  }'

轮询取片

同步返回,无需轮询。一次 POST 即得 choices[0].message.contentstream: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.5-flash-fast",
    messages=[{"role": "user", "content": "用一句话介绍杭州"}],
)
print(resp.choices[0].message.content)

注意事项

  • 务必使用带 -fast 后缀的模型名(与 Official 分组隔离,价格不同)。
  • 按 token 计费,分组倍率不同单价不同,以模型广场为准。
  • 支持多模态:content 里可带图片 URL / base64。

建议

  • 直接用 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"
  }'

核心参数

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

提交方式

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

画幅与方向(size)

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

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

参考图(图生图 / 编辑)

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

字段类型说明
imagestring 或 string[]单张参考图(字符串)或多张参考图(数组)均可
imagesstring[]多张参考图数组(与 image 等效)
maskstring蒙版图,局部重绘可选
curl -X POST https://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 接口生成音乐。同步返回(约 30–60 秒),结果是一个可直接下载的音频链接(MP4/M4A,无需鉴权即可 GET 下载)。

模型

模型令牌分组
gemini-musicgemini-高速
令牌分组必须为 gemini-高速(或 gemini-低速),否则返回"无可用渠道"。失败不计费。

请求示例

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,适合科技产品广告"}]
  }'

返回示例

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

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

从 content 中取出形如 .../v1/audio/aud-xxxx/content 的 URL,直接 GET 即可下载音频(无需带 Authorization)。也支持 "stream": true,链接会在流式结束的那条消息里返回。

下载域名随所用平台不同:平台 A → download.oaibox.xyz,平台 B → download-2.oaibox.xyz。链接为生成后即时缓存,建议尽快下载保存。

Flow · Veo 3.1 视频

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

模型

模型能力计费
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-1flow-veo-3-1-fast
promptstring-画面、主体、动作、镜头和音频意图;建议写清主体数量与运动方向。无我方硬性长度上限(走服务 Veo)
secondsstring / number-推荐字符串如 "4"。当前最低已验证 4 秒;实际成片可能被服务归一化为默认时长,以完成任务媒体信息为准
durationnumber / string-seconds 的兼容写法,例如 4;不要同时传两个不同值
resolutionstring-兼容字段,建议改用官网式 video_resolution;当前已验证 720p / 1080p
sizestring-像素尺寸 1280x720/720x1280/1920x1080/1080x1920,或官网式纵横比 16:9/9:16(须同时传 video_resolution
video_resolutionstring-官网式清晰度 720p/1080p。仅当 size 传纵横比时使用;网关转换为等价像素后发送
aspect_ratiostring-可传 16:9/9:16 作画幅意图;实测可提交,但服务可能归一化输出画幅
image_urlstring-单张图生视频主图;公网 HTTPS URL 或 data:image/...;base64,...
first_image_urlstring-首帧图片 URL 或 data URI;可单独使用,等同单图生视频
last_image_urlstring-尾帧图片 URL 或 data URI;必须与 first_image_url 成对,形成首尾帧过渡
imagesstring[]-多图参考数组;最多 3 张。每个元素是公网 HTTPS URL 或 data URI
input_reference/image_referencestring/file-本组不支持,实测返回 HTTP 403。单图请用 image_url
画幅与清晰度映射(已实测):官网式 size=16:9 + video_resolution=720p 等价于 1280x72016:9 + 1080p 等价于 1920x1080;竖屏对应 720x1280 / 1080x1920。不能传 4k 或其他未支持比例。
图片数量边界(已实测):单图首帧 1 张;首尾帧固定 2 张;多图参考 images 最多 3 张,第 4 张会在执行阶段返回 INVALID_ARGUMENT。首尾帧请求不要再混入 images

提交方式

当前公开契约是 JSON + URL / data URIinput_reference/multipart 文件字段实测 403,不支持)。本地图片先转 data URI,再放入 image_urlfirst_image_urllast_image_urlimages

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_url\": \"data:image/jpeg;base64,$IMAGE_B64\"
  }"

示例请求

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

BASE_URL="https://AIHUB-2.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

官网式画幅 + 1080p

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": "6", "size": "16:9", "video_resolution": "1080p"
  }'

单图生视频(I2V / 首帧)

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_url": "https://cdn.example.com/start.jpg"
  }'

首尾帧过渡(固定两张图)

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", "resolution": "720p",
    "first_image_url": "https://cdn.example.com/first.jpg",
    "last_image_url": "https://cdn.example.com/last.jpg"
  }'

多图参考(最多 3 张)

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 的场景,参考图 3 的光线风格,镜头缓慢推进",
    "seconds": "4", "resolution": "720p",
    "images": [
      "https://cdn.example.com/character.jpg",
      "https://cdn.example.com/scene.jpg",
      "https://cdn.example.com/style.jpg"
    ]
  }'

轮询取片

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://AIHUB-2.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。若立刻请求 /content409 video_not_ready,再查询一次任务后下载返回的 URL。
  • failed:本次任务不计费;修改提示词 / 图片 / 参数后再提交。
  • 成片实际时长、宽高可能与请求的 seconds/resolution/aspect_ratio 不完全相同,以完成任务和媒体探测为准。

建议

  • 当前最低已验收组合:seconds="4" + 720p。成片可能被归一化(如 4 秒→8 秒),不是可依赖的固定规格。
  • 单图 I2V 用 1 张;首尾帧用固定 2 张;多图参考 images 最多 3 张,第 4 张会失败。
  • 图片用 JPEG/PNG/WebP,公网 HTTPS 或 data URI;确保图片无需登录 / Referer / 临时 Cookie。
  • 提示词写清"图 1 是谁 / 做什么""首帧到尾帧如何过渡",比堆素材更稳定。
  • 示例中的令牌 / URL / 任务 ID 均为占位符,勿把真实令牌提交到前端或公开仓库。

反重力 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 URLhttps://AIHUB.aihubcc.cc
令牌分组gemini-anti
Function Call支持(tools / tool_choice
流式支持("stream": true

核心参数

参数类型必填说明
modelstring见上表;Claude / Gemini / 4K 出图切换 model 即可
messagesarrayOpenAI 标准对话消息
streambooltrue 开启流式
tools / tool_choicearray / stringFunction 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.urldata:image/jpeg;base64)返回。

示例:Claude 对话

curl https://AIHUB.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.urldata:image/jpeg;base64)。强制输出 4K(5632×3072)。

curl https://AIHUB.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://AIHUB.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://AIHUB.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

官方 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 URLhttps://AIHUB.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://AIHUB.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://AIHUB.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://AIHUB.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://AIHUB.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://AIHUB.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 端点。

Seedance 2.0 视频生成

⚠️ 部分高级参考功能维护升级中(临时):升级期间 9 图参考暂降为 ≤4 图全能参考「933」暂为 4 图 + ≤3 视频 + 1 音频音频参考暂为 ≤1@人物一致性绑定暂不可用;恢复后本提示自动撤除。其余功能正常:文生视频 / 图生视频(多图 ≤4)/ 参考视频 ≤3 / 参考音频 ×1 / 首尾帧 / 单图图生视频,480p·720p 全档位。

基于 Seedance 2.0 的视频生成服务。各模型调用方式完全一致,切换只需改 model 字段。支持文生视频、图生视频、多参考图(≤9)、参考视频(≤3)、参考音频(≤3)、首尾帧过渡;提供 480p / 720p / 1080p / 4K 多档清晰度。

模型

按秒计费系列(4-15 秒任意整数)

模型版本定位全能参考计费duration
Seedance-2.0-mini-480p480pmini 档,最低价位,走量首选433按秒4-15
Seedance-2.0-fast-480p480p经济档,快速出片433按秒4-15
Seedance-2.0-480p480p经济档,标准质量,成本最低433按秒4-15
Seedance-2.0-mini-720p720pmini 档,高清最低价,走量首选433按秒4-15
Seedance-2.0-fast-720p720p高清快速出片,性价比高433按秒4-15
Seedance-2.0-720p720p高清标准,质量更佳433按秒4-15
Seedance-2.0-1080p1080p超清标准,最高画质,大屏/商用首选833按秒4-15
Seedance-2.0-4k4K4K 超高清,顶级画质,商用大屏首选833按秒4-15

Pro 满血系列 · 按次固定 15 秒(画质更强、自带 AI 生成音轨;调用方式与上表完全一致,无需传 duration

模型版本定位全能参考计费时长
Seedance-2.0-pro-mini-480p480p Pro满血经济档,走量首选933按次固定 15 秒
Seedance-2.0-pro-fast-480p480p Pro满血快速档933按次固定 15 秒
Seedance-2.0-pro-480p480p Pro满血标准档,最佳质量933按次固定 15 秒
Seedance-2.0-pro-mini-720p720p Pro高清满血经济档,走量首选933按次固定 15 秒
Seedance-2.0-pro-fast-720p720p Pro高清满血快速档933按次固定 15 秒
Seedance-2.0-pro-720p720p Pro高清满血标准,顶级质量933按次固定 15 秒
按秒计费 = 单价 × duration(例:Seedance-2.0-720p 8 秒 = )。Pro 满血按次计费,固定 15 秒成片、与时长无关,暂不支持首尾帧。全能参考数字 = 图·视频·音频张数上限(如 933 = 9 图 + 3 视频 + 3 音频)。失败不计费。

接口信息

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

核心参数

参数类型必填说明
modelstring上表按秒 8 档或 Pro 按次 6 档之一
promptstring视频描述提示词,≤5000 字符(含 @image1/@video1 等引用文字,超出以 400018 失败)
aspect_ratiostring16:9(默认)、9:161:121:93:44:3
durationinteger时长秒数 4-15(Pro 按次档固定 15 秒、无需传)
image_urlstring单张主参考图(公网 URL / base64 / multipart)
reference_image_urlsarray多参考图,与 image_url 合计 ≤9。别名 reference_images/extra_images/input_reference;单张 reference_image元素可为 url 字符串或 {"url","name"} 对象(推荐,用于 @人物 绑定)
reference_image_namesarray参考图对应人物/主体名,与 urls 同序一一对应;把 prompt@名字 绑定到正确的图。别名 reference_names
reference_image_rolesarray参考图角色,与 urls 同序对应subject=人物主体 / background=背景(自动声明"仅作场景,不得生成人脸",治多图融合多余头/重影)。别名 reference_roles
reference_videos/reference_videoarray/string参考视频 ≤3(mp4/mov,单条 2-15s,24-60fps,≤50MB,总 ≤15s)。别名 extra_videos
reference_audios/reference_audioarray/string参考音频 ≤3(mp3 等,@audio1 引用,须配 ≥1 张主图)。别名 audio_url/extra_audios
first_image_url/last_image_urlstring首尾帧过渡(成对提供)

参考素材字段详细规格与要求:

  • 输出:H.264 / 24fps,含 AAC 立体声同步音轨,无水印。720p 约 1280×720;480p 随画幅(4:3 约 752×560)。画幅支持 16:9 / 9:16 / 1:1 / 21:9 / 3:4 / 4:3 六种。
  • 参考图(单张/多张统一用 reference_image_urls:单张传 1 个元素、多张最多 9 个。三种传法任选——公网 http(s) 链接data:image/...;base64, 直传(免图床)、multipart 文件上传(字段 image-F image=@photo.jpg)。输入图要求:JPEG/PNG/WEBP,长边 ≤4000px(每边 ≥300px),宽高比 0.4–2.5,≤30MB。prompt@image1@image9 引用。
  • image_url 兼容保留:旧单张主图字段仍可用,与「reference_image_urls 传 1 张」效果一致;同时传时 image_url 作第 1 张、其余依次,合计 ≤9。
  • 参考图命名(多角色必看)prompt@名字 指代角色时,需告诉我们每张图对应谁,否则易「人物与参考图对不上」。① 推荐·对象数组reference_images 元素 {"url":"…","name":"志强"},名字跟图走不错位;② 平行数组reference_image_names:["志强","清雅"] 须与 urls 同序。我们会在 prompt 最前自动补绑定声明,你的 prompt 一字不改;不传名字=维持现状。
  • 参考图角色(治多图融合"背景被当人/多余脸"):背景图标 role:"background"、人物图标 role:"subject"(或给 name 即视为主体)。① 对象数组 {"url":"…","role":"background"};② 平行数组 reference_image_roles:["subject","background"] 同序。取值 subject(别名 person/face/人物/主体…)、background(别名 bg/scene/背景/场景…)。不标=维持现状。
  • 参考视频reference_videos(或单个 reference_video),≤3 个@video1… 引用。要求 mp4/mov、单条 2–15 秒、24–60fps、≤50MB,总时长 ≤15 秒
  • 参考音频reference_audios(或 reference_audio/audio_url),≤3 个@audio1… 引用。格式 mp3(支持 wav/m4a 等)。音频须搭配 ≥1 张主图
  • 首尾帧过渡:同时给 first_image_urllast_image_url固定 2 张、须成对;该模式不接受额外参考图
  • 以上素材均支持公网 URL 或 base64(如 data:audio/mpeg;base64,)。
  • 字段命名完全兼容 Seedance 官方接口:参考图接受 reference_image_urls(推荐)/reference_images/extra_images/input_reference,单张 reference_image;参考视频接受 reference_videos/reference_video/extra_videos

提交方式

JSON 或 multipart。无需传"模式"参数——服务端按传入的素材字段自动判定:

模式用途最少必传可叠加如何触发
1 文生视频纯文字生成prompt只传 prompt,不带素材
2 图生视频图驱动,可多参考图prompt + ≥1 张图多图共 ≤9reference_image_urls(1~9 张),不带视频;image_url 兼容
3 全能参考图+视频+音频混合prompt + ≥1 图图≤9、视频≤3、音频≤3(933)reference_videos/reference_audios,至少配 1 张图
4 首尾帧开始→结束过渡prompt + first_image_url + last_image_url(成对)同时传 first + last
全能参考 933:单次最多 9 图 + 3 视频 + 3 音频,在 prompt@image1…/@video1…/@audio1… 引用。音频/视频参考须至少配 1 张主图。首尾帧固定 2 张,不接受额外参考图。

常见错误(请避开):

❌ 错误用法结果✅ 正确做法
全能参考只传视频、没传图失败(需要参考图)至少补 1 张主图到 image_url
想要视频参考却只传了图跑成普通图生视频参考视频放 reference_videos
加音频却只传音频、没配图失败(音频须搭图/视频)补 1 张主图,音频放 reference_audios
首尾帧只传了一张报错(须成对)first + last 同时给
multipart 上传多张图只识别 1 张多图用 JSON 传 URL/base64 数组

示例请求

# 文生视频
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{"model":"Seedance-2.0-720p","prompt":"雨夜霓虹街道,镜头缓慢推进,电影感光影","aspect_ratio":"16:9","duration":8}'

# 多素材参考(图/视频/音频,@Image1/@Video1/@Audio1 引用)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{"model":"Seedance-2.0-720p","prompt":"以 @Image1 的人物、@Video1 的运镜,配合 @Audio1 的节奏生成广告",
       "image_url":"https://cdn.example.com/main.jpg","extra_images":["https://cdn.example.com/ref.jpg"],
       "extra_videos":["https://cdn.example.com/ref.mp4"],"extra_audios":["https://cdn.example.com/ref.mp3"],
       "aspect_ratio":"16:9","duration":10}'

# 480p 图生视频 · base64 直传(免图床)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{"model":"Seedance-2.0-fast-480p","prompt":"让画面动起来","duration":5,"image_url":"data:image/png;base64,iVBORw0KGgo..."}'

# 480p 图生视频 · multipart 文件上传(免图床)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -F "model=Seedance-2.0-fast-480p" -F "prompt=让画面动起来" -F "duration=5" -F "image=@/path/to/photo.jpg"

# 多参考图(≤9,@image1/@image2 引用)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{"model":"Seedance-2.0-fast-480p","prompt":"@image1 的人物在 @image2 的场景中行走",
       "image_url":"https://cdn.example.com/person.jpg","reference_image_urls":["https://cdn.example.com/scene.jpg"],"duration":5}'

# 多角色 · 参考图命名(对象数组,name 跟图走不错位)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{"model":"Seedance-2.0-720p","prompt":"@志强 与 @清雅 在医院走廊相遇,@张秋月 从远处走来",
       "reference_images":[{"url":"https://cdn.example.com/zhiqiang.jpg","name":"志强"},
         {"url":"https://cdn.example.com/qingya.jpg","name":"清雅"},
         {"url":"https://cdn.example.com/qiuyue.jpg","name":"张秋月"}],
       "aspect_ratio":"9:16","duration":10}'

# 多图融合 · 标明背景图(避免背景多出人脸/重影)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{"model":"Seedance-2.0-720p","prompt":"@志强 站在空旷的办公室里演讲",
       "reference_images":[{"url":"https://cdn.example.com/zhiqiang.jpg","name":"志强","role":"subject"},
         {"url":"https://cdn.example.com/office.jpg","role":"background"}],
       "aspect_ratio":"16:9","duration":8}'

# 参考视频(≤3,mp4/mov 2-15s;@video1 引用)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{"model":"Seedance-2.0-fast-480p","prompt":"把 @image1 的人物换进 @video1 的画面",
       "image_url":"https://cdn.example.com/person.jpg","reference_videos":["https://cdn.example.com/ref.mp4"],"duration":5}'

# 首尾帧过渡
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{"model":"Seedance-2.0-fast-480p","prompt":"平滑电影感过渡",
       "first_image_url":"https://cdn.example.com/start.jpg","last_image_url":"https://cdn.example.com/end.jpg","duration":5}'

轮询取片

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-你的video-pro令牌", "Content-Type": "application/json"}
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "Seedance-2.0-720p",
    "prompt": "雨夜霓虹街道,镜头缓慢推进,电影感光影",
    "aspect_ratio": "16:9", "duration": 8,
}).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)

注意事项

任务失败时(轮询返回 "status":"failed"),响应 error{"code","message"}(message 为完整中文说明),并冗余顶层 error_code

error_code含义 / 处理
400017参数或参考图不合规(模型 / 时长 / 画幅 / 图片尺寸格式)——按提示修正后重试
400018提示词过长(超过 5000 字符上限)——缩短 prompt 后重试
500341参考视频不符合要求(mp4/mov、单条 2-15 秒、24-60fps、≤50MB,多条总 ≤15 秒)——更换视频后重试
GENERATION_FAILED生成失败(图片不适合 / 无明显主体,或内容被策略拦截)——更换图片或调整提示词重试
TIMEOUT生成超时——稍后重试
NO_ACCOUNT服务繁忙,暂无可用通道——稍后重试
PROMPT_BLOCKED提示词含违禁内容,已拒绝生成(不消耗额度)——修改提示词后重试
  • prompt ≤5000 字符(超出 400018);Pro 满血按次档固定 15 秒、不支持首尾帧
  • 音频 / 视频参考须至少配 1 张主图;首尾帧固定 2 张成对、不接受额外参考图。
  • 参考图 JPEG/PNG/WEBP、长边 ≤4000px、每边 ≥300px、宽高比 0.4–2.5、≤30MB;参考视频总时长 ≤15 秒。
  • 下载 video_url 为直链、有时效,请及时转存。失败不计费。

建议

  • 走量选 mini/fast(480/720),画质优先选标准档,最高画质用 1080p/4K;追求 15 秒满血音轨用 Pro 按次档。
  • 多角色务必用对象数组 reference_images:[{url,name}] 绑定 @人物,防止排序错位;纯背景图标 role:"background" 治多余人脸。
  • 竖屏传 aspect_ratio":"9:16";多图融合把主体图放前、背景图标注清楚。

Seedance 2.5 · 视频编辑(v2v) Video

🎬 字节 Seedance 2.5 官方「视频编辑」模型(火山官方直出)。输入一段视频 + 提示词,输出按提示词重新演绎 / 风格化的视频。用「Seedance 2.0」令牌调用;仅支持视频输入(v2v),按秒计费、失败不计费。

模型

模型分辨率计费
Doubao-Seedance-2.5-720p720p按秒
Doubao-Seedance-2.5-1080p1080p按秒
按秒计费 = 单价 × 输出时长(= 参考视频时长)。失败不计费。

接口信息

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

核心参数

参数类型必填默认说明
modelstring-Doubao-Seedance-2.5-720pDoubao-Seedance-2.5-1080p
promptstring-编辑 / 风格化描述(如"改成夜景赛博朋克风格")。无我方硬性长度上限(走火山官方)
reference_videosarray(URL)-参考视频公网 mp4,单个 4–30 秒,≤10 个(首个决定输出时长 / 画幅)。单个也可用 video_url
secondsinteger-必须 = 参考视频时长(决定计费)
reference_imagesarray(URL)-参考图 ≤30 张,公网 JPEG/PNG/WEBP,风格 / 主体参考
reference_audiosarray(URL / base64)-参考音频 ≤10 个,公网 URL 或 base64,配乐 / 音效参考
单次最多 30 图 + 10 视频 + 10 音频,超出报错、不产任务、不计费。必须至少 1 个参考视频;图 / 音频可选。

提交方式

JSON。仅视频编辑(v2v):必须传 reference_videos——纯文生 / 图生不受支持,会被拒绝、不产任务、不计费。参考图 / 参考音频支持公网 URL 或 base64 data-URI;参考视频仅公网 URL(须无需登录即可下载)。默认生成音频。

示例请求

# 视频编辑(v2v):把一段 8 秒视频改成水彩画风格(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":"把画面改成水彩画风格,柔和色调","reference_videos":["https://你的视频/clip.mp4"],"seconds":8}'

# 多素材参考(可选):1 段视频 + 多张参考图 + 参考音频(视频必带)
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,
       "reference_videos":["https://你的视频/clip.mp4"],
       "reference_images":["https://你的图/1.jpg","https://你的图/2.jpg"],
       "reference_audios":["https://你的音频/bgm.mp3"]}'

轮询取片

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"}
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "Doubao-Seedance-2.5-720p",
    "prompt": "把画面改成水彩画风格,柔和色调",
    "reference_videos": ["https://你的视频/clip.mp4"],
    "seconds": 8,   # 必须 = 参考视频时长
}).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)

注意事项

  • ⚠️ seconds 必须等于参考视频时长,否则报错并提示正确秒数(不产任务、不计费)。
  • 仅 v2v:必须带参考视频,纯文生 / 图生会被拒。输出时长 / 画幅跟随参考视频,不可自定义。
  • 参考视频公网 mp4、4–30 秒、分辨率不超过档位(720p ≤1280×720、1080p ≤1920×1080),超出被拒。编辑高清视频选 1080p 档。
  • 参考图 / 参考音频支持公网 URL 或 base64 data-URI;参考视频仅公网 URL。单次上限 30 图 + 10 视频 + 10 音频。
  • ⚠️ 配音音色 / 性别跟随画面人物,不跟随上传的参考音频generate_audio 为画面人物合成配音,上传女声不会把男性角色改成女声;想要女声请让画面人物为女性。

建议

  • 先截好你要编辑的关键片段(4–30 秒),seconds 填该片段实际秒数。
  • 要编辑 1080p 高清源用 Doubao-Seedance-2.5-1080p;720p 源用 720p 档更省。
  • 提示词写清"改成什么风格 / 保留什么",配参考图能更稳定地锁定风格。

Seedance 2.0 · 官方 Key 版

本页为 Seedance 2.0「官方 Key」版本 —— 直连 Seedance 官方接口出片。与本站其它 Seedance 通道(video-pro 自营Adobe Firefly)彼此独立,令牌分组、模型名、价格各自独立。调用请用令牌分组 「Seedance 2.0」;模型名统一带 official- 前缀。

支持文生视频、图生视频 / 首尾帧、全能参考(图 + 视频 + 音频)三种模式,480p / 720p / 1080p 多档、标准与 Fast 两条产线;按秒计费、失败不计费。

模型

模型版本计费duration
official-Seedance-2.0-fast-480p480p Fast按秒4-15 整数
official-Seedance-2.0-480p480p 标准按秒4-15 整数
official-Seedance-2.0-fast-720p720p Fast按秒4-15 整数
official-Seedance-2.0-720p720p 标准按秒4-15 整数
official-Seedance-2.0-1080p1080p 标准按秒4-15 整数
按秒计费 = 单价 × duration。例如 official-Seedance-2.0-720p 8 秒 = 。失败不计费。

接口信息

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

核心参数

参数类型必填默认说明
modelstring-上表五个之一(均带 official- 前缀)
promptstring-视频描述提示词,≤5000 字符
durationinteger4时长秒数 4-15 任意整数。别名 seconds
aspect_ratiostring16:916:9/9:16/1:1/4:3/3:4/21:9;也可用 size(如 1280x720
first_image_url/last_image_urlstring(URL)-各 1 张。首帧 / 尾帧;单张主图也可用 image_url
reference_image_urlsarray(URL)-参考图 ≤9 张,每张 ≤20MB、每边 720–2160px、JPEG/PNG/WEBP。别名 reference_images/images
reference_videosarray(URL)-参考视频 ≤3 个,单条 2–15 秒、总 ≤15 秒、mp4/mov
reference_audiosarray(URL)-参考音频 ≤3 个,总时长 ≤15 秒
素材上限:全能参考单次最多 9 图 + 3 视频 + 3 音频,超出即报错、不产任务、不计费。

提交方式

JSON。无需传"模式"参数——服务端按传入的素材字段自动判定模式:

模式怎么触发
文生视频只传 prompt,不带任何素材
图生视频 / 首尾帧first_image_url(首帧);需过渡再加 last_image_url(尾帧)。单张 image_url 等价只传首帧
全能参考reference_image_urls/reference_videos/reference_audios 任意组合
⚠️ 参考素材仅支持公网 URL(http/https),不支持 base64 直传——先把图 / 视频 / 音频放到公网可下载地址,再传其 URL。

示例请求

# A) 文生视频
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"official-Seedance-2.0-720p","prompt":"夕阳下平静的海面,海浪轻轻起伏","duration":4,"aspect_ratio":"16:9"}'

# B) 图生视频(单图驱动)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"official-Seedance-2.0-720p","prompt":"镜头缓缓推进,主体自然运动","duration":4,
       "image_url":"https://你的图床/first.jpg"}'

# C) 首尾帧过渡
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"official-Seedance-2.0-720p","prompt":"从首帧平滑过渡到尾帧","duration":4,
       "first_image_url":"https://你的图床/first.jpg","last_image_url":"https://你的图床/last.jpg"}'

# D) 全能参考(≤9 图 + ≤3 视频 + ≤3 音频,全部公网 URL)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"official-Seedance-2.0-720p","prompt":"参考给定素材的风格与主体生成","duration":6,
       "reference_image_urls":["https://你的图床/1.jpg","https://你的图床/2.jpg"],
       "reference_videos":["https://你的图床/ref.mp4"],
       "reference_audios":["https://你的图床/bgm.mp3"]}'

轮询取片

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-你的Seedance令牌", "Content-Type": "application/json"}
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "official-Seedance-2.0-720p",
    "prompt": "夕阳下平静的海面,海浪轻轻起伏",
    "duration": 4, "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)

注意事项

  • 参考素材仅公网 URL,不支持 base64;素材须无需登录 / Referer / 临时 Cookie 即可下载。
  • 素材上限 9 图 + 3 视频 + 3 音频,参考视频单条 2–15 秒、总 ≤15 秒;超限报错不计费。
  • prompt ≤5000 字符;duration 4-15 整数。
  • 按秒计费,成本随 duration 线性增长;失败不计费。

建议

  • 走量选 Fast 档(480p/720p Fast),画质优先选 720p/1080p 标准。
  • 竖屏传 aspect_ratio":"9:16";提示词写清主体与运动方向更稳定。
  • 参考图每边 720–2160px、≤20MB;参考视频总时长控制在 15 秒内。

Seedance 2.0 · 官方直连(mini / fast / 标准) Video

字节 Seedance 2.0 三档(火山官方)mini 最便宜、fast 更好、标准(满血)最高质量且独有 1080p。支持文生 / 图生 / 首尾帧 / 视频编辑 / 全能参考;用「Seedance 2.0」令牌调用,按秒计费、失败不计费。

模型

模型分辨率计费
Doubao-Seedance-2.0-mini-480p480p按秒
Doubao-Seedance-2.0-mini-720p720p按秒
Doubao-Seedance-2.0-fast-480p480p按秒
Doubao-Seedance-2.0-fast-720p720p按秒
Doubao-Seedance-2.0-480p480p(标准/满血)按秒
Doubao-Seedance-2.0-720p720p(标准/满血)按秒
Doubao-Seedance-2.0-1080p1080p(标准/满血)按秒
时长 4-15 秒seconds 自定义 = 计费秒数)、24fps。质量 mini < fast < 标准;标准档(名无 mini/fast 后缀)独有 1080p。失败不计费。

接口信息

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

核心参数

参数类型必填默认说明
modelstring-上表七个之一
promptstring-画面 / 风格描述。无我方硬性长度上限(走火山官方)
secondsinteger-输出时长 4-15(= 计费秒数)
image_urlURL / base64-图生视频首帧(画幅跟随图)。支持公网 URL 或 data:image/...;base64,
first_image_url/last_image_urlURL / base64-首尾帧模式(首帧 / 尾帧)。不可与参考图/参考视频同用
reference_imagesarray(URL / base64)-≤9 张,风格 / 主体参考
reference_videosarray(URL)-≤3 段,运镜 / 氛围参考(仅公网 URL
reference_audiosarray(URL / base64)-≤3 段,配乐 / 音色参考。不能单独用,须配至少 1 图或 1 视频
⚠️ 用参考视频时:参考视频分辨率不得超过所选档位(480p 档 ≤480p、720p 档 ≤720p)、总时长不超过 seconds,超出会被拒(不产任务、不计费)。要编辑高清视频请用 Seedance 2.5参考图 / 参考音频支持公网 URL 或 base64 data-URI,也兼容火山原生 content[] 数组;参考视频仅公网 URL。

提交方式

JSON。按素材字段自动判定玩法:

玩法关键参数
文生视频 (t2v)prompt + seconds
图生视频 (i2v)+ image_url
首尾帧+ first_image_url + last_image_url
视频编辑 / 参考 (v2v)+ reference_videos
全能参考+ reference_images/videos/audios(≤9 图 + ≤3 视频 + ≤3 音频)
⚠️ 首帧/尾帧 与 全能参考(参考图/参考视频)互斥,不能同时传(火山限制,二选一);参考音频不能单独用,须搭配至少一张参考图或一段参考视频。参考图 / 参考音频除公网 URL 外,也支持 base64 内联上传。

示例请求

# A) 文生视频(mini 480p,6 秒)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"Doubao-Seedance-2.0-mini-480p","prompt":"一只橘猫在草地上奔跑,阳光明媚","seconds":6}'

# B) 图生视频(fast 720p,首帧图,8 秒)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"Doubao-Seedance-2.0-fast-720p","prompt":"镜头缓慢推进","seconds":8,"image_url":"https://你的图床/first.jpg"}'

# C) 首尾帧
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"Doubao-Seedance-2.0-mini-720p","prompt":"从白天平滑过渡到夜晚","seconds":6,
       "first_image_url":"https://你的图床/first.jpg","last_image_url":"https://你的图床/last.jpg"}'

# D) 全能参考(≤9 图 + ≤3 视频 + ≤3 音频)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"Doubao-Seedance-2.0-fast-720p","prompt":"参考给定素材的风格与主体生成","seconds":8,
       "reference_images":["https://你的图/1.jpg","https://你的图/2.jpg"],
       "reference_videos":["https://你的视频/ref.mp4"],
       "reference_audios":["https://你的音频/bgm.mp3"]}'

# E) base64 内联上传参考图 + 参考音频(无需图床/公网托管,跨网络更稳)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"Doubao-Seedance-2.0-480p","prompt":"人物驾驶摩托车穿过夜晚城市街道","seconds":4,
       "reference_images":["data:image/jpeg;base64,/9j/4AAQSkZJRg...(素材图)"],
       "reference_audios":["data:audio/mpeg;base64,SUQzBAAAAAA...(音色参考)"]}'
# 注:参考音频须与参考图/视频同用;音频只影响口播节奏,配音音色/性别跟随画面人物。

轮询取片

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"}
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "Doubao-Seedance-2.0-fast-720p",
    "prompt": "镜头缓慢推进,主体自然运动", "seconds": 8,
    "image_url": "https://你的图床/first.jpg",
}).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)

注意事项

  • 参考图 / 参考音频支持三种上传方式:公网 URL、data:...;base64, data-URI、火山原生 content[] 数组({"type":"image_url","image_url":{"url":...}});三选一皆可。参考视频仅公网 URL(须无需登录即可下载)。
  • ⚠️ 首帧/尾帧模式 与 全能参考(参考图/参考视频)互斥——不能同时传(火山限制),二选一,否则被拒。
  • ⚠️ 参考音频不能单独使用,必须搭配至少一张参考图或一段参考视频(火山限制:reference_audio cannot be the only reference input)。
  • ⚠️ 配音音色 / 性别跟随画面人物,不跟随上传的参考音频generate_audio 会为画面里的人物合成配音——上传女声并不会把男性角色改成女声。想要女声,请让画面人物为女性(用女性参考图或提示词),参考音频主要影响口播节奏而非音色。
  • 参考视频分辨率 ≤ 所选档位、总时长 ≤ seconds,超限被拒不计费;编辑高清视频用 Seedance 2.5。
  • 素材上限 9 图 + 3 视频 + 3 音频;seconds 4-15;按秒计费,成本随时长线性,失败不计费。

建议

  • 走量选 mini/fast,画质优先选标准档;要 1080p 只有标准档有。
  • i2v 画幅跟随首帧图;想要竖屏就用竖图作首帧。
  • 提示词写清运镜与主体动作,比堆素材更稳定。

Seedream 图像生成 Image

🖼️ 字节「即梦 Seedream」官方图像模型(火山官方直出)。用同一「Seedance 2.0」令牌调用;同步出图 POST /v1/images/generations —— 请求返回即拿到图片,无需轮询。按张计费、失败不计费。

模型

模型版本定位计费
doubao-seedream-5-0-pro5.0 Pro旗舰,最高画质按张
doubao-seedream-5-05.0新版,画质强、性价比最高按张
doubao-seedream-4-54.5稳定成熟档按张
切换模型只改 model 字段。每次调用返回 1 张图,按张计费。失败不计费。

接口信息

说明
文生图POST /v1/images/generations同步,返回即出图)
图生图 / 编辑/v1/images/generations(带 image 字段)或 /v1/images/edits
返回data[0].url(默认)或 data[0].b64_json
鉴权Authorization: Bearer sk-你的令牌
令牌分组Seedance 2.0

核心参数

参数类型必填默认说明
modelstring-上表三个之一
promptstring-图像描述提示词。无我方硬性长度上限(走火山官方)
sizestring-宽×高,如 2048x2048。⚠️ 总像素须 ≥ 3,686,400(约 1920×1920),过小被拒。1:1 用 2048x2048、16:9 用 2560x1440、9:16 用 1440x2560
response_formatstringurlurl(图片直链)或 b64_json(base64 内嵌)
imagestring / array-参考图(图生图 / 多图融合):单张字符串、多张数组(最多 10 张)。元素为公网 URLBase64data:image/png;base64,...
ninteger1⚠️ 本线路每次仅返回 1 张,请保持 n=1n>1 会按 n 计费但仍只返回 1 张

分辨率范围(各模型不同 · 实测):

模型最高输出最低说明
doubao-seedream-4-54096×4096(真 4K)约 1920×1920支持到 4K
doubao-seedream-5-04096×4096(真 4K)约 1920×1920支持到 4K
doubao-seedream-5-0-pro约 2150×2150(总像素 ≤ 4,624,220)约 1920×1920⚠️ 不支持 4K,传 4096×4096 返回 400;请用 2048×2048
总像素须 ≥ 3,686,400(约 1920×1920)否则 InvalidParameter4-5/5-0 可到 4096×40965-0-pro 上限约 4,624,220 像素(≈2150×2150),传 4K 会被拒——Pro 请用 2048×2048输出格式 JPEG。

提交方式

JSON(同步)。image 字段传单张字符串或多张数组即进入图生图 / 多图融合;参考图支持 URL / 多图 / Base64 三种(已实测)。加 "response_format":"b64_json" 可拿 base64 内嵌。

能力支持说明
URL 参考图公网 http/https 直链
多图融合image 传数组,最多 10 张
Base64 参考图data:image/png;base64,...(带前缀)
单张大小≤ 10 MB4.5 档服务上限 15MB,建议统一 ≤10MB
格式JPEG / PNG5.0 档另支持 webp/bmp/tiff/gif;建议优先 JPEG/PNG
输入图尺寸单边 ≤ 4096宽高比约 [1/3, 3]

示例请求

# 文生图 —— 同步,一次返回即拿到图片(无需轮询)
curl -X POST https://aihubcc.cc/v1/images/generations \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"doubao-seedream-5-0","prompt":"一只橘猫坐在窗台上,午后阳光洒落,超写实摄影","size":"2048x2048"}'

# 16:9 宽画幅(旗舰 Pro,注意 Pro 不支持 4K)
curl -X POST https://aihubcc.cc/v1/images/generations \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"doubao-seedream-5-0-pro","prompt":"电影感雪山日出全景,宽画幅","size":"2560x1440"}'

# 图生图:单张参考图(URL)
curl -X POST https://aihubcc.cc/v1/images/generations \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"doubao-seedream-4-5","prompt":"把背景换成落日海边","size":"2048x2048","image":"https://example.com/ref.jpg"}'

# 多图融合:image 传数组(最多 10 张)
curl -X POST https://aihubcc.cc/v1/images/generations \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"model":"doubao-seedream-5-0","prompt":"把这两张融合成一张海报","size":"2048x2048","image":["https://example.com/a.jpg","https://example.com/b.jpg"]}'

# 返回 base64
curl -X POST https://aihubcc.cc/v1/images/generations \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -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 完整请求

import requests
BASE = "https://aihubcc.cc/v1"
H = {"Authorization": "Bearer sk-你的Seedance令牌", "Content-Type": "application/json"}
r = requests.post(f"{BASE}/images/generations", headers=H, json={
    "model": "doubao-seedream-5-0",
    "prompt": "一只橘猫坐在窗台上,午后阳光洒落,超写实摄影",
    "size": "2048x2048",
}).json()
url = r["data"][0]["url"]
open("seedream.jpeg", "wb").write(requests.get(url).content)

注意事项

  • 尺寸总像素须 ≥ 3,686,400(约 1920×1920),过小返回 InvalidParameter
  • 5-0-pro 不支持 4K(≤约 2150×2150),传 4096×4096 返回 400,用 2048×2048
  • 本线路 n=1 每次 1 张;需多张请多次调用。
  • 参考图 ≤10MB、JPEG/PNG、单边 ≤4096;非法参考图返回 400 不计费。输出格式 JPEG。

建议

  • 常规用 5-0(性价比最高);要旗舰画质用 5-0-pro(记得用 2048 不要 4K);要真 4K 用 4-55-0
  • 16:9 用 2560x1440、9:16 用 1440x2560、1:1 用 2048x2048
  • 多图融合把主体图放前、风格图放后,提示词点明"融合成一张"。

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

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

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

模型

模型清晰度全能参考计费时长
minimax-h3-768p768P503按秒4–15 秒
minimax-h3-2k2K503按秒4–15 秒
minimax-h3-pro-768p768P913按秒4–15 秒
minimax-h3-pro-2k2K913按秒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://AIHUB-2.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"}'

# 图生视频(参考图)
curl https://AIHUB-2.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"]}'

# 参考视频驱动(Pro,1 段 2-5 秒)
curl https://AIHUB-2.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"]}'

轮询取片

curl https://AIHUB-2.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://AIHUB-2.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_imagereferenceImages 互斥;参考音频须配参考图。
  • 参考视频仅 Pro 档、1 段 2–5 秒;2K / 参考视频出片较慢,高峰期偶发排队请重试。

建议

  • 走量用 768P,画质优先用 2K;需要视频驱动动作 / 运镜才用 Pro 档。
  • 竖屏传 ratio":"9:16";参考视频请截取你要的关键 2–5 秒片段。
  • 提示词全英文或中文均可,但务必合规、避免任何擦边表述。

Adobe Firefly · Veo 3.1

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

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

模型

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

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

接口信息

说明
Base URLhttps://AIHUB-2.aihubcc.cc
提交任务POST /v1/videos
查询任务GET /v1/videos/{task_id}
鉴权Authorization: Bearer sk-你的令牌
任务模式异步;提交成功仅表示任务已入队
成片交付任务 statuscompleted 后,读取顶层 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_resolution720p/1080p),对齐 Adobe 官网“画幅 + 分辨率”两栏。两套输出完全一致。音频区分:firefly-veo-3.1(标准版)与 firefly-veo-3.1-fast-direct 默认含音频;而 firefly-veo-3.1-fast 为静音档、无音频轨

size 取值与输出

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

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

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

提交方式

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

示例:提交 6 秒 Fast 视频

BASE_URL="https://AIHUB-2.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 表单额外带一张参考图作为首帧,其余参数(secondssize)一致。input_reference 支持本地文件图片 URLbase64 三种传法。

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 从首帧画面过渡到尾帧画面。两个字段都支持图片 URLbase64data: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"

当响应中的 statuscompleted 时,读取 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://AIHUB-2.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,直到状态变为 completedfailed
  • 模型不可见或返回权限错误:确认 API 令牌已开通 Firefly VEO 模型权限。
  • 任务失败:保留任务 ID 与错误响应,提交给技术支持排查;不要为同一任务并发重复提交。

建议

  • 要带音频firefly-veo-3.1firefly-veo-3.1-fast-directfirefly-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 Fast480p
firefly-Seedance-2.0-fast-720pSeedance 2.0 Fast720p
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 URLhttps://AIHUB-2.aihubcc.cc
提交任务POST /v1/videos
查询任务GET /v1/videos/{task_id}
鉴权Authorization: Bearer sk-你的令牌
成片交付任务 statuscompleted 后,读取顶层 video_url

已支持规格

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

核心参数

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

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

提交方式

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

示例:文生视频

BASE_URL="https://AIHUB-2.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_framelast_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_imagesreference_videosreference_audios 传入,可在 prompt 里用文字说明各参考的作用。参考视频引导运动与氛围(不是直接动画化)。与首尾帧模式互斥。

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

更多参考用法示例

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

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

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

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

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

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

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

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

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

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

轮询取片

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

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

Python 完整请求

import time, requests

BASE = "https://AIHUB-2.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 标准720p5–15 秒(自定义)
firefly-Kling-3.0-1080pKling 3.0 标准1080p5–15 秒(自定义)
firefly-Kling-3.0-Omni-720pKling 3.0 Omni(全能参考)720p5–15 秒(自定义)
firefly-Kling-3.0-Omni-1080pKling 3.0 Omni(全能参考)1080p5–15 秒(自定义)
按秒计费 = 单价 × 时长。例如 Kling 3.0 720p 10 秒 = 。失败不计费
视频默认带音频(AAC 音轨):Kling 3.0 标准与 Omni 均自带生成音效,无需额外参数。

接口信息

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

核心参数(参考 Adobe 官方)

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

提交方式

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

示例:文生视频

BASE_URL="https://AIHUB-2.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 张不同角度,效果更稳)。typecharacter(角色)/ 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"
    ]
  }'
图片可传图片 URLbase64data:image/...;base64,);每个元素 1~4 张。可重复调用创建多个元素(如 AliceBobCafe)。用 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"

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

Python 完整请求

import time, requests

BASE = "https://AIHUB-2.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 均支持 515 秒任意整数。
  • 任务失败:保留任务 ID 与错误响应交技术支持;不要为同一任务并发重复提交。

建议

  • 要多主体一致用 Omni 版:先 POST /v1/entities 建元素(每个 1–4 张、建议 4 张不同角度),再在 prompt 里 @元素名 引用。
  • 清晰度按预算选:720p 便宜、1080p 更清晰;画幅用像素 sizeaspect_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 URLhttps://AIHUB-2.aihubcc.cc
提交任务POST /v1/videos
查询任务GET /v1/videos/{task_id}
鉴权Authorization: Bearer sk-你的令牌
任务模式异步;提交成功仅表示任务已入队
成片交付任务 statuscompleted 后,读取顶层 video_url

核心参数

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

size 取值与输出

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

提交方式

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

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

BASE_URL="https://AIHUB-2.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 表单额外带一张参考图作为首帧,其余参数(secondssize)一致。input_reference 支持本地文件图片 URLbase64 三种传法。

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"

当响应中的 statuscompleted 时,读取顶层 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://AIHUB-2.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-1k1Kmedium(固定)
firefly-gpt-image-2k2Kmedium(固定)
firefly-gpt-image-4k4Kmedium(固定)

质量策略

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

实际输出像素

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

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

画幅

通过 aspect_ratio(或 size)选画幅,支持:auto1:116:99:165:44:33:24:53:42:321:9。不传默认 1:1

接口信息

说明
Base URLhttps://AIHUB-2.aihubcc.cc
提交任务POST /v1/videos
查询任务GET /v1/videos/{task_id}
鉴权Authorization: Bearer sk-你的令牌
成片交付任务 statuscompleted 后,读取顶层 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://AIHUB-2.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://AIHUB-2.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://AIHUB-2.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://AIHUB-2.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://AIHUB-2.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://AIHUB-2.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://AIHUB-2.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://AIHUB-2.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://AIHUB-2.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-1kfirefly-gpt-image-4k 即可切换画布档位;aspect_ratio 可替换为本页支持的其它画幅。

shell 自动轮询

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

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

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

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

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

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

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

Grok 视频(文 / 图生视频)

基于 xAI Grok Imagine 官方接口的视频生成,OpenAI 兼容异步接口。两个模型:grok-imagine-video(1.0,文生 / 图生视频)与 grok-imagine-video-1.5(1.5 代,图生视频、画面质感更好)。带参考图即图生视频,不带图则为纯文生视频(1.5 建议带图)。支持 480p / 720p / 1080p 输出,grok-imagine-video-1.5 可出 1080p 高清

模型

模型能力计费
grok-imagine-video文生视频 / 图生视频按次
grok-imagine-video-1.5图生视频(1.5 代,画面更佳,支持 1080p 高清按次
按次计费:与时长无关,每条固定价;失败不计费,成功出片才扣。

接口信息

说明
提交任务POST /v1/videos(JSON)
轮询进度GET /v1/videos/{task_id}status=completed 时返回 video_url
下载成片轮询返回的 video_url 直接 GET 下载(地址已脱敏)
鉴权Authorization: Bearer sk-你的令牌
令牌分组必须为 grok 分组

核心参数

参数取值默认说明
modelgrok-imagine-video / grok-imagine-video-1.5-必填
prompt文本-必填,画面 / 运动描述
image公网 URL 或 base64 Data URI-可选。单张首帧;带图=图生视频;grok-imagine-video 不带图=纯文生视频,grok-imagine-video-1.5 建议带图
reference_imagesURL 数组,最多 7 张-可选,多张参考图(图生视频)。仅 grok-imagine-video-1.5480p / 720p 生效;⚠️ 1080p 不支持多图(见下)。单张请用 image
seconds字符串,1 ~ 156视频时长(秒);按次计费,秒数不影响价
aspect_ratio16:9 / 9:16 / 1:1 / 4:3 / 3:4 / 2:3 / 3:2-可选,画幅比例
resolution480p / 720p / 1080p720p可选,分辨率(仅小写)。1080pgrok-imagine-video-1.5 支持;⚠️ 1080p 仅支持单张首帧 image,不支持多图 reference_images
size720x1280 / 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 最多 7 张,模型综合多张参考出片。示例:"reference_images": ["https://.../a.jpg", "https://.../b.jpg"]
⚠️ 1080p 仅支持单张首帧image 模式):选 1080p不能用多图 reference_images——若同时传了多张,只有第一张作首帧生效。需要多张参考图请用 480p / 720p

字段名兼容:单图推荐 image、多图用 reference_imagesimage_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,带 image)
curl https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-video-1.5",
    "prompt": "轻微镜头推移,画面自然生动",
    "image": "https://your-public-image.jpg",
    "seconds": "6"
  }'

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

轮询取片

# 轮询直到 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 代)
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "grok-imagine-video-1.5",
    "prompt": "轻微镜头推移,画面自然生动",
    "image": "https://your-public-image.jpg",
    "seconds": "6",
    "resolution": "720p"
}).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

注意事项

  • 按次计费:与时长无关,每条固定价(1.0=,1.5=);失败不计费,成功出片才扣
  • seconds1~15resolution 支持 480p / 720p / 1080p(仅小写;1080pgrok-imagine-video-1.5
  • 多张参考图grok-imagine-video-1.5reference_images 数组,最多 7 张(仅 480p / 720p);单张首帧用 image
  • ⚠️ 1080p 仅支持单张首帧 image不支持多图 reference_images(传了也只取第一张作首帧)
  • 图生视频的 image 须为公网可直接抓取的 URL 或 base64 Data URI;需登录 / 内网 / 拦爬虫(如部分维基)的链接会失败
  • grok-imagine-video 不带图为文生视频;grok-imagine-video-1.5 为图生视频,建议带 image
  • 客户端超时建议 ≥ 300 秒;轮询间隔建议 3-5 秒

建议

  • 1.5 代优先带参考图grok-imagine-video-1.5 定位图生视频,带一张清晰首帧 image 出片更稳、质感更好;纯文生优先用 grok-imagine-video
  • 要 1080p 就别传多图:1080p 只认单张首帧,需要多张参考时降到 720preference_images
  • 画幅用 aspect_ratio:新接入直接用 aspect_ratio9:16 竖 / 16:9 横);size 仅为兼容旧客户端保留。
  • 内容合规:避开暴露 / 未成年 / 血腥暴力等敏感内容,否则被内容安全拦截(不计费)。

Grok 12 秒图生视频

grok-imagine-video-12s:基于 Grok Imagine 的 图生视频固定输出 12 秒 / 480p。传一张首帧图 + 提示词,异步出片;必须带参考图(不支持纯文生视频)。OpenAI 兼容异步接口,与其他 Grok 视频同一 /v1/videos 通道。

⚠️ 本模型用 multipart/form-data 表单提交(区别于 grok-imagine-video 的 JSON body):字段用 -F 传,参考图字段名为 input_reference(或 image_url)。

模型

模型能力时长 / 分辨率计费
grok-imagine-video-12s图生视频(必须带图)固定 12 秒 / 480p按次
按次计费:每条固定 ;失败不计费,成功出片才扣。

接口信息

说明
提交任务POST /v1/videosmultipart/form-data
轮询进度GET /v1/videos/{task_id}status=completed 时返回 video_url
下载成片轮询返回的 video_url 直接 GET 下载
鉴权Authorization: Bearer sk-xxx
令牌分组必须为 grok 分组

核心参数(表单字段)

字段取值默认说明
modelgrok-imagine-video-12s-必填
prompt文本-必填,运动 / 画面描述
input_reference公网图片 URL / 本地文件(@file) / base64 Data URI-必填,单张首帧参考图(不带图会报错、不计费)。字段名 image_url 亦兼容
size720x1280(竖 9:16) / 1280x720(横 16:9) / 960x960(方 1:1)720x1280可选,只决定画幅(竖 / 横 / 方),不决定清晰度;取值里的数字仅为画幅代号,实际输出恒为 480p 档(见下表)

size 取值与实际输出(已实测)

size(传这个)画幅实际输出分辨率
720x1280(默认)竖版 9:16480×848
1280x720横版 16:9848×480
960x960方形 1:1560×560
⚠️ size 只决定画幅(竖 / 横 / 方),不决定清晰度。三档输出全部固定 480p 档(短边 480–560)——720x1280 里的 720/1280 只是画幅代号,不代表会出 720p:传 720x1280 实际得到 480×848(12s 为两段拼接、经统一缩放,故与 6s 的 416×752 略有差异,均属 480p 档)。时长同样恒为 12 秒;传 seconds / resolution 均被忽略。

提交方式

multipart/form-data 表单提交(-F),不是 JSON body。参考图字段 input_reference 支持三种写法:

方式写法说明
公网 URL-F "input_reference=https://.../a.jpg"公网可直接 GET 的图片直链
本地文件-F "input_reference=@/path/first_frame.jpg"直接上传本地首帧文件
base64 Data URI-F "input_reference=data:image/jpeg;base64,..."须带 data: 前缀

示例请求

# 提交(multipart 表单,必须带参考图 input_reference)
curl https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -F "model=grok-imagine-video-12s" \
  -F "prompt=小狗在日落海滩上向前走,电影感镜头" \
  -F "input_reference=https://your-public-image.jpg"
# 或用本地文件作首帧: -F "input_reference=@/path/first_frame.jpg"
# => {"task_id":"task_xxx","status":"queued",...}

轮询取片

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

轮询间隔建议 3-5 秒;video_url 已脱敏,直接下载即可。

Python 完整请求

import time, requests

BASE = "https://aihubcc.cc/v1"
H = {"Authorization": "Bearer sk-xxx"}

# 提交(multipart,必须带首帧图)
files = {"input_reference": open("first_frame.jpg", "rb")}
data = {"model": "grok-imagine-video-12s", "prompt": "小狗在日落海滩上向前走,电影感镜头"}
task = requests.post(f"{BASE}/videos", headers=H, data=data, files=files).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

注意事项

  • 必须带参考图(图生视频):input_reference 为公网可直接抓取的图片 URL、本地文件(@file)或 base64 Data URI;不带图会直接报错、不计费
  • 时长固定 12 秒、分辨率固定 480pseconds / resolution 传了也不生效
  • multipart/form-data 提交(-F),不是 JSON body(与 grok-imagine-video 不同)
  • 按次计费失败不计费
  • 提示词与参考图避免暴露 / 未成年 / 血腥暴力等敏感内容,否则被内容安全拦截(不计费)
  • 客户端超时建议 ≥ 300 秒;轮询间隔建议 3-5 秒

建议

  • 首帧要清晰:12s 由两段拼接,首帧质量直接决定整片观感,选主体清晰、构图完整的图。
  • 画幅按 size 选一次即可:竖版短视频用默认 720x1280,横版用 1280x720;别指望它出 720p(恒 480p 档)。
  • 要更高清晰度/更多控制请改用 grok-imagine-video-1.5(支持 720p/1080p、多图参考)。

Grok 6 秒视频(文生 / 图生)

grok-imagine-video-6s:基于 Grok Imagine 的单段短视频,固定输出 6 秒 / 480p文生视频(只给提示词)与图生视频(带参考图、运动跟随提示词)两种都支持,异步出片。OpenAI 兼容异步接口,与其他 Grok 视频同一 /v1/videos 通道;JSON body 与 multipart 表单均可提交

模型

模型能力时长 / 分辨率计费
grok-imagine-video-6s文生视频 / 图生视频固定 6 秒 / 480p按次
按次计费:每条固定 ;失败不计费,成功出片才扣。

接口信息

说明
提交任务POST /v1/videos(JSON body 或 multipart/form-data 均可)
轮询进度GET /v1/videos/{task_id}status=completed 时返回 video_url
下载成片轮询返回的 video_url 直接 GET 下载
鉴权Authorization: Bearer sk-xxx
令牌分组必须为 grok 分组

核心参数

参数取值默认说明
modelgrok-imagine-video-6s-必填
prompt文本-必填,画面 / 运动描述。文生视频完全跟随提示词
image_url公网图片 URL / base64 Data URI / 本地文件(@file,仅 multipart)-可选:不传=文生视频;传了=图生视频(在该图上按提示词运动)。字段名 input_reference/image/images/reference_images 亦兼容
size720x1280(竖 9:16) / 1280x720(横 16:9) / 960x960(方 1:1)720x1280可选,只决定画幅(竖 / 横 / 方),不决定清晰度;取值里的数字仅为画幅代号,实际输出恒为 480p 档(见下表)

size 取值与实际输出(已实测)

size(传这个)画幅实际输出分辨率
720x1280(默认)竖版 9:16416×752
1280x720横版 16:9752×416
960x960方形 1:1560×560
⚠️ size 只决定画幅(竖 / 横 / 方),不决定清晰度。三档输出全部固定 480p 档(短边 416–560)——720x1280 里的 720/1280 只是画幅代号,不代表会出 720p:传 720x1280 实际得到 416×752。时长同样恒为 6 秒;传 seconds / resolution 均被忽略。

提交方式(参考图 · 图生视频时)

说明
格式公网图片 URL / base64 Data URI(data:image/...;base64,...)/ 本地文件(@file,仅 multipart)
数量最多 7 张(JSON 用数组,或 multipart 重复字段)
大小multipart 每张 ≤ 5MB;URL/base64 受服务上传端限制
URL 与 base64 效果一致;base64 省去"抓取 URL"一步,URL 不可达/被墙时用 base64 更稳。JSON body 与 multipart 表单均可提交。

示例请求

# 文生视频(只给提示词,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"}'
# => {"task_id":"task_xxx","status":"queued",...}

# 图生视频(带参考图,JSON body: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"}'

# 图生视频(本地文件作参考图,用 multipart 表单)
curl https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" \
  -F "model=grok-imagine-video-6s" \
  -F "prompt=人物轻轻转头微笑,柔光" \
  -F "image_url=@/path/ref.jpg"

轮询取片

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

轮询间隔建议 3-5 秒;video_url 已脱敏,直接下载即可。

Python 完整请求

import time, requests

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

# 提交(文生视频;图生视频加 "image_url": "https://...")
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "grok-imagine-video-6s",
    "prompt": "红色复古跑车在霓虹夜街疾驰,电影感",
    "size": "1280x720"
}).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

注意事项

  • 文生 / 图生都支持:不传图=文生视频(完全跟随提示词);传 image_url=图生视频(在该图上按提示词运动)
  • 时长固定 6 秒、分辨率固定 480p 档seconds/resolution 传了也不生效
  • 参考图可传 URL / base64 Data URI / 本地文件(@file,仅 multipart),最多 7 张,multipart 每张 ≤ 5MB
  • JSON body 与 multipart 表单均可提交
  • 按次计费失败不计费
  • 提示词与参考图避免暴露 / 未成年 / 血腥暴力等敏感内容,否则被内容安全拦截(不计费)
  • 客户端超时建议 ≥ 180 秒;轮询间隔建议 3-5 秒

建议

  • 最省钱的短视频:6s 是 Grok 视频里最便宜的档(),适合批量做短素材 / 试镜头。
  • 文生也能出:与 12s 不同,6s 不强制带图;纯文生只给提示词即可,带图则运动跟随提示词。
  • 要更长/更高清请改用 12s(固定 12 秒)或 grok-imagine-video-1.5(可选时长 + 720p/1080p)。

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

OpenAI 兼容的同步图像接口,使用 grok-imagine-image 模型。支持文生图、单图参考和多图参考;请求成功后直接返回图像结果。

模型

模型能力计费
grok-imagine-image文生图 / 图生图 / 多图参考按张
按张计费:每张图片按模型价格计费;生成失败不扣费。

接口信息

场景请求说明
文生图POST /v1/images/generations(JSON)只传提示词即可生成
图生图POST /v1/images/edits(JSON / multipart)传入一张或多张参考图
鉴权Authorization: Bearer sk-xxx
令牌分组必须为 grok 分组

核心参数

参数取值默认说明
modelgrok-imagine-image-必填
prompt文本-必填,描述希望生成或修改的画面
n整数1可选,生成数量;建议一次请求传 1
response_formaturl / b64_jsonurlurl 返回下载地址;b64_json 直接返回 Base64 图像数据
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",
    "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",
    "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"])

注意事项

  • 接口为同步接口,请等待响应中的 data 返回后再处理结果。
  • 公网图片必须允许服务端直接下载;需要登录、内网地址或访问受限的链接无法作为参考图。
  • 使用 JSON 多图时传 images 数组;使用 multipart 多图时重复传 image[] 字段。
  • urlb64_json 二选一:前者适合直接展示或下载,后者适合本地持久化或二次处理。

建议

  • 一次请求出一张n 建议传 1,需要多张分多次请求,稳定性更好。
  • 直接展示用 url,落库用 b64_json:前者拿代理下载地址(30 天有效),后者拿 Base64 便于本地持久化。
  • 图生图选清晰参考:参考图主体清晰、无遮挡,改风格 / 换背景类指令效果最稳。

GPT-Image-2

文生图 / 图生图 / Chat 生图,支持三种调用方式。

模型

模型
gpt-image-2

接口信息

端点方式说明
/v1/images/generationsJSON文生图
/v1/images/editsmultipart图生图(参考图 + 描述)
/v1/chat/completionsJSONChat 对话生图

核心参数(文生图)

参数类型必填说明
promptstring图片描述。按字符数计(中英文一视同仁,非字节),建议 ≤ 8000 字符(硬上限约 1 万字符,超出会生成失败)
modelstring默认 gpt-image-2
ninteger生成数量 1-4
sizestring1024x10241536x1024(横)、1024x1536(竖)、autosize 主要控制横 / 竖 / 方比例,实际像素由模型自动分配(约 150 万像素,长边约 1536),不保证精确像素尺寸;需要更高分辨率请用导航「GPT-Image-2 多档」页的 2K / 3.5K
qualitystringauto / low / medium / high
response_formatstringb64_json(默认)或 url(返回完整图片地址,可直接使用)

提交方式

模式端点 / Content-Type参考图
文生图POST /v1/images/generations(JSON)
图生图 / 编辑POST /v1/images/editsmultipart重复 -F "image=@a.png",最多 6 张、合计 ≤ 5MB
Chat 生图POST /v1/chat/completions(JSON)image_url 用 Base64 data: URL
⚠️ /v1/images/edits 必须发合法 multipart(让 HTTP 库自动生成 boundary);切勿手设 Content-Type 或用 JSON,否则返回 500 failed to parse multipart form。参考图暂不支持公网 URL,请用文件或 Base64。

示例请求

# 文生图
curl -X POST https://aihubcc.cc/v1/images/generations \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "一只橘猫趴在窗台上晒太阳,水彩画风格",
    "size": "1024x1024",
    "quality": "high"
  }'

# 图生图
curl -X POST https://aihubcc.cc/v1/images/edits \
  -H "Authorization: Bearer sk-xxx" \
  -F "image=@reference.png" \
  -F "prompt=把背景改成海边日落" \
  -F "model=gpt-image-2"

# 图生图(Python:用 files= 让库自动生成 multipart boundary)
import requests
requests.post("https://aihubcc.cc/v1/images/edits",
    headers={"Authorization": "Bearer sk-xxx"},        # 不要手动设 Content-Type
    data={"model": "gpt-image-2", "prompt": "把背景改成海边日落"},
    files={"image": open("reference.png", "rb")})      # files= 自动带 boundary

# Chat 生图(参考图须用 Base64,不支持公网 URL)
curl -X POST https://aihubcc.cc/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -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 张;所有参考图合计 ≤ 5MB(受 /v1/images/edits multipart 请求体 ≤ 6MB 限制,超出会在提交前返回 400,不计费)。两种传法:

端点多图传参方式
/v1/images/edits(multipart)重复 -F "image=@a.png" 传多张即可;也接受 image[] / images 字段名,服务端会全部收集
/v1/chat/completions(JSON)content 数组里放多个 image_url,每张用 Base64 data: URL
# 多张参考图(/v1/images/edits:重复 -F image= 即可,最多 6 张、合计 ≤5MB)
curl -X POST https://aihubcc.cc/v1/images/edits \
  -H "Authorization: Bearer sk-xxx" \
  -F "model=gpt-image-2" \
  -F "prompt=把这两张图融合成一张海报,保留人物、背景换成海边日落" \
  -F "image=@person.png" \
  -F "image=@background.png"

# Python:files 传列表即可传多张(库自动生成 multipart boundary,勿手设 Content-Type)
import requests
requests.post("https://aihubcc.cc/v1/images/edits",
    headers={"Authorization": "Bearer sk-xxx"},
    data={"model": "gpt-image-2", "prompt": "把这两张图融合成一张海报"},
    files=[("image", open("person.png", "rb")),
           ("image", open("background.png", "rb"))])   # 同名 image 重复即多张

# 多张参考图(/v1/chat/completions:content 里放多个 image_url,均为 Base64)
curl -X POST https://aihubcc.cc/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -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_1>"}},
      {"type":"image_url","image_url":{"url":"data:image/jpeg;base64,<BASE64_2>"}}
    ]}]
  }'

轮询取片

本模型为同步接口/v1/images/generations/v1/images/edits 请求成功后直接在响应里返回图片data[].b64_jsondata[].url),无需轮询 task_id。

Python 完整请求

import requests

BASE = "https://aihubcc.cc/v1"

# 文生图(同步,直接拿结果)
r = requests.post(f"{BASE}/images/generations",
    headers={"Authorization": "Bearer sk-xxx", "Content-Type": "application/json"},
    json={"model": "gpt-image-2", "prompt": "一只橘猫趴在窗台上晒太阳,水彩画风格",
          "size": "1024x1024", "quality": "high", "response_format": "url"}).json()
print("图片:", r["data"][0]["url"])

# 图生图(multipart:用 files= 让库自动生成 boundary,勿手设 Content-Type)
r2 = requests.post(f"{BASE}/images/edits",
    headers={"Authorization": "Bearer sk-xxx"},
    data={"model": "gpt-image-2", "prompt": "把背景改成海边日落"},
    files={"image": open("reference.png", "rb")}).json()
print("图片:", r2["data"][0]["url"])

注意事项

  • 提示词长度:按字符数计(中英文一视同仁,非字节),单次上限约 1 万字符,超出会返回生成失败。建议控制在 8000 字符以内 —— 文生图默认会自动增强/扩写提示词,判定长度时算的是「你的原文 + 扩写后」的合计,故请留足余量
  • 请求体大小上限:文生图 JSON 请求体 ≤ 8MB、图生图 multipart ≤ 6MB(其中参考图合计 ≤ 5MB);正常提示词远达不到,过大的请求会被网关拒绝
  • 响应时间 15-60 秒,超时建议 ≥120 秒
  • 默认返回 b64_json(Base64 编码),需客户端解码保存
  • response_format: "url" 返回完整图片地址(如 https://img1.oaibox.xyz/images/...),直接使用即可,无需拼接域名;地址域名可能为 img1 或 img2,均可直接访问
  • 图生图参考图提交方式/v1/images/edits 用 multipart 上传文件(-F "image=@file.png");/v1/chat/completions 用 Base64(data:image/...;base64,)。暂不支持直接传公网图片 URL,请先下载文件或转 Base64 再提交
  • 图生图(/v1/images/edits)必须发合法 multipart/form-data:用 HTTP 库的文件上传(curl -F、Python files=、JS FormData让库自动生成 boundary切勿手动设 Content-Type、手拼 body 或用 application/json,否则网关无法解析请求体,返回 500 failed to parse multipart form(非服务异常,是请求格式问题)
  • 图生图上传的参考图请控制在 2K(长边 ≤ 2048)以内,超出会返回 400;更大尺寸请先压缩再上传
  • 多张参考图:图生图 / 编辑最多 6 张、所有参考图合计 ≤ 5MB,超出会在提交前返回 400(不计费)。传法见上方「多张参考图」——/v1/images/edits 重复 -F "image=@…"/v1/chat/completions 放多个 image_url
  • size 只决定横 / 竖 / 方比例(best-effort),不保证精确像素尺寸;需要更高分辨率请用导航「GPT-Image-2 多档」页的 2K / 3.5K

建议

  • 要精确 / 更高像素用导航「GPT-Image-2 多档」页的 2K / 3.5K / 4K 档;本页 gpt-image-2size 只控横 / 竖 / 方比例,不保证精确像素。
  • 图生图别手拼 multipart:用 curl -F / Python files= / JS FormData 让库自动带 boundary,勿手设 Content-Type
  • 提示词留余量:默认会自动扩写,长度按「原文 + 扩写」合计算,建议 ≤ 8000 字符。
  • 直接展示response_format:"url"本地落库用默认 b64_json

GPT-Image-2 多档生图(1K 同步 / 异步 · 2K / 3.5K / 4K 异步)

GPT-Image-2 按分辨率分档:1K 可自由选择同步或异步;同步适合需要立即拿图片的客户端,异步适合连接稳定性优先、不能长时间保持请求的客户端。2K / 3.5K / 4K 固定走异步接口(提交拿 task_id → 轮询任务 → 下载结果,不占用长连接)。所有档位均支持文生图,附参考图即图生图,最多 6 张;参考图解码后的文件合计不超过 5 MiB。按张固定计费,失败不计费。

输入限制:1K JSON 请求体最多 8 MiB;参考图可使用公网 HTTPS 直链或完整 data:image/png;base64,...data:image/jpeg;base64,...data:image/webp;base64,...,Base64 解码后的参考图合计最多 5 MiB。超过限制会在提交前返回 400,不会扣费。

模型

模型分辨率调用方式
gpt-image-2-1k~1K(默认 1024×1024)同步 /v1/images/generations
gpt-image-2-1k-async~1K(默认 1024×1024)异步 /v1/videos
gpt-image-2-2k~2K(默认 2048×2048)异步 /v1/videos
gpt-image-2-3.5k~3.5K(默认 2880×2880)异步 /v1/videos
gpt-image-2-4k真 4K(默认 4096×4096)异步 /v1/videos
怎么选:需要一次请求直接拿图,用 gpt-image-2-1k 同步;需要提交后自行轮询、规避长连接超时,用 gpt-image-2-1k-async。两者分辨率、参考图能力、积分消耗和价格完全一致。2K/3.5K/4K 始终走异步。用你的生图分组令牌调用即可。
3.5K 与 4K 的区别:gpt-image-2-3.5k 输出约 2880×2880;gpt-image-2-4k真 4K,1:1 输出 4096×4096,细节更足,适合大图印刷/高清素材。

接口信息

说明
同步(1K)POST /v1/images/generations → 响应直接返回图片 URL
异步(1K-async / 2K / 3.5K / 4K)POST /v1/videos 提交 → GET /v1/videos/{task_id} 轮询 → video_url 下载
鉴权Authorization: Bearer sk-你的生图分组令牌
下载平台 A → download.oaibox.xyz;平台 B → download-2.oaibox.xyz(以响应 video_url 为准)

提交方式

按模型自动区分:gpt-image-2-1k = 同步 /v1/images/generationsgpt-image-2-1k-async / -2k / -3.5k / -4k = 异步 /v1/videos(提交 → 轮询 → 下载)。文生图直接传 prompt,图生图另加参考图(见「核心参数」);JSON 与 multipart 均可传参考图。

尺寸档位详解

模型默认输出(1:1)约等于像素量典型用途
gpt-image-2-1k / -1k-async1024×10241K约 105 万头像、缩略图、社媒配图、快速草图
gpt-image-2-2k2048×20482K约 419 万常规海报、Banner、电商主图
gpt-image-2-3.5k2880×2880约 3.5K约 829 万高清插画、桌面壁纸
gpt-image-2-4k4096×4096真 4K约 1678 万大图印刷、高清素材、后期可再放大
关于"真 4K":市面上不少标称"4K"实为 2880×2880 上采样。gpt-image-2-4k 由真 4K 服务 1:1 直出 4096×4096(约 1678 万像素,是 2880² 的 2.0 倍、2048² 的 4 倍像素量),细节与可放大空间明显更足。只需高清预览用 3.5K 更省;要印刷或后期放大就选 4K。

4K 各画幅尺寸标准

aspect_ratio 即可切换画幅,长边恒为 4096(长边始终真 4K),短边按比例取偶数。下表为实测输出;画幅不影响计费,一律 。

aspect_ratio输出尺寸方向典型用途
1:1(默认)4096×4096方图通用
16:94096×2304视频封面 / 宽屏壁纸
9:162304×4096手机屏 / 竖版海报
4:34096×3072传统横幅
3:43072×4096传统竖幅
3:24096×2730相机横构图
2:32730×4096相机竖构图
5:44096×3276印刷横版
4:53276×4096印刷竖版
也可用 size 直接指定精确像素(如 "size":"4096x2304"),优先级高于 aspect_ratio;两者都不传则默认 4096×4096。2K 档同理,长边为 2048(如 16:9 → 2048×1152)。
# 指定画幅:16:9 横版 4K(换 aspect_ratio 即换画幅)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{
    "model":"gpt-image-2-4k",
    "prompt":"a cinematic product poster, ultra sharp",
    "aspect_ratio":"16:9"
  }'
# 轮询到 completed 后下载,实测输出 4096×2304

# 竖版 9:16 → 2304×4096
curl ... -d '{"model":"gpt-image-2-4k","prompt":"...","aspect_ratio":"9:16"}'

# 用 size 精确指定(等价于 16:9)
curl ... -d '{"model":"gpt-image-2-4k","prompt":"...","size":"4096x2304"}'

示例请求(真 4K 全流程 · 实测 curl)

以下是 gpt-image-2-4k 的完整异步流程(提交 → 轮询 → 下载 → 校验尺寸),我方已按此实测出 4096×4096 真 4K PNG。2K / 3.5K 换模型名即可,其余完全一致。把 aihubcc.cc 换成你所用平台的 Base、sk-xxx 换成你的生图分组令牌

# ① 提交任务(返回 task_id)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{
    "model":"gpt-image-2-4k",
    "prompt":"a small red apple on a white table, product photo, ultra sharp",
    "aspect_ratio":"1:1"
  }'
# → {"task_id":"yaimg_xxx","status":"queued", ...}

# ② 轮询(每 5–10 秒一次,只以 status=completed 判定完成,progress 仅供展示)
curl https://aihubcc.cc/v1/videos/yaimg_xxx \
  -H "Authorization: Bearer sk-xxx"
# 完成后 → {..., "status":"completed", "video_url":"https://download.oaibox.xyz/.../xxx.png"}
# 取响应里的 video_url(图片 URL)即可。

# ③ 下载结果(无需鉴权,直接 GET)
curl -L "https://download.oaibox.xyz/.../xxx.png" -o apple_4k.png

# ④ 校验分辨率(实测输出真 4096×4096)
python3 -c "from PIL import Image; print(Image.open('apple_4k.png').size)"
# → (4096, 4096)
下载域名随平台不同:平台 A(AIHUB.aihubcc.cc)→ download.oaibox.xyz;平台 B(AIHUB-2.aihubcc.cc)→ download-2.oaibox.xyz。以实际响应里的 video_url 为准,链接为生成后即时缓存,建议尽快下载保存。

图生图(附参考图):提交体加一张公网 HTTPS 直链或完整 data:image/...;base64, 参考图即可(多图用 reference_image_urls 数组,最多 6 张、解码后合计 ≤5 MiB):

# 4K 图生图:在参考图基础上改写/放大
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{
    "model":"gpt-image-2-4k",
    "prompt":"turn this into an ultra-detailed 4K product poster",
    "image_url":"https://cdn.example.com/apple.jpg",
    "aspect_ratio":"1:1"
  }'
# 轮询 / 下载同上;输出仍为真 4096×4096

核心参数

公共参数:model(必填,见上表)、prompt(必填,建议 ≤ 8000 字符)、aspect_ratiosize(画幅,size 优先)、参考图 image_url(单张)/ reference_image_urls(多图,≤ 6 张、解码后合计 ≤ 5MiB)。分通道字段见下两表:

通道 A · 1K 同步(OpenAI 兼容)

参数类型必填说明
modelstringgpt-image-2-1k
promptstring图片描述。按字符数计(中英文一视同仁,非字节),建议 ≤ 8000 字符(硬上限约 1 万字符,超出会生成失败)
sizestring画幅,如 1024x1024 / 1536x1024;不传默认 1:1。仅决定画幅
reference_image_urlsarray参考图(图生图 / 多图融合),最多 6 张,解码后总和 ≤5 MiB;元素可为公网 HTTPS URL 或 data URL。单张也可用 image / image_url
response_formatstring当前返回图片 URL;暂不承诺 b64_json 输出
# 1K 同步:直接返回图片 URL
curl -X POST https://aihubcc.cc/v1/images/generations \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{
    "model":"gpt-image-2-1k",
    "prompt":"a small red apple on a white table, product photo",
    "size":"1024x1024"
  }'
# 返回: {"created":..., "data":[{"url":"https://.../xxx.jpg"}]}
# 当前同步接口返回 URL,不返回 b64_json;需要 Base64 请由客户端下载 URL 后自行编码。

通道 B · 1K / 2K / 3.5K 异步(同视频任务接口)

参数类型必填说明
modelstringgpt-image-2-1k-async / gpt-image-2-2k / gpt-image-2-3.5k / gpt-image-2-4k
promptstring图片描述。按字符数计(中英文一视同仁,非字节),建议 ≤ 8000 字符(硬上限约 1 万字符,超出会生成失败)
aspect_ratiostring1:1(默认)/ 16:9 / 9:16 / 4:3 / 3:2 / 5:4 及竖版。auto:有参考图时继承首张参考图的最近支持比例;纯文本时根据提示词中的横版/竖版/方图意图自动选择,无法判断则为 1:1。显式画幅始终优先
image_urlstring单张参考图(公网 HTTPS URL 或完整 data:image/...;base64,);填了即图生图
reference_image_urlsarray多图参考(融合),最多 6 张,解码后总和 ≤5 MiB(别名 reference_images / images);JSON、multipart 均可传
# 1) 提交(异步)
curl -X POST https://aihubcc.cc/v1/videos \
  -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" \
  -d '{
    "model":"gpt-image-2-1k-async",
    "prompt":"a small red apple on a white table, product photo",
    "aspect_ratio":"1:1"
  }'
# 返回 task_id

# 2) 轮询:只以 status=completed 判定完成,progress 仅供展示
curl https://aihubcc.cc/v1/videos/task_xxx \
  -H "Authorization: Bearer sk-xxx"
# 完成后响应中的 video_url 为图片 URL;也可 GET /v1/videos/task_xxx/content 下载结果。

Python 完整请求(4K 异步实测)

import time, requests

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

# 提交(真 4K,1:1 → 4096×4096)
task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "gpt-image-2-4k",
    "prompt": "a small red apple on a white table, product photo, ultra sharp",
    "aspect_ratio": "1:1"
}).json()
tid = task.get("task_id") or task.get("id")

# 轮询(只认 status=completed)
while True:
    time.sleep(6)
    s = requests.get(f"{BASE}/videos/{tid}", headers=H).json()
    if s.get("status") == "completed":
        url = s["video_url"]; break
    if s.get("status") in ("failed", "error"):
        raise SystemExit(s)

# 下载(无需鉴权直接 GET)+ 校验尺寸
img = requests.get(url).content
open("apple_4k.png", "wb").write(img)
from PIL import Image; from io import BytesIO
print(Image.open(BytesIO(img)).size)   # -> (4096, 4096)

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

  • JSON:使用 Content-Type: application/json;data URL 必须完整、Base64 可解码,格式限 PNG/JPG/WebP。
  • multipart/form-data:1K 异步、2K/3.5K 可用文件字段上传参考图;请让 HTTP 库自动生成 boundary,不要手写错误的 Content-Type。
  • 400:请求字段、JSON、参考图格式或大小不符合要求,修改请求后再试;不会扣费。
  • 401/404:令牌或任务 ID 无效,请检查配置。
  • 409:任务尚未完成,继续按 5–10 秒间隔轮询。
  • 502/503/504:服务临时不可用或超时,可指数退避重试;不要并发重复提交同一任务。

建议

  • 要立即拿图gpt-image-2-1k 同步;要规避长连接超时-1k-async 或更高档异步(提交 → 轮询 → 下载)。
  • 真 4K 才选 4K:只做高清预览用 3.5K 更省;要印刷 / 后期放大用 gpt-image-2-4k(4096²,真 4K)。
  • 画幅aspect_ratio(长边恒 4096)或 size 精确像素(优先级更高)。
  • 图生图image_url(单张)或 reference_image_urls 数组(多图融合,≤ 6 张、合计 ≤ 5MiB)。

通用说明 & FAQ

平台信息

平台Base URL
平台 Ahttps://AIHUB.aihubcc.cc/v1
平台 Bhttps://AIHUB-2.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: 两个平台有什么区别?

能力完全一致。账号和余额独立。选其一使用,不可跨平台混用令牌。

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

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

📊 近期实际拒绝统计(系统自动更新 · 2026-08-18 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 / 没通过内容审查」 → 确定性拒绝,必须改内容,重试无用