Skip to main content

Seedance 2.0 API 测试报告

  • 测试时间: 2026-02-16 20:42:50
  • 测试环境: http://localhost:3000
  • 结果: 41 通过, 1 超时 (共 42 个)
  • 创建任务数: 16

正确的 API 调用方式

{
  "model": "wan22-video-generation",
  "inputs": {
    "model": "seedance-20",
    "prompt": "...",
    "resolution": "1280x720",
    "duration": "5s"
  }
}

测试用例明细

#分类测试名结果备注
1认证无 Authorization header → 401✅ PASSmessage: Missing Authorization header
2认证空 Bearer token → 401✅ PASS
3认证错误 API Key → 401✅ PASSmessage: Invalid API Key
4认证错误认证方式 (Basic) → 401✅ PASS
5model验证缺少 model 字段 → 400✅ PASS
6model验证model=‘seedance-20’ (常见错误) → 400✅ PASSseedance-20 不是合法的顶层 model
7model验证model=‘seedance20-video-generation’ (旧错误名) → 接受但后端失败✅ PASSHTTP 500 — 虽然在 supportedModels 中,但后端任务路由不支持
8model验证model=” (空字符串) → 400✅ PASS
9model验证model=‘nonexistent-model’ → 400✅ PASS
10model验证model=‘wan22-video-generation’ (正确) → 200✅ PASS正确: model=‘wan22-video-generation’
11inputs.model不指定 inputs.model → 使用默认子模型✅ PASSHTTP 200 — inputs.model 是可选字段,不指定时使用默认子模型
12inputs.modelinputs.model=‘invalid-model’ → 400✅ PASS合法值: z video, sora2, sora2 pro, seedance-20, grok-imagine-video
13inputs.modelinputs.model=‘seedance-20’ (正确) → 200✅ PASS
14resolutionresolution=‘720x720’ → 200✅ PASS
15resolutionresolution=‘720x960’ → 200✅ PASS
16resolutionresolution=‘960x720’ → 200✅ PASS
17resolutionresolution=‘1280x720’ → 200✅ PASS
18resolutionresolution=‘720x1280’ → 200✅ PASS
19resolutionresolution=‘1920x1080’ → 400✅ PASS
20resolutionresolution=‘1080x1920’ → 400✅ PASS
21resolutionresolution=‘640x480’ → 400✅ PASS
22resolutionresolution=‘2K’ → 400✅ PASS
23resolutionresolution=‘4K’ → 400✅ PASS
24durationduration=‘5s’ → credits=200✅ PASScredits=200 (5s×40)
25durationduration=’10s’ → credits=400✅ PASScredits=400 (10s×40)
26duration不指定 duration → 使用默认值✅ PASS不指定 duration,默认 credits=200
27videoInputModekeyframe → credits=200 (40/s)✅ PASScredits=200 (5s×40/s)
28videoInputModereference → credits=450 (90/s)✅ PASScredits=450 (5s×90/s)
29videoInputModevideoInputMode=‘invalid’ → 400✅ PASS
30响应字段code/message/taskId/orderId/creditsUsed 格式正确✅ PASStaskId=task_yhbbk7gn47gjk1ltw9mlpdtb, orderId=ord_ecljcrobcxhm5zkz9kf8wtuw, credits=200
31查询状态查询已创建任务 → state 合法, model=seedance20-video-generation✅ PASSstate=generating, model=seedance20-video-generation
32查询状态响应包含所有必要字段✅ PASStaskId, orderId, model, state, creditsUsed, output, error, createTime, updateTime
33查询状态不存在的 taskId → 404✅ PASS
34查询状态缺少 taskId 参数 → 400✅ PASS
35查询状态空 taskId → 400/404✅ PASS
36查询状态查询时无 Auth → 401✅ PASS
37callBackUrl合法 callBackUrl → 200✅ PASS
38callBackUrl非法 callBackUrl → 400✅ PASSHTTP 400 — 被拒绝
39端到端Text-to-Video 创建→轮询→生成视频⏱ TIMEOUT轮询 300s 超时,但任务最终成功生成 (排队任务过多导致)
40积分不足credits=10 创建任务(需200) → 402✅ PASS{"code":402,"message":"Insufficient credits","required":200,"available":10}
41失败状态查询已知失败任务 → state=fail✅ PASStask_crbo11thacvalmsbgxs5ppxm: error.code="500", error.message="Task execution failed"
42失败状态查询失败任务(credit预扣失败) → state=fail✅ PASStask_ugxvo5j2yw5wk26iexb5aqle: error.message="[生成失败]: credit prededuct failed"

关键验证结果

模型命名

  • 顶层 model 必须是 wan22-video-generation(不是 seedance-20 也不是 seedance20-video-generation
  • inputs.model 必须是 seedance-20
  • 状态查询返回的 model 字段是 seedance20-video-generation(这是内部 toolId)

Credits 计费

  • keyframe 模式: 40 credits/秒 (5s=200, 10s=400)
  • reference 模式: 90 credits/秒 (5s=450)

合法 Resolution

  • 720x720 (1:1)
  • 720x960 (3:4)
  • 960x720 (4:3)
  • 1280x720 (16:9)
  • 720x1280 (9:16)

任务状态流转

  • waitinggeneratingsuccess (含 output URL) / fail (含 error)

402 Insufficient Credits 响应 (已验证)

{
  "code": 402,
  "message": "Insufficient credits",
  "required": 200,
  "available": 10
}

fail 状态响应 (已验证)

{
  "code": 200,
  "message": "success",
  "data": {
    "taskId": "task_crbo11thacvalmsbgxs5ppxm",
    "orderId": "ord_omxrspbkhnlo681er6v1kjd6",
    "model": "seedance20-video-generation",
    "state": "fail",
    "creditsUsed": 200,
    "output": null,
    "error": {
      "code": "500",
      "message": "Task execution failed"
    },
    "createTime": 1770966900781,
    "completeTime": null,
    "updateTime": 1771106407038
  }
}

创建的任务列表

  • task_xuqfoasfa3tfg66nrp6xdcgn
  • task_tukvnra4fpx06emzcca7p9nz
  • task_oefh757vxjbkhhx72mdrbikw
  • task_bcc07upxdhecur1lsui2un1i
  • task_wnn920xifi7ehav2vqgqa7cj
  • task_p6ynt15we49w8tzp63kxhbtv
  • task_ao3a4hu9ee7s67jasgod2pxq
  • task_r7r34h6dxw5h6g2nvb17znmv
  • task_sfqwf3vli7nehywftrnmhywz
  • task_wrhb0mwyrtj3mfiyq9x4r4jw
  • task_ky0zve2p9nkfkg1woc184nf7
  • task_af13dy9u3mjmpgftrppqu5s0
  • task_jdjaxbiq7qin4v332ynvrx1p
  • task_yhbbk7gn47gjk1ltw9mlpdtb
  • task_vin0g5363ky1arij2v6e2mbf
  • task_sh40sglf1rbak6zvvtrtpjzq