
Seedance 2.5 API: первый запрос видео
Используйте Seedance 2.5 API: создайте ключ, отправьте запрос и настройте опрос. Изучите режимы ввода, цепочку кадров и стоимость генерации видео.
Для вызова Seedance 2.5 API на reAPI создайте ключ API, отправьте запрос на /api/v1/videos/generations с model: "doubao-seedance-2.5-face", затем опрашивайте возвращённый id. Завершённая задача содержит URL видео. Один и тот же идентификатор модели используется для текстовых запросов, запросов с изображением, запросов первого/последнего кадра и мультимодальных запросов ссылки.[1]
Начните с четырёхсекундного текстового запроса, чтобы не было загруженных файлов для диагностики. При тарифе от 12 сентября $0,118589 за секунду для 480p без справочного видео этот запрос стоит 475 кредитов сервиса, или $0,475 после округления кредитов. На странице модели Seedance 2.5 находится таблица тарифов и интерфейс для тестирования одних и тех же параметров.[2]
Кратко
- Создайте ключ Bearer в API Keys, затем отправьте
model: "doubao-seedance-2.5-face". Слаг страницыseedance-2-5— это не идентификатор модели для запроса.[1] - Отправьте один раз, сохраните ответ
idи опрашивайте/api/v1/tasks/{id}. Успешный POST запускает задачу; это не означает, что видео готово.[1] - Выберите
durationот 4 до 30 секунд иresolutionиз480p,720pили1080p. Используйте фиксированную длительность для предсказуемого начального резерва.[1] - Установите
size: "adaptive"для явных вводов первого/последнего кадра. Выход следует форме кадра.[1] - Десятисекундный запрос 720p без справочного видео составляет 2669 кредитов сервиса, или $2,669, по тарифу от 12 сентября. Расчёт справочного видео учитывает больше, чем выходные секунды.[1][2]
Создайте ключ Seedance 2.5 API и подготовьте один запрос
Войдите в reAPI, откройте API Keys и создайте ключ для рабочей области, которая оплатит генерацию. Скопируйте его в локальную переменную окружения с именем REAPI_API_KEY. Храните ключ отдельно от JavaScript браузера, публичных репозиториев и скриншотов. Запросы аутентифицируются через заголовок Authorization: Bearer ...; документированный рабочий процесс не требует отдельного заголовка проекта.[1]
Вам также нужно достаточно кредитов сервиса для начального резерва запроса. Промо-кредиты, если они предоставлены подходящему аккаунту, отделены от возможности полностью профинансировать конкретное видео. Прочитайте размер, показанный в вашем аккаунте. Это руководство предполагает финансируемый аккаунт и не гарантирует бесплатную генерацию.[2]
Сохраняйте первый пакет данных небольшим. Подсказка, фиксированная длительность, соотношение сторон и разрешение — достаточно для текстового запроса. Добавляйте изображения или звук после того, как отправка запроса и опрос состояния заработают. Это облегчит диагностику неудачной первой попытки: она не может быть вызвана недоступным URL референса или несовместимым исходным файлом.
Отправьте первый cURL-запрос и сохраните его идентификатор задачи
С уже установленным REAPI_API_KEY в оболочке отправьте этот запрос:
curl --fail-with-body https://reapi.ai/api/v1/videos/generations \
-H "Authorization: Bearer $REAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.5-face",
"prompt": "A matte cobalt ceramic mug stands on an ivory turntable. One continuous studio shot. Over four seconds the turntable rotates clockwise by about 45 degrees. The camera stays fixed at mug height. Keep the handle, rim and glaze consistent. Soft side light, plain background, no text or logos.",
"duration": 4,
"size": "16:9",
"resolution": "480p",
"generate_audio": false,
"return_last_frame": true
}'Сохраните id из ответа перед чем-либо ещё. Этот идентификатор принадлежит этой генерации и является значением, которое вы используете для последующих GET-запросов. Не заменяйте его идентификатором модели, URL файла или угаданным идентификатором. Ответ также включает статус задачи; URL видео появляются при завершении задачи.[1]
Пример запроса также запрашивает изображение последнего кадра вместе с видео. Вы можете игнорировать это изображение для самостоятельного клипа или использовать его позже при связывании снимков. Та же подсказка и те же параметры включены в нашу проверенную библиотеку подсказок, где вы можете проверить созданный снимок вместо того, чтобы рассматривать формулировку как гарантию качества.
Отправьте и опрашивайте задачу Seedance 2.5 API на Python
Пример Python ниже — альтернатива примеру cURL: он создаёт новую задачу видео и опрашивает эту задачу. Выберите один метод отправки для вашего первого теста. Запуск обоих примеров создаёт две оплачиваемые генерации.
Скрипт ожидает локально до 30 минут. Этот тайм-аут — пример политики клиента, а не обещанное время генерации. Он сообщает об ошибке HTTP вместо молчаливого запуска другой работы. Установите requests и установите REAPI_API_KEY перед его запуском.
import os
import time
import requests
BASE = "https://reapi.ai/api/v1"
headers = {"Authorization": f"Bearer {os.environ['REAPI_API_KEY']}"}
payload = {
"model": "doubao-seedance-2.5-face",
"prompt": "A ceramic mug on a table. Locked camera, soft daylight.",
"duration": 4,
"resolution": "480p",
"size": "16:9",
"generate_audio": False,
}
submitted = requests.post(
f"{BASE}/videos/generations",
headers=headers,
json=payload,
timeout=120,
)
submitted.raise_for_status()
task_id = submitted.json()["id"]
print("Save this task id:", task_id, flush=True)
deadline = time.monotonic() + 30 * 60
while time.monotonic() < deadline:
response = requests.get(
f"{BASE}/tasks/{task_id}", headers=headers, timeout=60
)
if response.status_code in (429, 500, 502, 503, 504):
time.sleep(10)
continue
response.raise_for_status()
task = response.json()
if task["status"] == "completed":
for url in task["output"]["video_urls"]:
print(url)
break
if task["status"] == "failed":
raise RuntimeError(task.get("error"))
time.sleep(10)
else:
raise TimeoutError(f"Resume polling existing task {task_id}")Опрос не потребляет кредиты сервиса на генерацию. Если локальный процесс истечёт, сохраните идентификатор и возобновите GET-запросы для этой задачи. Само по себе локальное истечение не устанавливает, что удалённая генерация не удалась. Аналогично, если соединение POST разрывается до получения ответа, проверьте историю задач перед повторной отправкой той же работы.[1]
Для интеграции сервиса сохраняйте идентификатор задачи в собственную базу данных немедленно после отправки. Важное различие между повторной попыткой чтения существующей задачи и созданием новой задачи. Последнее — это ещё один запрос генерации.
Выберите четыре режима ввода через поля мультимедиа
Поля мультимедиа выбирают форму запроса. Используйте эту таблицу вместе с полной спецификацией Seedance 2.5 API.[1]
| Предполагаемый запрос | Поля для отправки | Ограничение для запоминания |
|---|---|---|
| Текст в видео | prompt | Текстовый запрос нуждается в подсказке |
| Справочное изображение в видео | image_urls плюс подсказка движения | Публичные URL изображений; до 30 изображений |
| Явный первый или первый/последний кадр | image_with_roles | Используйте size: "adaptive"; последний кадр требует первого кадра |
| Мультимодальная справочная информация | image_urls, video_urls и/или audio_urls | Каждый тип мультимедиа имеет свои ограничения по файлам и длительности |
Например, замените вводы изображений текстового полезного груза явным первым кадром:
{
"image_with_roles": [
{
"url": "https://file.deepytb.com/landing/qwen-image-2/playground-input.webp",
"role": "first_frame"
}
],
"size": "adaptive"
}Этот блок показывает поля для слияния в полный запрос, а не полное тело POST. Замените пример изображением, которое вы имеете право использовать. Не отправляйте одновременно image_urls и image_with_roles; они взаимно исключаются. Также не смешивайте роли кадров и reference_image роли в одном массиве.[1]
Для видеоввода исходный клип должен быть длиной 2–30 секунд, максимум десять клипов и не более 30 секунд в сумме. Звук имеет отдельные ограничения в десять треков и 30 секунд в сумме. Больше файлов не делает запрос более управляемым сами по себе; назначьте каждому референсу чёткую роль в подсказке.[1]
Связывайте последний кадр без предположения идеальной непрерывности
Установите return_last_frame: true в первом запросе. Когда эта задача завершится, прочитайте output.last_frame_url и поместите этот URL в массив image_with_roles следующего запроса с role: "first_frame". Используйте size: "adaptive" снова.[1]
Перенесите соответствующее описание субъекта, одежды, обстановки и предполагаемого следующего действия. Изображение общей границы даёт следующему кадру визуальную отправную точку; это не доказывает, что более поздние кадры сохранят каждую деталь. Проверьте стык, особенно движущиеся руки, направление взгляда и объекты фона, перед тем как использовать пару как одну последовательность.
Видеомонтаж — это другая форма запроса. Явный omni_reference_task_type: "edit" требует исходное видео, адаптивный размер и автоматическую длительность. Это неподходящий режим для новой сцены, которая просто использует фото как руководство. Сохраняйте первую интеграцию на простом пути генерации, затем добавляйте редактирование, когда вам нужно изменить существующий клип.[1]
Рассчитайте стоимость запроса перед добавлением справочного видео
Для запросов без справочного видео умножьте цену за секунду на длительность вывода, преобразуйте доллары в кредиты сервиса и округлите вверх до целого кредита. Один кредит сервиса составляет $0,001.[1]
| Запрос | Тариф от 12 сентября | Расчёт | Итоговая сумма к оплате |
|---|---|---|---|
| 4 секунды, 480p, без справочного видео | $0,118589/с | ceil(0.118589 × 4 × 1000) | 475 кредитов сервиса / $0,475 |
| 10 секунд, 720p, без справочного видео | $0,266824/с | ceil(0.266824 × 10 × 1000) | 2669 кредитов сервиса / $2,669 |
| 10-секундный вывод, 3-секундное референсное видео, 720p | $0,160094/с | ceil(0.160094 × 17 × 1000) | 2722 кредита сервиса / $2,722 |
Последняя строка выставляет счёт за 17 секунд, поскольку запросы с видеовводом используют большее из двух значений: длительность результата плюс округлённая вверх длительность исходного видео или ceil(5 × output / 3). Более низкий тариф справочного видео поэтому не обязательно означает более низкую окончательную плату. Референсные изображения и аудио не добавляют исходные секунды.[1][2]
Автоматическая длительность, duration: -1, резервирует против верхнего предела в 30 секунд и позже рассчитывает итоговую стоимость по фактической длительности результата. Используйте фиксированную длительность, когда резерв должен оставаться небольшим. Для более широких сравнений платформ смотрите руководство по ценообразованию API.
Держите инструкции хоста API вместе
Поиски Seedance 2.5 на OpenRouter, fal или GitHub могут привести к различным клиентам и спецификациям сервиса. Ключ, конечная точка, идентификатор модели и задача этого руководства принадлежат вместе. Репозиторий, который вызывает другой сервис, не является заменой plug-and-play для этого запроса.
Перед адаптацией примера проверьте базовый URL, заголовок аутентификации, принимаемые имена моделей, схему ввода и конечную точку состояния. Используйте документацию для хоста, который будет фактически получать запрос. Вам не нужна сторонняя обёртка GitHub для запуска примеров cURL и Python здесь; они используют задокументированный интерфейс HTTP reAPI.[1]
Часто задаваемые вопросы
Ключ Seedance 2.5 API
Создайте ключ в API Keys reAPI и используйте его как токен Bearer. Храните его на сервере или в локальном окружении, с достаточным количеством кредитов сервиса рабочей области для запроса.[1]
Спецификация Seedance 2.5 API
Справка модели документирует принимаемые поля, режимы, ограничения и правила расчёта стоимости. Используйте страницу модели для текущих цен за секунду.[1][2]
Руководство Seedance 2.5 API
Отправьте один текстовый запрос с фиксированной длительностью, сохраните его id, затем опрашивайте до завершения или ошибки. Добавляйте справочные файлы только после того, как этот путь работает.[1]
GitHub Seedance 2.5 API
Клиент GitHub опционален. Проверьте, какой сервис он вызывает и совпадают ли его поля с текущей спецификацией API перед использованием его примеров полезной нагрузки.[1]
Доступ к Seedance 2.5 API
reAPI предоставляет doubao-seedance-2.5-face через асинхронную конечную точку видеогенерации. Слаг модели веб-сайта не является значением модели для отправки.[1]
Стоимость Seedance 2.5 API
Четырёхсекундный запрос 480p без справочного видео стоит $0,475 после округления кредитов сервиса по тарифу от 12 сентября. Длительность, разрешение и расчёт справочного видео изменяют итого.[1][2]
Завершите один запрос перед расширением рабочего процесса
Сохраняйте первый успешный полезный груз и его идентификатор задачи как основу интеграции Seedance 2.5 API. Для следующего запроса добавляйте тип мультимедиа, который нужен вашему кадру, и проверяйте возвращённое видео перед введением связывания или редактирования.
Источники
- reAPI. Seedance 2.5 API — Parameters, Modes & Billing. Просмотрено в браузере 12 сентября 2026 г. reapi.ai/docs/seedance-2-5.
- reAPI. Seedance 2.5 model page, rendered pricing table and FAQ. Просмотрено в браузере 12 сентября 2026 г. reapi.ai/models/seedance-2-5.
Автор

Категории
Ещё статьи

Стабильные 3D-персонажи через API за $0.143
Постройте рабочий процесс 3D-персонажей с Wan 2.7. Создайте одного персонажа и пять кандидатов сцен за $0.143, рассчитайте стоимость принятых результатов.


GPT Image 2 и Seedance 2.0: рабочий процесс для персонажей
Используйте GPT Image 2 и Seedance 2.0 для контроля персонажа в видео. Создавайте образцы идентичности, оживляйте контролируемые кадры и связывайте клипы.


MiniMax H3 Max vs H3: скорость, контроли и маршруты API
Сравниваем MiniMax H3 Max и MiniMax H3: скорость, разрешение, входные данные, маршрут API, общедоступные веса и рабочий процесс каждой модели.
