Перейти к основному содержанию
В этой статье будет представлена инструкция по интеграции API генерации видео SeeDance, который позволяет генерировать официальные видео SeeDance, вводя пользовательские параметры.

Процесс подачи заявки

Чтобы использовать API, сначала необходимо перейти на страницу API генерации видео SeeDance и подать заявку на соответствующую услугу. После перехода на страницу нажмите кнопку «Acquire», как показано на изображении: Если вы еще не вошли в систему или не зарегистрированы, вас автоматически перенаправит на страницу входа, где вас пригласят зарегистрироваться и войти в систему. После входа или регистрации вы автоматически вернетесь на текущую страницу. При первой подаче заявки будет предоставлен бесплатный лимит, который позволяет бесплатно использовать этот API.

Основное использование

Сначала ознакомьтесь с основным способом использования, который заключается в вводе подсказки content.text, типа content.type=text и модели model, чтобы получить обработанный результат. Конкретное содержание следующее:

Как видно, мы настроили заголовки запроса, включая:
  • accept: формат ответа, который вы хотите получить, здесь указано application/json, то есть формат JSON.
  • authorization: ключ для вызова API, который можно выбрать из выпадающего списка после подачи заявки.
Также настроено тело запроса, включая:
  • model: модель для генерации видео, возможные значения: doubao-seedance-1-0-pro-250528, doubao-seedance-1-0-pro-fast-251015, doubao-seedance-1-5-pro-251215, doubao-seedance-1-0-lite-t2v-250428, doubao-seedance-1-0-lite-i2v-250428.
  • content: массив входного контента, type может быть text или image_url.
  • resolution: выходное разрешение, возможные значения 480p / 720p / 1080p.
  • ratio: соотношение сторон, возможные значения 16:9 / 4:3 / 1:1 / 3:4 / 9:16 / 21:9 / adaptive.
  • duration: продолжительность видео (в секундах), диапазон 2–12.
  • seed: случайное семя, целое число, от -1 до 4294967295.
  • camerafixed: фиксировать ли камеру, true / false.
  • watermark: добавлять ли водяной знак, true / false.
  • generate_audio: генерировать ли видео с аудио, true / false, только doubao-seedance-1-5-pro-251215 поддерживает.
  • service_tier: режим вывода, default (онлайн) или flex (офлайн, цена 50% от онлайн).
  • return_last_frame: возвращать ли URL последнего кадра видео в результате.
  • execution_expires_after: время ожидания задачи (в секундах), диапазон 3600–259200.
  • callback_url: адрес асинхронного обратного вызова, после установки API немедленно вернет task_id, а по завершении задачи отправит результат на этот адрес.
После выбора можно увидеть, что справа также сгенерирован соответствующий код, как показано на изображении:

Нажмите кнопку «Try», чтобы провести тестирование, как показано на изображении, и мы получили следующий результат:
{
  "success": true,
  "task_id": "ec22ae22-0140-4033-8c86-a48b536da595",
  "trace_id": "1cc87db0-8ee5-4436-969b-35cc571a9fd5",
  "data": {
    "task_id": "cgt-20251222005129-62fhb",
    "status": "succeeded",
    "video_url": "https://platform.cdn.acedata.cloud/seedance/f592800a-b87c-4705-8796-cbb8018cae35.mp4",
    "model": "doubao-seedance-1-0-pro-250528"
  }
}
Возвращаемый результат содержит несколько полей, описание которых следующее:
  • success: статус задачи по генерации видео.
  • task_id: ID задачи по генерации видео.
  • trace_id: ID отслеживания генерации видео.
  • data: список результатов задачи по генерации видео.
    • task_id: серверный ID задачи по генерации видео.
    • video_url: ссылка на видео, сгенерированное в рамках задачи.
    • status: статус задачи по генерации видео.
      • model: модель, использованная для генерации видео.
Как видно, мы получили удовлетворительную информацию о видео, и нам нужно просто получить сгенерированное видео SeeDance по ссылке, указанной в data. Кроме того, если вы хотите сгенерировать соответствующий код интеграции, вы можете просто скопировать его, например, код CURL выглядит следующим образом:
curl -X POST 'https://api.acedata.cloud/seedance/videos' \
-H 'authorization: Bearer ${bearer_token}' \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-d '{
  "content": [{"text":"A kitten yawning at the camera. --rs 720p --rt 16:9 --dur 5 --fps 24 --wm true --seed 11 --cf false","type":"text"}],
  "model": "doubao-seedance-1-0-pro-250528"
}'

Описание встроенных параметров

В конце подсказки content[].text можно передавать параметры генерации в формате --parameter value (старый способ, слабая проверка, при ошибочном заполнении автоматически используются значения по умолчанию). Полный список параметров следующий:
Встроенный параметрСоответствующее полеОписаниеДиапазон значений
--rsresolutionВыходное разрешение480p / 720p / 1080p
--rtratioСоотношение сторон16:9 / 4:3 / 1:1 / 3:4 / 9:16 / 21:9 / adaptive
--durdurationПродолжительность видео (в секундах)2–12
--framesframesКоличество кадров видеоЦелые числа, удовлетворяющие 25+4n в диапазоне [29, 289]
--fpsframespersecondЧастота кадровПоддерживается только 24
--seedseedСлучайное семя-1 до 4294967295
--cfcamerafixedФиксировать ли камеруtrue / false
--wmwatermarkДобавлять ли водяной знакtrue / false
Рекомендуемая практика: использовать соответствующие верхние поля (такие как resolution, ratio и т.д.) непосредственно в теле запроса для режима строгой проверки, при ошибочном заполнении параметров будет возвращено четкое сообщение об ошибке, что облегчает поиск проблем.

Генерация видео с аудио

