MiniMax H3
curl --request POST \
--url https://api.mixroute.ai/v1/video/generationsimport requests
url = "https://api.mixroute.ai/v1/video/generations"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.mixroute.ai/v1/video/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mixroute.ai/v1/video/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mixroute.ai/v1/video/generations"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mixroute.ai/v1/video/generations")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixroute.ai/v1/video/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_body動画シリーズ
MiniMax H3
MiniMax H3の動画生成パラメータ、マルチモーダル入力、出力設定。
MiniMax H3
curl --request POST \
--url https://api.mixroute.ai/v1/video/generationsimport requests
url = "https://api.mixroute.ai/v1/video/generations"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.mixroute.ai/v1/video/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mixroute.ai/v1/video/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mixroute.ai/v1/video/generations"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mixroute.ai/v1/video/generations")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixroute.ai/v1/video/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyMiniMax-H3は、テキストから動画への生成、フレームベースの画像から動画への生成、およびマルチモーダル参照生成をサポートします。modelとpromptはルートに置き、プロバイダーのコンテンツおよび出力の制御項目はmetadata内に配置してください。
POST https://api.mixroute.ai/v1/video/generations
リクエストパラメーター
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | はい | 大文字と小文字を区別するMixRouteのモデルID、MiniMax-H3を使用してください。 |
prompt | string | はい | MixRouteのプロンプト。metadata.content内のテキストと整合させてください。 |
metadata | object | はい | 以下の必須プロバイダーフィールドを格納するコンテナ。 |
metadata.content | object[] | はい | マルチモーダル入力のリストです。すべてのリクエストに、空でないtext項目を少なくとも1つ含める必要があります。テキストのみの生成にはテキスト項目を1つ使用します。画像/動画/音声の入力は、以下のモードのルールに従う必要があります。 |
metadata.resolution | string | はい | 出力解像度: 768Pまたは2K。大文字・小文字を正確に指定してください。値を明示的に指定してください。 |
metadata.duration | integer | はい | 出力の長さを4〜15秒の整数で指定します(両端を含む)。値を明示的に指定してください。 |
metadata.ratio | string | 条件付き | 値:adaptive、21:9、16:9、4:3、1:1、3:4、9:16。デフォルトはadaptiveですが、テキストのみから生成する場合は、具体的な比率を明示的に選択する必要があります。フレームに基づく生成では、常に入力画像の比率を使用します。 |
metadata.callback_url | string | いいえ | タスクのステータス変更に対するコールバックURL。最初のリクエストにはchallengeが含まれ、これを3秒以内に変更せず返す必要があります。その後のPOST通知はプロバイダーのタスク照会スキーマを使用し、ステータスはqueued、running、succeeded、failed、またはcancelledです。 |
コンテンツ項目
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
metadata.content[].type | string | はい | text、image_url、video_url、またはaudio_url。 |
metadata.content[].text | string | 条件付き | テキスト項目では必須です。空にはできず、1項目あたり最大7000文字です。 |
metadata.content[].image_url.url | string | 条件付き | 画像項目では必須。公開URL、アクセス可能なmm_file://{file_id}、または形式名を小文字で指定したdata:image/<format>;base64,...。 |
metadata.content[].video_url.url | string | 条件付き | 動画の参照では必須です。公開URL、アクセス可能なmm_file://{file_id}、またはdata:video/mp4;base64,...。 |
metadata.content[].audio_url.url | string | 条件付き | 音声参照では必須。公開URL、アクセス可能なmm_file://{file_id}、または形式名を小文字で指定したdata:audio/<format>;base64,...。 |
metadata.content[].role | string | 条件付き | フレームベースの生成にはfirst_frameまたはlast_frameを使用してください。ロールを指定せずに画像を1枚渡すと、デフォルトで最初のフレームになります。参照入力には、コンテンツの種類に合わせてreference_image、reference_video、reference_audioを使用します。 |
入力モード
| モード | metadata.content | metadata.ratio |
|---|---|---|
| テキストから動画 | text | 具体的な比率の指定が必須です。adaptiveは使用できません。 |
| 最初のフレーム | text + image_url (first_frame) | 常にadaptiveです。他の有効な比率を指定しても無視されます。 |
| 最後のフレーム | text + image_url (last_frame) | 常にadaptiveで、画像に合わせます。 |
| 最初と最後のフレーム | text + 2 image_url (first_frame, last_frame) | 常にadaptiveです。他の有効な比率を指定しても無視されます。 |
| 参照から動画への生成 | text + reference_* | 任意。デフォルトはadaptiveです。具体的な比率を指定できます。 |
MiniMax-H3であり、その他のH3バリアントではありません。
メディアの制限
| メディア | 制約 |
|---|---|
| 画像 | JPG/JPEG/PNG/WebP/HEIC/HEIF。1ファイルあたり最大30 MB、各辺のサイズは256~5760 px、アスペクト比は0.4~2.5。最初のフレームは最大1枚、最後のフレームは最大1枚、または参照画像は最大9枚です。 |
| 参照動画 | MP4/MOV。動画はH.264/H.265、音声はAAC/MP3。各ファイルは最大50 MB、クリップ数は最大3、各クリップは2~15秒、合計は最大15秒です。寸法は256~5760 px、アスペクト比は0.4~2.5、フレームレートは23.976~60 fpsです。 |
| 参照音声 | WAV/MP3。各ファイル最大15 MB、クリップ数は最大3、各クリップは2~15秒、合計は最大15秒。 |
| リクエスト | Base64のオーバーヘッドを含めて最大64 MBです。大きな入力には公開URLを優先してください。 |
例
APIを呼び出す前にMIXROUTE_API_KEYを設定してください。メディアのプレースホルダーは、アクセス可能な入力に置き換えてください。受け付けられたリクエストは課金対象の生成タスクを作成します。送信がタイムアウトしても自動的に再送信しないでください。
- テキストから動画を生成
- 最初と最後のフレーム
- 動画と音声の参照
curl --location "https://api.mixroute.ai/v1/video/generations" \
--header "Authorization: Bearer $MIXROUTE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "MiniMax-H3",
"prompt": "A blue circle gently pulses on a clean white background.",
"metadata": {
"content": [
{
"type": "text",
"text": "A blue circle gently pulses on a clean white background."
}
],
"resolution": "768P",
"duration": 4,
"ratio": "9:16"
}
}'
curl --location "https://api.mixroute.ai/v1/video/generations" \
--header "Authorization: Bearer $MIXROUTE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "MiniMax-H3",
"prompt": "A professor is teaching a class in a classroom.",
"metadata": {
"content": [
{
"type": "text",
"text": "A professor is teaching a class in a classroom."
},
{
"type": "image_url",
"image_url": {
"url": "https://static.freebeatfit.com/aiImageEdit/result/L001510027166320955392/1780060289776-1.png"
},
"role": "first_frame"
},
{
"type": "image_url",
"image_url": {
"url": "https://static.freebeatfit.com/aiImageEdit/result/M1509975287180300288_0004_1780047826.png"
},
"role": "last_frame"
}
],
"resolution": "768P",
"duration": 4,
"ratio": "adaptive"
}
}'
curl --location "https://api.mixroute.ai/v1/video/generations" \
--header "Authorization: Bearer $MIXROUTE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "MiniMax-H3",
"prompt": "Preserve the scene in the reference video and follow the reference audio.",
"metadata": {
"content": [
{
"type": "text",
"text": "Preserve the scene in the reference video and follow the reference audio."
},
{
"type": "video_url",
"video_url": {
"url": "https://example.com/reference.mp4"
},
"role": "reference_video"
},
{
"type": "audio_url",
"audio_url": {
"url": "https://example.com/reference.mp3"
},
"role": "reference_audio"
}
],
"resolution": "2K",
"duration": 4,
"ratio": "adaptive"
}
}'
Python
import json
import os
import requests
payload = json.loads(r'''
{
"model": "MiniMax-H3",
"prompt": "A blue circle gently pulses on a clean white background.",
"metadata": {
"content": [
{
"type": "text",
"text": "A blue circle gently pulses on a clean white background."
}
],
"resolution": "768P",
"duration": 4,
"ratio": "9:16"
}
}
''')
response = requests.post(
"https://api.mixroute.ai/v1/video/generations",
headers={"Authorization": "Bearer " + os.environ["MIXROUTE_API_KEY"]},
json=payload,
timeout=60,
)
response.raise_for_status()
print(response.json())