asset:// и укажите его в запросе на генерацию. Размер тела запроса уменьшается с мегабайт до нескольких десятков байт, эндпоинт создания задачи отвечает немедленно, а проверка содержимого медиафайла выполняется во время загрузки.Эта страница посвящена скорости и надёжности отправки запросов. Документацию по каждому эндпоинту библиотеки ресурсов см. в разделе Библиотека ресурсов; исполняемый код для полного сценария см. в Руководстве по ссылкам на ресурсы.Сначала определите: медленной является отправка или генерация?
Seedance — это асинхронный API на основе задач. Создание одного клипа включает два отдельных этапа, и задержка на каждом из них возникает по совершенно разным причинам:Сравнение трёх способов передачи медиафайлов
Для одного и того же изображения эти три варианта ведут себя совершенно по-разному при отправке:asset:// переносит эти затраты однократно, заранее, на этап загрузки; после этого при каждой генерации передаётся только короткая строка.
Сначала — ресурсы, а не только скорость
Время отправки не зависит от размера файла
Повторные попытки почти ничего не стоят
Проверки содержимого выполняются раньше
Active, поэтому любые несоответствия выявляются сразу, а не приводят к сбою задачи генерации на полпути.Ресурсы можно использовать повторно
asset://. См. Библиотека ресурсов.
Миграция в три шага
Загрузите медиаданные и получите идентификатор ресурса
Active (около 13 секунд для одного изображения) и ресурс не будет готов к использованию.Библиотека ресурсов бесплатна при использовании Seedance API — без ежегодной платы.Замените встроенные данные на asset:// в запросе на генерацию
content, значения role и все остальные параметры остаются без изменений. Изменяется только значение image_url.url: вместо URL данных используется asset://<Id>. Ссылайтесь на медиаданные в промпте как на «изображение 1», «изображение 2» в порядке их передачи — не указывайте идентификатор ресурса в тексте промпта.Сохраните идентификатор ресурса в собственной базе данных
Что насчёт задач с первым и последним кадром?
Первый/последний кадр (role: "first_frame" / "last_frame") и мультимодальная ссылка (role: "reference_image") — это взаимоисключающие режимы входных данных с разной семантикой, поэтому не следует бездумно заменять один другим:
- Если вам действительно нужны точные начальный и конечный кадры — например, чтобы бесшовно соединить их с предыдущим клипом, — оставайтесь в режиме первого/последнего кадра и замените встроенный URL данных на публичный URL. Размер тела запроса сразу уменьшится с нескольких мегабайт до нескольких сотен байт, а оставшаяся стоимость загрузки будет перенесена на upstream. Разместите изображения где-нибудь с высокой скоростью доступа, без аутентификации и с достаточными ресурсами.
- Если на самом деле вам нужен согласованный персонаж или сцена, а граничные кадры не обязаны совпадать до каждого пикселя, переключитесь на мультимодальную генерацию со ссылкой с идентификатором актива
asset://. Это самый надёжный путь и тот, который рекомендуется на этой странице.
Эталонное видео и аудио
Эталонное видео (role: "reference_video") на порядок больше изображения, поэтому встраивание Base64 — наиболее вероятная причина тайм-аута при отправке. Избегайте этого:
- Используйте общедоступный URL, размещённый на быстром, не требующем аутентификации и надёжно обеспеченном ресурсом.
- Группы ресурсов с верифицированной персоной поддерживают загрузку видео и аудио (видео: mp4 / mov, 2–15 секунд, менее 50 МБ; аудио: mp3 / wav, 2–15 секунд, менее 15 МБ) через процесс верификации личности в Библиотеке ресурсов.
- Обратите внимание: задачи с эталонным видео относятся к более низкому ценовому уровню — $7.56 за миллион token при наличии видеовхода против $12.60 без него. См. Цены на модели в обзоре.
Что делать после тайм-аута
Если запрос POST для создания задачи завершается по тайм-ауту, клиент не может определить, была ли создана задача: заголовки ответа не поступили, поэтому отсутствует ID задачи для запроса. Действуйте в следующем порядке:Проверьте наличие записи, прежде чем повторно что-либо отправлять
Одновременно измените тайм-аут чтения и способ передачи медиафайлов
asset:// тайм-аута 30–60 секунд для запроса создания достаточно — сам асинхронный эндпоинт работает быстро, а фактическая обработка выполняется на стороне задачи. Если необходимо и дальше встраивать большие медиафайлы непосредственно в запрос, задайте тайм-аут подключения и тайм-аут чтения отдельно, а значение тайм-аута чтения рассчитайте с учётом размеров файлов и пропускной способности исходящего канала.Уменьшите количество параллельных запросов, прежде чем продолжать поиск причины
Проверьте базовый URL
Часто задаваемые вопросы
Нужна ли для преобразования текста в видео также библиотека ресурсов?
Нужна ли для преобразования текста в видео также библиотека ресурсов?
Сколько времени занимает сама обработка ресурсов? Разве это не просто перенос затрат?
Сколько времени занимает сама обработка ресурсов? Разве это не просто перенос затрат?
Active занимают около 13 секунд — полностью автоматически, без ручной проверки.Суть в том, что это происходит один раз. После этого на один и тот же ресурс можно ссылаться неограниченное время, тогда как при встроенной загрузке вся передача повторяется при каждой генерации. Чем больше клипов вы создаёте, тем заметнее разница.Истекает ли срок действия идентификаторов ресурсов?
Истекает ли срок действия идентификаторов ресурсов?
Взимается ли дополнительная плата за библиотеку ресурсов?
Взимается ли дополнительная плата за библиотеку ресурсов?
Как долго остаётся действительным URL сгенерированного видео?
Как долго остаётся действительным URL сгенерированного видео?
content.video_url — это подписанная прямая ссылка, действительная в течение 24 часов. Скопируйте файл в собственное хранилище сразу после успешного выполнения задачи и не используйте этот URL как постоянный адрес.Совпадает ли KEY библиотеки ресурсов с token Seedance?
Совпадает ли KEY библиотеки ресурсов с token Seedance?
SeeDance2 и используется только для API генерации видео.