Skip to content
上新Nano Banana 2.1 已上线:Google 新一代生图模型,单张低至 $0.0336,原生 4K,约上一代半价查看模型
HopBase
← 返回博客

海外调用豆包 API:Seed、Seedream 与 Seedance 接入指南

先说答案:在海外用一把 HopBase Key 加 OpenAI SDK,就能调用字节的豆包 Seed 对话、Seedream 生图、Seedance 视频和豆包语音。base_url 设为 https://api.hop-base.com/v1,给 Key 挂上所需分组,模型 ID 以 GET /v1/models 为准,如对话 doubao-seed-2-1-pro-260628、视频 dreamina-seedance-2-5-260628。生图同步返回,视频先提交再轮询。邮箱或 Google、GitHub 账号即可注册,美元按量付费,可用支付宝、微信支付或银行卡。

「豆包」包括哪些,由哪个分组提供

字节以豆包和 Seed 的名义发布了多条模型线。在 HopBase 上每条线各自是一个分组,一把 Key 最多可挂 10 个分组:

产品线 用途 控制台分组 模型 ID
豆包 Seed 对话 文本与图片输入对话、工具调用、深度思考 豆包 Seed 云厂商 doubao-seed-2-1-pro-260628、doubao-seed-2-1-pro-260915、doubao-seed-2-1-lite-260915、doubao-seed-2-1-turbo-260628、doubao-seed-evolving、doubao-seed-character-260628、doubao-seed-2-0-mini-260428
Seedream 文生图、图生图、改图 Seedream 生图分组,或 Seedance 海外 · Seedream(该组只有 seedream-5-0-pro) seedream-5-0-pro、seedream-5-0-lite、seedream-4-5
Seedance(海外 ID) 文本、图片、参考生视频 Seedance 海外 · Seedream dreamina-seedance-2-5-260628、dreamina-seedance-2-0-260128、dreamina-seedance-2-0-fast-260128、dreamina-seedance-2-0-mini-260615
Seedance(国内 ID) 同样的系列,国内模型 ID Seedance 国内(Doubao) doubao-seedance-2-5-260628-a、doubao-seedance-2-0-260128-a、doubao-seedance-2-0-fast-260128-a、doubao-seedance-2-0-mini-260615-a
豆包语音 语音合成、场景音频、声音复刻 豆包语音 云厂商 seed-tts-2.0、seed-audio-1.0、seed-icl-2.0

别把 doubao-seed-*(对话)和 doubao-seedance-*(视频)搞混,它们属于不同分组。模型 ID 精确匹配:请从 GET /v1/models 复制,不要缩写,也不要加后缀。

第 1 步:创建 Key 并列出模型

在 api.hop-base.com 注册,打开 API 密钥,新建一把 Key 并挂上上表中的分组。然后查看这把 Key 能调用哪些模型:

export HOPBASE_API_KEY=sk-your-key
curl https://api.hop-base.com/v1/models \
  -H "Authorization: Bearer $HOPBASE_API_KEY"

用 OpenAI SDK 调用豆包 Seed 对话

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.hop-base.com/v1",
    api_key=os.environ["HOPBASE_API_KEY"],
)

resp = client.chat.completions.create(
    model="doubao-seed-2-1-pro-260628",
    messages=[{"role": "user", "content": "Summarise the main idea of retrieval-augmented generation in two sentences."}],
    max_tokens=4000,
)
print(resp.choices[0].message.content)

上线前需要了解:

  • 上下文与输出。 doubao-seed-2-1-pro-260915 和 doubao-seed-2-1-lite-260915 上下文 1M token,最多输出 256K。doubao-seed-2-1-pro-260628、doubao-seed-2-1-turbo-260628、doubao-seed-evolving 和 doubao-seed-2-0-mini-260428 上下文 256K,最多输出 128K。doubao-seed-character-260628 上下文 128K,最多输出 32K。
  • 深度思考。 除 doubao-seed-character-260628 外,所有模型默认开启思考,思考内容在 reasoning_content 中返回。思考 token 计入 max_tokens,请留足余量。
  • 图片输入。 七个模型都接受 image_url 内容块,可以是公网 URL 或 data: URI(base64)。私有链接请用 base64。
  • 工具调用。 七个模型都支持工具调用。doubao-seed-evolving 和 doubao-seed-2-1-pro-260915 会忽略 tool_choice。需要强制调用或禁止调用工具时,请用 doubao-seed-2-1-pro-260628 或 doubao-seed-2-1-lite-260915。
  • 不支持的参数。 doubao-seed-2-1-pro-260915 和 doubao-seed-2-1-lite-260915 不支持 logprobs。
  • 其他协议。 同样的模型也可以走 POST /v1/responses 和 Anthropic Messages(base_url="https://api.hop-base.com",不带 /v1)。
  • 流式用量。 发送 stream_options={"include_usage": True} 即可在流中拿到用量。命中上下文缓存的部分按缓存输入价计费。

完整参数表:创建对话补全:豆包 Seed 和模型卡。

用 OpenAI SDK 调用 Seedream 生图

Seedream 是同步接口:响应里直接带图片链接,不需要轮询任务。

img = client.images.generate(
    model="seedream-5-0-pro",
    prompt="A ceramic coffee cup on a linen tablecloth, soft morning light, product photo",
    size="2K",
)
print(img.data[0].url)  # signed link, valid 24 hours: download it
  • 尺寸。 seedream-5-0-pro 支持 1K、1.5K、2K,或 921,600 到 4,624,220 像素之间的 宽x高。Pro 上 1.5K 与 1K 同价,画质更好。seedream-5-0-lite(2K / 3K / 4K)和 seedream-4-5(2K / 4K)输出至少 2K。
  • 参考图与改图。 参考图放在 image 中(URL 或 Data URL,字符串或数组)。Pro 最多 10 张参考图;Lite 和 4.5 最多 14 张。没有蒙版:在提示词里描述要修改的区域。
  • n 恒为 1。 需要一组图时,在 Lite 或 4.5 上用组图生成。

