跳到主要内容

Seedance 2.0 视频生成 NEW

由 BytePlus Ark Seedance 提供支持 — 新加坡区域,低泰国延迟
基于代币 — 按视频付费
Seedance 2.0 — 最高 1080p,全质量模型。从 0.186 IC / 1K 输出代币 (带输入视频) 到 0.333 IC / 1K (1080p,无输入视频)。
Seedance 2.0 Fast — 最高 720p,更便宜。从 0.143 IC / 1K (带输入视频) 到 0.242 IC / 1K (无输入视频)。

参考视频示例:一个 5 秒 720p 剪辑,仅文本输入 ≈ 33 IC ≈ 33 泰铢

活跃 POST /v3/store/video/seedance/tasks 仅限付费账户

高级功能。 Seedance 2.0 仅限已至少购买过一次 iApp 积分 (IC) 套餐的账户使用。免费注册积分不解锁此功能 — 购买一次性套餐即可访问所有高级 API。

欢迎来到 iApp Seedance 2.0,我们是 BytePlus Ark 的 Dreamina Seedance 2.0 系列的经销商。您将获得相同的 सिंगापुर区域吞吐量、相同的模型质量,并通过您现有的 iApp API 密钥实现单一的 OpenAI 式账单通道 — 无需单独的 BytePlus 账户,无外币发票,无个人身份信息 (PII) 离开泰国的友好账单。

试用实时演示

Try Seedance 2.0 Video Generation

Login to your iApp account to use this premium video-generation demo.

Example Prompts

Estimated cost~9.44 IC(text/image input • ~38K tokens)

选择模型

模型最高分辨率音频最适合大约成本 (5 秒,720p,无输入视频)
dreamina-seedance-2-0-2601281080p精彩广告、营销短片、任何需要最清晰输出的场景~41 IC
dreamina-seedance-2-0-fast-260128最高 720p草稿、社交媒体内容、批量生成、A/B 变体~33 IC

两种模型共享相同的 JSON 合同 — 通过 model 字段按请求切换层级。

定价 (每 1,000 个输出代币)

Seedance 按输出代币计费,代币大致等于 (输入视频时长 + 输出视频时长) × 宽度 × 高度 × 帧率 / 1024。更长或更高分辨率的视频会使用更多代币。输入提示代币不单独计费。

模型分辨率输入有视频?iApp 费率 (IC / 1K 代币)BytePlus 参考 (USD / 百万代币)
Seedance 2.0480p / 720p0.302$7.00
Seedance 2.0480p / 720p0.186$4.30
Seedance 2.01080p0.333$7.70
Seedance 2.01080p0.203$4.70
Seedance 2.0 Fast480p / 720p0.242$5.60
Seedance 2.0 Fast480p / 720p0.143$3.30

费率采用每行中最高的 BytePlus 层级,并加上少量溢价以覆盖汇率和网关开销。您只需为成功生成的视频付费 — 失败的任务 (例如内容审核拒绝) 成本为 0 IC。轮询状态端点也是免费的。

端点

API 是异步的:您 POST 提交任务,然后轮询 GET 直到状态为 succeeded

POST /v3/store/video/seedance/tasks — 提交任务

Headers:

HeaderValue
apikey您的 iApp API 密钥
Content-Typeapplication/json

Body schema:

{
"model": "dreamina-seedance-2-0-fast-260128",
"content": [
{ "type": "text", "text": "<your prompt>" },
{ "type": "image_url", "image_url": { "url": "https://..." }, "role": "reference_image" },
{ "type": "video_url", "video_url": { "url": "https://..." }, "role": "reference_video" },
{ "type": "audio_url", "audio_url": { "url": "https://..." }, "role": "reference_audio" }
],
"generate_audio": true,
"ratio": "16:9",
"duration": 5,
"watermark": false,
"resolution": "720p"
}
字段类型默认说明
modelstring必需dreamina-seedance-2-0-260128dreamina-seedance-2-0-fast-260128
contentarray必需至少包含一个 text 块。可选的 image_url / video_url / audio_url 块可添加参考媒体。
content[].rolestring对于图像:reference_image (主体/风格)、first_framelast_frame。对于视频:reference_video。对于音频:reference_audio
generate_audiobooleantrue随视频生成配乐。
ratiostring16:916:99:161:14:33:421:9 之一。
durationinteger5秒。范围 4–15 (Seedance 2.0 的 BytePlus 最低要求是 4 秒)。
watermarkbooleanfalse如果为 true,BytePlus 将在输出上添加水印。
resolutionstring模型默认480p720p1080p (Fast 模型不支持 1080p)。

响应 (HTTP 200):

{ "id": "task_abc123" }

GET /v3/store/video/seedance/tasks/{task_id} — 轮询状态

免费调用;返回任务的当前状态。建议轮询间隔:5 秒

完成时响应:

{
"id": "task_abc123",
"status": "succeeded",
"content": {
"video_url": "https://...mp4"
},
"usage": { "completion_tokens": 135000 }
}

状态值:queuedprocessingsucceededfailedcancelledexpired

⚠️ video_url 会在约 24 小时后过期。如果您需要保留视频,请立即下载 MP4 并自行托管。

身份验证

使用您 API Keys dashboard 中的任何有效密钥。相同的密钥适用于所有 iApp API。

代码示例

cURL

# 1. 提交
curl -X POST 'https://api.iapp.co.th/v3/store/video/seedance/tasks' \
-H "apikey: $IAPP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dreamina-seedance-2-0-fast-260128",
"content": [{ "type": "text", "text": "一只猫在日落时冲浪,电影感,24fps" }],
"duration": 5,
"ratio": "16:9",
"resolution": "720p",
"generate_audio": true
}'
# → {"id":"task_abc123"}