doubao-seedance-1-5-pro-251215 поддерживает генерацию видео с аудио через параметр generate_audio:
{
  "model": "doubao-seedance-1-5-pro-251215",
  "content": [
    {
      "type": "text",
      "text": "A girl holds a fox, the wind blows her hair, you can hear the sound of the wind"
    }
  ],
  "generate_audio": true,
  "ratio": "16:9",
  "duration": 5
}
Другие модели не поддерживают этот параметр, передача которого будет проигнорирована.

Генерация видео из изображения: первый кадр

Если вы хотите выполнить задачу генерации видео из изображения, сначала параметр content должен содержать элемент с type, равным image_url, поле image_url должно быть в формате объекта: {"url": "https://..."} или в формате Base64 {"url": "data:image/png;base64,..."}.
Примечание: image_url не поддерживает прямую передачу в строковом формате (например, "image_url": "https://..."), необходимо использовать объектный формат "image_url": {"url": "https://..."}, иначе будет возвращена ошибка 400.
Соответствующий код:
import requests

url = "https://api.acedata.cloud/seedance/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "content": [
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/i2v_foxrgirl.png"
            }
        },
        {
            "type": "text",
            "text": "Девушка держит лису на руках. Она открывает глаза и нежно смотрит в камеру, в то время как лиса ласково обнимает её в ответ. Когда камера медленно отдаляется, её волосы нежно развеваются на ветру. --ratio adaptive  --dur 5"
        }
    ],
    "model": "doubao-seedance-1-0-pro-250528"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
При нажатии на запуск можно сразу получить результат, как показано ниже:
{
    "success": true,
    "task_id": "dc7cceb5-3c12-4de7-a5f4-abcbba3e8e39",
    "trace_id": "b3b09de3-b7fa-4bb0-88b5-aad4b4a96fd4",
    "data": {
        "task_id": "cgt-20251222072003-x2259",
        "status": "succeeded",
        "video_url": "https://platform.cdn.acedata.cloud/seedance/6afb78b8-5ba8-424f-adcd-69423a700b50.mp4",
        "model": "doubao-seedance-1-0-pro-250528"
    }
}
Можно увидеть, что сгенерированный эффект — это видео, созданное на основе изображения, результат аналогичен вышеупомянутому.

Генерация видео из изображения: первый и последний кадры

Если вы хотите выполнить задачу генерации видео из первого и последнего кадров, сначала параметр content должен содержать тип image_url, и необходимо установить role как first_frame и last_frame, чтобы указать следующее содержимое:
  • role: указывает на первый или последний кадр.
  • image_url
    • url ссылка на изображение Также content необходимо ввести тип text в качестве подсказки.
Соответствующий код:
import requests

url = "https://api.acedata.cloud/seedance/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
   "model": "doubao-seedance-1-0-pro-250528",
    "content": [
         {
            "type": "text",
            "text": "Съемка на 360 градусов"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_first_frame.jpeg"
            },
            "role": "first_frame"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_last_frame.jpeg"
            },
            "role": "last_frame"
        }
    ]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
При нажатии на запуск можно сразу получить результат, как показано ниже:
{
    "success": true,
    "task_id": "f7096c6c-9430-4392-8201-d259632d7afd",
    "trace_id": "4a4a3721-00fb-43d2-aff2-3b516ac01a8a",
    "data": {
        "task_id": "cgt-20251222073134-54qcw",
        "status": "succeeded",
        "video_url": "https://platform.cdn.acedata.cloud/seedance/95f9f5f0-fc50-4c71-bc6f-e154582c141e.mp4",
        "model": "doubao-seedance-1-0-pro-250528"
    }
}
Можно увидеть, что сгенерированный эффект — это видео, созданное на основе кадров, результат аналогичен вышеупомянутому.

Асинхронный обратный вызов

Поскольку время генерации API SeeDance Videos Generation довольно долгое (около 1-2 минут), можно использовать асинхронный режим с помощью поля callback_url, чтобы избежать длительного удержания HTTP-соединения. Общий процесс: клиент инициирует запрос, указывая callback_url, API немедленно возвращает ответ с task_id; после завершения задачи платформа отправляет результаты генерации в формате POST JSON на callback_url, результаты также содержат task_id для связи.
{
  "task_id": "f7096c6c-9430-4392-8201-d259632d7afd"
}
Когда задача завершена, платформа отправляет на callback_url следующее содержимое:
{
  "success": true,
  "task_id": "f7096c6c-9430-4392-8201-d259632d7afd",
  "trace_id": "4a4a3721-00fb-43d2-aff2-3b516ac01a8a",
  "data": {
    "task_id": "cgt-20251222073134-54qcw",
    "status": "succeeded",
    "video_url": "https://platform.cdn.acedata.cloud/seedance/95f9f5f0-fc50-4c71-bc6f-e154582c141e.mp4",
    "model": "doubao-seedance-1-0-pro-250528"
  }
}
Поле task_id в результате совпадает с тем, что возвращается при запросе, с помощью этого поля можно связать задачи.

Обработка ошибок

При вызове API, если возникает ошибка, API возвращает соответствующий код ошибки и информацию. Например:
  • 400 token_mismatched: Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.
  • 400 api_not_implemented: Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.
  • 401 invalid_token: Неавторизовано, недействительный или отсутствующий токен авторизации.
  • 429 too_many_requests: Слишком много запросов, вы превысили лимит частоты.
  • 500 api_error: Внутренняя ошибка сервера, что-то пошло не так на сервере.

Пример ответа об ошибке

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Заключение

С помощью этого документа вы узнали, как использовать API генерации видео SeeDance, вводя подсказки и используя изображения для генерации видео. Надеемся, что этот документ поможет вам лучше интегрировать и использовать данный API. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь обращаться в нашу техническую поддержку.