MiniMax H3
Генерируйте с MiniMax H3 ролики на 4–15 секунд со звуком в 768P или 2K: текст в видео, первый и последний кадр и референсы в видео, в официальном формате запроса MiniMax, с выдачей через задачу.
MiniMax H3 (Hailuo 03) — мультимодальная видеомодель от MiniMax. Один запрос создаёт картинку и звук вместе: ролик на 4–15 секунд в 768P или 2K с собственными диалогами, фоновым звуком и эффектами. Тело запроса — официальный формат MiniMax с ID модели minimax-h3. Отправьте запрос, сохраните возвращённый идентификатор задачи и получите готовое видео из задачи. Кадры и референсы передаются как URL.
ID моделей
| ID модели | Входные данные | Разрешения | Длительность |
|---|---|---|---|
minimax-h3 | текст, первый и последний кадр, референсные изображения, видео и аудио | 768P, 2K | 4–15 секунд |
Актуальные цены — на странице модели.
Краткий пример
curl https://api.seedrouter.ai/v1/videos/generations \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-h3",
"content": [
{"type": "text", "text": "A small sailboat glides across a calm turquoise bay at sunrise, seagulls in the distance, the sound of water and wind. No text, no logos."}
],
"resolution": "768P",
"duration": 5,
"ratio": "16:9"
}'Конечная точка
POST https://api.seedrouter.ai/v1/videos/generations| Заголовок | Значение |
|---|---|
| Authorization | Bearer YOUR_API_KEY |
| Content-Type | application/json |
В ответе приходит задача ({"id": "task_...", "status": "processing"}), а не готовое видео. Результат получайте опросом GET /v1/tasks/{task_id}. Храните API-ключи в серверном коде.
Параметры
| Поле | Тип | По умолчанию | Примечания |
|---|---|---|---|
model | string | обязательно | minimax-h3 |
content | array | обязательно | Промпт и любые медиа в виде элементов, описанных ниже. Ровно один непустой элемент text. |
resolution | enum | обязательно | 768P или 2K. |
duration | integer | обязательно | Любое целое число от 4 до 15 секунд. |
ratio | enum | зависит от входа | adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16. Обязательно, если есть только текст; в этом случае adaptive не принимается. |
content_filter | boolean | true | Фильтр контента SeedRouter, описан ниже. Модели не передаётся. |
Схема строгая: неизвестные поля отклоняются, а не игнорируются. callback_url недоступен; вместо этого опрашивайте задачу. extra относится к MiniMax-H3-Max и для этой модели не принимается.
Элементы content
type | Элемент | role |
|---|---|---|
text | {"type": "text", "text": "..."}, до 7 000 символов | нет |
image_url | {"type": "image_url", "image_url": {"url": "https://..."}, "role": "..."} | first_frame, last_frame или reference_image |
video_url | {"type": "video_url", "video_url": {"url": "https://..."}, "role": "reference_video"} | reference_video |
audio_url | {"type": "audio_url", "audio_url": {"url": "https://..."}, "role": "reference_audio"} | reference_audio |
Единственное изображение без role считается первым кадром. Если изображений больше одного, у каждого должен быть role.
Режимы
Режим определяется элементами в content; отдельного поля режима нет.
| Режим | content содержит | ratio |
|---|---|---|
| Текст в видео | один элемент text | обязательно, не adaptive |
| Изображение в видео | text плюс изображение first_frame и/или last_frame | любое значение считается adaptive: форму задаёт изображение |
| Референсы в видео | text плюс любое сочетание до 9 элементов reference_image, 3 reference_video и 3 reference_audio | необязательно, по умолчанию adaptive |
Кадры и референсы нельзя совмещать в одном запросе.
{
"model": "minimax-h3",
"content": [
{"type": "text", "text": "The person in the photo speaks to camera: Follow the wind. Voice follows the reference audio."},
{"type": "image_url", "image_url": {"url": "https://example.com/person.jpg"}, "role": "reference_image"},
{"type": "audio_url", "audio_url": {"url": "https://example.com/voice.mp3"}, "role": "reference_audio"}
],
"resolution": "2K",
"duration": 6
}Медиавходы
Каждый элемент изображения, видео и аудио — это публичный URL по HTTP(S). Data URI в base64 и идентификаторы mm_file:// не принимаются: загрузите файл в собственное хранилище и передайте его URL.
| Вход | Формат | Ограничения |
|---|---|---|
| Изображение | JPG, JPEG, PNG, WebP, HEIC, HEIF | До 30 МБ; каждая сторона 256–5760 px; ширина / высота 0,4–2,5 |
| Видео | MP4, MOV (H.264 или H.265) | До 50 МБ; 2–15 секунд каждое, 15 секунд в сумме; каждая сторона 256–5760 px; ширина / высота 0,4–2,5; 23,976–60 fps |
| Аудио | WAV, MP3 | До 15 МБ; 2–15 секунд каждое, 15 секунд в сумме |
Референсные видео измеряются при приёме запроса; видео, длину которого не удаётся прочитать, отклоняется без списания. Остальные ограничения проверяются перед генерацией, и запрос, нарушающий одно из них, завершается ошибкой без списания.
Фильтр контента
content_filter равен true, если вы не задали иное. При включённом фильтре текст, каждое изображение и три кадра каждого референсного видео (первый, средний и последний) проверяются до запуска модели. Помеченный запрос завершается ошибкой с кодом 60001 и не тарифицируется; то же происходит с запросом, который не удалось проверить. Референсное аудио не проверяется. Задайте content_filter равным false, чтобы пропустить проверку; Playground на сайте всегда держит фильтр включённым.
Факторы стоимости
Актуальные тарифы смотрите в разделе цен модели. MiniMax H3 тарифицируется за секунду видео по тарифу, который зависит от разрешения результата, плюс входные изображения сверх первых пяти:
billed seconds = duration + ceil(Σ each reference video's seconds)
extra images = max(0, number of images − 5)
cost = billed seconds × rate per second + extra images × rate per imageПервые кадры, последние кадры и референсные изображения считаются изображениями. Референсное аудио не тарифицируется. Оба количества известны при приёме запроса, поэтому зарезервированная сумма равна списанной. Итоговые списания смотрите в истории использования своей учётной записи. Неуспешные задачи не тарифицируются.
Схема вывода
При отправке возвращается задача:
{"id": "task_...", "model": "minimax-h3", "status": "processing", "created_at": 1789689600}Получение задачи
GET https://api.seedrouter.ai/v1/tasks/{task_id}Опрашивайте каждые 10–20 секунд, пока status не станет completed или failed. Сетевой тайм-аут во время опроса не означает, что генерация завершилась сбоем: сохраните идентификатор задачи и продолжите проверку. Не создавайте другую задачу, чтобы узнать ход выполнения.
Выполненная задача
{
"id": "task_...",
"model": "minimax-h3",
"status": "completed",
"created_at": 1789689600,
"finished_at": 1789689740,
"output": {
"video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4",
"resolution": "768P",
"ratio": "16:9",
"duration": 5
}
}ratio — соотношение сторон, с которым создан ролик, включая выбранное для adaptive. В нашем тесте ролик 768P на 4 секунды с 16:9 пришёл в MP4 (H.264) с разрешением 1344 × 768 и частотой 24 fps, со стереодорожкой AAC 32 кГц.
Ошибки
Запросы, отклонённые до создания задачи, возвращают HTTP-ошибку вместе с объектом error и не тарифицируются. Задача, которая завершилась сбоем уже после приёма, при запросе возвращает HTTP 200 с status: "failed" и объектом error.
Коды, HTTP-статусы и рекомендации по повторным попыткам приведены в общем каталоге ошибок.
{
"id": "task_...",
"model": "minimax-h3",
"status": "failed",
"error": {
"code": 60001,
"message": "the request was blocked by content moderation"
}
}Если тайм-аут произошёл при самой отправке, сначала проверьте свои задачи и только потом отправляйте повторно: первый запрос мог быть уже принят.
Советы
- Описывайте план и его звук вместе: объект, место, камеру, свет, диалоги и эффекты.
- Вписывайте диалог в промпт и прикрепляйте референсный аудиоклип, если голос должен ему следовать.
- Делайте черновик в
768P, а затем рендерите финальный план в2Kтем же запросом. - Используйте первый и последний кадр, чтобы задать начало и конец плана; используйте референсы, чтобы сохранить товар, человека или движение.
- Добавьте
no text, no logos, чтобы в кадре не появлялись выдуманные знаки.
