API · 3.7

图片与视频生成 API 文档

文生图、图生图、文生视频、图生视频、任务查询与文件下载接口说明

跳跳虎视频生成 API

版本:3.1(2026-08-13)
基础地址:https://api.yanzi.fun

本文档仅描述公开调用接口。Seedance 2 使用统一模型名 seedance-2:没有图片时生成文字视频,传入图片时生成图片参考视频。Wan 3.0 的模型名及调用方式保持独立。


1. 鉴权

所有请求使用完整 API Key:

Authorization: Bearer YOUR_API_KEY

账号池的 curl 自动解析接口支持机器直接调用,不需要管理员页面会话。请求使用服务器配置的专用 GW_INGEST_TOKEN,与下游用户 API Key 分开:

POST /admin/accounts/import-curl
Authorization: Bearer GW_INGEST_TOKEN
Content-Type: application/json
{
  "curl": "curl ... /user/info ... -b \"... token=JWT ...\"",
  "storage_state": {
    "cookies": [],
    "origins": [],
    "sessionStorage": {}
  },
  "notes": "可选备注"
}

该接口仍要求 curl 中包含 QwenWork 登录态 token;缺少该字段时请求会被拒绝,不会创建不可用账号。

JSON 请求同时携带:

Content-Type: application/json

2. 查询视频模型

GET /api/models?modality=video
Authorization: Bearer YOUR_API_KEY

当前公开模型:

模型 用途 时长 比例 清晰度
seedance-2 无图片自动文生;有图片自动图片参考生成 1–15 秒 9:1616:9 720p1080p
wonderclip:wan3.0-video:t2v Wan 3.0 文生视频 2–30 秒 16:99:164:33:41:1 720p1080p
wonderclip:wan3.0-video:i2v Wan 3.0 图生视频 2–30 秒 同上 720p1080p
wonderclip:wan3.0-video:r2v Wan 3.0 图片、视频、音频参考生成 2–30 秒¹ 同上 720p1080p
seedance933:t2v 933 不卡脸文生视频 1–15 秒 9:1616:91:14:33:421:9 720p1080p
seedance933:i2v 933 不卡脸图生视频 1–15 秒 同上 720p1080p
genspark:seedance-2.0:t2v 第二渠道 Seedance 2.0 文生视频 4–15 秒 21:916:94:31:13:49:16 720p1080p
genspark:seedance-2.0:i2v 第二渠道 Seedance 2.0 图片参考生成 4–15 秒 同上 720p1080p

¹ 参考素材包含视频时最长 15 秒。

模型列表返回当前启用状态、支持参数及系统公开标价。实际用户价格以报价接口为准。

模型与上游路由

公开模型名不包含上游命名空间。网关按模型固定绑定上游,不会因为渠道字段残留、账号额度不足或请求失败而把任务改投到其他模型:

公开模型 固定上游
seedance-2 Seedance/vidIQ
wonderclip:wan3.0-video:* WonderClip
seedance933:* 933 不卡脸
genspark:seedance-2.0:* 第二渠道

提交 genspark:seedance-2.0:t2vgenspark:seedance-2.0:i2v 时,即使请求中的 channel 是旧值,也会按模型绑定到第二渠道。若该模型对应的上游账号或额度不可用,任务会在该上游失败并退款,不会转成 Wan 3.0 或其他模型。


3. 查询预计扣费

POST /api/system-control/quote
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

请求:

{
  "model": "seedance-2",
  "task_type": "text_to_video",
  "task_count": 1,
  "config_json": {
    "model": "seedance-2",
    "seconds": 5,
    "resolution": "720p"
  }
}

图片参考生成时将 task_type 设置为 image_to_video

响应:

{
  "available": true,
  "task_count": 1,
  "model": "seedance-2",
  "duration": 5,
  "pricing_unit": "credits_per_second",
  "credits_per_second": "0.12",
  "unit_price": "0.60",
  "total_price": "0.60",
  "balance": "179.65"
}

报价和实际扣费使用同一套用户价格规则。任务失败时自动退回本次预扣积分。


4. 服务器本地上传与 Media ID

图片建议先通过网关返回的上传地址写入服务器本地媒体卷。网关数据库只保存 Media ID,不保存图片 Base64;当前部署不依赖 Cloudflare R2。

4.1 获取上传地址

POST /api/upload/presign-object
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
  "filename": "Image1.jpg",
  "content_type": "image/jpeg",
  "size_bytes": 1234567
}

