🎬

MiniMax Hailuo 2.3 Fast

Watermark notice — Video models on NovAI are served by Chinese providers (MiniMax, Tencent) and may burn a visible AI-generated label into the output under China’s labelling rules — NovAI cannot switch it off. In our tests output labelling varies by model. Text and chat models are not affected. Which models, and what it rules out →
MiniMax (海螺) · Video Generation

MiniMax Hailuo 2.3 Fast — an image-to-video model. Animate a still first-frame image into a short clip via the asynchronous task API. This variant is image-to-video only (a source image is required).

📊 Specifications

Mode
Async task
Input
Image (+ optional text)
Output
Video (mp4 URL)
Capabilities
I2V only
Resolution
768P / 1080P
Status
✅ Available

💰 Pricing

NovAIOpenRouter
Token billing
Billed on actual upstream tokens (tokenhub_usage.total_tokens)
$1.54 / 1M tokensN/AExclusive
Reference · per second
~27,000 tokens/s at 768P / 1080P
~$0.042/sN/A
Reference · 5s clip
Typical 5-second generation
~$0.208N/A
Image-to-video only — pass an image URL; text-only requests are rejected upstream. Billed per token on the real upstream count (~135,000 tokens observed for a 5s clip ≈ $0.208). The submit estimate is conservative and reconciled (refunded) down to the actual count on success.

🚀 API Usage

1. Submit — Image-to-Video (image required)

curl -X POST https://api.aiapi-pro.com/v1/video/generations \
  -H "Authorization: Bearer $NOVAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "minimax-video-v2.3-fast",
    "prompt": "Animate this scene with smooth cinematic motion",
    "image": "https://example.com/first-frame.jpg",
    "duration": 5
  }'
# -> { "id": "", "status": "queued" }
# NOTE: minimax-video-v2.3-fast is image-to-video only - the "image" field is required.

2. Poll Task Status

curl "https://api.aiapi-pro.com/v1/video/generations/{task_id}?model=minimax-video-v2.3-fast"   -H "Authorization: Bearer $NOVAI_API_KEY"
# -> { "status": "processing" } ... then when done:
# -> { "status": "succeeded", "video_url": "https://.../out.mp4",
#      "tokenhub_usage": { "total_tokens": ~27,000*duration } }
Async flow: POST /v1/video/generations returns {id, status:"queued"}. Poll GET /v1/video/generations/{id} until status is succeeded (then video_url holds the mp4) or failed (auto-refunded). An estimate is pre-deducted at submit and reconciled to the real token count on success.
🚀 Get Free $2 Credit← Compare All Models