ByteDance: Seedance 2.0 Mini
Seedance 2.0 Mini создаёт короткие видео с необязательным сгенерированным звуком по тексту, изображениям, видео- и аудиореференсам. Она поддерживает создание сцен, точечные правки и продолжение видео с документированным выводом 480p или 720p.
О модели
Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.
Seedance 2.0 Mini — отдельно названная модель аудиовизуального семейства Seedance 2.0 ByteDance. Производитель документирует текст–видео, изображение–видео по первому либо первому и последнему кадру, мультимодальные референсы, редактирование и расширение видео. Звук можно создавать вместе с изображением. Выбирайте режим по имеющемуся материалу: текстовому заданию, фиксированному первому изображению, двум граничным кадрам или клипу для изменения либо продолжения.
У Mini свой профиль вывода: 480p и 720p, 8-битный цвет, 24 кадра в секунду, MP4. Соотношения сторон — 21:9, 16:9, 4:3, 1:1, 3:4 и 9:16; документированная длительность — 4–15 секунд. Регулятор длительности также допускает автоматический выбор в этом диапазоне. 1080p и 4K полной Seedance 2.0 — отдельные возможности, не настройки Mini. Таблица семейства включает возврат последнего сгенерированного кадра; Draft не поддерживается.
Omni reference создаёт новую сцену из выбранной информации переданных материалов. Изображение задаёт внешность, композицию или визуальную обработку; видео — действие, камеру или эффект; аудио — тембр, мелодию или речь. Укажите, что взять из каждого референса, не прося копировать всё. Например, фото продукта задаёт форму и цвет, короткое видео камеры — приближение, звуковой референс — атмосферу.
Сценарий семейства допускает до девяти изображений, трёх видео и трёх аудиоклипов. Каждый видеореференс длится 2–15 секунд, суммарно не более 15 секунд; для аудио действуют те же отдельный и общий пределы. Только аудио и текст с аудио без визуального референса не поддерживаются. Создание только по тексту — отдельный поддерживаемый режим. Для последовательности передавайте материалы в нужном порядке и последовательно называйте Image 1, Video 1 или Audio 1 по порядку внутри типа. Не подменяйте номер референса идентификатором материала в промпте.
Первый кадр определяет начало плана по изображению; режим первого и последнего кадров задаёт обе границы. Если точные границы важны, выбирайте специальный режим вместо описания референсов как начала и конца в omni-reference-промпте. Последнее — эффект через промпт, не строгий выбор граничных кадров. Подготовьте изображения под итоговую композицию и задайте действие между началом и концом.
Редактирование меняет готовый клип, а не просто использует его как вдохновение. Назовите видео, объект или область, время появления, положение и сохраняемые детали. Пример: «В Video 1 замените кружку сосудом из Image 1; сохраните движение руки, кадрирование, свет и расположение предметов на столе». При удалении назовите лишний объект и сохраняемое окружение. Производитель советует прямо ссылаться на целевое видео для правки или расширения; слово «референс» может означать запрос новой сцены.
Расширение добавляет события до или после клипа. Задайте направление и последующее либо предыдущее действие. Документированный сценарий также соединяет два или три клипа сгенерированными переходами; три входных видео вместе укладываются в бюджет 15 секунд. Учебник отличает продолжение, в основном включающее граничный материал исходника, от запроса с явным сохранением исходного содержания. Укажите состав результата: только продолжение либо сцена с переданным клипом и новым действием.
Для ясного задания отделяйте постоянное описание сцены от событий. Опишите каждый объект двумя-тремя отличительными визуальными признаками и постоянной меткой. Затем задайте действия, окружение, свет, камеру, стиль и ограничения. В диалоге свяжите реплику с диктором и действием. Используйте упорядоченные метки планов, а не точные временные метки как надёжное управление: производитель отмечает нестабильность точного времени. Пример: «Image 1 задаёт Product A. Shot 1: медленно приблизиться к Product A на стойке. Shot 2: рука поворачивает его к свету. Shot 3: остановиться на передней этикетке. Тихий шум помещения; сохранить печатные надписи».
Готовьте референсы по правилам семейства. Изображения: JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC и HEIF, каждое меньше 30 MB. Ширина и высота строго между 300 и 6 000 пикселей; отношение сторон строго между 0,4 и 2,5. Видео: MP4 или MOV, H.264 либо H.265, аудио AAC либо MP3, до 200 MB каждое, 24–60 кадров в секунду. Их ширина и высота — 300–6 000 пикселей, отношение — 0,4–2,5, общее число пикселей — 407 696–8 295 044. Аудио: WAV или MP3, до 15 MB каждое. Это спецификации подготовки производителя, отдельные от загрузочных настроек приложения.
Портретный сценарий требует специальной подготовки изображений или видео с реальными лицами: прямая загрузка референса не является стандартным поддерживаемым путём. Документированы отдельные решения: доверенные результаты модели, готовые цифровые персонажи и разрешённый сценарий материалов реального человека. Проверяйте совпадение голоса, произношение и звук на границе клипа. Руководство рекомендует описывать голосовые характеристики и сохранять стиль диалога близким аудиореференсу. Проверяйте постоянство объектов, точные слова, тайминг действия, кадровые переходы и финальный звук; исправляйте конкретное отличие от задания.
Ailoot Ultra · Видео POST /v1/videos bytedance/seedance-2.0-mini
bytedance/seedance-2.0-miniНачало
Seedance 2.0 Mini создаёт короткие видео с необязательным сгенерированным звуком по тексту, изображениям, видео- и аудиореференсам. Она поддерживает создание сцен, точечные правки и продолжение видео с документированным выводом 480p или 720p.
- Допустимые входные данные
- Текст · Картинки · Аудио
- Результаты
- Видео
Доступно в Ailoot · входные данные и методы
Ailoot Ultra · Видео POST /v1/videos
- Входные данные
text,image,audio- Результат
video- Выходной формат
- Исходные байты MP4; без нормализации и перекодирования
| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
|---|---|---|---|---|
Полеmodel | Типstring | ТребованиеОбязательно | Значения и ограничения bytedance/seedance-2.0-mini | По умолчанию— |
Полеprompt | Типstring | ТребованиеОбязательно | Значения и ограничения | По умолчанию— |
Полеduration | Типinteger | ТребованиеОбязательно | Значения и ограничения 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Минимум: 1 Максимум: 600 | По умолчанию— |
Полеresolution | Типstring | ТребованиеНеобязательно | Значения и ограничения 480p, 720p | По умолчанию— |
Полеaspect_ratio | Типstring | ТребованиеНеобязательно | Значения и ограничения 1:1, 3:4, 9:16, 4:3, 16:9, 21:9, 9:21 | По умолчанию— |
Полеgenerate_audio | Типboolean | ТребованиеНеобязательно | Значения и ограничения false, true Условия: Отсутствие generate_audio выбирает цену с аудио; false выбирает цену без аудио. Проверьте has_audio в результате, чтобы узнать, возвращена ли аудиодорожка. | По умолчанию— |
Полеframe_images | Типarray | ТребованиеНеобязательно | Значения и ограничения Минимум элементов: 1 Максимум элементов: 2 Входное содержимое: Массив объектов кадров. Каждый содержит type=image_url, image_url с url и frame_type=first_frame или last_frame. Каждая роль встречается не более одного раза. Используйте публичные HTTPS-ссылки. Точные ключи: type, image_url, frame_type Условия: Эти ключи применяются к каждому объекту кадра. Не передавайте frame_images для запроса только с текстом. | По умолчанию— |
Полеinput_references | Типarray | ТребованиеНеобязательно | Значения и ограничения Входное содержимое: Массив объектов референсных изображений или аудио. Укажите image_url или audio_url в type и передайте соответствующий объект URL, содержащий url. Стоимость видеореференсов по-прежнему невозможно определить. Условия: Не передавайте frame_images, чтобы использовать режим референсов. Используйте публичные HTTPS URL. | По умолчанию— |
Полеsize | Типstring | ТребованиеНеобязательно | Значения и ограничения 480x480, 480x640, 480x854, 640x480, 854x480, 1120x480, 720x720, 720x960, 720x1280, 720x1680, 960x720, 1280x720, 1680x720 Шаблон: ^[1-9][0-9]*x[1-9][0-9]*$ | По умолчанию— |
Полеseed | Типinteger | ТребованиеНеобязательно | Значения и ограничения Минимум: -9 223 372 036 854 775 808 Максимум: 9 223 372 036 854 775 807 | По умолчанию— |
Полеcallback_url | Типstring | ТребованиеНеобязательно | Значения и ограничения Шаблон: ^https:// | По умолчанию— |
Полеsession_id | Типstring | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
Полеtrace | Типobject | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
Полеuser | Типstring | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
Сочетания входных материалов
Из текста в видео · Текстовый запрос. · Обязательно: model, prompt, duration
Передайте текстовый запрос и поддерживаемую длительность в целых секундах. Используйте точный размер из списка либо разрешение и соотношение сторон, дающие указанные в списке размеры.
model: Тип: string · bytedance/seedance-2.0-mini
prompt: Тип: string · Максимум байтов UTF-8: 10 000 · Нужен хотя бы один непробельный символ: Да
Из изображения в видео · Текстовый запрос и изображение кадра. · Обязательно: model, prompt, duration, frame_images
frame_images — массив объектов с type=image_url, image_url, содержащим url, и frame_type. Используйте публичный HTTPS URL изображения; first_frame и last_frame могут встречаться по одному разу. Используйте перечисленный размер результата или совместимые размеры. Не добавляйте видеореференсы.
Точные ключи: type, image_url, frame_type
model: Тип: string · bytedance/seedance-2.0-mini
prompt: Тип: string · Максимум байтов UTF-8: 10 000 · Нужен хотя бы один непробельный символ: Да
Reference to video · Текстовый запрос и референсные изображения или аудио. · Обязательно: model, prompt, duration, input_references
input_references — массив. Каждый объект содержит type=image_url или type=audio_url и соответствующий объект URL с url. Используйте публичные HTTPS-ссылки. Не передавайте frame_images, чтобы выбрать режим референсов. Стоимость видеореференсов определить невозможно.
model: Тип: string · bytedance/seedance-2.0-mini
prompt: Тип: string · Максимум байтов UTF-8: 10 000 · Нужен хотя бы один непробельный символ: Да
Параметры и жизненный цикл метода
| Параметр | Контракт |
|---|---|
Параметрcontent_type | Контрактapplication/json |
Параметрrequired | Контрактmodel, prompt, duration |
Параметрmaterial_types | Контрактtext, image, audio |
Параметрadditional_properties | Контрактfalse |
Параметрoptional_controls | Контрактresolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user |
Жизненный цикл: submit_once_poll_original
GET /v1/videos/{public_id}
GET /v1/videos/{public_id}/content
Тарифы
Как рассчитывается итоговая плата
Отображаемые тарифы позволяют оценить стоимость до генерации. Итоговое списание рассчитывается по стоимости, записанной для исходной генерации. Измеренная длительность результата и прогнозные объёмы не являются итоговым оплачиваемым объёмом.
Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.
- Быстрый режим
- Не указано При выборе быстрого режима
- Режим flex
- Не указано При выборе режима flex
- Максимальная интенсивность рассуждений
- Не указано При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)
Оценочные ставки для сравнения
Цены по конфигурациям
Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.
| Конфигурация | Шкала ставок | Прогноз количества | Расчётная единица | Условия расчёта | Плата |
|---|---|---|---|---|---|
| КонфигурацияБазовые тарифы на токены | Шкала ставокБазовая ставка | Прогноз количества— | Расчётная единица— | Условия расчёта— | Плата Вход · Входные токены · Оценка только для сравнения — / 1K токенов Выход · Выходные токены · Оценка только для сравнения — / 1K токенов Вход · Чтение кэша · Оценка только для сравнения — / 1K токенов Вход · Запись в кэш · Оценка только для сравнения — / 1K токенов Вход · Запись в кэш, 1 час · Оценка только для сравнения — / 1K токенов |
| КонфигурацияЦена видеотокена | Шкала ставок— | Прогноз количества— | Расчётная единицаза 1K видеотокенов | Условия расчётаВ этом ключе цены дополнительное условие не объявлено. | Плата Выход · Цена видеотокена · Оценка только для сравнения $0.007 за 1K видеотокенов Тариф за видеотокен — основной ориентир цены. Посекундные оценки в заголовке служат отдельными ориентирами, а не дополнительным списанием. |
| КонфигурацияЦена видеотокена | Шкала ставок— | Прогноз количества— | Расчётная единицаза 1K видеотокенов | Условия расчётавходные данные: with_video_input | Плата reference · Цена видеотокена · Оценка только для сравнения $0.0042 за 1K видеотокенов Тариф за видеотокен — основной ориентир цены. Посекундные оценки в заголовке служат отдельными ориентирами, а не дополнительным списанием. |
| КонфигурацияЦена видеотокена | Шкала ставок— | Прогноз количества— | Расчётная единицаза 1K видеотокенов | Условия расчётааудио: without_audio | Плата Выход · Цена видеотокена · Оценка только для сравнения $0.007 за 1K видеотокенов Тариф за видеотокен — основной ориентир цены. Посекундные оценки в заголовке служат отдельными ориентирами, а не дополнительным списанием. |
| КонфигурацияОриентировочная стоимость генерации | Шкала ставок— | Прогноз количестваОценка для одной генерации | Расчётная единица— | Условия расчёта— | Плата Выход · Оценочная стоимость генерации · Оценка только для сравнения $0.1512 оценка до генерации Эта оценка не является дополнительным списанием или фиксированным тарифом для завершённой генерации. |
Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →
Сведения о справочном тарифе
Справочные шкалы модели не меняют выбор метода, расчёт стоимости или списания. Действующая плата определяется ставками выбранного метода Ailoot.
Ссылки на цены конфигураций видео
Цены по конфигурациям
Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.
| Конфигурация | Условия расчёта | Плата |
|---|---|---|
| КонфигурацияЦена видеотокена | Условия расчётаВ этом ключе цены дополнительное условие не объявлено. | Плата Выход · Цена видеотокена $0.007 за 1K видеотокенов Тариф за видеотокен — основной ориентир цены. Посекундные оценки в заголовке служат отдельными ориентирами, а не дополнительным списанием. |
| КонфигурацияЦена видеотокена | Условия расчётааудио: without_audio | Плата Выход · Цена видеотокена $0.007 за 1K видеотокенов Тариф за видеотокен — основной ориентир цены. Посекундные оценки в заголовке служат отдельными ориентирами, а не дополнительным списанием. |
| КонфигурацияЦена видеотокена | Условия расчётавходные данные: with_video_input | Плата reference · Цена видеотокена $0.0042 за 1K видеотокенов Тариф за видеотокен — основной ориентир цены. Посекундные оценки в заголовке служат отдельными ориентирами, а не дополнительным списанием. |
Примеры запросов
Ailoot Ultra · Видео
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
from pathlib import Path
Path('request.json').write_text('{"model":"bytedance/seedance-2.0-mini","prompt":"A serene mountain landscape at sunset","duration":4,"resolution":"480p","size":"480x480","generate_audio":false}', encoding='utf-8')
PY_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
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('result.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
Получить и сохранить результаты
Ailoot Ultra · Видео
подписанные ссылки на содержимое, принадлежащее Ailoot
GET /v1/videos/{public_id}GET /v1/videos/{public_id}/content
Проверить статус задачи
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_STATUS_URL'
import json
from pathlib import Path
from urllib.parse import quote
r=json.loads(Path('result.json').read_text())
if not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')
Path('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))
PY_STATUS_URL
curl --fail-with-body --silent --show-error "$(cat status-url.txt)" \
-H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('status.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
Чтение другого содержимого
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path('status.json').read_text())
if r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')
if not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')
urls=[]
for i,u in enumerate(r.get('data',[])):
if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')
urls.append((str(i),u))
for label,path in urls:
u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)
if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')
target=Path('owned-'+label+'.bin')
subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)
print('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')
PY_ASSETS
Сохраняйте все готовые результаты
Сохраните каждое готовое видео или полученный файл; загрузите содержимое по каждому фактически полученному URL материала.
Сохраняйте каждый фактический результат, принадлежащий Ailoot, и возвращённые измеренные метаданные.
Если нужно проверить исходный ответ
503 result_pending_check + исходный id + X-Should-Retry:false; никогда не отправляйте исходный запрос повторно
Поля ответа
| Поле | Тип | Значение |
|---|---|---|
Полеindex | Типinteger | ЗначениеПозиция этого видео в списке результатов, начиная с нуля. |
Полеcontent_url | Типstring | ЗначениеПодписанный HTTPS URL для скачивания этого готового видео. |
Полеsha256 | Типstring | null | ЗначениеХэш SHA-256 исходных байтов видео; null, если недоступен. |
Полеsize_bytes | Типinteger | null | ЗначениеРазмер исходного видеофайла в байтах; null, если недоступен. |
Полеduration_ms | Типinteger | null | ЗначениеИзмеренная длительность видео в миллисекундах; null, если недоступна. |
Полеwidth | Типinteger | null | ЗначениеШирина видео в пикселях; null, если недоступна. |
Полеheight | Типinteger | null | ЗначениеВысота видео в пикселях; null, если недоступна. |
Полеvideo_codec | Типstring | null | ЗначениеИдентификатор видеокодека; null, если не записан. |
Полеhas_audio | Типboolean | null | ЗначениеЕсть ли у видео аудиодорожка; null, если не измерено. |
Полеaudio_codec | Типstring | null | ЗначениеИдентификатор аудиокодека; null, если идентификатор не записан. |
Ошибки и дальнейшие шаги
| Ответ | Условие | Следующий шаг |
|---|---|---|
Ответ404 · not_found_error | УсловиеДоступ к видео недоступен либо этот ID видео не найден. | Следующий шагПроверьте доступ к видео. Для существующего видео используйте исходный публичный ID и тот же ключ API. |
Ответ401 · authentication_error | УсловиеКлюч API не соответствует авторизованному аккаунту. | Следующий шагПеред отправкой проверьте ключ API и доступ к аккаунту. |
Ответ400 · invalid_request_error | УсловиеНе удалось прочитать запрос либо индекс скачивания недопустим. | Следующий шагИсправьте тело запроса. Для скачивания выберите индекс результата, возвращённый исходной задачей. |
Ответ422 · price_unavailable | УсловиеНевозможно определить цену выбранной конфигурации видео. | Следующий шагВыберите поддерживаемую конфигурацию видео и заполните обязательные параметры перед отправкой исправленного запроса. |
Ответ422 · invalid_request_error | УсловиеНедопустимы входное видео или исходная задача продолжения. | Следующий шагИспользуйте корректные входные HTTPS-ссылки. Для продолжения используйте исходный публичный ID вашего готового видео и тот же ключ API. |
Ответ402 · billing_error | УсловиеДоступный баланс или лимиты не позволяют зарезервировать средства. | Следующий шагПеред отправкой нового запроса проверьте доступный баланс и лимиты. |
Ответ503 · server_error | УсловиеПроверка видео, хранилище или доступ к сервису временно недоступны. | Следующий шагДождитесь доступности сервиса. Если у вас уже есть ID видео, проверяйте ту исходную задачу вместо создания новой генерации. |
Ответ503 · result_pending_check | УсловиеНужно проверить результат исходного видео и начисление. | Следующий шагСохраните возвращённый ID видео и проверьте эту задачу. Не отправляйте заменяющий запрос на генерацию, пока идёт проверка. |
Ответ503 · owned_result_unavailable | УсловиеСкачивание существующего видео временно недоступно. | Следующий шагПроверьте ту же видеозадачу позже и скачайте её существующий результат. Новая генерация создаёт отдельную операцию. |
Ответ409 · video_not_ready | УсловиеСодержимое видео не опубликовано. | Следующий шагПроверьте исходный статус задачи. Скачайте результат после completed; при failed следуйте уведомлению о проверке начисления. |
Псевдонимы
Псевдонимы моделей
Ailoot Ultra bytedance/seedance-2.0-mini
Псевдонимы путей метода
Используйте пути методов, указанные выше.
Связанные ID для вызова
FAQ · ByteDance: Seedance 2.0 Mini
- Какие входные данные и результаты доступны?
POST /v1/videos·bytedance/seedance-2.0-mini:text,image,audio→video- Какие поля использует запрос?
POST /v1/videos·bytedance/seedance-2.0-mini:model,prompt,duration,resolution,aspect_ratio,generate_audio,frame_images,input_references,size,seed,callback_url,session_id,trace,user- Какие ограничения действуют?
POST /v1/videos·bytedance/seedance-2.0-mini:duration.minimum:1;duration.maximum:600;frame_images.max_items:2;frame_images.min_items:1;seed.minimum:-9223372036854775808;seed.maximum:9223372036854775807