响应包含 media_idupload_urlobject_key 和上传请求头。浏览器使用返回的 upload_url 执行 PUT,Body 为原始文件二进制;生产配置下该地址落到本机 /data/media/uploads

4.2 确认上传

POST /api/upload/confirm-object
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
  "media_id": "MEDIA_ID",
  "object_key": "uploads/USER_ID/DATE/MEDIA_ID.jpg"
}

确认成功后,在视频生成请求中传入:

"media_ids": ["MEDIA_ID_1", "MEDIA_ID_2"]

5. 统一提交视频任务

POST /v1/videos/generations
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

通用字段:

字段 类型 必填 说明
model string 模型名称
channel string Seedance 使用 seedance;Wan 3.0 使用 wonderclip;第二渠道使用 second_channel,也可由模型自动识别
prompt string 视频提示词
duration integer 生成秒数
ratio string 画面比例
resolution string 720p1080p,默认 720p
audio boolean 是否生成声音,默认 true
batch_count integer 批量任务数量,1–5,默认 1
images array 图片数组,支持 data_b64 或公网 url;可用于图生视频、首尾帧及图片参考
references array Base64 参考素材数组,元素类型可为 imagevideoaudio
image_mode string 图片模式:singlefirst_lastr2v
reference_mode string 参考模式;混合图片、视频、音频时可填写 reference_generation

单任务响应:

{
  "task_id": "TASK_ID",
  "status": "queued"
}

批量响应:

{
  "task_ids": ["TASK_ID_1", "TASK_ID_2"],
  "count": 2,
  "status": "queued"
}

6. Seedance 2

Seedance 2 固定使用:

"model": "seedance-2"

接口根据媒体字段自动选择生成方式:

请求内容 生成方式
没有 images、首尾帧或 Ingredients 文生视频
传入任意图片字段 图片参考视频

5.1 文生视频

{
  "channel": "seedance",
  "model": "seedance-2",
  "prompt": "夏日下午的家庭庭院,草坪在微风中轻轻摇曳,镜头缓慢推进",
  "duration": 5,
  "ratio": "9:16",
  "resolution": "720p",
  "audio": true
}

5.2 单首帧

{
  "channel": "seedance",
  "model": "seedance-2",
  "image_mode": "single",
  "prompt": "让图片中的人物自然眨眼,背景随微风轻轻摆动",
  "duration": 5,
  "ratio": "9:16",
  "resolution": "720p",
  "media_ids": ["MEDIA_ID_FIRST_FRAME"]
}

5.3 首尾帧

{
  "channel": "seedance",
  "model": "seedance-2",
  "image_mode": "first_last",
  "prompt": "从第一张画面自然过渡到第二张画面",
  "duration": 5,
  "ratio": "16:9",
  "resolution": "720p",
  "media_ids": ["MEDIA_ID_START", "MEDIA_ID_END"]
}

5.4 Ingredients 多图参考

支持 1–9 张图片:

{
  "channel": "seedance",
  "model": "seedance-2",
  "image_mode": "r2v",
  "prompt": "保持三张参考图中的角色外观、服装和场景一致,生成连贯电影镜头",
  "duration": 5,
  "ratio": "9:16",
  "resolution": "720p",
  "media_ids": ["MEDIA_ID_1", "MEDIA_ID_2", "MEDIA_ID_3"]
}

media_ids/images 的数组顺序就是图片编号,可在提示词中使用 @ImageN(同时兼容 @图N)引用:

{
  "channel": "seedance",
  "model": "seedance-2",
  "image_mode": "r2v",
  "prompt": "保持 @Image1 的女主外观和服装一致,让 @Image1 与 @Image2 出现在 @Image3 的教室场景中",
  "duration": 5,
  "ratio": "9:16",
  "resolution": "720p",
  "media_ids": ["MEDIA_ID_女主", "MEDIA_ID_男主", "MEDIA_ID_场景"]
}

对应关系固定为:

@Image1 / @图1 → media_ids[0] 或 images[0]
@Image2 / @图2 → media_ids[1] 或 images[1]
@Image3 / @图3 → media_ids[2] 或 images[2]

网关会按请求数组顺序重建素材,不依赖数据库查询返回顺序;若提示词引用的 @ImageN 超出实际图片数量,请求会返回参数错误,避免静默错绑。

图片数据规则:


