Перейти к основному содержанию
POST
/
v1
/
videos
/
generations
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "happyhorse-1.1",
    "prompt": "A little girl walking down the road, cinematic feel",
    "resolution": "1080P",
    "size": "16:9",
    "duration": 5,
    "seed": 42
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
    }
  ]
}
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "happyhorse-1.1",
    "prompt": "A little girl walking down the road, cinematic feel",
    "resolution": "1080P",
    "size": "16:9",
    "duration": 5,
    "seed": 42
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
    }
  ]
}

Авторизация

Authorization
string
обязательно
Все эндпоинты API требуют аутентификации по Bearer TokenПолучение API Key:Перейдите на страницу управления API Key, чтобы получить ваш API KeyДобавьте в заголовок запроса:
Authorization: Bearer YOUR_API_KEY

Маршрутизация режимов

happyhorse-1.1 — единая точка входа для Text-to-Video / Image-to-Video / Reference-Image-to-Video. Бэкенд автоматически определяет режим на основе входных параметров. Все режимы тарифицируются по одному правилу (только разрешение × секунды):
Передаваемые поляМаршрутизацияОписание режима
Только promptText-to-Video (T2V)Генерация видео исключительно по тексту
prompt + first_frame_imageImage-to-Video (I2V)Анимация из изображения первого кадра
prompt + image_urls (1–9 изображений)Reference-Image-to-Video (R2V)Генерация новой сцены по опорным изображениям
Приоритет маршрутизации (от высокого к низкому): first_frame_image > image_urls > только prompt. Правила взаимоисключения: два медиа-поля (first_frame_image / image_urls) взаимоисключающие. Передача двух взаимоисключающих полей одновременно вернёт 400 mixed_media_not_allowed.

Параметры запроса

model
string
обязательно
Имя модели генерации видео, фиксированное значение happyhorse-1.1
prompt
string
Описание содержания видео, до 2500 символов; не может содержать специальных токеновПример: "A little girl walking down the road, cinematic feel"
first_frame_image
string
Изображение первого кадра, активирует режим I2V (Image-to-Video). Поддерживает URL или base64 (data:image/<mime>;base64,<payload>, шлюз автоматически загружает его в OSS)Взаимоисключающее с image_urls
Требования к изображению первого кадра:
  • Формат: JPEG / JPG / PNG / BMP / WEBP
  • Короткая сторона: ≥ 300 px
  • Соотношение сторон: от 1:2.5 до 2.5:1
  • Размер файла: ≤ 10 МБ
image_urls
array<string>
Массив изображений (режим R2V): 1–9 изображений, используются как опоры по субъекту/стилю для генерации новой сценыПоддерживает URL или base64Взаимоисключающее с first_frame_image
Требования к опорным изображениям:
  • Формат: JPEG / JPG / PNG / BMP / WEBP
  • Короткая сторона: рекомендуется ≥ 720p
  • Соотношение сторон: короткая / длинная ≥ 0.4
  • Размер файла: ≤ 10 МБ
  • Количество: 1–9 изображений
resolution
string
по умолчанию:"1080P"
Разрешение видео (влияет на тарификацию)Варианты:
  • 720P — стандартное
  • 1080P — высокая чёткость (по умолчанию)
duration
integer
по умолчанию:"5"
Длительность видео в секундах (влияет на тарификацию)Поддерживаемый диапазон: любое целое число от 3 до 15По умолчанию: 5
size
string
по умолчанию:"16:9"
Соотношение сторонПоддерживаемые форматы:
  • 16:9 — широкоэкранный пейзаж (по умолчанию)
  • 9:16 — портретный
  • 1:1 — квадрат
  • 4:3 — пейзаж
  • 3:4 — портрет
Игнорируется в режиме I2V — соотношение сторон вывода автоматически определяется входным медиа (изображение первого кадра)
watermark
boolean
по умолчанию:"false"
Добавлять ли водяной знак к сгенерированному видео
  • true: добавить водяной знак
  • false: не добавлять (по умолчанию)
seed
integer
Случайное зерно для управления случайностью генерируемого содержимогоДиапазон значений: [0, 2147483647]. Если опущено, используется случайное зерно.
  • Для идентичных запросов модель генерирует разные результаты при разных значениях seed (например, при пропуске seed)
  • Для идентичных запросов модель генерирует похожие результаты при одинаковом значении seed, но точное совпадение не гарантируется

Ответ

code
integer
Код статуса ответа, 200 при успехе
data
array
Массив данных ответа

Сценарии использования

Сценарий 1: Текст в видео T2V (простейший запрос)

{
  "model": "happyhorse-1.1",
  "prompt": "A little girl walking down the road, cinematic feel"
}

Сценарий 2: Текст в видео T2V (полный набор параметров)

{
  "model": "happyhorse-1.1",
  "prompt": "A coastal road at sunset, slow-motion camera push-in, cinematic feel",
  "resolution": "1080P",
  "size": "16:9",
  "duration": 8,
  "seed": 42
}

Сценарий 3: Изображение в видео I2V (first_frame_image)

{
  "model": "happyhorse-1.1",
  "prompt": "Bring the scene in the image to life",
  "first_frame_image": "https://example.com/first_frame.png",
  "resolution": "1080P",
  "duration": 5
}

Сценарий 4: Опорное изображение в видео R2V (несколько опорных изображений)

{
  "model": "happyhorse-1.1",
  "prompt": "The protagonist from image 1 runs through the scene from image 2, then picks up the prop from image 3. Keep a 3D cartoon style with smooth motion.",
  "image_urls": [
    "https://example.com/img_01.jpg",
    "https://example.com/img_02.png",
    "https://example.com/img_03.jpeg"
  ],
  "resolution": "1080P",
  "size": "16:9",
  "duration": 5
}

Сценарий 5: 720P для экономии

{
  "model": "happyhorse-1.1",
  "prompt": "Waves crashing on the beach at sunset",
  "resolution": "720P",
  "size": "16:9",
  "duration": 5
}

Руководство по выбору режима

ТребованиеРекомендуемый подход
Сгенерировать видео только по текстуПередайте только prompt (T2V)
Сделать изображение «оживающим» (использовать его как первый кадр)Передайте first_frame_image (I2V)
Сгенерировать новую сцену из набора опорных изображенийПередайте image_urls (1–9, R2V)
ЭкономияИспользуйте resolution: "720P"

Советы по использованию

  1. Логика единой точки входа: входные поля определяют режим. Учтите, что два медиа-поля (first_frame_image / image_urls) взаимоисключающие
  2. size действует только в T2V/R2V: в режиме I2V size игнорируется — соотношение сторон вывода определяется входным медиа
  3. Длительность: 5–10 секунд — оптимальный диапазон. Слишком короткое видео приводит к рваному движению; слишком длинное значительно увеличивает время обработки на восходящем сервисе
  4. Качество изображения первого кадра: чёткое, хорошо скомпонованное, субъект в центре — значительно улучшает результат I2V
  5. Написание промпта: описывайте движение / камеру / атмосферу (например, «slow push-in, cinematic, warm tones») для лучших результатов, чем при чисто статичных описаниях сцены
Запрос результатов задачиГенерация видео — асинхронная задача, которая при отправке возвращает task_id. Используйте эндпоинт Получение статуса задачи для запроса прогресса и результатов генерации.