ByteDance: Seedance 1.5 Pro
Seedance 1.5 Pro создаёт видео по тексту или изображению и может создавать синхронизированные голоса, эффекты и фоновую музыку. Звук можно включить или отключить; документированный профиль предлагает сцены длительностью 4–12 секунд, адаптивное кадрирование и обработку online или flex.
О модели
Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.
Seedance 1.5 Pro создаёт видео по тексту или изображению и может генерировать звук вместе с картинкой. Конкретный селектор — doubao-seedance-1-5-pro-251215. Настройка звука отличает его от профилей Seedance 1.0 без звука: generate_audio=true запрашивает синхронизированный звук, а false — видео без звука. Используйте письменное описание сцены для новой концепции либо изображение, чтобы задать начальный объект и композицию.
Опишите видимое действие и звук как части одной сцены. Укажите объект, обстановку, движение и камеру, затем поясните нужные голоса, звуковые эффекты или фоновую музыку. В портретной сцене человек может открывать глаза, пока камера медленно отъезжает, а вокруг слышен ветер. В товарной сцене связывайте звук с видимым событием — например, открыванием крышки или касанием поверхности предметом — вместо несвязанного перечня эффектов.
Модель может создавать голоса, эффекты и фоновую музыку по тексту запроса и визуальному содержимому. Руководство рекомендует заключать произносимые реплики в двойные кавычки. Делайте речь достаточно короткой для запрошенного действия и пауз и указывайте, кто говорит, если персонажей несколько. Проверяйте фактические слова, принадлежность голосов персонажам и синхронизацию с изображением. Звуковое указание направляет генерируемое исполнение; в документированном запросе этого профиля оно не является отдельно загруженным голосовым референсом.
Для генерации видео по изображению используется элемент image_url наряду с текстом. Передайте доступный URL изображения или data URL в Base64 в формате JPEG, PNG, WEBP, BMP, TIFF либо GIF. Документированные ограничения изображения: меньше 30 MB, оба размера — строго между 300 и 6000 пикселей, отношение ширины к высоте — строго между 0.4 и 2.5. Чётко подготовьте нужное кадрирование и объект, затем опишите движение из этой композиции. Пример с изображением использует адаптивное соотношение сторон, следующее референсу.
Руководство по длительности для этого профиля указывает целые секунды от четырёх до двенадцати либо -1, чтобы модель выбрала длительность в этом диапазоне. Длительность по умолчанию — пять секунд. Seedance 1.5 Pro по умолчанию использует 720p, а сохранённая таблица профиля документирует 480p и 720p; отдельное руководство по работе не предлагает 1080p для 1.5 Pro. Фиксированные варианты соотношения сторон: 16:9, 4:3, 1:1, 3:4, 9:16 и 21:9; документированное значение по умолчанию для 1.5 — adaptive. Проверяйте фактическую длительность и пропорции клипа, не принимайте запрошенные значения за уже полученный результат.
Запрос предоставляет два режима обработки. service_tier=default выбирает оперативную обработку online, а flex — отложенную обработку offline для задач, допускающих большую задержку. После отправки задачи режим изменить нельзя. Выбирайте его под требования процесса ко времени и сохраняйте выбор в записи запроса. Режим звука и режим обработки выбираются отдельно: клип без звука не становится автоматически отложенной задачей, а включение звука не выбирает режим обработки.
Согласуйте начальное значение генерации, водяной знак и указания камеры со сценой. Команды параметров внутри текста имеют приоритет над отдельными необязательными параметрами. Настройка неподвижной камеры исключена в сценарии с изображением-референсом и не гарантирует визуальную фиксацию там, где применима. Для анимации по изображению опишите нужное движение напрямую, не рассчитывайте, что настройка камеры заменяет описание плана.
Расход измеряется в видеотокенах: ширина результата × высота результата × частота кадров × длительность результата / 1024. Завершённая задача сообщает это количество в usage.completion_tokens. Сохраняйте полученное значение расхода вместе с готовым клипом и запрошенными настройками. В расчёте платы по расходу включённый или отключённый звук и обработка online или flex остаются отдельными категориями.
Отправка возвращает идентификатор асинхронной задачи. Отслеживайте задачу до завершения, затем сохраните видео из content.video_url. Документированный срок хранения созданного файла — семь дней. Срок действия отсчитывается от создания, по умолчанию равен 172800 секундам и принимает значения от 3600 до 259200 секунд; по истечении заданного интервала незавершённая задача получает статус expired. Храните итоговый клип, исходное изображение и точное визуально-звуковое задание вместе, затем проверьте весь результат: действие, идентичность, непрерывность движения камеры и согласование звука.
Ailoot Ultra · Видео POST /v1/videos doubao-seedance-1-5-pro-251215
doubao-seedance-1-5-pro-251215
doubao-seedance-1-5-pro-251215Начало
Seedance 1.5 Pro создаёт видео по тексту или изображению и может создавать синхронизированные голоса, эффекты и фоновую музыку. Звук можно включить или отключить; документированный профиль предлагает сцены длительностью 4–12 секунд, адаптивное кадрирование и обработку online или flex.
- Допустимые входные данные
- Текст · Картинки
- Результаты
- Видео
Доступно в Ailoot · входные данные и методы
Ailoot Ultra · Видео POST /v1/videos
- Входные данные
text,image- Результат
video
| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
|---|---|---|---|---|
Полеmodel | Типstring | ТребованиеОбязательно | Значения и ограничения doubao-seedance-1-5-pro-251215 | По умолчанию— |
Полеcontent | Типarray | ТребованиеОбязательно | Значения и ограничения Условия: Нативные объекты текста и медиа; внешний массив должен быть непустым. Этот общий конструктор Ailoot не проверяет типы вложенных узлов. | По умолчанию— |
Полеduration | Типinteger | ТребованиеНеобязательно | Значения и ограничения Условия: Основная схема 1.x: 2–12; более позднее общее описание указывает для 1.5 диапазон 4–12 или -1. В примере используется значение 5, документированное в обоих случаях. | По умолчанию5 |
Полеresolution | Типstring | ТребованиеНеобязательно | Значения и ограничения 480p, 720p Условия: Seedance 1.5 Pro поддерживает 480p и 720p; 1080p исключён. Документированное разрешение по умолчанию — 720p. | По умолчанию720p |
Полеratio | Типstring | ТребованиеНеобязательно | Значения и ограничения 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive Условия: Документированное значение соотношения сторон по умолчанию для Seedance 1.5 Pro — adaptive. Варианты фиксированного соотношения сторон остаются прежними. | По умолчаниюadaptive |
Полеservice_tier | Типstring | ТребованиеНеобязательно | Значения и ограничения default, flex Условия: default=online, flex=offline; выберите до создания. | По умолчаниюdefault |
Полеseed | Типinteger | ТребованиеОбязательно | Значения и ограничения Минимум: -1 Максимум: 4 294 967 295 | По умолчанию-1 |
Полеcamerafixed | Типboolean | ТребованиеОбязательно | Значения и ограничения Условия: Требуется Ailoot; управление камерой по референсному изображению документировано как неподдерживаемое, и его действие не гарантируется. | По умолчаниюfalse |
Полеwatermark | Типboolean | ТребованиеОбязательно | Значения и ограничения | По умолчаниюfalse |
Полеexecution_expires_after | Типinteger | ТребованиеОбязательно | Значения и ограничения Минимум: 3 600 Максимум: 259 200 Единица: секунды | По умолчанию172 800 |
Полеgenerate_audio | Типboolean | ТребованиеНеобязательно | Значения и ограничения Условия: Только для 1.5: синхронизированный звук, встроенный в сгенерированное видео. | По умолчаниюtrue |
Сочетания входных материалов
Параметры и жизненный цикл метода
| Параметр | Контракт |
|---|---|
Параметрcontent_type | Контрактapplication/json |
Параметрrequired | Контрактcamerafixed, content, execution_expires_after, model, seed, watermark |
Параметрoptional | Контрактduration, resolution, ratio, service_tier, generate_audio |
Параметрmaterial_types | Контрактtext, image |
Параметрadditional_properties | Контрактtrue |
Параметрvalidation_scope | КонтрактAiloot проверяет типы обязательных полей, непустое значение model и непустой массив content. Остальные поля запроса сохраняются для выбранной модели. |
Параметрimage_constraints | Контракт{"formats":["jpeg","png","webp","bmp","tiff","gif"],"aspect_ratio_exclusive":[0.4,2.5],"dimensions_px_exclusive":[300,6000],"file_size_mb_exclusive":30,"mb_bytes_definition":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 токенов |
| КонфигурацияУровень обработки: офлайн (flex). Результат с синхронизированным звуком. | Шкала ставок— | Прогноз количества— | Создавать аудиоС аудио | Уровень сервисаflex | Расчётная единицаза 1K видеотокенов | Плата Выход · Оценка только для сравнения $0.0024 за 1K видеотокенов |
| КонфигурацияУровень обработки: офлайн (flex). Результат без синхронизированного звука. | Шкала ставок— | Прогноз количества— | Создавать аудиоБез аудио | Уровень сервисаflex | Расчётная единицаза 1K видеотокенов | Плата Выход · Оценка только для сравнения $0.0012 за 1K видеотокенов |
| КонфигурацияУровень обработки: онлайн (default). Результат с синхронизированным звуком. | Шкала ставок— | Прогноз количества— | Создавать аудиоС аудио | Уровень сервисаdefault | Расчётная единицаза 1K видеотокенов | Плата Выход · Оценка только для сравнения $0.0048 за 1K видеотокенов |
| КонфигурацияУровень обработки: онлайн (default). Результат без синхронизированного звука. | Шкала ставок— | Прогноз количества— | Создавать аудиоБез аудио | Уровень сервисаdefault | Расчётная единицаза 1K видеотокенов | Плата Выход · Оценка только для сравнения $0.0024 за 1K видеотокенов |
| КонфигурацияОриентировочная стоимость генерации | Шкала ставок— | Прогноз количестваОценка для одной генерации | Создавать аудио— | Уровень сервиса— | Расчётная единица— | Плата Выход · Оценочная стоимость генерации · Оценка только для сравнения $0.1152 оценка до генерации Эта оценка не является дополнительным списанием или фиксированным тарифом для завершённой генерации. |
Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →
Примеры запросов
Ailoot Ultra · Видео
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"doubao-seedance-1-5-pro-251215","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}],"resolution":"480p","ratio":"1:1","duration":5,"service_tier":"default","seed":-1,"camerafixed":false,"watermark":false,"execution_expires_after":172800,"generate_audio":false}
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-1-5-pro-251215
Псевдонимы путей метода
/v1/videos/generations
Связанные ID для вызова
FAQ · ByteDance: Seedance 1.5 Pro
- Какие входные данные и результаты доступны?
POST /v1/videos·doubao-seedance-1-5-pro-251215:text,image→video- Какие поля использует запрос?
POST /v1/videos·doubao-seedance-1-5-pro-251215:model,content,duration,resolution,ratio,service_tier,seed,camerafixed,watermark,execution_expires_after,generate_audio- Какие ограничения действуют?
POST /v1/videos·doubao-seedance-1-5-pro-251215:seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200