> ## Documentation Index
> Fetch the complete documentation index at: https://gccai.heqingsong.uk/llms.txt
> Use this file to discover all available pages before exploring further.

# Pembuatan Video MiniMax-H3-Max

>  - Versi cepat MiniMax Video Generation V2 dengan pengiriman tugas asinkron
- Mendukung teks ke video, kontrol frame awal/akhir, dan pembuatan dengan referensi multimodal
- Mendukung 480P / 768P / 1080P, durasi 5–15 detik, dengan audio
- Mendukung gambar, video, dan audio referensi; tidak mendukung 2K atau frame tengah 

> [!NOTE]
>
> **Pemilihan model:** `MiniMax-H3-Max` cocok untuk pembuatan cepat dari teks, kontrol frame awal/akhir, dan referensi multimodal pada 480P, 768P, atau 1080P. Untuk 2K atau frame tengah, gunakan [MiniMax-H3](https://gccai.heqingsong.uk/id/api-reference/videos/minimax-h3/generation.md).

```bash cURL theme={null}
curl --request POST \
  --url https://gccai.heqingsong.uk/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "MiniMax-H3-Max",
    "prompt": "Seorang detektif berjas panjang menoleh di jalan neon saat hujan. Kamera bergerak mendekat perlahan.",
    "duration": 5,
    "resolution": "768P",
    "aspect_ratio": "16:9"
  }'
```

```python Python theme={null}
import requests

response = requests.post(
    "https://gccai.heqingsong.uk/v1/videos/generations",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={
        "model": "MiniMax-H3-Max",
        "prompt": "Seorang detektif menoleh di jalan neon saat hujan.",
        "duration": 5,
        "resolution": "768P",
        "aspect_ratio": "16:9",
    },
)
print(response.json())
```

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

```json 400 theme={null}
{
  "error": {
    "code": 400,
    "message": "Parameter permintaan tidak valid",
    "type": "invalid_request_error"
  }
}
```

```json 401 theme={null}
{
  "error": {
    "code": 401,
    "message": "Autentikasi gagal. Periksa kunci API Anda.",
    "type": "authentication_error"
  }
}
```

```json 402 theme={null}
{
  "error": {
    "code": 402,
    "message": "Saldo akun tidak mencukupi",
    "type": "payment_required"
  }
}
```

## Autentikasi

**Authorization** `string` *required*

Semua endpoint memerlukan Bearer Token. Dapatkan kunci Anda di [halaman Kunci API](https://gccai.heqingsong.uk/keys).

```
Authorization: Bearer YOUR_API_KEY
```

## Memilih model

| Kemampuan | `MiniMax-H3` | `MiniMax-H3-Max` |
| - | - | - |
| Resolusi | `2K` / `768P`, default `2K` | `480P` / `768P` / `1080P`, default `768P` |
| Durasi | 4–15 detik | 5–15 detik |
| Teks-ke-video | Didukung | Didukung |
| Frame awal / akhir | Didukung | Didukung |
| Frame tengah | Didukung | Tidak didukung |
| Referensi multimodal | Gambar, video, audio | Gambar, video, audio |
| Biaya gambar input | 5 gambar pertama gratis | 2 gambar pertama gratis; gambar tambahan dikenai biaya per gambar |
| Biaya video referensi | Berdasarkan durasi input, dengan tarif yang sama seperti output beresolusi sama | Berdasarkan durasi input, dengan tarif tersendiri |
| Watermark AIGC | Didukung | Didukung pada 480P / 768P; tidak didukung pada 1080P |

> [!WARNING]
>
> `MiniMax-H3-Max` tidak mendukung 2K dan hasilnya tidak dapat digunakan sebagai sumber [Regeneration](https://gccai.heqingsong.uk/id/api-reference/videos/minimax-h3/regeneration.md).

## Mode pembuatan

Field permintaan menentukan mode secara otomatis; jangan kirim field `mode`.

| Mode | Pemicu | Perilaku |
| - | - | - |
| Teks-ke-video (T2V) | Hanya `prompt` dan field umum | Membuat video dari teks |
| Gambar-ke-video (I2V) | `first_frame_image` / `last_frame_image` atau peran setara di `image_with_roles` | Mengontrol frame awal, akhir, atau keduanya |
| Referensi multimodal (R2V) | `image_urls` / `video_urls` / `audio_urls` atau `reference_image` dalam `image_with_roles` | Membuat video dari gambar, video, dan audio referensi; juga pada 1080P |

> [!WARNING]
>
> Field frame awal/akhir tidak boleh digabung dengan media referensi. Audio referensi membutuhkan minimal satu gambar atau video referensi. Kombinasi tidak valid mengembalikan HTTP 400 secara sinkron; tugas tidak dibuat dan tidak dikenai biaya.

## Parameter permintaan

**model** `string` *required*

Nilai tetap: `MiniMax-H3-Max`. Tidak peka huruf besar/kecil; `minimax-h3-max` juga diterima.

**prompt** `string` *required*

Deskripsi video yang tidak kosong, wajib dalam setiap mode. Maksimum `7000` karakter.

**duration** `integer` (default: 5)

Durasi video dalam detik: bilangan bulat `5` sampai `15`, default `5`. Empat detik tidak didukung.

**resolution** `string` (default: 768P)

Resolusi output: `480P`, `768P` (default), atau `1080P`.

Pada `1080P`, jangan kirim `watermark` maupun alias `aigc_watermark`, meskipun nilainya `false`.

> [!WARNING]
>
> `2K`, `1440P`, dan `2048P` tidak didukung. Nilai tidak valid mengembalikan HTTP 400 tanpa downgrade otomatis.

**aspect\_ratio** `string`

Rasio aspek output. Alias `size` dan `ratio` juga diterima.

Nilai T2V: `21:9`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16`.

* T2V tanpa field atau dengan `adaptive`: kembali ke `16:9`
* I2V: ditentukan gambar input; field ini diabaikan
* Referensi multimodal: opsional, default `adaptive`; rasio tertentu juga dapat ditentukan

**first\_frame\_image** `string`

URL gambar publik untuk frame awal video.

**last\_frame\_image** `string`

URL gambar publik untuk frame akhir. Dapat digunakan sendiri atau bersama `first_frame_image`.

**image\_with\_roles** `object[]`

Array gambar dengan peran yang dapat menggantikan `first_frame_image`, `last_frame_image`, atau `image_urls`.

**Item image\_with\_roles**

**url** `string` *required*

URL gambar publik

**role** `string`

Peran yang didukung:

* `first_frame`; alias `first` dan `start`
* `last_frame`; alias `last`, `end_frame`, dan `tail`
* `reference_image`: gambar referensi; alias `reference`; peran kosong diperlakukan sebagai referensi

Maksimal satu frame awal dan satu frame akhir. Gambar referensi dalam array ini dan `image_urls` berjumlah maksimal `9`. Peran frame tidak boleh dicampur dengan peran gambar referensi.

**image\_urls** `string[]`

Array URL publik gambar referensi. Bersama referensi dalam `image_with_roles`, maksimal `9` gambar. Semua diperlakukan sebagai referensi, tidak otomatis menjadi frame awal/akhir. Untuk kontrol frame awal, gunakan `first_frame_image` atau peran `first_frame`.

**video\_urls** `string[]`

Array URL publik video referensi; satu video juga dapat memakai `video_url` (string). Maksimal `3` klip, masing-masing `2`–`15` detik, dengan total durasi video referensi maksimal `15` detik.

Durasi video referensi dibaca saat pengiriman untuk penagihan. Jika tidak dapat dibaca, HTTP 400 dikembalikan secara sinkron; tugas tidak dibuat dan tidak dikenai biaya.

**audio\_urls** `string[]`

Array URL publik audio referensi; satu klip juga dapat memakai `audio_url` (string). Maksimal `3` klip, masing-masing `2`–`15` detik, dengan total durasi audio referensi maksimal `15` detik. Harus disertai minimal satu gambar atau video referensi; audio saja tidak didukung.

**watermark** `boolean` (default: false)

Menambahkan watermark AIGC. Alias: `aigc_watermark`.

Watermark hanya didukung pada `480P` / `768P`. Pada `1080P`, jangan kirim `watermark` maupun alias `aigc_watermark`, meskipun nilainya `false`.

**webhook** `string`

Menerima notifikasi ketika tugas berakhir sukses atau gagal.

> [!NOTE]
>
> Gunakan `webhook`, bukan `callback_url` MiniMax. Gateway mencadangkan `callback_url` untuk penggunaan internal.

## Batasan parameter

Parameter atau kombinasi tidak valid berikut mengembalikan HTTP 400 sebelum pembuatan tugas dan penagihan:

| Parameter / nilai | Alasan |
| - | - |
| Frame awal/akhir digabung dengan referensi | I2V dan R2V saling eksklusif |
| Lebih dari `9` gambar referensi atau lebih dari `3` video maupun audio referensi | Melebihi batas jumlah media |
| Hanya audio referensi | Membutuhkan gambar atau video referensi |
| `resolution: "2K"` | Hanya `480P`, `768P`, dan `1080P` yang didukung |
| `duration: 4` atau di atas `15` | Hanya 5–15 detik |

Setiap video dan audio referensi harus berdurasi 2–15 detik. Total video dan audio dihitung terpisah, masing-masing maksimal 15 detik. Potong media terlalu panjang sebelum dikirim; media tersebut bukan input yang valid.

> [!WARNING]
>
> Pada `1080P`, jangan kirim `watermark` maupun alias `aigc_watermark`, meskipun nilainya `false`.

> [!TIP]
>
> Untuk 2K, frame tengah, atau video 4 detik, gunakan [MiniMax-H3](https://gccai.heqingsong.uk/id/api-reference/videos/minimax-h3/generation.md) dan sesuaikan parameternya.

## Batas media input

Ukuran seluruh body permintaan maksimal 64 MB. Gunakan URL publik untuk gambar, video, dan audio, bukan Base64.

### Gambar

| Item | Batas |
| - | - |
| Format | JPG / JPEG / PNG / WEBP / HEIC / HEIF |
| Per file | ≤ 30 MB |
| Lebar dan tinggi | 256–5760 px |
| Rasio aspek | 0,4–2,5 |
| Jumlah | Maksimal 1 frame awal, 1 frame akhir, dan 9 gambar referensi; frame dan referensi tidak boleh dicampur |

### Video referensi

| Item | Batas |
| - | - |
| Format | MP4 / MOV, H.264 / H.265 |
| Per file | ≤ 50 MB |
| Jumlah | ≤ 3 |
| Durasi per klip | 2–15 s |
| Total durasi | ≤ 15 s |
| Lebar dan tinggi | 256–5760 px |
| Rasio aspek | 0.4–2.5 |
| Frame rate | 23.976–60 fps |

### Audio referensi

| Item | Batas |
| - | - |
| Format | WAV / MP3 |
| Per file | ≤ 15 MB |
| Jumlah | ≤ 3 |
| Durasi per klip | 2–15 s |
| Total durasi | ≤ 15 s |

Audio referensi membutuhkan gambar atau video referensi. Total durasi video dan audio dihitung terpisah, masing-masing maksimal 15 detik.

Media yang tidak memenuhi persyaratan dapat gagal saat pembuatan; tugas gagal mendapat pengembalian dana otomatis.

## Contoh

### Gambar-ke-video dengan frame awal

```json theme={null}
{
  "model": "MiniMax-H3-Max",
  "prompt": "Kamera bergerak mendekat perlahan saat uap naik.",
  "first_frame_image": "https://cdn.example.com/ramen.png",
  "duration": 5,
  "resolution": "480P"
}
```

### Gambar-ke-video dengan frame awal dan akhir

```json theme={null}
{
  "model": "MiniMax-H3-Max",
  "prompt": "Adegan perlahan berubah dari pagi ke matahari terbenam.",
  "first_frame_image": "https://cdn.example.com/morning.png",
  "last_frame_image": "https://cdn.example.com/sunset.png",
  "duration": 8,
  "resolution": "768P"
}
```

### Teks ke video 1080P

Pada `1080P`, jangan kirim `watermark` maupun alias `aigc_watermark`, meskipun nilainya `false`.

```json theme={null}
{
  "model": "MiniMax-H3-Max",
  "prompt": "Matahari terbenam di pantai, ombak lembut membasahi pasir, kamera perlahan mendekat, tekstur sinematik.",
  "duration": 5,
  "resolution": "1080P",
  "aspect_ratio": "16:9"
}
```

### Pembuatan dengan referensi multimodal

Setiap video dan audio referensi harus berdurasi 2–15 detik. Total video dan audio dihitung terpisah, masing-masing maksimal 15 detik. Potong media terlalu panjang sebelum dikirim; media tersebut bukan input yang valid.

```json theme={null}
{
  "model": "MiniMax-H3-Max",
  "prompt": "Karakter dari gambar referensi berlari dalam adegan video referensi mengikuti irama audio referensi.",
  "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"
}
```

## Memeriksa tugas

Pengiriman mengembalikan `task_id`. Polling [status tugas](https://gccai.heqingsong.uk/id/api-reference/tasks/status.md) setiap 5–10 detik dan gunakan timeout klien 15 menit.

| `status` | Arti |
| - | - |
| `pending` | Dikirim atau dalam antrean |
| `processing` | Sedang dibuat |
| `completed` | URL video ada di `result.videos[0].url` |
| `failed` | Periksa `error.message`; pengembalian dana otomatis |

> [!NOTE]
>
> URL video yang dibuat biasanya kedaluwarsa setelah sekitar 24 jam. Segera unduh dan simpan hasilnya.

## Harga

Total biaya mencakup video yang dibuat, gambar tambahan, dan video referensi:

```text theme={null}
Total biaya = tarif pembuatan per detik × durasi output
            + tarif gambar tambahan × max(0, jumlah gambar input − 2)
            + tarif video referensi per detik × total durasi video referensi
```

Frame awal, frame akhir, dan gambar referensi dihitung bersama. 2 gambar pertama gratis; gambar tambahan dikenai biaya per gambar. Total video referensi maksimal 15 detik.

| Item | Tarif |
| - | - |
| Video 1080P | Mengacu pada harga model |
| Video 768P | Mengacu pada harga model |
| Video 480P | Mengacu pada harga model |
| Gambar input | 2 gambar pertama gratis; gambar tambahan dikenai biaya per gambar; Mengacu pada harga model |
| Video referensi | Dikenai biaya per detik input sesuai harga model; bergantung pada resolusi output dan terpisah dari tarif pembuatan |
| Audio referensi | **Gratis** |

| Contoh | Biaya |
| - | - |
| 768P / 5s | 768P tarif pembuatan × 5 |
| 768P / 10s | 768P tarif pembuatan × 10 |
| 480P / 10s | 480P tarif pembuatan × 10 |
| 480P / 15s | 480P tarif pembuatan × 15 |
| 768P / 5s + Gambar × 3 | 768P tarif pembuatan × 5 + tarif gambar tambahan × 1 |
| 480P / 10s + Video referensi (12s) | 480P tarif pembuatan × 10 + 480P tarif video referensi × 12 |
| 1080P / 5s + Gambar × 2 + Audio referensi | 1080P tarif pembuatan × 5 |

Semua tarif mengacu pada harga model. Pada contoh 1080P dengan 2 gambar referensi dan audio referensi, gambar dan audio gratis.

Jumlah perkiraan dicadangkan saat pengiriman. Tugas gagal mendapat pengembalian dana penuh; field `cost` pada respons tugas menjadi acuan.

## Kesalahan

| Skenario | Hasil |
| - | - |
| `prompt` kosong atau lebih dari 7000 karakter | 400; tidak ada tugas |
| `duration` di luar 5–15 | 400; tidak ada tugas |
| `resolution` tidak didukung | 400; tidak ada tugas |
| Frame awal/akhir digabung dengan referensi / Hanya audio referensi | 400; tidak ada tugas |
| Lebih dari `9` gambar referensi atau lebih dari `3` video maupun audio referensi | 400; tidak ada tugas |
| Durasi video referensi tidak dapat dibaca | 400; tidak ada tugas |
| Peran gambar tidak valid atau lebih dari satu gambar untuk peran frame awal/akhir yang sama | 400; tidak ada tugas |
| Saldo tidak cukup | 402 |
| Ditolak keamanan konten | 422 |
| Batas permintaan | 429; coba lagi dengan backoff |

Kegagalan saat pembuatan mengembalikan `status = failed` dan `error.message`, lalu dana dikembalikan otomatis.

## Response

**code** `integer`

Kode respons; 200 jika berhasil

**data** `array`

Hasil pengiriman berisi status awal dan ID tugas

**Item array**

**status** `string`

Awalnya `submitted`

**task\_id** `string`

ID unik untuk memeriksa progres dan hasil


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.