> ## 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.

# Генерация видео MiniMax-H3-Max

>  - Быстрая версия MiniMax Video Generation V2 с асинхронной постановкой задачи
- Поддерживает генерацию из текста и изображения с первым, последним или обоими кадрами
- Поддерживает 768P / 480P, длительность 5–15 секунд и звуковую дорожку
- Не поддерживает 2K, промежуточные кадры и мультимодальные референсы 

<Info>
  **Выбор модели:** используйте `MiniMax-H3-Max`, если важна скорость и достаточно генерации из текста либо управления первым/последним кадром. Для 2K, промежуточных кадров, референсных изображений, видео или аудио используйте [MiniMax-H3](/ru/api-reference/videos/minimax-h3/generation).
</Info>

<RequestExample>
  ```bash cURL theme={null}
  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"
    }'
  ```

  ```python Python theme={null}
  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())
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "code": 200,
    "data": [
      {
        "status": "submitted",
        "task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
      }
    ]
  }
  ```

  ```json 400 theme={null}
  {
    "error": {
      "code": 400,
      "message": "Недопустимые параметры запроса",
      "type": "invalid_request_error"
    }
  }
  ```

  ```json 401 theme={null}
  {
    "error": {
      "code": 401,
      "message": "Ошибка аутентификации. Проверьте ключ API.",
      "type": "authentication_error"
    }
  }
  ```

  ```json 402 theme={null}
  {
    "error": {
      "code": 402,
      "message": "Недостаточно средств на счёте",
      "type": "payment_required"
    }
  }
  ```
</ResponseExample>

## Аутентификация