7. Wan 3.0

6.1 文生视频

{
  "channel": "wonderclip",
  "model": "wonderclip:wan3.0-video:t2v",
  "prompt": "真实庭院里的花朵随风摇曳,镜头稳定推进",
  "duration": 5,
  "ratio": "9:16",
  "resolution": "720p",
  "audio": true
}

6.2 图生视频

{
  "channel": "wonderclip",
  "model": "wonderclip:wan3.0-video:i2v",
  "prompt": "让图片中的花朵和叶片随微风自然摆动",
  "duration": 5,
  "ratio": "9:16",
  "resolution": "720p",
  "images": [
    {"name": "frame.jpg", "data_b64": "BASE64_IMAGE"}
  ]
}

Wan 3.0 参考生视频(图片 / 视频 / 音频可混合)示例

references 可混合图片、视频和音频。单次最多 10 张图片、5 个视频、5 个音频,合计最多 20 个素材。 图片、视频、音频不需要拆成不同接口或不同请求。

{
  "channel": "wonderclip",
  "model": "wonderclip:wan3.0-video:r2v",
  "prompt": "参考素材的主体、镜头运动和声音节奏生成视频",
  "duration": 5,
  "ratio": "16:9",
  "resolution": "720p",
  "audio": true,
  "references": [
    {
      "name": "reference.jpg",
      "media_type": "image",
      "mime": "image/jpeg",
      "data_b64": "BASE64_IMAGE"
    },
    {
      "name": "reference.mp4",
      "media_type": "video",
      "mime": "video/mp4",
      "data_b64": "BASE64_VIDEO"
    },
    {
      "name": "reference.mp3",
      "media_type": "audio",
      "mime": "audio/mpeg",
      "data_b64": "BASE64_AUDIO"
    }
  ]
}

8. 933 不卡脸

文生视频使用 seedance933:t2v,图生视频使用 seedance933:i2v。支持 1–15 秒和 720p1080p

图生视频支持图片、视频、音频混合参考:最多 10 张图片、5 段视频、5 段音频。提示词可用 @Image1@Video1@Audio1 指定对应素材;三种素材分别独立编号。

8.1 图生视频:直接传入图片

将图片转成 Base64 后放入 images[].data_b64

{
  "channel": "seedance933",
  "model": "seedance933:i2v",
  "prompt": "@Image1 中的人物自然转身,镜头平稳跟随",
  "duration": 5,
  "ratio": "9:16",
  "resolution": "720p",
  "images": [
    {
      "name": "reference.jpg",
      "data_b64": "BASE64_IMAGE"
    }
  ]
}

也可以传公网图片地址:

"images": [
  {
    "name": "reference.jpg",
    "url": "https://example.com/reference.jpg"
  }
]

网页端选择“933 不卡脸 图生视频”后,在“参考素材”区域点击或拖拽上传图片。图片左上角的 @Image1 按钮可将素材编号插入提示词。

8.2 图片、视频、音频混合参考

{
  "channel": "seedance933",
  "model": "seedance933:i2v",
  "prompt": "以 @Image1 为主体,参考 @Video1 的动作,并使用 @Audio1 的节奏",
  "duration": 5,
  "ratio": "16:9",
  "resolution": "720p",
  "references": [
    {"name": "subject.jpg", "media_type": "image", "mime": "image/jpeg", "data_b64": "BASE64_IMAGE"},
    {"name": "motion.mp4", "media_type": "video", "mime": "video/mp4", "data_b64": "BASE64_VIDEO"},
    {"name": "rhythm.mp3", "media_type": "audio", "mime": "audio/mpeg", "data_b64": "BASE64_AUDIO"}
  ]
}
{
  "channel": "seedance933",
  "model": "seedance933:t2v",
  "prompt": "电影感街景,人物自然行走,镜头平稳跟随",
  "duration": 5,
  "ratio": "9:16",
  "resolution": "720p"
}

9. 第二渠道 Seedance 2.0

渠道名仅用于 API 的 channel/模型显示,不作为服务器名称。第二渠道使用独立的上游凭据和素材上传链路。

支持模型:

genspark:seedance-2.0:t2v
genspark:seedance-2.0:i2v

Seedance 2.0 支持 4–15 秒,支持 21:9/16:9/4:3/1:1/3:4/9:16,分辨率为 720p1080p。参考素材最多 9 张图片、3 个视频、3 个音频,合计最多 12 个素材。

