curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "MiniMax-H3-Max",
"prompt": "Детектив в плаще оборачивается на залитой неоном улице под дождём. Камера медленно приближается.",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/videos/generations",
headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
json={
"model": "MiniMax-H3-Max",
"prompt": "Детектив оборачивается на неоновой улице под дождём.",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9",
},
)
print(response.json())
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
}
]
}
{
"error": {
"code": 400,
"message": "Недопустимые параметры запроса",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Ошибка аутентификации. Проверьте ключ API.",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Недостаточно средств на счёте",
"type": "payment_required"
}
}
MiniMax-H3
Генерация видео MiniMax-H3-Max
- Быстрая версия MiniMax Video Generation V2 с асинхронной постановкой задачи
- Поддерживает генерацию по тексту, управление первым/последним кадром и мультимодальные референсы
- Поддерживает 480P / 768P / 1080P, длительность 5–15 секунд и звуковую дорожку
- Поддерживает референсные изображения, видео и аудио; без 2K и промежуточных кадров
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": "MiniMax-H3-Max",
"prompt": "Детектив в плаще оборачивается на залитой неоном улице под дождём. Камера медленно приближается.",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/videos/generations",
headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
json={
"model": "MiniMax-H3-Max",
"prompt": "Детектив оборачивается на неоновой улице под дождём.",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9",
},
)
print(response.json())
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
}
]
}
{
"error": {
"code": 400,
"message": "Недопустимые параметры запроса",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Ошибка аутентификации. Проверьте ключ API.",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Недостаточно средств на счёте",
"type": "payment_required"
}
}
Выбор модели:
MiniMax-H3-Max подходит для быстрой генерации по тексту, управления первым/последним кадром и мультимодальных референсов в 480P, 768P или 1080P. Для 2K или промежуточных кадров используйте MiniMax-H3.curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "MiniMax-H3-Max",
"prompt": "Детектив в плаще оборачивается на залитой неоном улице под дождём. Камера медленно приближается.",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/videos/generations",
headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
json={
"model": "MiniMax-H3-Max",
"prompt": "Детектив оборачивается на неоновой улице под дождём.",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9",
},
)
print(response.json())
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
}
]
}
{
"error": {
"code": 400,
"message": "Недопустимые параметры запроса",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Ошибка аутентификации. Проверьте ключ API.",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Недостаточно средств на счёте",
"type": "payment_required"
}
}
Аутентификация
string
обязательно
Для всех эндпоинтов нужен Bearer Token. Получите ключ на странице API-ключей.
Authorization: Bearer YOUR_API_KEY
Выбор модели
| Возможность | MiniMax-H3 | MiniMax-H3-Max |
|---|---|---|
| Разрешение | 2K / 768P, по умолчанию 2K | 480P / 768P / 1080P, по умолчанию 768P |
| Длительность | 4–15 секунд | 5–15 секунд |
| Текст в видео | Поддерживается | Поддерживается |
| Первый / последний кадр | Поддерживается | Поддерживается |
| Промежуточный кадр | Поддерживается | Не поддерживается |
| Мультимодальные референсы | Изображения, видео, аудио | Изображения, видео, аудио |
| Стоимость входных изображений | Первые 5 бесплатно | Первые 2 изображения бесплатны; остальные оплачиваются поштучно |
| Оплата референсного видео | По длительности входного видео, по тарифу результата того же разрешения | По длительности входного видео, по отдельному тарифу |
| Водяной знак AIGC | Поддерживается | Поддерживается в 480P / 768P; недоступен в 1080P |
MiniMax-H3-Max не поддерживает 2K, а его результат нельзя использовать как источник для Regeneration.Режимы генерации
Режим определяется полями запроса автоматически; не передавайте полеmode.
| Режим | Условие | Поведение |
|---|---|---|
| Текст в видео (T2V) | Только prompt и общие поля | Генерация из текста |
| Изображение в видео (I2V) | first_frame_image / last_frame_image или соответствующие роли в image_with_roles | Управление первым, последним или обоими кадрами |
| Мультимодальные референсы (R2V) | image_urls / video_urls / audio_urls или reference_image в image_with_roles | Генерация с референсными изображениями, видео и аудио, в том числе в 1080P |
Первый/последний кадр нельзя совмещать с референсными материалами. Референсное аудио требует хотя бы одного референсного изображения или видео. Недопустимые сочетания синхронно возвращают HTTP 400; задача не создаётся, оплата не взимается.
Параметры запроса
string
обязательно
Фиксированное значение:
MiniMax-H3-Max. Регистр не учитывается; minimax-h3-max также допустимо.string
обязательно
Непустое описание видео, обязательное во всех режимах. Максимум
7000 символов.integer
по умолчанию:"5"
Длительность видео в секундах: целое число от
5 до 15, по умолчанию 5. Четыре секунды не поддерживаются.string
по умолчанию:"768P"
Разрешение результата:
480P, 768P (по умолчанию) или 1080P.В 1080P не передавайте watermark и его псевдоним aigc_watermark, даже со значением false.2K, 1440P и 2048P не поддерживаются. Недопустимое значение возвращает HTTP 400 без автоматического понижения разрешения.string
Соотношение сторон. Также принимаются псевдонимы
size и ratio.Значения T2V: 21:9, 16:9, 4:3, 1:1, 3:4, 9:16.- T2V без поля или с
adaptive: используется16:9 - I2V: определяется входным изображением; поле игнорируется
- Мультимодальные референсы: необязательно, по умолчанию
adaptive; можно задать конкретное соотношение
string
Публичный URL изображения для первого кадра.
string
Публичный URL изображения для последнего кадра. Можно использовать отдельно или вместе с
first_frame_image.object[]
Массив изображений с ролями вместо
Не более одного первого и одного последнего кадра. Референсные изображения в этом массиве и
first_frame_image, last_frame_image или image_urls.Показать Элемент image_with_roles
Показать Элемент image_with_roles
image_urls вместе: максимум 9. Роли кадров нельзя совмещать с ролями референсных изображений.string[]
Массив публичных URL референсных изображений. Вместе с референсами из
image_with_roles максимум 9 изображений. Все считаются референсами, а не автоматически первым/последним кадром. Для первого кадра используйте first_frame_image или роль first_frame.string[]
Массив публичных URL референсных видео; для одного видео также доступен
video_url (string). Максимум 3 ролика по 2–15 секунд, общая длительность референсных видео не более 15 секунд.Длительность референсного видео считывается при отправке для расчёта оплаты. Если её нельзя определить, синхронно возвращается HTTP 400; задача не создаётся, оплата не взимается.string[]
Массив публичных URL референсных аудио; для одного фрагмента также доступен
audio_url (string). Максимум 3 фрагмента по 2–15 секунд, общая длительность референсных аудио не более 15 секунд. Требуется хотя бы одно референсное изображение или видео; только аудио недопустимо.boolean
по умолчанию:"false"
Добавить водяной знак AIGC. Псевдоним:
aigc_watermark.Водяные знаки поддерживаются только в 480P / 768P. В 1080P не передавайте watermark и его псевдоним aigc_watermark, даже со значением false.string
Получает уведомление при успешном или неуспешном завершении задачи.
Используйте
webhook, а не callback_url MiniMax. Поле callback_url зарезервировано шлюзом.Ограничения параметров
Следующие недопустимые параметры или сочетания возвращают HTTP 400 до создания задачи и списания средств:| Параметр / значение | Причина |
|---|---|
| Первый/последний кадр вместе с референсами | I2V и R2V взаимно исключаются |
Более 9 референсных изображений либо более 3 референсных видео или аудио | Превышено допустимое количество |
| Только референсное аудио | Требуется референсное изображение или видео |
resolution: "2K" | Поддерживаются только 480P, 768P и 1080P |
duration: 4 или больше 15 | Только 5–15 секунд |
В
1080P не передавайте watermark и его псевдоним aigc_watermark, даже со значением false.Для 2K, промежуточных кадров или 4-секундного видео используйте MiniMax-H3 и измените параметры.
Ограничения входных медиа
Размер тела запроса не более 64 MB. Используйте публичные URL для изображений, видео и аудио, а не Base64.Изображения
| Параметр | Ограничение |
|---|---|
| Форматы | JPG / JPEG / PNG / WEBP / HEIC / HEIF |
| Один файл | ≤ 30 МБ |
| Ширина и высота | 256–5760 px |
| Соотношение сторон | 0,4–2,5 |
| Количество | До 1 первого кадра, 1 последнего кадра и 9 референсов; кадры и референсы нельзя совмещать |
Референсные видео
| Параметр | Ограничение |
|---|---|
| Форматы | MP4 / MOV, H.264 / H.265 |
| Один файл | ≤ 50 MB |
| Количество | ≤ 3 |
| Длительность фрагмента | 2–15 s |
| Общая длительность | ≤ 15 s |
| Ширина и высота | 256–5760 px |
| Соотношение сторон | 0.4–2.5 |
| Частота кадров | 23.976–60 fps |
Референсное аудио
| Параметр | Ограничение |
|---|---|
| Форматы | WAV / MP3 |
| Один файл | ≤ 15 MB |
| Количество | ≤ 3 |
| Длительность фрагмента | 2–15 s |
| Общая длительность | ≤ 15 s |
Примеры
Первый кадр
{
"model": "MiniMax-H3-Max",
"prompt": "Камера медленно приближается, поднимается пар.",
"first_frame_image": "https://cdn.example.com/ramen.png",
"duration": 5,
"resolution": "480P"
}
Первый и последний кадры
{
"model": "MiniMax-H3-Max",
"prompt": "Сцена постепенно переходит от утра к закату.",
"first_frame_image": "https://cdn.example.com/morning.png",
"last_frame_image": "https://cdn.example.com/sunset.png",
"duration": 8,
"resolution": "768P"
}
Генерация по тексту в 1080P
В1080P не передавайте watermark и его псевдоним aigc_watermark, даже со значением false.
{
"model": "MiniMax-H3-Max",
"prompt": "Закат на побережье, мягкие волны на песке, медленное приближение камеры, кинематографичная фактура.",
"duration": 5,
"resolution": "1080P",
"aspect_ratio": "16:9"
}
Генерация с мультимодальными референсами
Каждое референсное видео и аудио должно длиться 2–15 секунд. Суммарная длительность видео и аудио рассчитывается отдельно, не более 15 секунд для каждого типа. Слишком длинные материалы недопустимы; обрежьте их перед отправкой.{
"model": "MiniMax-H3-Max",
"prompt": "Персонаж с референсного изображения бежит по сцене референсного видео в ритме референсного аудио.",
"image_urls": [
"https://cdn.example.com/role.png"
],
"video_urls": [
"https://cdn.example.com/scene.mp4"
],
"audio_urls": [
"https://cdn.example.com/beat.mp3"
],
"duration": 6,
"resolution": "1080P",
"aspect_ratio": "16:9"
}
Проверка задачи
После отправки возвращаетсяtask_id. Проверяйте статус задачи каждые 5–10 секунд; рекомендуемый клиентский тайм-аут — 15 минут.
status | Значение |
|---|---|
pending | Отправлена или в очереди |
processing | Генерируется |
completed | URL видео в result.videos[0].url |
failed | Смотрите error.message; автоматический возврат |
URL созданного видео обычно истекает примерно через 24 часа. Сохраните результат своевременно.
Тарифы
Общая стоимость включает генерацию видео, дополнительные изображения и референсное видео:Общая стоимость = тариф генерации за секунду × длительность результата
+ тариф дополнительного изображения × max(0, число входных изображений − 2)
+ тариф референсного видео за секунду × общая длительность референсных видео
| Позиция | Цена |
|---|---|
| Видео 1080P | Согласно тарифам модели |
| Видео 768P | Согласно тарифам модели |
| Видео 480P | Согласно тарифам модели |
| Входные изображения | Первые 2 изображения бесплатны; остальные оплачиваются поштучно; Согласно тарифам модели |
| Референсные видео | Оплата за секунды входного видео согласно тарифам модели; зависит от разрешения результата и рассчитывается отдельно от генерации |
| Референсное аудио | Бесплатно |
| Пример | Стоимость |
|---|---|
| 768P / 5s | 768P тариф генерации × 5 |
| 768P / 10s | 768P тариф генерации × 10 |
| 480P / 10s | 480P тариф генерации × 10 |
| 480P / 15s | 480P тариф генерации × 15 |
| 768P / 5s + Изображения × 3 | 768P тариф генерации × 5 + тариф дополнительного изображения × 1 |
| 480P / 10s + Референсные видео (12s) | 480P тариф генерации × 10 + 480P тариф референсного видео × 12 |
| 1080P / 5s + Изображения × 2 + Референсное аудио | 1080P тариф генерации × 5 |
cost в ответе задачи.
Ошибки
| Сценарий | Результат |
|---|---|
Пустой или длиннее 7000 символов prompt | 400; задача не создаётся |
duration вне 5–15 | 400; задача не создаётся |
Неподдерживаемое resolution | 400; задача не создаётся |
| Первый/последний кадр вместе с референсами / Только референсное аудио | 400; задача не создаётся |
Более 9 референсных изображений либо более 3 референсных видео или аудио | 400; задача не создаётся |
| Не удалось определить длительность референсного видео | 400; задача не создаётся |
| Недопустимая роль изображения или более одного изображения для роли первого/последнего кадра | 400; задача не создаётся |
| Недостаточно средств | 402 |
| Отклонение безопасностью контента | 422 |
| Ограничение частоты | 429; повторить с задержкой |
status = failed и error.message; средства возвращаются автоматически.
Response
integer
Код ответа; при успехе 200