图层拆分、透明背景和流式输出见 Seedream。

Seedance 视频:先提交,再轮询

import os, time, requests

API = "https://api.hop-base.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['HOPBASE_API_KEY']}"}

task = requests.post(f"{API}/video/generate", headers=HEADERS, json={
    "model": "dreamina-seedance-2-5-260628",
    "content": [{"type": "text", "text": "An orange cat runs across sunlit grass as the camera follows"}],
    "duration": 5,
    "resolution": "720p",
    "ratio": "16:9",
}).json()["task"]

while True:
    t = requests.get(f"{API}/video/tasks/{task['id']}", headers=HEADERS).json()["task"]
    if t["status"] == "completed":
        print(t["outputs"][0]); break   # valid 24 hours after completion
    if t["status"] == "failed":
        raise RuntimeError(t["error"]["message"])
    time.sleep(5)
  • 用哪套 ID? 海外 dreamina-seedance-* 的 Key 不能调用 doubao-seedance-* ID。国内分组也把海外 ID 当作别名接受(4K 除外),所以从海外切到国内只需换 Key。4K 只有海外 2.0 标准版(dreamina-seedance-2-0-260128)提供。
  • 时长。 2.0:4 到 15 秒;2.5:4 到 30 秒,或传 -1 由模型决定。
  • 字段。 所有字段都在 JSON 顶层,提示词放在 content 里的 text 项。size、seconds、n 和 aspect_ratio 会被静默忽略:请用 duration、resolution 和 ratio。
  • 计费。 失败任务不扣费。已被接受的任务不要重复提交,每次提交都会单独计费。

详见 Seedance 视频生成 API 和 Seedance API 价格详解。

豆包语音:语音合成与声音复刻

speech = client.audio.speech.create(
    model="seed-tts-2.0",
    voice="alloy",   # an OpenAI voice name picks the default voice for the text language
    input="Hello, welcome to Doubao text to speech.",
)
speech.write_to_file("hello.mp3")
  • seed-tts-2.0 单次最多 5,000 字符,输出 24 kHz 单声道。也可以传豆包音色 ID,例如 en_female_dacey_uranus_bigtts。
  • seed-audio-1.0 根据场景描述加台词生成带语气和音效的音频(最多 3,000 字符,48 kHz 立体声)。
  • seed-icl-2.0 用你先通过 POST /v1/voice_clone 复刻的声音朗读。
  • 只用 POST /v1/audio/speech。它一次返回整段音频,不支持流式。

文档列出的官方价为:seed-tts-2.0 和 seed-icl-2.0 每万字符 ¥3,seed-audio-1.0 每分钟生成音频 ¥1。换算后从美元余额扣费。复刻本身目前免费。见语音合成 API:豆包语音。

价格

所有豆包 Seed、Seedream 和 Seedance 模型的官方牌价见价格页。其中部分价格字节以人民币公布,HopBase 换算为美元后从美元余额扣费。几条需要提前规划的计费规则:

  • 豆包 Seed Character 和 2.0 Mini 按输入长度分档计费。一个请求的输入(含缓存命中)一旦超过阈值,整个请求都按该档计费。其余五个对话模型只有一档,也没有峰谷价。
  • Seedream 按生成的图片张数计费,Seedance 按百万视频 token 计费。
  • 每个计费的非流式响应和每个完成的任务都在 usage.cost_usd 中报告确切的美元扣费。

延伸阅读

常见问题

没有中国手机号或中国公司,能用豆包 API 吗?

能。在 api.hop-base.com 用邮箱或 Google、GitHub 账号注册即可。按美元计费,可用 Visa / Mastercard、Apple Pay、Google Pay、支付宝、支付宝香港或微信支付付款。

HopBase 上的豆包 API 兼容 OpenAI 吗?

兼容。豆包 Seed 对话支持 https://api.hop-base.com/v1 上的 Chat Completions 和 Responses,以及 https://api.hop-base.com 上的 Anthropic Messages。Seedream 用 OpenAI 图片接口,豆包语音用 OpenAI 语音接口。Seedance 用 HopBase 的视频任务 API。

doubao-seedance-*-a 和 dreamina-seedance-* 有什么区别?

它们是同一 Seedance 系列的国内 ID 和海外 ID,由两个不同的分组提供。海外 Key 只能调用 dreamina-seedance-*;国内 Key 可调用 doubao-seedance-*-a,也接受海外 ID 作为别名。4K 只有海外 2.0 标准版提供。

为什么 doubao-seed-2-1-pro-260915 会忽略 tool_choice?

这个模型和 doubao-seed-evolving 会自行决定是否调用工具,即使你设为 none 或指定了函数。需要强制或禁止工具调用时,请用 doubao-seed-2-1-pro-260628 或 doubao-seed-2-1-lite-260915。

一把 Key 能同时调用豆包和 Claude 或 GPT 吗?

能。在同一把 Key 上挂豆包 Seed 云厂商分组,再加一个 Claude 分组和一个 GPT 分组(最多 10 个分组)。Claude 用 Anthropic SDK,地址 https://api.hop-base.com;GPT 和豆包用 OpenAI SDK,地址 https://api.hop-base.com/v1。

图片和视频链接能保留多久?

Seedream 图片链接和 Seedance 结果链接都是 24 小时有效。请下载或转存到你自己的存储。