Введение
Seedance 1.5 Pro в режиме «изображение в видео» начинает клип с вашей картинки и анимирует её до 12 секунд. При включённом camera_fixed исходное кадрирование остаётся ровно таким, как оно построено, поэтому этот эндпоинт даёт пригодные для композитинга планы.
У ByteDance Seedance 1.5 Pro два эндпоинта: «текст в видео» и «изображение в видео». Оба возвращают клипы на 4–12 секунд в 480p, 720p или 1080p с нативным звуком, и у обоих есть переключатель camera_fixed.
Выберите режим Seedance 1.5 Pro по исходному материалу
| Исходный материал | Режим |
|---|---|
| Утверждённый стартовый кадр | Seedance 1.5 Pro Изображение в видео |
| Сценарий или описание сцены | Seedance 1.5 Pro Текст в видео |
Ключевые возможности и особенности
camera_fixed держит кадр
При false, значении по умолчанию, модель сама придумывает движения: дрейф, наезд, медленный облёт. При true камера останавливается, а герой продолжает двигаться в кадре. Неподвижный кадр можно трекать, кеить, композитить или зацикливать, и ни у Seedance 2.0, ни у 2.5 такого переключателя нет.
Звук за тот же проход
generate_audio по умолчанию равен true и создаёт фон, звуки движения и голос, синхронизированные с кадрами. Запрос при этом переходит в более высокий тариф, поэтому отключайте звук для товарных лупов и планов, которые озвучат позже.
Понятный потолок
Клипы длятся от 4 до 12 полных секунд в 480p, 720p или 1080p, в шести фиксированных форматах с 16:9 по умолчанию и без адаптивного режима. Эндпоинта для референсов нет; seed доступен в 480p и 720p. Задачи, которым нужны 4K, более длинные дубли или каст из нескольких изображений, относятся к Seedance 2.0 или 2.5; у 1.5 Pro остаётся фиксация камеры.
Параметры запроса
| Параметр | Обязательно | Описание |
|---|---|---|
prompt | Да | Обязателен и должен говорить, что происходит после кадра, а не пересказывать видимое: действие, ход времени, звук. Не менее 3 символов |
image_url | Да | Публичная прямая ссылка на первый кадр; обязательна. |
last_image_url | Нет | Необязательный финальный кадр: вместе с |
aspect_ratio | Нет | Кадрирование результата, шесть фиксированных значений, по умолчанию 16:9. |
resolution | Нет | Разрешение результата: по умолчанию 720p, максимум 1080p, выше здесь ничего нет. Оно задаёт тарифную ступень. |
duration_seconds | Нет | Длина в целых секундах, от 4 до 12, по умолчанию 5, и это оплачиваемое количество. |
generate_audio | Нет | Рендерится ли родная дорожка синхронно с картинкой. По умолчанию: |
camera_fixed | Нет | Фиксирует камеру, по умолчанию false. При true кадр стоит неподвижно, пока субъект движется внутри него, — идеально для товарных планов и пластин под статичный фон. По умолчанию: |
seed | Нет | Целое число от 0 до 2147483647 для случайного старта; без него каждый прогон берёт своё. |
Стоимость
| Разрешение | Генерировать аудио: Нет | Генерировать аудио: Да |
|---|---|---|
| $0.0112 / секунду | $0.0223 / секунду |
| $0.0227 / секунду | $0.0454 / секунду |
| $0.0491 / секунду | $0.0982 / секунду |
Сценарии использования
Планы для композитинга
Отправьте уже утверждённый кадр, включите camera_fixed — и композиция держится весь клип, а двигается только герой. Результат ведёт себя как съёмка со штатива: чистый фон для кеинга, стабильная поверхность для трекинга титра, план, который монтажёр вставит в реальную последовательность.
Вращение товара и лупы
Неподвижный кадр с вращающимся предметом — классический случай: ничего не плывёт, горизонт остаётся ровным, а последний кадр оказывается достаточно близко к первому для лупа. Отключите generate_audio: товарному лупу почти никогда не нужен фоновый звук.
Медленное движение окружения
Опубликованный пример накладывает на один кадр падающий снег, поднимающийся пар и воду и использует очень медленный наезд, чтобы ничего не терялось из-за скорости камеры. Погода, дым и вода — именно то движение, которое лучше всего смотрится в неподвижной композиции.
Руководство по промптам и практические советы
Отправьте оба обязательных поля
Здесь обязательны и prompt, и image_url, а промпт должен содержать не меньше 3 символов. Изображение — это публичная прямая ссылка на JPEG, PNG или WebP размером до 10 МБ. Надписи, водяные знаки и логотипы на снимке переходят в видео, поэтому уберите их заранее.
Подберите формат под кадр
Адаптивного режима нет, а aspect_ratio по умолчанию равен 16:9. Если выбранный формат не совпадает с исходником, кадр перекадрируется и герой может потерять поля, поэтому выбирайте формат вашего снимка.
Адаптируйте пример
Опубликованный пример использует aspect_ratio 16:9, duration_seconds 5 и resolution 720p, звук оставлен по умолчанию.
Snow keeps falling through the lantern light and steam pours off the water. She sets the folded towel robe down on the rock and sinks slowly into the spring up to her collarbone, tipping her head back and exhaling a long plume of breath into the cold air. Steam swells across the frame and snow settles on her wet hair. Very slow push-in, warm lantern gold against deep blue snow.
Фонари и обстановку даёт кадр; промпт лишь опускает героиню в источник и даёт ей выдохнуть. Сохраните это разделение, подставляя свой снимок.
Держите движение внутри зафиксированного кадра
Когда camera_fixed равен true, описывайте только движение внутри кадра: указание для камеры и зафиксированная камера мешают друг другу. Проверьте движение на 4–5 секундах, прежде чем растягивать до 12: чем длиннее план, тем дальше он уходит от исходного кадра.
Быстрый старт API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "bytedance/seedance-1.5-pro/image-to-video",
"input": {
"aspect_ratio": "16:9",
"duration_seconds": 5,
"generate_audio": true,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Аутентификация, полная схема, опрос статуса и обработка ошибок описаны в справочнике API.
