文生视频:

{
  "channel": "second_channel",
  "model": "genspark:seedance-2.0:t2v",
  "prompt": "电影感街景,人物自然行走,镜头平稳跟随",
  "duration": 10,
  "ratio": "9:16",
  "resolution": "720p",
  "audio": true
}

多模态参考:

{
  "channel": "second_channel",
  "model": "genspark:seedance-2.0:i2v",
  "prompt": "以 @Image1 为主体,参考 @Video1 的动作,并使用 @Audio1 的节奏",
  "duration": 15,
  "ratio": "16:9",
  "resolution": "720p",
  "references": [
    {"name": "subject.jpg", "media_type": "image", "mime": "image/jpeg", "data_b64": "BASE64_IMAGE"},
    {"name": "motion.mp4", "media_type": "video", "mime": "video/mp4", "data_b64": "BASE64_VIDEO"},
    {"name": "rhythm.mp3", "media_type": "audio", "mime": "audio/mpeg", "data_b64": "BASE64_AUDIO"}
  ]
}

Seedance 2.0 图片参考生成:

{
  "channel": "second_channel",
  "model": "seedance-2.0:i2v",
  "prompt": "保持 @Image1 和 @Image2 中的角色与场景特征,参考 @Video1 的动作,并跟随 @Audio1 的节奏",
  "duration": 5,
  "ratio": "9:16",
  "resolution": "720p",
  "image_mode": "r2v",
  "reference_mode": "reference_generation",
  "images": [
    {"name": "start.jpg", "mime": "image/jpeg", "data_b64": "BASE64_IMAGE_1"},
    {"name": "end.jpg", "mime": "image/jpeg", "data_b64": "BASE64_IMAGE_2"}
  ],
  "references": [
    {"name": "motion.mp4", "media_type": "video", "mime": "video/mp4", "data_b64": "BASE64_VIDEO"},
    {"name": "rhythm.mp3", "media_type": "audio", "mime": "audio/mpeg", "data_b64": "BASE64_AUDIO"}
  ]
}

第二渠道的 seedance-2.0:i2v 仅保留 r2v 参考生成;singlefirst_last 已取消。

管理员可导入第二渠道凭据;网关会自动把它加入第二渠道账号池。

参考素材上传可通过 711proxy 转发。配置第二渠道代理后,获取上传地址和向对象存储上传文件都会使用同一个代理出口;代理传输失败时会自动更换出口重试。视频生成流本身保持普通连接。


10. 查询任务

GET /v1/tasks/{TASK_ID}
Authorization: Bearer YOUR_API_KEY

成功响应:

{
  "task_id": "TASK_ID",
  "type": "video",
  "channel": "seedance",
  "status": "success",
  "model": "seedance-2",
  "ratio": "9:16",
  "duration": 5,
  "progress": "生成完成",
  "result_urls": ["/v1/tasks/TASK_ID/video"],
  "video_url": "/v1/tasks/TASK_ID/video",
  "download_url": "/v1/tasks/TASK_ID/video",
  "error": null,
  "points_cost": 0.6,
  "refunded": false,
  "balance_after": 179.05
}

任务状态:

状态 说明
queued 已进入队列
running 正在生成
success 生成完成
failed 生成失败;预扣积分自动退回

建议每 10–30 秒查询一次,直至进入 successfailed


8. 下载视频

GET /v1/tasks/{TASK_ID}/video
Authorization: Bearer YOUR_API_KEY

cURL:

curl -L "https://api.yanzi.fun/v1/tasks/TASK_ID/video" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o result.mp4

9. 常见 HTTP 状态

状态码 说明
200 请求成功
400 参数、图片数量或媒体格式错误
401 API Key 无效
402 用户余额不足
404 任务不存在
429 用户任务或全局队列达到上限
500 任务提交异常
503 模型或渠道已停用

生成任务失败时,查询接口中的 statusfailed,并返回稳定的公开错误信息;本次预扣积分会自动退回。


10. 完整 cURL 示例

Seedance 2 文生视频

curl -X POST "https://api.yanzi.fun/v1/videos/generations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "channel":"seedance",
    "model":"seedance-2",
    "prompt":"夏日下午的庭院,草坪随微风轻轻摆动",
    "duration":5,
    "ratio":"9:16",
    "resolution":"720p"
  }'

查询任务

curl "https://api.yanzi.fun/v1/tasks/TASK_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"