HiAPI
Блог

Руководство

Как использовать API Seedance 2.5 для генерации видео из текста? Запуск прямо в curl и Python

Один промпт — видео длиной 4–30 секунд со звуком; параметры, стоимость и что учесть перед запуском в продакшн — всё сразу.

Oct 15, 2026
Как использовать API Seedance 2.5 для генерации видео из текста? Запуск прямо в curl и Python

TL;DR

  • Для seedance-2.5/text-to-video достаточно одного промпта, чтобы получить видео длиной 4–30 секунд со встроенным звуком. Откройте страницу модели, чтобы сгенерировать онлайн; новым пользователям при регистрации дают 200 кредитов.
  • Оплата по секундам: 720p — $0.204 за секунду, 1080p — $0.516 за секунду. 5 секунд в 720p — $1.02.
  • API в два шага: POST /v1/tasks для отправки, затем по taskId узнать результат. Примеры curl и Python ниже можно скопировать и запустить.

Сначала посмотрите реальный результат

Это 8-секундное видео в 720p сгенерировано одним промптом за один запрос; звук вспенивания молока, стук чашек и людской гомон в кафе модель создала сама:

A barista in a small morning cafe pours steamed milk into a cup, drawing a latte art leaf.
The camera starts on her hands and slowly pulls back to reveal the counter and a sign on the wall that reads 'OPEN'.
Warm window light, realistic, smooth motion. Sound: milk steaming, cups clinking, quiet cafe chatter.

Сгенерировать с этим промптом → (8 секунд, 720p)

seedance-2.5/text-to-video, 720p, 8 секунд, со звуком, $1.632.

Два пути к началу работы

Онлайн (без программирования)

  1. Откройте страницу модели Seedance 2.5 видео из текста, зарегистрируйтесь или войдите.
  2. Вставьте промпт, выберите длительность, разрешение и соотношение сторон.
  3. Нажмите «Сгенерировать» и скачайте готовое видео.

Вызов через API

  1. Создайте API Key в консоли.
  2. Отправьте задачу через POST https://api.hiapi.ai/v1/tasks — вернётся taskId.
  3. Проверяйте статус по GET /v1/tasks/{taskId}; когда status равен success, скачайте видео по output[0].url.

curl: первое видео

Сначала запустим 5 секунд в 720p, $1.02:

curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.5/text-to-video",
    "input": {
      "prompt": "Бумажный самолётик скользит по залитому солнцем офису, пылинки плывут в лучах света, камера медленно следует за самолётиком",
      "duration": 5,
      "resolution": "720p",
      "aspect_ratio": "16:9"
    }
  }'

Ответ:

{"code": 200, "data": {"taskId": "tk-hiapi-..."}, "message": "success"}

Проверка результата:

curl https://api.hiapi.ai/v1/tasks/tk-hiapi-... \
  -H "Authorization: Bearer $HIAPI_KEY"

Во время генерации status равен handling, после завершения становится success, адрес видео — в output[0].url.

Python: отправка, опрос, скачивание

# pip install requests; сначала export HIAPI_KEY=ваш_ключ
import os, time, uuid, requests

KEY = os.environ["HIAPI_KEY"]
H = {"Authorization": f"Bearer {KEY}"}

def generate(prompt, model="seedance-2.5/text-to-video", timeout_s=900, **params):
    body = {"model": model, "input": {"prompt": prompt, **params}}
    # При повторной отправке одной и той же задачи передавайте тот же Idempotency-Key, чтобы избежать двойного списания
    headers = {**H, "Idempotency-Key": str(uuid.uuid4())}
    r = requests.post("https://api.hiapi.ai/v1/tasks", json=body, headers=headers, timeout=30)
    r.raise_for_status()
    res = r.json()
    if res.get("code") != 200:
        raise RuntimeError(res)
    task_id = res["data"]["taskId"]
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        d = requests.get(f"https://api.hiapi.ai/v1/tasks/{task_id}", headers=H, timeout=30).json()["data"]
        if d["status"] == "success":
            return d["output"][0]["url"]
        if d["status"] == "fail":
            raise RuntimeError(d)
        time.sleep(10)
    raise TimeoutError(task_id)