# 2. 轮询直到成功
curl -s 'https://api.iapp.co.th/v3/store/video/seedance/tasks/task_abc123' \
-H "apikey: $IAPP_API_KEY" | jq .

Python

import os, time, requests

API = "https://api.iapp.co.th/v3/store/video/seedance/tasks"
HEADERS = {"apikey": os.environ["IAPP_API_KEY"], "Content-Type": "application/json"}

# 1. Submit
r = requests.post(API, headers=HEADERS, json={
"model": "dreamina-seedance-2-0-fast-260128",
"content": [{"type": "text", "text": "一只猫在日落时冲浪,电影感,24fps"}],
"duration": 5,
"ratio": "16:9",
"resolution": "720p",
"generate_audio": True,
})
r.raise_for_status()
task_id = r.json()["id"]
print("submitted:", task_id)

# 2. Poll
while True:
s = requests.get(f"{API}/{task_id}", headers=HEADERS).json()
print("status:", s["status"])
if s["status"] == "succeeded":
video_url = s["content"]["video_url"]
break
if s["status"] in ("failed", "cancelled", "expired"):
raise SystemExit(f"task ended: {s}")
time.sleep(5)

# 3. Download
mp4 = requests.get(video_url).content
open("output.mp4", "wb").write(mp4)
print("saved output.mp4")

Node.js

const apiKey = process.env.IAPP_API_KEY;
const base = "https://api.iapp.co.th/v3/store/video/seedance/tasks";

const sub = await fetch(base, {
method: "POST",
headers: { "apikey": apiKey, "Content-Type": "application/json" },
body: JSON.stringify({
model: "dreamina-seedance-2-0-fast-260128",
content: [{ type: "text", text: "一只猫在日落时冲浪,电影感" }],
duration: 5, ratio: "16:9", resolution: "720p", generate_audio: true,
}),
});
const { id } = await sub.json();

let result;
while (true) {
await new Promise(r => setTimeout(r, 5000));
result = await (await fetch(`${base}/${id}`, { headers: { apikey: apiKey } })).json();
if (result.status === "succeeded") break;
if (["failed", "cancelled", "expired"].includes(result.status)) throw result;
}
console.log("video:", result.content.video_url);

Go

package main

import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"os"
"time"
)

func main() {
api := "https://api.iapp.co.th/v3/store/video/seedance/tasks"
key := os.Getenv("IAPP_API_KEY")
body, _ := json.Marshal(map[string]any{
"model": "dreamina-seedance-2-0-fast-260128",
"content": []map[string]string{{"type": "text", "text": "一只猫在冲浪"}},
"duration": 5,
"ratio": "16:9",
"resolution": "720p",
"generate_audio": true,
})
req, _ := http.NewRequest("POST", api, bytes.NewReader(body))
req.Header.Set("apikey", key)
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
var sub struct{ ID string }
json.NewDecoder(resp.Body).Decode(&sub)

for {
time.Sleep(5 * time.Second)
r2, _ := http.NewRequest("GET", fmt.Sprintf("%s/%s", api, sub.ID), nil)
r2.Header.Set("apikey", key)
res, _ := http.DefaultClient.Do(r2)
var p struct {
Status string
Content struct{ VideoURL string `json:"video_url"` }
}
json.NewDecoder(res.Body).Decode(&p)
res.Body.Close()
if p.Status == "succeeded" {
fmt.Println("video:", p.Content.VideoURL)
return
}
if p.Status == "failed" || p.Status == "cancelled" || p.Status == "expired" {
io.Copy(os.Stderr, res.Body)
return
}
}
}

用途

  • 营销短片 — 为 Instagram、TikTok、YouTube Shorts 一次性生成匹配的 9:16 / 1:1 / 16:9 剪辑。
  • 产品演示 — 提供主图作为 first_frame,让模型围绕其动画摄像机。
  • 本地化广告素材 — 直接输入泰语提示;无需翻译步骤。
  • 故事板预览 — 使用更便宜的 Fast 模型以 480p 进行迭代,然后以 1080p 重新渲染选中的镜头。

常见问题

为什么 Seedance 仅限付费账户? 一次 1080p 的渲染可能花费 60–100 IC,远高于平台上任何其他 API。为防止免费注册意外 (或恶意) 耗尽数百美元的 GPU 时间,该端点要求账户至少进行过一次付费 IC 购买。新用户只需一次性充值即可解锁所有功能 — 查看 购买 IC

如果生成失败怎么办? 您不会被收费。BytePlus 只对成功生成的视频收费,我们也遵循此政策。内容审核拒绝、不适宜内容过滤器和基础设施超时都会返回 0 IC。

渲染需要多长时间? 对于 Fast 模型上的 5 秒 720p 剪辑,通常需要 30–120 秒;对于完整模型上的 1080p 剪辑,则需要 1–4 分钟。您的客户端应每 5 秒轮询一次,超时时间为 15 分钟。

生成的视频归我所有吗? 是的 — 与直接客户一样。您保留生成内容的所有商业权利。避免使用描绘真实公众人物、受版权保护的角色或受保护知识产权的提示。

API 托管在哪里? 上游是 BytePlus Ark 的 ap-southeast-1 (新加坡)。通过 api.iapp.co.th 的请求会增加约 10–30 毫秒的网关延迟。

我可以用它进行实时/即时视频吗? 不可以。Seedance 是一个离线、异步生成器。每个剪辑都会被渲染一次,然后输出 URL 有效期为 24 小时。

支持

  • 定价或账单问题: sale@iapp.co.th
  • API 技术问题: Discord
  • Bug 报告: 请附带提交响应中的 task_id — 我们可以追溯每次调用。