<ParamField header="Authorization" type="string" required>
  Для всех эндпоинтов нужен Bearer Token. Получите ключ на [странице API-ключей](https://apimart.ai/keys).

  ```
  Authorization: Bearer YOUR_API_KEY
  ```
</ParamField>

## Выбор модели

| Возможность                   | `MiniMax-H3`                     | `MiniMax-H3-Max`                     |
| ----------------------------- | -------------------------------- | ------------------------------------ |
| Разрешение                    | `2K` / `768P`, по умолчанию `2K` | `768P` / `480P`, по умолчанию `768P` |
| Длительность                  | 4–15 секунд                      | 5–15 секунд                          |
| Текст в видео                 | Поддерживается                   | Поддерживается                       |
| Первый / последний кадр       | Поддерживается                   | Поддерживается                       |
| Промежуточный кадр            | Поддерживается                   | Не поддерживается                    |
| Мультимодальные референсы     | Изображения, видео, аудио        | Не поддерживаются                    |
| Стоимость входных изображений | Первые 5 бесплатно               | Бесплатно                            |

<Warning>
  `MiniMax-H3-Max` не поддерживает 2K, а его результат нельзя использовать как источник для [Regeneration](/ru/api-reference/videos/minimax-h3/regeneration).
</Warning>

## Режимы генерации

Режим определяется полями запроса автоматически; не передавайте поле `mode`.

| Режим                     | Условие                                                                                | Поведение                                       |
| ------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------- |
| Текст в видео (T2V)       | Только `prompt` и общие поля                                                           | Генерация из текста                             |
| Изображение в видео (I2V) | `first_frame_image` / `last_frame_image` или соответствующие роли в `image_with_roles` | Управление первым, последним или обоими кадрами |

<Warning>
  Модель не поддерживает `image_urls`, `video_urls`, `audio_urls` и `image_with_roles[].role = "reference_image"`. Любой референсный материал синхронно возвращает HTTP 400 до создания задачи и списания средств.
</Warning>

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

<ParamField body="model" type="string" required>
  Фиксированное значение: `MiniMax-H3-Max`. Регистр не учитывается; `minimax-h3-max` также допустимо.
</ParamField>

<ParamField body="prompt" type="string" required>
  Непустое описание видео, обязательное во всех режимах. Максимум `7000` символов.
</ParamField>

<ParamField body="duration" type="integer" default="5">
  Длительность видео в секундах: целое число от `5` до `15`, по умолчанию `5`. Четыре секунды не поддерживаются.
</ParamField>

<ParamField body="resolution" type="string" default="768P">
  Разрешение: `768P` (по умолчанию) или `480P`.

  <Warning>
    `2K`, `1440P` и `2048P` не поддерживаются. Недопустимое значение возвращает HTTP 400 без автоматического понижения разрешения.
  </Warning>
</ParamField>

<ParamField body="aspect_ratio" type="string">
  Соотношение сторон. Также принимаются псевдонимы `size` и `ratio`.

  Значения T2V: `21:9`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16`.

  * T2V без поля или с `adaptive`: используется `16:9`
  * I2V: определяется входным изображением; поле игнорируется
</ParamField>

<ParamField body="first_frame_image" type="string">
  Публичный URL изображения для первого кадра.
</ParamField>

<ParamField body="last_frame_image" type="string">
  Публичный URL изображения для последнего кадра. Можно использовать отдельно или вместе с `first_frame_image`.
</ParamField>

<ParamField body="image_with_roles" type="object[]">
  Массив изображений с ролями вместо `first_frame_image` и `last_frame_image`.

  <Expandable title="Элемент image_with_roles">
    <ResponseField name="url" type="string" required>
      Публичный URL изображения
    </ResponseField>

    <ResponseField name="role" type="string" required>
      Допустимые роли:

      * `first_frame`; псевдонимы `first`, `start`
      * `last_frame`; псевдонимы `last`, `end_frame`, `tail`
    </ResponseField>
  </Expandable>

  Для каждой роли допускается не более одного изображения; `role` не может быть пустым.
</ParamField>

<ParamField body="watermark" type="boolean" default="false">
  Добавить водяной знак AIGC. Псевдоним: `aigc_watermark`.
</ParamField>

<ParamField body="webhook" type="string">
  Получает уведомление при успешном или неуспешном завершении задачи.

  <Note>
    Используйте `webhook`, а не `callback_url` MiniMax. Поле `callback_url` зарезервировано шлюзом.
  </Note>
</ParamField>

## Неподдерживаемые параметры

Следующие значения возвращают HTTP 400 до создания задачи и тарификации:

| Параметр / значение                           | Причина                                                         |
| --------------------------------------------- | --------------------------------------------------------------- |
| `image_urls`                                  | Считается референсными изображениями, которые не поддерживаются |
| `image_with_roles[].role = "reference_image"` | Поддерживаются только первый и последний кадры                  |
| `video_urls` / `video_url`                    | Референсное видео не поддерживается                             |
| `audio_urls` / `audio_url`                    | Референсное аудио не поддерживается                             |
| `resolution: "2K"`                            | Только `768P` и `480P`                                          |
| `duration: 4` или больше `15`                 | Только 5–15 секунд                                              |

<Tip>
  Для референсов, 2K, промежуточных кадров или 4-секундного видео используйте [MiniMax-H3](/ru/api-reference/videos/minimax-h3/generation).
</Tip>

## Ограничения изображений

Общий размер тела запроса — не более 64 МБ. Используйте публичные URL; Base64 не поддерживается.

| Параметр           | Ограничение                                            |
| ------------------ | ------------------------------------------------------ |
| Форматы            | JPG / JPEG / PNG / WEBP / HEIC / HEIF                  |
| Один файл          | ≤ 30 МБ                                                |
| Ширина и высота    | 256–5760 px                                            |
| Соотношение сторон | 0,4–2,5                                                |
| Количество         | До 1 первого и 1 последнего кадра; всего 2 изображения |

## Примеры

### Первый кадр

```json theme={null}
{
  "model": "MiniMax-H3-Max",
  "prompt": "Камера медленно приближается, поднимается пар.",
  "first_frame_image": "https://cdn.example.com/ramen.png",
  "duration": 5,
  "resolution": "480P"
}
```

### Первый и последний кадры

```json theme={null}
{
  "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"
}
```

## Проверка задачи

После отправки возвращается `task_id`. Проверяйте [статус задачи](/ru/api-reference/tasks/status) каждые 5–10 секунд; рекомендуемый клиентский тайм-аут — 15 минут.

| `status`     | Значение                                         |
| ------------ | ------------------------------------------------ |
| `pending`    | Отправлена или в очереди                         |
| `processing` | Генерируется                                     |
| `completed`  | URL видео в `result.videos[0].url`               |
| `failed`     | Смотрите `error.message`; автоматический возврат |

<Note>
  URL созданного видео обычно истекает примерно через 24 часа. Сохраните результат своевременно.
</Note>

## Тарифы

Итоговая стоимость = цена за секунду × длительность. Первый и последний кадры бесплатны.

| Позиция             | Цена                   |
| ------------------- | ---------------------- |
| Видео 768P          | **\$0.075 / секунда**  |
| Видео 480P          | **\$0.0495 / секунда** |
| Входные изображения | **Бесплатно**          |

При отправке резервируется расчётная сумма. Неуспешные задачи полностью возмещаются; окончательным является поле `cost` в ответе задачи.

## Ошибки

| Сценарий                                    | Результат                  |
| ------------------------------------------- | -------------------------- |
| Пустой или длиннее 7000 символов `prompt`   | 400; задача не создаётся   |
| `duration` вне 5–15                         | 400; задача не создаётся   |
| Неподдерживаемое `resolution`               | 400; задача не создаётся   |
| Референсные материалы                       | 400; задача не создаётся   |
| Недопустимая или повторная роль изображения | 400; задача не создаётся   |
| Недостаточно средств                        | 402                        |
| Отклонение безопасностью контента           | 422                        |
| Ограничение частоты                         | 429; повторить с задержкой |

Ошибка генерации возвращает `status = failed` и `error.message`; средства возвращаются автоматически.

## Response

<ResponseField name="code" type="integer">
  Код ответа; при успехе 200
</ResponseField>

<ResponseField name="data" type="array">
  Результат отправки с начальным статусом и ID задачи

  <Expandable title="Элемент массива">
    <ResponseField name="status" type="string">
      Начальное значение `submitted`
    </ResponseField>

    <ResponseField name="task_id" type="string">
      Уникальный ID для проверки прогресса и результата
    </ResponseField>
  </Expandable>
</ResponseField>