url = generate(
    "Бумажный самолётик скользит по залитому солнцем офису, пылинки плывут в лучах света, камера медленно следует за самолётиком",
    duration=5, resolution="720p", aspect_ratio="16:9",
)
with open("clip.mp4", "wb") as f:
    f.write(requests.get(url).content)

Сводка параметров

Параметр Значения Описание
prompt Строка, обязательно Можно на китайском и английском
duration Целое число от 4 до 30, по умолчанию 5 В секундах, оплата по секундам
resolution 720p / 1080p, по умолчанию 720p Цена 1080p примерно в 2.5 раза выше, чем 720p
aspect_ratio 16:9 4:3 1:1 3:4 9:16 21:9 adaptive, по умолчанию adaptive Для вертикальных коротких видео используйте 9:16
generate_audio По умолчанию true Звук генерируется вместе с изображением
output_format mp4 / mov

Генерация видео из текста не принимает никаких ссылок на изображения или видео. Чтобы начать с изображения, используйте Seedance 2.5 видео из изображения; чтобы взять движение и операторскую работу из существующего видео — Seedance 2.5 видео по референсу.

Посчитаем стоимость

Длительность 720p ($0.204/сек) 1080p ($0.516/сек)
5 секунд $1.02 $2.58
10 секунд $2.04 $5.16
15 секунд $3.06 $7.74
30 секунд $6.12 $15.48

За $10 в 720p можно сгенерировать примерно 49 секунд. Рекомендуем сначала настроить промпт на коротких роликах в 720p, а затем делать финальное видео в 1080p. Подробнее о расчётах — в цене API Seedance 2.5.

Что учесть перед запуском в продакшн

  • Используйте callback вместо опроса: добавьте на верхний уровень запроса (на одном уровне с input) "callback": {"url": "https://ваш-домен/hiapi/callback"} — по завершении задачи HiAPI сам пришлёт уведомление; дедуплицируйте по taskId.
  • Сразу сохраняйте результат: output[0].url — временная ссылка (по умолчанию хранится около 7 дней); получив её, сразу сохраните видео в своё хранилище.
  • Повторяйте с ключом идемпотентности: добавьте в заголовки Idempotency-Key; повтор с тем же ключом создаст задачу только один раз и не приведёт к повторному списанию.
  • Указывайте все параметры: явно задавайте duration, resolution и aspect_ratio, чтобы стоимость и формат совпадали с бюджетом.
  • Автовозврат при ошибке: оплата взимается только за успешно сгенерированные видео.

Частые вопросы

Можно ли писать промпт на китайском?

Да. Чтобы результат был стабильным, описывайте движение камеры, движение объекта и звук отдельными предложениями.

Какая максимальная длительность?

Одно видео — 4–30 секунд. Это вдвое больше прежнего лимита Seedance 2.0 в 15 секунд, подходит для длинных непрерывных кадров.

Можно ли сэкономить, отключив звук?

Установите generate_audio в false, чтобы отключить звук, но цена рассчитывается по разрешению и количеству секунд и от этого не снижается.

Как выбрать между Seedance 2.0 и 2.5?

Если нужны более длинные ролики и больше референсных материалов — выбирайте 2.5; если приоритет — бюджет или нужно 4K, выбирайте линию ext в 2.0 ($0.134 за секунду в 720p). Подробное сравнение — в различиях Seedance 2.5 и 2.0.

Больше готовых формулировок — в руководстве по Seedance 2.5; также можно скопировать промпт про латте-арт выше и сгенерировать на странице модели.

Похожие статьи

Все статьи →

Начните работать с постоянными артефактами ИИ

Получите API-ключ и вызывайте модели изображений, видео и аудио через один API на основе tasks.

Читать документацию API