Перейти к основному содержанию
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.0",
    "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"
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.apimart.ai/llms.txt

Use this file to discover all available pages before exploring further.

curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "happyhorse-1.0",
    "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.0 — единая точка входа для Text-to-Video / Image-to-Video / Reference-Image-to-Video / Video Edit. Бэкенд автоматически определяет режим на основе входных параметров. Все режимы тарифицируются по одному правилу (только разрешение × секунды):
Передаваемые поляМаршрутизацияОписание режима
Только promptText-to-Video (T2V)Генерация видео исключительно по тексту
prompt + first_frame_imageImage-to-Video (I2V)Анимация из изображения первого кадра
prompt + image_urls (1–9 изображений)Reference-Image-to-Video (R2V)Генерация новой сцены по опорным изображениям
prompt + video_url (опционально image_urls 0–5 как стилевые опоры / audio_setting)Video Edit (EDIT)Переписать / перестилизовать исходное видео
Приоритет маршрутизации (от высокого к низкому): video_url > first_frame_image > image_urls > только prompt. Правила взаимоисключения: три медиа-поля (first_frame_image / image_urls / video_url) попарно взаимоисключающие. Единственная допустимая комбинация — video_url + image_urls (режим EDIT + опорные изображения). Передача двух взаимоисключающих полей вернёт 400 mixed_media_not_allowed.

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

model
string
обязательно
Имя модели генерации видео, фиксированное значение happyhorse-1.0
prompt
string
Описание содержания видео, до 2500 символов; не может содержать специальных токенов
  • Режимы T2V / R2V / EDIT: обязательный
  • Режим I2V: опциональный, но рекомендуется для управления движением камеры и действиями
Пример: "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 / video_url
Требования к изображению первого кадра:
  • Формат: JPEG / JPG / PNG / BMP / WEBP
  • Короткая сторона: ≥ 300 px
  • Соотношение сторон: от 1:2.5 до 2.5:1
  • Размер файла: ≤ 10 МБ
image_urls
array<string>
Массив изображений:
  • Режим R2V (передаётся только image_urls): 1–9 изображений, используются как опоры по субъекту/стилю для генерации новой сцены
  • Режим EDIT (передаётся вместе с video_url): 0–5 изображений, используются как стилевая опора
Поддерживает URL или base64Взаимоисключающее с first_frame_image; может комбинироваться с video_url
Требования к опорным изображениям:
  • Формат: JPEG / JPG / PNG / BMP / WEBP
  • Короткая сторона: рекомендуется ≥ 720p
  • Соотношение сторон: короткая / длинная ≥ 0.4
  • Размер файла: ≤ 10 МБ
  • Количество: R2V должно быть 1–9; EDIT до 5
video_url
string
URL исходного видео, активирует режим EDIT (Video Edit). Base64 не поддерживается — укажите прямую ссылку HTTP/HTTPSВзаимоисключающее с first_frame_image; может комбинироваться с image_urls (≤ 5)
Требования к исходному видео:
  • Длительность: 3–60 секунд (более 15 с автоматически обрезается восходящим сервисом от 0 до 15 с)
  • Разрешение: минимум 480p, короткая сторона ≥ 360
  • Соотношение сторон: от 1:8 до 8:1
  • Формат: MP4 / MOV (рекомендуется H.264)
  • Частота кадров: > 8 fps
  • Размер файла: ≤ 100 МБ
В режиме EDIT длительность сгенерированного видео совпадает с длительностью исходного видео (ограничивается обрезанными 15с, если исходник длиннее). Параметр duration здесь не действует. Чтобы управлять длительностью, обрежьте исходное видео до целевой длины перед загрузкой.
audio_setting
string
по умолчанию:"auto"
Настройка аудио, действует только в режиме EDIT (должно быть передано video_url)Варианты:
  • auto — автоматическая генерация аудио (по умолчанию)
  • origin — сохранить аудиодорожку исходного видео
Передача этого поля вне режима EDIT вернёт 400 audio_setting_only_for_edit
resolution
string
по умолчанию:"1080P"
Разрешение видео (влияет на тарификацию)Варианты:
  • 720P — стандартное
  • 1080P — высокая чёткость (по умолчанию)
duration
integer
по умолчанию:"5"
Длительность видео в секундах (влияет на тарификацию)Поддерживаемый диапазон: любое целое число от 3 до 15По умолчанию: 5
Не действует в режиме EDIT (когда передан video_url): длительность сгенерированного видео совпадает с длительностью исходного видео (тарификация по обрезанным 15 с, если исходник длиннее). Чтобы управлять длительностью вывода, сначала обрежьте исходное видео.
size
string
по умолчанию:"16:9"
Соотношение сторонПоддерживаемые форматы:
  • 16:9 — широкоэкранный пейзаж (по умолчанию)
  • 9:16 — портретный
  • 1:1 — квадрат
  • 4:3 — пейзаж
  • 3:4 — портрет
Игнорируется в режимах I2V / EDIT — соотношение сторон вывода автоматически определяется входным медиа (изображение первого кадра / исходное видео)
watermark
boolean
по умолчанию:"false"
Добавлять ли водяной знак к сгенерированному видео
  • true: добавить водяной знак
  • false: не добавлять (по умолчанию)
seed
integer
Случайное зерно для управления случайностью генерируемого содержимогоДиапазон значений: [0, 2147483647]. Если опущено, используется случайное зерно.
  • Для идентичных запросов модель генерирует разные результаты при разных значениях seed (например, при пропуске seed)
  • Для идентичных запросов модель генерирует похожие результаты при одинаковом значении seed, но точное совпадение не гарантируется

Ответ

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

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

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

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

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

{
  "model": "happyhorse-1.0",
  "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.0",
  "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.0",
  "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: Video Edit EDIT (сохранение оригинального аудио + стилевая опора)

{
  "model": "happyhorse-1.0",
  "prompt": "Convert the character in the video to a cartoon style, preserving the original motion",
  "video_url": "https://example.com/source.mp4",
  "image_urls": [
    "https://example.com/style_ref.jpg"
  ],
  "resolution": "1080P",
  "audio_setting": "origin",
  "seed": 42
}

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

{
  "model": "happyhorse-1.0",
  "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)
Переписать / перестилизовать существующее видеоПередайте video_url (EDIT), опционально с image_urls (0–5) как стилевыми опорами
ЭкономияИспользуйте resolution: "720P"

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

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