ByteDance: Seedance 2.5
Seedance 2.5 создаёт видео по тексту и изображениям, видео- или аудиореференсам; документированы сценарии редактирования и продолжения. Конкретный пример 2.5 сочетает изображение товара с несколькими референсами движения и включает генерируемый звук для согласованной рекламной последовательности.
О модели
Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.
Seedance 2.5 создаёт видео по письменному описанию сцены и мультимодальным референсам. У конкретного селектора doubao-seedance-2-5-260628 есть собственные документированные операция и пример. Эта операция описывает создание, редактирование и продолжение видео, принимая изображения, видео, аудио и текст как входные материалы. Используйте референсы для передачи внешнего вида объекта, действия, движения камеры, стиля и звука, затем объясните результат, который нужно из них создать.
Сочетания входных данных включают отдельный текст, изображения или видео с необязательным текстом, изображения со звуком, видео со звуком и изображения, видео и звук вместе. Перечисленные сочетания прикрепляют аудио к визуальным материалам, а не описывают запрос только с аудио. Распределите элементы по ролям: изображение задаёт объект или визуальное решение, видео показывает движение или существующую сцену, а аудио служит звуковым референсом. Укажите значимую для запрошенного плана роль, чтобы фоновый референс не приняли за главного персонажа.
Конкретный пример 2.5 — рекламная последовательность для товара. В нём передаются изображение и несколько видеореференсов, затем описываются начальный фокус внимания, упорядоченные композиции товаров, планы деталей, замедленное действие и финальная брендовая композиция. Запрос назначает роли reference_image и reference_video и использует отдельные референсы для композиции, движения, работы камеры и эффекта. Это даёт практичную структуру концепции кампании: спланировать видимые этапы, указать референс для каждого и задать финальное расположение.
Письменная последовательность может различать, что происходит и как это снимается. Сначала опишите происходящее с товаром, затем крупность плана, траекторию камеры, темп и переход к следующему виду. Если один референс определяет товар, а другой показывает движение камеры, назовите эти отдельные задачи. Для сцены с несколькими объектами объясните их положения и порядок взаимодействий. Проверяйте фактические форму товара, расположение и движение в созданном результате, не предполагайте, что каждая деталь референса появляется без изменений.
Для редактирования укажите существующее видео и элемент для правки — например, обстановку, действие или визуальный стиль — и согласованность с исходной сценой, которую нужно сохранить. Для продолжения опишите, как сцена должна развиваться из предоставленного видео. Проверяйте стык наряду с новым участком: внешний вид объекта, направление движения, положение камеры и синхронизация звука влияют на восприятие результата как одной сцены. Храните исходное видео вместе с готовой правкой, чтобы проверить сохранение нужной связи с исходной сценой.
Документированный мультимодальный пример 2.5 задаёт generate_audio=true и запрашивает пятнадцатисекундную последовательность с кадрированием 16:9. Эти значения описывают пример, а не универсальный предел длительности или количества референсных материалов. Ясно задайте звуковой замысел сцены, включая связь музыки, эффектов и видимого действия, затем оцените фактический аудиовизуальный результат. Звуковой референс и созданную дорожку нужно проверять вместе на нужный темп и исполнение.
Выбирайте длительность, кадрирование и разрешение из настроек, предлагаемых для этого конкретного профиля. Сохраняйте запрошенную конфигурацию с текстом и сравнивайте её с фактически возвращёнными полями задачи. При подготовке готового клипа к размещению используйте возвращённые длительность, разрешение и соотношение сторон. Сохраняйте точный идентификатор профиля в истории версии, чтобы последующее сравнение использовало ту же выбранную редакцию.
Расход видеотокенов рассчитывается так: (длительность входного видео + длительность выходного видео) × ширина результата × высота результата × частота кадров результата / 1024. Запросы с входным видео и без него относятся к разным категориям тарификации. Запрос задачи сообщает usage.completion_tokens и usage.total_tokens; сохраняйте эти полученные значения вместе с готовым клипом.
Генерация асинхронная. Отправка возвращает идентификатор, а настроенный процесс задачи предоставляет статус и после успеха content.video_url. Сохраните готовый клип вместе с исходными медиа и заданием последовательности. Проверьте все запланированные этапы, взаимодействия объектов, внешность персонажей, кадрирование и согласование звука во всём результате. Для правки укажите конкретную пропущенную деталь и сохраните удачные части сцены, а не заменяйте всё задание несвязанными указаниями.
Ailoot Ultra · Видео POST /v1/videos doubao-seedance-2-5-260628
doubao-seedance-2-5-260628Начало
Seedance 2.5 создаёт видео по тексту и изображениям, видео- или аудиореференсам; документированы сценарии редактирования и продолжения. Конкретный пример 2.5 сочетает изображение товара с несколькими референсами движения и включает генерируемый звук для согласованной рекламной последовательности.
- Допустимые входные данные
- Текст · Картинки · Видео · Аудио
- Результаты
- Видео
Доступно в Ailoot · входные данные и методы
Ailoot Ultra · Видео POST /v1/videos
- Входные данные
text,image,video,audio- Результат
video
| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
|---|---|---|---|---|
Полеmodel | Типstring | ТребованиеОбязательно | Значения и ограничения doubao-seedance-2-5-260628 | По умолчанию— |
Полеcontent | Типarray | ТребованиеОбязательно | Значения и ограничения Условия: Нативные объекты текста и медиа; внешний массив должен быть непустым. Этот общий конструктор Ailoot не проверяет типы вложенных узлов. | По умолчанию— |
Полеgenerate_audio | Типboolean | ТребованиеНеобязательно | Значения и ограничения Условия: Пример для 2.5 задаёт true, но скопированное описание параметра перечисляет только 2.0/fast/1.5; более широкая применимость настройки или значения по умолчанию не гарантируется. | По умолчанию— |
Полеduration | Типinteger | ТребованиеНеобязательно | Значения и ограничения Условия: Буквальное значение 15 в примере 2.5 не является максимумом или значением по умолчанию. | По умолчанию— |
Полеresolution | Типstring | ТребованиеНеобязательно | Значения и ограничения Условия: Из скопированных описаний не выводятся отдельные для 2.5 значение по умолчанию или перечисление допустимых значений. | По умолчанию— |
Полеratio | Типstring | ТребованиеНеобязательно | Значения и ограничения Условия: Adaptive явно отнесён к 2.0/fast/1.5; в примере для 2.5 — только 16:9. | По умолчанию— |
Полеwatermark | Типboolean | ТребованиеНеобязательно | Значения и ограничения | По умолчаниюfalse |
Полеseed | Типinteger | ТребованиеНеобязательно | Значения и ограничения Минимум: -1 Максимум: 4 294 967 295 | По умолчанию-1 |
Полеexecution_expires_after | Типinteger | ТребованиеНеобязательно | Значения и ограничения Минимум: 3 600 Максимум: 259 200 Единица: секунды | По умолчанию172 800 |
Полеservice_tier | Типstring | ТребованиеНеобязательно | Значения и ограничения Условия: Для 2.0/fast режим offline flex исключён; применимость к 2.5 не установлена. | По умолчанию— |
Полеsafety_identifier | Типstring | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
Сочетания входных материалов
Параметры и жизненный цикл метода
| Параметр | Контракт |
|---|---|
Параметрcontent_type | Контрактapplication/json |
Параметрrequired | Контрактcontent, model |
Параметрoptional | Контрактgenerate_audio, duration, resolution, ratio, watermark, seed, execution_expires_after, service_tier, safety_identifier |
Параметрmaterial_types | Контрактtext, image, video, audio |
Параметрadditional_properties | Контрактtrue |
Параметрvalidation_scope | КонтрактAiloot проверяет типы обязательных полей, непустое значение model и непустой массив content. Остальные поля запроса сохраняются для выбранной модели. |
Параметрmaterial_combinations | Контрактtext, image, video, image, audio, image, video, video, audio, image, video, audio |
Параметрoptional_text_with_media | Контрактtrue |
Параметрreference_media_count_and_size_limits | Контрактnull |
Псевдонимы метода: /v1/videos/generations
Жизненный цикл: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/videos/generations/{request_id}/content
Создайте один раз и сохраните возвращённые публичные id/polling_url.
Проверяйте исходную задачу; после succeeded скачайте фактический content.video_url, принадлежащий Ailoot.
Тарифы
Как рассчитывается итоговая плата
Отображаемые тарифы позволяют оценить стоимость до генерации. Итоговое списание рассчитывается по стоимости, записанной для исходной генерации. Измеренная длительность результата и прогнозные объёмы не являются итоговым оплачиваемым объёмом.
Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.
- Быстрый режим
- Не указано При выборе быстрого режима
- Режим flex
- Не указано При выборе режима flex
- Максимальная интенсивность рассуждений
- Не указано При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)
Оценочные ставки для сравнения
Цены по конфигурациям
Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.
| Конфигурация | Шкала ставок | Прогноз количества | Расчётная единица | Плата |
|---|---|---|---|---|
| КонфигурацияБазовые тарифы на токены | Шкала ставокБазовая ставка | Прогноз количества— | Расчётная единица— | Плата Вход · Входные токены · Оценка только для сравнения — / 1K токенов Выход · Выходные токены · Оценка только для сравнения — / 1K токенов Вход · Чтение кэша · Оценка только для сравнения — / 1K токенов Вход · Запись в кэш · Оценка только для сравнения — / 1K токенов Вход · Запись в кэш, 1 час · Оценка только для сравнения — / 1K токенов |
| КонфигурацияВо входных данных есть видео. | Шкала ставок— | Прогноз количества— | Расчётная единицаза 1K видеотокенов | Плата Выход · Оценка только для сравнения $0.012 за 1K видеотокенов |
| КонфигурацияВо входных данных нет видео. | Шкала ставок— | Прогноз количества— | Расчётная единицаза 1K видеотокенов | Плата Выход · Оценка только для сравнения $0.02 за 1K видеотокенов |
| КонфигурацияОриентировочная стоимость генерации | Шкала ставок— | Прогноз количестваОценка для одной генерации | Расчётная единица— | Плата Выход · Оценочная стоимость генерации · Оценка только для сравнения $0.822402 оценка до генерации Эта оценка не является дополнительным списанием или фиксированным тарифом для завершённой генерации. |
Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →
Примеры запросов
Ailoot Ultra · Видео
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"doubao-seedance-2-5-260628","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}]}
JSON_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i.startswith("native302_"):raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("status")!="succeeded":raise SystemExit("Poll same original job until an owned result is returned.")
u=r.get("content",{}).get("video_url")
urls=[u] if isinstance(u,str) else u
if not isinstance(urls,list) or not urls:raise SystemExit("No completed video URL.")
for u in urls:
if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for actual Ailoot-owned signed result.")
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
index=$((index + 1))
done < asset-urls.txt
Получить и сохранить результаты
Ailoot Ultra · Видео
Нативный JSON с публичными id/polling_url. После публикации content.video_url содержит подписанные URL, принадлежащие Ailoot; до публикации выбранные URL результатов очищаются.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Сохраняйте все готовые результаты
Сохраните каждое готовое видео или полученный файл; загрузите содержимое по каждому фактически полученному URL материала.
Сохраните каждый фактический URL в content.video_url; index должен указывать на реальный возвращённый результат.
Если нужно проверить исходный ответ
Сохраните исходные ответ, заголовки и id и проверяйте эту операцию; никогда не повторяйте создание с неизвестным исходом.
Поля ответа
| Поле | Тип |
|---|---|
Полеid | Типstring |
Полеprovider_task_id | Типstring |
Полеpolling_url | Типstring |
Полеstatus | Типstring when supplied |
Полеcontent.video_url | Типstring|string[] |
Полеusage | Типobject when supplied |
Ошибки и дальнейшие шаги
| Ответ | Условие | Следующий шаг |
|---|---|---|
Ответ400 · invalid_request_error | УсловиеНедопустимые JSON/model, типы обязательных полей или индекс содержимого. | Следующий шаг |
Ответ401 · authentication_error | УсловиеНедействительный ключ Ailoot API. | Следующий шаг |
Ответ404 · not_found_error | УсловиеЗадача или результат отсутствуют либо не принадлежат тому же пользователю, ключу API или группе. | Следующий шаг |
Ответ502 · result_pending_check | УсловиеИсходная отправка или статус неполны; сохраните исходный ID, не отправляйте повторно. | Следующий шаг |
Ответ503 · result_pending_check | УсловиеИсходные медиа, маршрут или окончательный расчёт проверяются; продолжайте исходную операцию. | Следующий шаг |
Псевдонимы
Псевдонимы моделей
Ailoot Ultra doubao-seedance-2-5-260628
Псевдонимы путей метода
/v1/videos/generations
Связанные ID для вызова
FAQ · ByteDance: Seedance 2.5
- Какие входные данные и результаты доступны?
POST /v1/videos·doubao-seedance-2-5-260628:text,image,video,audio→video- Какие поля использует запрос?
POST /v1/videos·doubao-seedance-2-5-260628:model,content,generate_audio,duration,resolution,ratio,watermark,seed,execution_expires_after,service_tier,safety_identifier- Какие ограничения действуют?
POST /v1/videos·doubao-seedance-2-5-260628:seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200