SeeGen AI API
Добро пожаловать в SeeGen AI API — единый API для кинематографичной генерации видео и высококачественных изображений на основе нескольких ведущих моделей.
Обзор
SeeGen AI — это единый API генерации: один согласованный набор эндпоинтов для запуска нескольких ведущих ИИ-моделей видео и изображений. Выберите модель с помощью параметра model — аутентификация, отправка задач, опрос статуса и вебхуки работают одинаково для всех них.
Доступные модели:
- Видео — Seedance 2.0 Pro (
sd2), Seedance 2.0 Fast (sd2-fast), Seedance 2.0 Mini (sd2-mini), Seedance 2.5 (sd2.5), HappyHorse 1.1 (happyhorse) - Изображения — GPT Image 2 (
gpt-image-2), Nano Banana 2 (nano-banana-2), Nano Banana Pro (nano-banana-pro), Seedream 5.0 Lite (seedream-v5.0-lite), Seedream 5.0 Pro (seedream-v5.0-pro)
Базовый URL: https://seegen.ai/api/v1
Модель: передайте любой из перечисленных выше алиасов в поле model (например, sd2, gpt-image-2).
Почему SeeGen AI?
Больше причин выбрать SeeGen AI:
- Больше, чем Seedance 2.0: HappyHorse 1.1, Nano Banana, ChatGPT Image и другие.
- Подписка не требуется — оплата по факту использования
- Быстрый доступ к новейшим моделям
- Поддержка клиентов 24/7
- Поддержка по официальным вопросам, связанным с моделями
- Доступ к консоли для разработчиков
- Открыт как для компаний, так и для частных пользователей
Тарифы
API Pack
125,000 кредитов ($0.004/кредит)
~781 5-секундных видео
API-XL Pack
500,000 кредитов ($0.004/кредит)
~3,125 5-секундных видео
Seedance 2.0 / Fast / Mini / 2.5 — расчёт стоимости
Пусть out = output_seconds, а in = сумма ⌈duration⌉ каждого входного видео (каждое округляется вверх, минимум out × 2/3). Seedance 2.5 использует тот же расчёт, что и Seedance 2.0. Базовая ставка соответствующей модели умножается на 1.5 и округляется перед применением формулы задачи (1080P нативен на sd2.5, 2.5× от ставки 720P); независимые от модели надбавки за апскейл остаются +30 / +40 кредитов за выходную секунду для 2K / 4K (+20 за 1080P только на sd2-fast / sd2-mini).
| Без входного видео | С входным видео | |
|---|---|---|
| sd2.5: 480P | 30 × out | 23 × (out + in) |
| sd2.5: 720P | 60 × out | 45 × (out + in) |
| sd2.5: 1080P (нативно) | 150 × out | 113 × (out + in) |
| sd2.5: 2K | (60 + 30) × out | 45 × (out + in) + 30 × out |
| sd2.5: 4K | (60 + 40) × out | 45 × (out + in) + 40 × out |
| sd2-pro: 480P | 20 × out | 15 × (out + in) |
| sd2-pro: 720P | 40 × out | 30 × (out + in) |
| sd2-pro: 1080P (нативно) | 100 × out | 75 × (out + in) |
| sd2-pro: 2K | (40 + 30) × out | 30 × (out + in) + 30 × out |
| sd2-pro: 4K (нативно) | 200 × out | 150 × (out + in) |
| sd2-fast: 480P | 16 × out | 12 × (out + in) |
| sd2-fast: 720P | 32 × out | 24 × (out + in) |
| sd2-fast: 1080P | (32 + 20) × out | 24 × (out + in) + 20 × out |
| sd2-fast: 2K | (32 + 30) × out | 24 × (out + in) + 30 × out |
| sd2-fast: 4K | (32 + 40) × out | 24 × (out + in) + 40 × out |
| sd2-mini: 480P | 10 × out | 7.5 × (out + in) |
| sd2-mini: 720P | 20 × out | 15 × (out + in) |
| sd2-mini: 1080P | (20 + 20) × out | 15 × (out + in) + 20 × out |
| sd2-mini: 2K | (20 + 30) × out | 15 × (out + in) + 30 × out |
| sd2-mini: 4K | (20 + 40) × out | 15 × (out + in) + 40 × out |
Примечание: sd2-pro 1080P и 4K — нативный официальный вывод (4K = 5× ставки 720P); sd2-pro 2K и все режимы sd2-fast / sd2-mini 1080P/2K/4K апскейлятся силами SeeGen AI. sd2.5 генерирует нативно в 480P/720P/1080P (1080P = 2.5× ставки 720P, без надбавки за апскейл) и использует автоматический апскейл для 2K/4K. Запросите любой уровень через outputResolution: "4k" (например, "2k" / "4k"; шлюз сам выбирает нативный режим или апскейл — отличаются только цена и метка Native). sd2-mini стоит 50% от sd2-pro — самый дешёвый уровень. Seedance 2.5 использует округление длительности по каждому видео, минимальный порог входной длительности и расчёт апскейла от Seedance 2.0. Базовая ставка соответствующей модели умножается на 1.5 и округляется перед расчётом задачи (например, 1080P с видео: 75 × 1.5 → 113). Независимые от модели надбавки за апскейл 2K / 4K остаются на уровне +30 / +40 кредитов за выходную секунду. Если апскейл не удался, завершённая задача возвращает результат в 720P без частичного возврата кредитов.
- sd2.5 480P, 4-секундный вывод без входного видео: 120 кредитов
- sd2.5 720P, 5-секундный вывод без входного видео: 300 кредитов
- sd2.5 720P, 5-секундный вывод + 3-секундное входное видео (минимум входа — 4 секунды): 405 кредитов
- sd2.5 1080P нативно, 5-секундный вывод без входного видео: 750 кредитов
- sd2.5 1080P нативно, 5-секундный вывод + 5-секундное входное видео: 1,130 кредитов
happyhorse — кредиты за секунду
| Вывод | Кредиты / сек | Пример на 5 с |
|---|---|---|
| 720P | 32 | 160 |
| 1080P | 60 | 300 |
| 2K | 32 + 30 | 310 |
| 4K | 32 + 40 | 360 |
Примечание: апскейл 2K / 4K добавляется поверх базы 720P (не суммируется с нативным 1080P). t2v / i2v / r2v используют одну и ту же ставку за секунду — референсные изображения не тарифицируются.
🎉 Ограниченное по времени предложение: скидка 33% на всю генерацию изображений — все цены на изображения ниже уже указаны со скидкой.
gpt-image-2 — кредиты за изображение
| Разрешение | Среднее качество | Высокое качество |
|---|---|---|
| 1k | 1015 | 4770 |
| 2k (по умолчанию) | 2335 | 84125 |
| 4k | 4060 | 154230 |
Каждая задача создаёт 1 изображение. Чтобы получить N вариантов, отправьте N задач. При сбое задачи кредиты возвращаются автоматически.
nano-banana-2 и nano-banana-pro — кредиты за изображение
| Разрешение | nano-banana-2 | nano-banana-pro |
|---|---|---|
| 1k | 2030 | 4060 |
| 2k (по умолчанию) | 3045 | 4060 |
| 4k | 4770 | 74110 |
Каждая задача создаёт 1 изображение. Чтобы получить N вариантов, отправьте N задач. При сбое задачи кредиты возвращаются автоматически.
Seedream 5.0 — кредиты за изображение
| Модель / уровень | Кредиты |
|---|---|
| Lite 2k / 4k (фиксированная цена) | 710 |
| Pro 1k (по умолчанию) | 1015 |
| Pro 2k | 2030 |
Каждая задача создаёт 1 изображение. Чтобы получить N вариантов, отправьте N задач. При сбое задачи кредиты возвращаются автоматически. Референсные изображения не тарифицируются отдельно.
Проверьте баланс: GET /api/v1/account/credits
Аутентификация
Все запросы к API требуют Bearer-токен в заголовке Authorization. Вы можете создавать и управлять API-ключами в разделе Настройки аккаунта.
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://seegen.ai/api/v1/account/creditsВажно: ваш API-ключ показывается только один раз при создании. Храните его в безопасном месте. Вы можете создать до 10 API-ключей на аккаунт.
Быстрый старт
Сгенерируйте видео в два шага: создайте задачу, затем опрашивайте статус, чтобы получить результат.
# 1. Create a text-to-video task
TASK_ID=$(curl -s -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"prompt": "A golden retriever running on the beach at sunset",
"duration": "5s",
"resolution": "1280x720"
}
}' \
https://seegen.ai/api/v1/jobs/createTask | jq -r '.taskId')
echo "Task created: $TASK_ID"
# 2. Poll for result
while true; do
RESULT=$(curl -s -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/jobs/queryTask?taskId=$TASK_ID")
STATUS=$(echo $RESULT | jq -r '.status')
echo "Status: $STATUS"
if [ "$STATUS" = "COMPLETED" ] || [ "$STATUS" = "FAILED" ]; then
echo $RESULT | jq .
break
fi
sleep 5
doneЭндпоинты
/api/v1/jobs/createTaskСоздать новую задачу генерации видео
/api/v1/jobs/queryTaskЗапросить статус и результат задачи
/api/v1/account/creditsПроверить баланс кредитов
/api/v1/assets/uploadЗагрузить ассет (изображение/видео/аудио) на проверку
/api/v1/assets/statusЗапросить статус проверки ассета
/api/v1/assets/listСписок загруженных ассетов
/api/v1/upscale/createОтправить отдельную задачу апскейла видео (720p / 1080p / 2K / 4K)
/api/v1/upscale/queryОпросить статус и результат отдельной задачи апскейла
Выбор модели (видео)
Видео генерируют два семейства моделей. Выбирайте по режиму и цене; используйте вместе с разделом Тарифы, чтобы оценить стоимость.
| Модель | T2V | I2V | First–Last | Multi-Ref | R2V | Нативный 1080p | Нативный 4K | Аудио | 720p / 5s |
|---|---|---|---|---|---|---|---|---|---|
| sd2.5 | ✓ | ✓ | ✓ | ✓ | — | ✓ | апскейл | ✓ | 300 кредитов |
| sd2 | ✓ | ✓ | ✓ | ✓ | — | ✓ | ✓ | ✓ | 200 кредитов |
| sd2-fast | ✓ | ✓ | ✓ | ✓ | — | апскейл | апскейл | ✓ | 160 кредитов |
| sd2-mini | ✓ | ✓ | ✓ | ✓ | — | апскейл | апскейл | ✓ | 100 кредитов |
| happyhorse | ✓ | ✓ | — | — | ✓ | ✓ | апскейл | ✓ | 160 кредитов |
T2V = текст в видео · I2V = изображение в видео (первый кадр) · First–Last = первый + последний ключевой кадр · Multi-Ref = смешанные референсы: изображения / видео / аудио · R2V = 1–9 референсных изображений с маркерами персонажей
Seedance 2.0 / 2.0 Fast / 2.0 Mini / Seedance 2.5
Текст в видео
Сгенерируйте видео из текстового промпта. Изображения не требуются.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"prompt": "A futuristic city with flying cars at night, neon lights reflecting on wet streets",
"duration": "5s",
"resolution": "1280x720"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| prompt | string | Да | Текстовое описание видео для генерации. Максимум 20000 символов. |
| duration | string | Нет | Длительность видео: от "4s" до "15s"; sd2.5 поддерживает до "30s" (по умолчанию: "5s") |
| resolution | string | Нет | Соотношение сторон через разрешение. Варианты: auto (по умолчанию), 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540 |
| outputResolution | string | Нет | Уровень выходного разрешения: "480p", "720p" (по умолчанию), "1080p", "2k" или "4k". Нативные разрешения различаются по модели: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Более высокие уровни апскейлятся автоматически. |
| seed | int | Нет | Сид для воспроизводимости: -1 или не указывайте для случайного значения; 0–2147483647 для фиксированного. |
| generateAudio | boolean | Нет | Синтезировать ли синхронизированную аудиодорожку. По умолчанию true; передайте false для видео без звука. |
Изображение в видео
Анимируйте статичное изображение в видео. Укажите один URL изображения как начальный кадр.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"urls": ["https://example.com/photo.jpg"], // or "asset://asset-20260326-abc123"
"prompt": "The woman slowly turns her head and smiles",
"duration": "5s"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| urls | string[] | Да | Массив с одним URL изображения (исходный кадр). Поддерживает как HTTP-URL, так и ссылки на ассеты (например, "asset://asset-20260326-abc123") |
| prompt | string | Нет | Текстовое описание желаемого движения |
| duration | string | Нет | Длительность видео: от "4s" до "15s"; sd2.5 поддерживает до "30s" (по умолчанию: "5s") |
| outputResolution | string | Нет | Уровень выходного разрешения: "480p", "720p" (по умолчанию), "1080p", "2k" или "4k". Нативные разрешения различаются по модели: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Более высокие уровни апскейлятся автоматически. |
| seed | int | Нет | Сид для воспроизводимости: -1 или не указывайте для случайного значения; 0–2147483647 для фиксированного. |
| generateAudio | boolean | Нет | Синтезировать ли синхронизированную аудиодорожку. По умолчанию true; передайте false для видео без звука. |
Первый и последний кадр
Задайте начальный и конечный кадры — модель сгенерирует переход между ними. Использует videoInputMode: "keyframe".
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"urls": [
"https://example.com/first-frame.jpg",
"https://example.com/last-frame.jpg"
],
"prompt": "Smooth camera transition from day to night",
"duration": "5s",
"videoInputMode": "keyframe"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| urls | string[] | Да | Массив ровно с 2 URL изображений: [first_frame, last_frame]. Поддерживает как HTTP-URL, так и ссылки на ассеты (например, "asset://asset-20260326-abc123") |
| videoInputMode | string | Да | Должно быть "keyframe" |
| prompt | string | Нет | Текстовое описание, направляющее переход |
| duration | string | Нет | Длительность видео: от "4s" до "15s"; sd2.5 поддерживает до "30s" (по умолчанию: "5s") |
| outputResolution | string | Нет | Уровень выходного разрешения: "480p", "720p" (по умолчанию), "1080p", "2k" или "4k". Нативные разрешения различаются по модели: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Более высокие уровни апскейлятся автоматически. |
| seed | int | Нет | Сид для воспроизводимости: -1 или не указывайте для случайного значения; 0–2147483647 для фиксированного. |
| generateAudio | boolean | Нет | Синтезировать ли синхронизированную аудиодорожку. По умолчанию true; передайте false для видео без звука. |
Мульти-референс
Используйте несколько референсных изображений, видео и аудиофайлов для управления генерацией. Использует videoInputMode: "reference". Для sd2.5 это подзадача reference по умолчанию; чтобы отредактировать или продолжить существующее видео, см. раздел Редактирование и расширение видео ниже.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"urls": [
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
],
"videoUrls": ["asset://asset-motion-video"],
"audioUrls": ["https://example.com/audio.mp3"],
"prompt": "Character walks through a garden",
"duration": "5s",
"videoInputMode": "reference",
"resolution": "1280x720"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| urls | string[] | Нет | URL референсных изображений (максимум 9). Поддерживает как HTTP-URL, так и ссылки на ассеты (например, "asset://asset-20260326-abc123") |
| videoUrls | string[] | Нет | URI референсных видео asset:// — сначала загрузите через /api/v1/assets/upload; внешние URL отклоняются. sd2: максимум 3 видео, каждое ≤15s. sd2.5: до 10 видео, каждое 2–30s и ≤200MB, суммарная референсная длительность ≤30s, поддерживаются входы 480p–4K. |
| audioUrls | string[] | Нет | Референсные аудиовходы. sd2 / sd2-fast / sd2-mini: до 3 аудиофайлов, каждый 2–15s, суммарно ≤15s — аудио не может быть единственным референсом для этих моделей (добавьте хотя бы одно изображение или видео). sd2.5: до 10 файлов, ≤15MB и 2–30s каждый, суммарно ≤30s, поддерживается вход только с аудио. |
| videoInputMode | string | Да | Должно быть "reference" |
| prompt | string | Нет | Текстовое описание |
| duration | string | Нет | Длительность видео: от "4s" до "15s"; sd2.5 поддерживает до "30s" (по умолчанию: "5s") |
| resolution | string | Да | Обязательно для режима reference. Варианты: 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540 |
| outputResolution | string | Нет | Уровень выходного разрешения: "480p", "720p" (по умолчанию), "1080p", "2k" или "4k". Нативные разрешения различаются по модели: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Более высокие уровни апскейлятся автоматически. |
| seed | int | Нет | Сид для воспроизводимости: -1 или не указывайте для случайного значения; 0–2147483647 для фиксированного. |
| generateAudio | boolean | Нет | Синтезировать ли синхронизированную аудиодорожку. По умолчанию true; передайте false для видео без звука. |
Ограничения по референсам
- Максимум 9 изображений, 3 видео, 3 аудиофайла
- Максимум 12 файлов суммарно по всем типам
- Каждое видео/аудио должно быть ≤ 15 секунд
- Изображения должны быть не менее 400px по короткой стороне
- sd2.5: максимум 30 изображений, 10 видео, 10 аудиофайлов, суммарно 50; суммарная длительность видео и аудио — каждая ≤ 30 секунд
Редактирование и расширение видео
sd2.5 разделяет генерацию на основе референсов на три подзадачи. Не указывайте mode для обычной reference-генерации, задайте mode: "edit", чтобы отредактировать существующее видео, или mode: "extend", чтобы продолжить его. Оба режима требуют как минимум одно видео в videoUrls и всегда выводят видео с соотношением сторон исходного видео.
Поместите видео, с которым хотите работать, первым в videoUrls и ссылайтесь на него как "Video 1" в промпте. edit принудительно делает длину вывода равной длине этого первого (исходного) видео, которое должно быть 4–30s, поэтому любой переданный вами duration игнорируется; тарификация использует длительность исходного видео как длительность вывода, плюс все референсные видео как вход. extend принимает 1–3 клипа, склеенных по порядку, и запрошенный вами duration — это длина вывода данной генерации (не связана с длиной исходника) — тарифицируется как обычная reference-генерация.
Модели семейства 2.0 (sd2 / sd2-fast / sd2-mini) также принимают mode: "edit" и mode: "extend": они определяют операцию по вашему промпту (явно опишите редактирование или продолжение), соотношение сторон следует исходному видео, а duration остаётся под вашим контролем при обычной тарификации.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2.5",
"inputs": {
"mode": "edit",
"videoUrls": ["asset://asset-source-video"],
"urls": ["https://example.com/annotation-at-1.2s.png"],
"source_frame_timestamps_ms": [1200],
"prompt": "Replace the marked object with a red umbrella",
"outputResolution": "720p"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| mode | string | Нет | "edit" или "extend". Не указывайте для обычной reference-генерации. |
| videoUrls | string[] | Да | Минимум одно видео; первое — исходное ("Video 1") — длина вывода и тарификация для edit следуют за ним. Последующие видео — дополнительные референсы (edit) или дополнительные клипы, склеенные по порядку (extend, максимум 3). |
| urls | string[] | Нет | Необязательные изображения аннотаций/референсов. |
| source_frame_timestamps_ms | number[] | Нет | только для mode "edit". Одна неотрицательная временная метка исходного видео в миллисекундах на каждое изображение в urls. |
| outputResolution | string | Нет | Уровень выходного разрешения: "480p", "720p" (по умолчанию), "1080p", "2k" или "4k". Нативные разрешения различаются по модели: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Более высокие уровни апскейлятся автоматически. |
Справочник параметров Seedance
Полный справочник всех параметров inputs для моделей sd2 / sd2-fast / sd2-mini / sd2.5.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| prompt | string | Нет | Текстовое описание (обязательно для text-to-video, необязательно для остальных режимов). Максимум 20000 символов. |
| urls | string[] | Нет | URL изображений. Поддерживает как HTTP-URL, так и ссылки на ассеты (например, "asset://asset-20260326-abc123"). Внутренне сопоставляется с uploadedUrls. |
| videoUrls | string[] | Нет | URI референсных видео asset:// (только для режима reference). Должны быть предварительно загружены через /api/v1/assets/upload — внешние URL отклоняются. |
| audioUrls | string[] | Нет | URL референсного аудио (только для режима reference). Вход только с аудио поддерживается на sd2.5; sd2 / sd2-fast / sd2-mini требуют хотя бы одно изображение или видео вместе с аудио. |
| duration | string | Нет | обычно от "4s" до "15s"; sd2.5 поддерживает до "30s". По умолчанию: "5s" |
| resolution | string | Нет | Соотношение сторон: auto (по умолчанию) | 720x720 | 720x960 | 960x720 | 1280x720 | 720x1280 | 1280x540 |
| outputResolution | string | Нет | Уровень выходного разрешения: "480p", "720p" (по умолчанию), "1080p", "2k" или "4k". Нативные разрешения различаются по модели: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Более высокие уровни апскейлятся автоматически. |
| videoInputMode | string | Нет | "keyframe" (по умолчанию) или "reference" |
| mode | string | Нет | Подзадача режима reference (все модели Seedance): не указывайте для обычной reference-генерации, "edit" — чтобы отредактировать первое видео в videoUrls, "extend" — чтобы продолжить 1-3 клипа. См. раздел Редактирование и расширение видео. |
| source_frame_timestamps_ms | number[] | Нет | только для sd2.5 Video Edit: одна неотрицательная временная метка в миллисекундах на каждое изображение-аннотацию. |
| seed | int | Нет | Случайный сид для воспроизводимости. -1 или не указывайте для случайного значения на сервере. Один и тот же сид с теми же входами даёт близкий по результату вывод (не побитово идентичный из-за недетерминированности GPU). Диапазон: от -1 до 2147483647. |
| generateAudio | boolean | Нет | Синтезировать ли аудиодорожку (речь, звуковые эффекты, фоновую музыку), синхронизированную с видео. По умолчанию true. Установите false, чтобы получить видео без звука — немного быстрее, полезно, если вы планируете озвучить отдельно. |
| bitrateMode | string | Нет | Уровень битрейта вывода при том же разрешении: "standard" (по умолчанию) или "high". "high" сохраняет больше деталей и уменьшает бэндинг/блочность при размере файла ~3-5× больше — не меняет разрешение или цену. |
| upscaleResolution | string | Нет | (Устарело) Устаревшее раздельное поле, всё ещё принимается для обратной совместимости. Новым интеграциям следует использовать outputResolution, которое теперь напрямую принимает "2k" / "4k". Если переданы оба поля, приоритет имеет upscaleResolution — за исключением моделей с нативным 1080p (Seedance2 Pro / Seedance 2.5), где upscaleResolution:"1080p" разрешается в нативный 1080p (тарифицируется по нативной ставке). |
Поля верхнего уровня запроса: model (обязательно), inputs (обязательно), callBackUrl (необязательный URL вебхука).
Ассеты
Ассеты — это изображения, видео и аудиофайлы, которые проходят проверку, прежде чем их можно будет использовать в задачах генерации видео. Загрузите ассет, дождитесь, пока он станет ACTIVE, а затем используйте его URL asset:// в своих задачах.
Примечание: ассеты с реальными людьми (изображения и видео) требуют официальной проверки, обычно занимающей несколько секунд. После одобрения их можно использовать напрямую как референсы. Без проверки генерация может завершиться ошибкой.
Загрузка ассета
Два способа загрузки: отправить локальный файл напрямую (multipart/form-data) или указать публично доступный HTTPS URL. В любом случае ассет обрабатывается и проверяется автоматически.
Способ A — прямая загрузка файла (multipart/form-data)
Отправьте локальный файл без необходимости в хостинге изображений. Тип медиа определяется по байтам файла (расширению имени файла не доверяют). Разрешено: изображения (jpg/png/webp/gif/bmp/tiff/heic), видео (mp4/mov), аудио (wav/mp3). Максимум 50MB на файл (изображение ≤30MB, видео ≤50MB, аудио ≤15MB).
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-F "file=@/path/to/photo.jpg" \
-F "name=my-photo" \
https://seegen.ai/api/v1/assets/upload| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| file | file | Да | Локальный файл (поле multipart-формы). Тип медиа определяется по содержимому. |
| name | string | Нет | Название ассета (максимум 64 символа) |
Способ B — по URL (application/json)
Если файл уже размещён по публичному HTTPS URL.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/photo.jpg",
"type": "IMAGE",
"name": "my-photo"
}' \
https://seegen.ai/api/v1/assets/upload| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| url | string | Да | Публично доступный HTTPS URL загружаемого файла |
| type | string | Да | "IMAGE", "AUDIO" или "VIDEO" |
| name | string | Нет | Название ассета (максимум 64 символа) |
Ответ на загрузку
{
"assetId": 123,
"volcAssetId": "asset-20260326-abc123",
"type": "IMAGE",
"status": "PROCESSING",
"failReason": null,
"url": "https://example.com/photo.jpg",
"name": "my-photo",
"createdAt": 1711234567890
}Запрос статуса ассета
Опрашивайте статус проверки ассета. Когда статус — PROCESSING, эндпоинт автоматически проверяет обновления от системы проверки.
# Query by asset ID (numeric)
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/status?assetId=123"
# Query by volcAssetId (string)
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/status?assetId=asset-20260326-abc123"Значения статуса ассета
PROCESSING— на проверке, ещё нельзя использоватьACTIVE— проверка пройдена, готово к использованию в задачахFAILED— проверка не пройдена, проверьте failReason
Список ассетов
Список ваших загруженных ассетов с необязательной фильтрацией по типу и статусу. Поддерживает курсорную пагинацию.
# List all assets
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/list"
# Filter by type and status
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/list?type=IMAGE&status=ACTIVE&limit=10"
# Paginate with cursor
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/list?cursor=100&limit=20"| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| type | string | Нет | Фильтр по типу: "IMAGE", "AUDIO" или "VIDEO" |
| status | string | Нет | Фильтр по статусу: "NONE", "PROCESSING", "ACTIVE" или "FAILED" |
| cursor | number | Нет | Курсор для пагинации (используйте nextCursor из предыдущего ответа) |
| limit | number | Нет | Элементов на странице, 1-50 (по умолчанию: 20) |
Ответ со списком
{
"items": [
{
"assetId": 123,
"volcAssetId": "asset-20260326-abc123",
"type": "IMAGE",
"status": "ACTIVE",
"failReason": null,
"url": "https://example.com/photo.jpg",
"name": "my-photo",
"width": 1920,
"height": 1080,
"size": 245000,
"duration": null,
"createdAt": 1711234567890
}
],
"nextCursor": 122
}Использование ассетов в задачах
Как только ассет получает статус ACTIVE, используйте его volcAssetId с протоколом asset:// в URL вашей задачи:
{
"model": "sd2",
"inputs": {
"urls": ["asset://asset-20260326-abc123"],
"prompt": "The person slowly looks up and smiles",
"duration": "5s"
}
}HappyHorse 1.1 (Alibaba)
Альтернативная модель генерации видео от Alibaba DashScope. Поддерживает три режима: text-to-video, image-to-video по первому кадру и reference-to-video (1–9 референсных изображений объединяются на один промпт; ссылайтесь на субъектов через character1, character2, … в промпте). HappyHorse 1.1 не поддерживает последний кадр, референсное видео или референсное аудио. Название модели: happyhorse.
Проверка ассетов не требуется — вы можете использовать публичные HTTPS URL изображений напрямую или передавать ссылки asset:// из библиотеки ассетов (автоматически разрешаются обратно в исходный URL R2).
Текст в видео
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse",
"inputs": {
"prompt": "A panda DJ at a beach party, smoky sunset",
"duration": "5s",
"outputResolution": "720p",
"ratio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskИзображение в видео (первый кадр)
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse",
"inputs": {
"urls": ["https://example.com/panda.jpg"],
"prompt": "The panda blinks and smiles",
"duration": "5s",
"outputResolution": "1080p"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskРеференс в видео (1–9 референсных изображений)
Передайте videoWorkflowTab: "multi-reference" вместе с 1–9 URL референсных изображений, чтобы объединить нескольких субъектов в один результат. Ссылайтесь на каждое изображение в промпте через character1, character2, … (в порядке urls). Соотношение сторон контролируется полем ratio (нет первого кадра, от которого можно было бы его вывести).
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse",
"inputs": {
"videoWorkflowTab": "multi-reference",
"urls": [
"https://example.com/character.jpg",
"https://example.com/folding-fan.jpg",
"https://example.com/earrings.jpg"
],
"prompt": "A woman in red character1 opening folding fan character2, with tassel earrings character3 swinging",
"duration": "5s",
"outputResolution": "720p",
"ratio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskСправочник параметров HappyHorse
Полный справочник всех параметров inputs для модели happyhorse.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| prompt | string | Нет | Текстовое описание. Обязательно для text-to-video и reference-to-video; необязательно для image-to-video. Максимум 5000 не-CJK символов или 2500 CJK символов (выше этого предела апстрим автоматически обрезает). В r2v используйте character1/character2/… для ссылки на N-е референсное изображение. |
| urls | string[] | Нет | t2v: не указывайте. i2v: ровно 1 URL (используется как первый кадр). r2v: 1–9 URL. Поддерживает публичные HTTPS URL и ссылки на ассеты (например, "asset://asset-20260326-abc123"). |
| videoWorkflowTab | string | Нет | Установите "multi-reference", чтобы включить режим reference-to-video (должно сочетаться с 1+ urls). Не указывайте для text-to-video / image-to-video. |
| duration | string | Нет | от "3s" до "15s" (по умолчанию "5s"). |
| outputResolution | string | Нет | "720p" (по умолчанию) или "1080p". |
| ratio | string | Нет | "16:9" / "9:16" / "1:1" / "4:3" / "3:4". Используется для text-to-video и reference-to-video — соотношение сторон для image-to-video определяется по первому кадру. |
| seed | int | Нет | от 0 до 2147483647. Оставьте пустым для случайного сида. |
Требования к изображениям (i2v / r2v)
- Короткая сторона ≥ 300px
- Соотношение сторон от 1:2.5 до 2.5:1
- Форматы: JPEG, JPG, PNG, BMP, WEBP
- Максимальный размер файла 10MB на изображение (r2v: для каждого из 1–9 входов)
Выбор модели (изображения)
Модели изображений принимают промпт (и, опционально, референсные изображения) и возвращают одно изображение на задачу. Каждый запрос тарифицируется за изображение по тарифу выбранной модели (или по фиксированной цене для Seedream Lite). Неудачные задачи возвращаются автоматически. Параметра batch нет — чтобы получить несколько вариантов, вызывайте createTask отдельно для каждого изображения.
| Модель | T2I | I2I (редактирование) | Multi-Ref | Макс. разрешение | 2k / medium |
|---|---|---|---|---|---|
| gpt-image-2 | ✓ | ✓ | до 10 | 4k | см. Тарифы |
| nano-banana-2 | ✓ | ✓ | до 10 | 4k | см. Тарифы |
| nano-banana-pro | ✓ | ✓ | до 10 | 4k | см. Тарифы |
| seedream-v5.0-lite | ✓ | ✓ | до 10 | 4k | фиксированная цена |
| seedream-v5.0-pro | ✓ | ✓ | до 10 | 2k | см. Тарифы |
GPT Image 2
Модель GPT Image 2 от OpenAI для высококачественного text-to-image и редактирования image-to-image. Один воркфлоу обрабатывает оба режима — передайте urls, чтобы автоматически переключиться в режим редактирования. Результат доставляется через R2 в запрошенном вами формате (PNG / JPEG / WEBP). Название модели: gpt-image-2.
Текст в изображение
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"quality": "medium",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskИзображение в изображение (редактирование)
Передайте 1–10 референсных изображений через urls. Модель использует их как визуальный контекст для редактирования, описанного в prompt.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"quality": "medium",
"resolution": "1k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskСправочник параметров GPT Image 2
Полный справочник всех параметров inputs для модели gpt-image-2.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| prompt | string | Да | Текстовое описание изображения для генерации или редактирования, которое нужно применить, если указан urls. |
| urls | string[] | Нет | URL референсных изображений для режима image-to-image (редактирование) (1–10 изображений). Не указывайте для text-to-image. Принимаются публичные HTTPS URL. |
| quality | string | Нет | "medium" / "high". По умолчанию: "medium". Стоимость в кредитах зависит от уровня (см. Тарифы). |
| resolution | string | Нет | "1k" / "2k" / "4k". По умолчанию: "2k". Стоимость в кредитах зависит от уровня (см. Тарифы). |
| aspectRatio | string | Нет | "1:1" / "16:9" / "9:16" / "4:3" / "3:4". По умолчанию: "1:1". |
| outputFormat | string | Нет | "png" / "jpeg" / "webp". По умолчанию: "png". |
Требования к входным изображениям (режим image-to-image)
- До 10 референсных изображений на задачу
- Максимальный размер файла 50 MB на изображение
- Короткая сторона ≥ 256px
- Соотношение сторон от 1:3 до 3:1
- Форматы: JPEG, JPG, PNG, WEBP
Стоимость кредитов за изображение зависит от разрешения и качества — полную таблицу см. в разделе Тарифы.
Nano Banana 2
Nano Banana 2 — высококачественная модель изображений с более широким охватом соотношений сторон, чем gpt-image-2, — добавляет портретные/альбомные пресеты (3:2, 2:3, 4:5, 5:4) и кинематографический 21:9. Один воркфлоу обрабатывает оба режима — передайте urls, чтобы автоматически переключиться в режим редактирования. Название модели: nano-banana-2.
Текст в изображение
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskИзображение в изображение (редактирование)
Передайте 1–10 референсных изображений через urls. Модель использует их как визуальный контекст для редактирования, описанного в prompt.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"resolution": "2k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskСправочник параметров Nano Banana 2
Полный справочник всех параметров inputs для модели nano-banana-2.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| prompt | string | Да | Текстовое описание изображения для генерации или редактирования, которое нужно применить, если указан urls. |
| urls | string[] | Нет | URL референсных изображений для режима image-to-image (редактирование) (1–10 изображений). Не указывайте для text-to-image. Принимаются публичные HTTPS URL. |
| resolution | string | Нет | "1k" / "2k" / "4k". По умолчанию: "2k". Стоимость в кредитах зависит от уровня (см. Тарифы). |
| aspectRatio | string | Нет | "1:1" / "16:9" / "9:16" / "4:3" / "3:4" / "3:2" / "2:3" / "4:5" / "5:4" / "21:9". По умолчанию: "1:1". |
Требования к входным изображениям (режим image-to-image)
- До 10 референсных изображений на задачу
- Максимальный размер файла 50 MB на изображение
- Короткая сторона ≥ 256px
- Соотношение сторон от 1:3 до 3:1
- Форматы: JPEG, JPG, PNG, WEBP
Стоимость кредитов за изображение зависит от разрешения — полную таблицу см. в разделе Тарифы.
Nano Banana Pro
Nano Banana Pro — высококачественная модель изображений с более широким охватом соотношений сторон, чем gpt-image-2, — добавляет портретные/альбомные пресеты (3:2, 2:3, 4:5, 5:4) и кинематографический 21:9. Один воркфлоу обрабатывает оба режима — передайте urls, чтобы автоматически переключиться в режим редактирования. Название модели: nano-banana-pro.
Текст в изображение
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-pro",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskИзображение в изображение (редактирование)
Передайте 1–10 референсных изображений через urls. Модель использует их как визуальный контекст для редактирования, описанного в prompt.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-pro",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"resolution": "2k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskСправочник параметров Nano Banana Pro
Полный справочник всех параметров inputs для модели nano-banana-pro.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| prompt | string | Да | Текстовое описание изображения для генерации или редактирования, которое нужно применить, если указан urls. |
| urls | string[] | Нет | URL референсных изображений для режима image-to-image (редактирование) (1–10 изображений). Не указывайте для text-to-image. Принимаются публичные HTTPS URL. |
| resolution | string | Нет | "1k" / "2k" / "4k". По умолчанию: "2k". Стоимость в кредитах зависит от уровня (см. Тарифы). |
| aspectRatio | string | Нет | "1:1" / "16:9" / "9:16" / "4:3" / "3:4" / "3:2" / "2:3" / "4:5" / "5:4" / "21:9". По умолчанию: "1:1". |
Требования к входным изображениям (режим image-to-image)
- До 10 референсных изображений на задачу
- Максимальный размер файла 50 MB на изображение
- Короткая сторона ≥ 256px
- Соотношение сторон от 1:3 до 3:1
- Форматы: JPEG, JPG, PNG, WEBP
Стоимость кредитов за изображение зависит от разрешения — полную таблицу см. в разделе Тарифы.
Seedream 5.0 Lite
Быстрая генерация text-to-image и image-to-image в 2K или 4K с 15 соотношениями сторон. Название модели: seedream-v5.0-lite.
Текст в изображение
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-lite",
"inputs": {
"prompt": "A cinematic product photograph, soft studio light",
"resolution": "2k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskИзображение в изображение (редактирование)
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-lite",
"inputs": {
"prompt": "Restyle the references as a premium fashion campaign",
"urls": ["https://example.com/reference.png"],
"resolution": "4k",
"aspectRatio": "3:4"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskПараметры Seedream 5.0 Lite
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| prompt | string | Да | Описание изображения или инструкция для редактирования. |
| urls | string[] | Нет | 1–10 публичных HTTPS URL референсных изображений. Не указывайте для text-to-image. |
| resolution | string | Нет | "2k" или "4k". По умолчанию: "2k". |
| aspectRatio | string | Нет | "1:1", "1:2", "2:1", "1:3", "3:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "9:21", или "21:9". |
Seedream 5.0 Pro
Генерация и редактирование высокой чёткости в 1K или 2K. Название модели: seedream-v5.0-pro.
Текст в изображение
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-pro",
"inputs": {
"prompt": "Editorial portrait with dramatic rim lighting",
"resolution": "2k",
"aspectRatio": "3:4"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskИзображение в изображение (редактирование)
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-pro",
"inputs": {
"prompt": "Turn the reference into a cinematic poster",
"urls": ["https://example.com/reference.png"],
"resolution": "2k",
"aspectRatio": "1:2"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskПараметры Seedream 5.0 Pro
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| prompt | string | Да | Описание изображения или инструкция для редактирования. |
| urls | string[] | Нет | 1–10 публичных HTTPS URL референсных изображений. Не указывайте для text-to-image. |
| resolution | string | Нет | "1k" или "2k". По умолчанию: "1k". 4k не поддерживается. |
| aspectRatio | string | Нет | "1:1", "1:2", "2:1", "1:3", "3:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "9:21", или "21:9". |
Апскейлер видео
Создать задачу
POST /api/v1/upscale/create
# source.url accepts ANY https video URL — your own CDN, OR a file you first
# uploaded to us via /api/v1/assets/upload (pass the r2Url it returns). No need
# to declare which: we detect it. External URLs are validated; our own are trusted.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source": { "type": "url", "url": "https://your-cdn.com/video.mp4" },
"targetResolution": "2k",
"callBackUrl": "https://your-server.com/webhook"
}' \
https://seegen.ai/api/v1/upscale/create| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| source.type | string | Да | Используйте "url" для любого источника. ("uploadId" — устаревший алиас, сохранённый для обратной совместимости.) |
| source.url | string | Нет | С type="url". Любой https URL видео — ваш собственный CDN или r2Url, возвращённый /api/v1/assets/upload. Для внешних URL http и приватные/внутренние IP-адреса отклоняются (защита от SSRF); URL на нашем собственном хосте ассетов эту проверку пропускают. |
| source.r2Url | string | Нет | Устарело — только с type="uploadId" (для обратной совместимости). Новым интеграциям следует использовать type="url". |
| targetResolution | string | Да | "720p", "1080p", "2k" или "4k". Должно быть выше разрешения источника. |
| callBackUrl | string | Нет | URL вебхука, вызываемый один раз при достижении финального статуса (completed или failed). |
Ответ на создание
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"orderId": "ord_2026...",
"status": "validating"
}Запрос статуса
GET /api/v1/upscale/query?taskId=...
Статус проходит стадии validating → processing → completed / failed.
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/upscale/query?taskId=n770mo4sh6rpi690ff3gwymx"Ответ при завершении
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"status": "completed",
"targetResolution": "2k",
"creditsConsumed": 900,
"result": {
"url": "https://static.seegen.ai/standalone-upscale/results/...mp4",
"probedDurationSeconds": 30,
"probedSourceResolution": "1280x720"
},
"error": null,
"createdAt": "2026-04-29T01:23:45.000Z",
"finishedAt": "2026-04-29T01:35:01.000Z"
}Ответ при ошибке
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"status": "failed",
"creditsConsumed": null,
"result": null,
"error": {
"code": "SOURCE_RESOLUTION_TOO_HIGH",
"message": "Source 3840x2160 is not below target 4k"
}
}Ограничения
- Источник: https URL или ранее загруженный вами URL R2
- Длительность до 600 s (клипы короче 5 s тарифицируются как 5 s)
- Размер файла ≤ 200 MB
- Формат: MP4 / MOV / WebM
- Разрешение источника должно быть ниже целевого
Тарифы
- 720P: 17 кредитов/сек (5s = 85, 30s = 510)
- 1080P: 25 кредитов/сек (5s = 125, 30s = 750)
- 2K: 38 кредитов/сек (5s = 190, 30s = 1140)
- 4K: 50 кредитов/сек (5s = 250, 30s = 1500)
- минимум 5 секунд; при сбое кредиты возвращаются автоматически
Коды ошибок
Частые ошибки, на которые вы можете отреагировать. Другие сбои возвращают самообъясняющее поле message — прочитайте его, прежде чем предполагать, что код относится к одному из этих.
| Код | Значение |
|---|---|
| INVALID_URL | URL некорректен или не https |
| URL_NOT_REACHABLE | Не удалось получить URL — убедитесь, что он публичный и доступен |
| UNSUPPORTED_MEDIA_TYPE | Файл не является видео или не в формате MP4 / MOV / WebM |
| FILE_TOO_LARGE | Источник превышает 200 MB |
| DURATION_EXCEEDS_LIMIT | Источник длиннее 600 s |
| SOURCE_RESOLUTION_TOO_HIGH | Источник уже на уровне целевого разрешения или выше — выберите более высокую цель |
| INSUFFICIENT_CREDITS | Недостаточно кредитов — пополните баланс и повторите попытку |
Вебхук-колбэк
Вместо опроса вы можете указать callBackUrl, чтобы автоматически получать результаты при завершении или сбое задачи.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"callBackUrl": "https://your-server.com/webhook/callback",
"inputs": {
"prompt": "A cat playing piano",
"duration": "5s"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskПолезная нагрузка колбэка
Когда задача завершается, мы отправляем POST-запрос на ваш URL в том же формате, что и ответ queryTask:
// POST to your callBackUrl
{
"taskId": "task_abc123",
"model": "sd2",
"status": "COMPLETED",
"creditsUsed": 200,
"output": [
{
"url": "https://static.seegen.ai/videos/result.mp4",
"width": 1280,
"height": 720
}
],
"error": null,
"createTime": 1711234567890,
"completeTime": 1711234612345
}Политика повторов: если ваш эндпоинт возвращает статус, отличный от 2xx, мы повторяем попытку до 3 раз с увеличивающимися задержками (1s, 5s, 30s).
Формат ответа
Ответ createTask
// 200 OK
{ "taskId": "task_abc123" }Ответ queryTask
{
"taskId": "task_abc123",
"model": "sd2",
"status": "COMPLETED", // "PENDING" | "PROCESSING" | "COMPLETED" | "FAILED"
"creditsUsed": 200,
"output": [ // null when status is not "COMPLETED"
{
"url": "https://static.seegen.ai/videos/result.mp4",
"width": 1280,
"height": 720
}
],
"error": null, // error message when status is "FAILED"
"createTime": 1711234567890,
"completeTime": 1711234612345
}Ответ credits
{
"credits": 5000,
"availableCredits": 4800
}Обработка ошибок
| Код статуса | Значение | Действие |
|---|---|---|
| 400 | Некорректные параметры | Проверьте сообщение об ошибке и исправьте запрос |
| 401 | Недействительный или отсутствующий API-ключ | Проверьте формат заголовка Authorization |
| 402 | Недостаточно кредитов | Приобретите больше кредитов на seegen.ai |
| 403 | Доступ запрещён | Вы можете запрашивать только свои собственные задачи |
| 404 | Задача не найдена | Убедитесь, что taskId указан верно |
| 429 | Лимит одновременных задач (3) | Дождитесь завершения существующих задач |
| 500 | Внутренняя ошибка сервера | Повторите попытку через несколько секунд |
Проверка перед отправкой (400 с кодом)
Запросы Seedance проверяются на соответствие апстрим-контракту до списания каких-либо кредитов. Если проверка не проходит, createTask возвращает { "message": "...", "code": "..." } с HTTP 400, и задача не создаётся. В сообщении точно указано, какое ограничение было нарушено и как это исправить.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| EMPTY_CONTENT | code | Нет | Нет ни промпта, ни референсного изображения / видео / аудио. |
| AUDIO_ONLY_NOT_SUPPORTED | code | Нет | Аудио — единственный референс на sd2 / sd2-fast / sd2-mini. Добавьте изображение или видео, либо используйте sd2.5 (поддерживает только аудио). |
| DURATION_OUT_OF_RANGE | code | Нет | duration не является целым числом в пределах диапазона модели (семейство sd2 "4s"–"15s", sd2.5 "4s"–"30s"). |
| EDIT_SOURCE_VIDEO_REQUIRED / EXTEND_SOURCE_VIDEO_REQUIRED | code | Нет | запрошен mode "edit" / "extend" без видео в videoUrls. |
| EDIT_SOURCE_DURATION_INVALID | code | Нет | sd2.5 Video Edit: видео в запросе короче 4s или длиннее 30s (ARK применяет диапазон 4–30s к каждому видео в задаче edit). |
| TOO_MANY_REFERENCES | code | Нет | Больше референсных изображений / видео / аудиоклипов, чем принимает модель (семейство sd2 — 9 / 3 / 3, sd2.5 — 30 / 10 / 10; extend ≤3 видео). |
| REFERENCE_VIDEO_DURATION_INVALID | code | Нет | Референсное видео превышает максимум на клип (семейство sd2 — 15s, sd2.5 — 30s) или суммарная референсная длительность превышает лимит (15s / 30s). |
| ASSET_NOT_FOUND / EXTERNAL_URL / READ_TIMEOUT / READ_FAILED | code | Нет | Запись videoUrls не удалось сопоставить ни с одним из ваших загруженных ассетов, либо не удалось прочитать её длительность. |
Полные примеры
Полный воркфлоу: загрузите ассет, дождитесь проверки, создайте задачу с одобренным ассетом и опрашивайте результат.
const API_KEY = process.env.API_KEY;
const BASE = "https://seegen.ai/api/v1";
const headers = {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json",
};
// 1. Upload asset and wait for review
// (To upload a LOCAL file instead of a URL, POST multipart/form-data with a "file"
// field — no Content-Type header, no "type" — see the Upload Asset section above.)
async function uploadAndWaitForAsset(url, type = "IMAGE") {
const res = await fetch(`${BASE}/assets/upload`, {
method: "POST",
headers,
body: JSON.stringify({ url, type }),
});
if (!res.ok) throw new Error(`Upload failed: ${(await res.json()).message}`);
const asset = await res.json();
console.log(`Asset uploaded: ${asset.assetId}, status: ${asset.status}`);
// Poll until review completes
while (true) {
const statusRes = await fetch(
`${BASE}/assets/status?assetId=${asset.assetId}`,
{ headers }
);
const status = await statusRes.json();
if (status.status === "ACTIVE") {
console.log(`Asset approved: asset://${status.volcAssetId}`);
return status.volcAssetId;
}
if (status.status === "FAILED") {
throw new Error(`Asset review failed: ${status.failReason}`);
}
await new Promise((r) => setTimeout(r, 3000));
}
}
// 2. Create a task
async function createTask(inputs, callBackUrl) {
const res = await fetch(`${BASE}/jobs/createTask`, {
method: "POST",
headers,
body: JSON.stringify({
model: "sd2",
inputs,
...(callBackUrl && { callBackUrl }),
}),
});
if (!res.ok) throw new Error(`[${res.status}] ${(await res.json()).message}`);
return res.json();
}
// 3. Poll until done
async function waitForResult(taskId, timeoutMs = 300000) {
const start = Date.now();
while (Date.now() - start < timeoutMs) {
const res = await fetch(
`${BASE}/jobs/queryTask?taskId=${taskId}`,
{ headers }
);
const result = await res.json();
if (result.status === "COMPLETED") return result;
if (result.status === "FAILED") throw new Error(result.error);
await new Promise((r) => setTimeout(r, 5000));
}
throw new Error("Timeout waiting for task");
}
// Full workflow: upload → review → generate → result
async function main() {
// Upload image and wait for review
const volcAssetId = await uploadAndWaitForAsset(
"https://example.com/photo.jpg", "IMAGE"
);
// Create task with approved asset
const { taskId } = await createTask({
urls: [`asset://${volcAssetId}`],
prompt: "The person slowly looks up and smiles",
duration: "5s",
});
console.log(`Task: ${taskId}`);
// Wait for video
const result = await waitForResult(taskId);
console.log(`Video: ${result.output[0].url}`);
}
main().catch(console.error);Нужна помощь? Присоединяйтесь к нашему Discord или свяжитесь с нами