0G Foundation tarafından
MiniMax-H3 (Hailuo-03) text-to-video and image-to-video, with first/last-frame control and multimodal references (images, video, audio). 4–15 second clips at 2K. Billed per second of output, plus per second of reference video; reference images beyond five are charged per image.
$0.195
üretilen saniye başına
2K
faturalandırma kademeleri — gönderdiğiniz boyut değil
Async API — Video üretimi asenkron bir akış kullanır: bir iş gönderin, tamamlanana kadar yoklayın ve ardından dosyayı ayrı bir uç noktadan indirin. Üretim dakikalar sürer, bu yüzden her 3-5 saniyede bir yoklayın. Aşağıdaki örnekler üç adımı da gösterir.
# 1. Submit the job. model, prompt and seconds are required. Each account may hold only a small number of
# unfinished jobs at once — 5 by default, set per deployment — and one over that returns 429
# video_jobs_in_flight_limit.
#
# The model's own options go under "metadata"; every field and the values it accepts are listed below.
# Media references go in metadata.content as {type, <type>: {url}, role}. Images, reference videos and reference
# audio each take a URL or a base64 data: URI; label audio data:audio/mp3 or data:audio/wav (with
# data:audio/mpeg the job is accepted, then fails unbilled). The whole request is capped at 24 MB, so send a
# large video as a URL. First/last frame and reference media cannot be mixed in one request.
curl "https://router-api.0g.ai/v1/videos" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-d '{
"model": "minimax-h3",
"prompt": "A cat surfing a wave at sunset",
"seconds": 5,
"metadata": {
"resolution": "2K",
"ratio": "16:9",
"aigc_watermark": false
}
}'
# Response: {"id": "v0_426354818031858", "status": "queued", "provider_address": "0x..."}
# 2. Poll until status is "completed". Generation takes minutes — 3-5s is a sane interval. The poll answers
# 200 and reports the job's own status, so a failure arrives as 200 + {"status":"failed"}, NOT as an error
# code. The SUBMIT response echoes what you sent; the POLL response reports what was actually rendered — so
# reconcile against the poll. Which fields carry that answer depends on the upstream:
# usage.output_video_duration when the provider reported a duration, size/seconds on some providers and not
# others. Read what is present rather than assuming a particular field.
curl "https://router-api.0g.ai/v1/videos/<VIDEO_ID>" \
-H "Authorization: Bearer <YOUR_API_KEY>"
# 3. Download the finished file. This is where 409 / 424 / 429 live: 409 = not ready yet, 429 = too many
# concurrent downloads (both retryable), 424 = the job failed and has no output (terminal).
curl "https://router-api.0g.ai/v1/videos/<VIDEO_ID>/content" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-o video.mp4
| Girdi | rol | Tür | Maks | Senaryo |
|---|---|---|---|---|
| İlk kare | first_frame | Görsel | 1 | İlk / son kare |
| Son kareİlk kare gerektirir | last_frame | Görsel | 1 | İlk / son kare |
| Referans görsel | reference_image | Görsel | 9 | Çok modlu referans |
| Referans video | reference_video | Video | 3 | Çok modlu referans |
| Referans ses | reference_audio | Ses | 3 | Çok modlu referans |
Media references go in metadata.content as {type, <type>: {url}, role}. Images, reference videos and reference audio each take a URL or a base64 data: URI; label audio data:audio/mp3 or data:audio/wav (with data:audio/mpeg the job is accepted, then fails unbilled). The whole request is capped at 24 MB, so send a large video as a URL. First/last frame and reference media cannot be mixed in one request.
| Alan | Değerler | Varsayılan |
|---|---|---|
| metadata.resolution | 2K | 2K |
| metadata.ratio | adaptive · 21:9 · 16:9 · 4:3 · 1:1 · 3:4 · 9:16 | adaptive |
| seconds | 4–15s | 5 |
| metadata.aigc_watermark | true · false | false |
Billed per second of output plus per second of reference video; reference images beyond 5 are charged per image.
Sağlayıcı Yönlendirme
X-0G-Provider-* istek başlıklarını kullanarak isteğinizi hangi sağlayıcının işleyeceğini belirleyin.
X-0G-Provider-Address bir sağlayıcıyı sabitler; X-0G-Provider-Identity, sağlayıcının üst akışlarından hangisine yönlendirme yapılacağını sabitler. Her iki değer de GET /v1/providers uç noktasındaki address ve provider_identity alanlarından gelir. Birlikte, bir sağlayıcının belirli bir üst akışını adreslerler. İkisi de gönderilmezse yönlendirme katmanı, tıpkı önceki gibi fiyata ve sağlık durumuna göre seçer.
curl "https://router-api.0g.ai/v1/videos" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-H "X-0G-Provider-Address: <PROVIDER_ADDRESS>" \
-H "X-0G-Provider-Identity: <UPSTREAM>" \
-H "X-0G-Provider-Sort: latency" \
-H "X-0G-Provider-Allow-Fallbacks: true" \
-d '{
"model": "minimax-h3",
"prompt": "A cat surfing a wave at sunset",
"seconds": 6
}'