Seedance 2.0 · 图生视频
将静态图片变成带同步音频的电影感视频。
能力
最适合
- •电影感文生视频镜头
- •社交媒体短片与广告
- •连贯的多镜头片段
- •视觉开发与风格探索
不适合
- •逐帧精确转描
- •长篇视频渲染
- •像素级精确合成
- •准确呈现画面文字
身份验证
API 密钥标头
Uika API 使用 API 密钥来验证请求。将您的密钥发送到 X-API 密钥 标题。API 密钥必须保密,不要暴露在浏览器或其他客户端代码中。请从服务端调用 API。登录后的试玩使用控制台会话,不会发送你的 API 密钥。
X-API-Key: YOUR_API_KEY
端点
异步·轮询结果
参考上传
媒体输入
媒体输入接受任何公共 URL。要使用本地文件,请将其 content_type 和 size_bytes 发布到 /v1/media/uploads,将文件放入返回的 upload_url,然后传递 url.
# 1. Request a presigned upload URL. Send the file's content# type and its exact size in bytes.curl -X POST https://api.dev.pika.art/v1/media/uploads \-H "X-API-Key: YOUR_API_KEY" \-H "Content-Type: application/json" \-d '{"content_type": "image/png", "size_bytes": 12345}'# The response returns two URLs:# upload_url: a temporary URL to upload the file to. Expires in 5 minutes.# url: the permanent Uika URL. Pass it to the model as the input.# {# "upload_url": "https://upload.r2.pika.art/...?X-Amz-Signature=...",# "url": "https://cdn.pika.art/v2/media/uploads/org_abc/9f8e7d.png"# }# 2. Upload the file to upload_url, then pass url to the model.curl -X PUT "<upload_url>" \-H "Content-Type: image/png" \--data-binary @input.png
生成
POST /v1/media/bytedance/seedance-2.0/image-to-video
请求
curl -X POST https://api.dev.pika.art/v1/media/bytedance/seedance-2.0/image-to-video \-H "X-API-Key: YOUR_API_KEY" \-H "Content-Type: application/json" \-d '{"prompt": "Steady side-on tracking shot: the black stallion walks in a continuous loop on the treadmill, legs lifting and placing in fluid rhythm, tail swishing, mane flowing. The rider's leather trenchcoat drapes and moves naturally with each stride. Camera holds with a very slow rightward dolly. Wildflowers and grass ripple in the wind around the treadmill base, gentle late-afternoon light.","duration": 5,"ratio": "4:3","generate_audio": true,"watermark": false,"image_url": "https://cdn.pika.art/v2/files/agent/34f0ba0a-deea-4629-b73c-10042bbf274f/7f82c8e554b003e032a4a4bcb116e97358aa17fc87b8981e6a25ac5f060040fb","resolution": "720p"}'
返回数据
{"id": "media_8f3a2c91-5b7d-4e0a-9c26-31d4f2a8e6b0","status": "queued"}
请求正文
接受的值
- 比例
- bitrate_mode
- 分辨率
输入模式
可直接使用公开链接。若文件在本地,先向 /v1/media/uploads 提交 { content_type, size_bytes },再带上返回的请求头,使用 PUT 将图片上传至 upload_url,最后使用返回的 url。
可直接使用公开链接。若文件在本地,先向 /v1/media/uploads 提交 { content_type, size_bytes },再带上返回的请求头,使用 PUT 将图片上传至 upload_url,最后使用返回的 url。
返回
返回一个 工作对象 状态 ,不是最终输出。存储响应中的 ID 并轮询作业直至完成。
民意调查状态
获取/v1/media/jobs/{request_id}
请求
curl https://api.dev.pika.art/v1/media/jobs/{request_id} \-H "X-API-Key: YOUR_API_KEY"
返回数据
{"id": "media_8f3a2c91-5b7d-4e0a-9c26-31d4f2a8e6b0","status": "running"}
按 ID 轮询作业,直到达到最终状态:已完成或失败。已完成的作业在输出中携带其下载 URL,并且 GET /v1/media/jobs/{request_id}/content 返回与 { "url" } 对于只保留 ID 的客户端。
DELETE /v1/media/jobs/{request_id} 删除作业的存储介质以及提交时捕获的请求(提示和参数)。然后作业报告 deleted_at 并且没有输出,内容端点回答410。
作业对象
错误
在通话中共享
错误使用传统的 HTTP 状态代码以及形状的 JSON 主体 {"message": "..."}. 参数校验失败时返回 422 并带有一条命名有问题字段的消息。作业行存在后提交拒绝(余额、速率限制)返回失败的作业信封 — 分支 error.code.
| 状态 | 当 | 身体 |
|---|---|---|
| 401 未经授权 | API 密钥丢失或无效。 | {"message":"Invalid API key"} |
| 403 禁止 | 非活动密钥被拒绝 {"message"} 身体。作业行存在并返回失败的作业信封后,组织余额或后付费周期限制无法覆盖的提交将被拒绝。 GET /billing/balance 将两者分开: 200 表示密钥处于活动状态,因此拒绝的是余额或循环限制。 | {"id":"media_8f3a2c91-5b7d-4e0a-9c26-31d4f2a8e6b0","status":"failed","error":{"code":"insufficient_balance","message":"Insufficient org balance"}} |
| 404 未找到 | 您的组织中不存在具有该 ID 的作业,或者媒体路径名称未知的供应商/型号/功能。 | {"message":"media job not found"} |
| 409冲突 | 在作业完成之前请求结果,或者将 Idempotency-Key 标头与不同的正文重用。 | {"message":"media job is not ready"} |
| 422 无法处理的实体 | 请求正文验证失败:枚举值无效、缺少必填字段、类型错误或 JSON 格式错误。 JSON 消息命名有问题的字段。无法定价的架构有效参数组合在创建作业后失败,并返回失败的作业信封和错误代码 invalid_input. | {"message":"duration: Input should be less than or equal to 15"} |
| 429 请求太多 | 您已达到每分钟或每天的请求限制,或者您组织的作业队列已满。作为失败的作业信封返回。如果存在 Retry-After 标头,请等待那么长时间,然后使用新的 Idempotency-Key 重试。 | {"id":"media_8f3a2c91-5b7d-4e0a-9c26-31d4f2a8e6b0","status":"failed","error":{"code":"rate_limited","message":"rate limit exceeded: rpm"}} |
| 503服务不可用 | 模型导轨或后端依赖项暂时不可用。作为失败的作业信封退回;使用退避和新的幂等密钥重试。 | {"id":"media_8f3a2c91-5b7d-4e0a-9c26-31d4f2a8e6b0","status":"failed","error":{"code":"provider_unavailable","message":"media dispatch unavailable"}} |