2.7 KiB
2.7 KiB
Video Generation Guide
CLI usage
# Basic
python scripts/minimax_video.py "A cat playing piano in a cozy room" -o cat.mp4
# With camera control
python scripts/minimax_video.py "Ocean waves crashing on rocks [Truck left]" -o waves.mp4
# 10 seconds, 1080P
python scripts/minimax_video.py "City skyline at sunset [Push in]" -o city.mp4 --duration 10 --resolution 1080P
# Disable prompt auto-optimization
python scripts/minimax_video.py "Exact prompt I want used" -o out.mp4 --no-optimize
Programmatic usage
from minimax_video import generate, create_task, poll_task, download_video
# Full pipeline (blocking)
generate("A cat playing piano", "cat.mp4", model="MiniMax-Hailuo-2.3", duration=6)
# Step by step
task_id = create_task("A cat playing piano")
file_id = poll_task(task_id, interval=10, max_wait=600)
download_video(file_id, "cat.mp4")
Models
| Model | Resolution | Duration | Notes |
|---|---|---|---|
MiniMax-Hailuo-2.3 |
768P, 1080P | 6s, 10s (768P only) | Latest, recommended |
MiniMax-Hailuo-02 |
768P, 1080P | 6s, 10s (768P only) | Previous gen |
T2V-01-Director |
720P | 6s | Camera control optimized |
T2V-01 |
720P | 6s | Base model |
Camera commands
Insert [Command] in prompt text to control camera movement:
| Command | Effect |
|---|---|
[Truck left] |
Camera moves left |
[Truck right] |
Camera moves right |
[Push in] |
Camera moves toward subject |
[Pull out] |
Camera moves away from subject |
[Pan left] |
Camera rotates left (fixed position) |
[Pan right] |
Camera rotates right (fixed position) |
[Tilt up] |
Camera tilts upward |
[Tilt down] |
Camera tilts downward |
[Pedestal up] |
Camera rises vertically |
[Pedestal down] |
Camera lowers vertically |
[Zoom in] |
Lens zooms in |
[Zoom out] |
Lens zooms out |
[Static shot] |
No camera movement |
[Tracking shot] |
Camera follows subject |
[Shake] |
Handheld shake effect |
Example: "A runner sprints through a forest trail [Tracking shot]"
Pipeline
The script handles the full async flow:
- Create task —
POST /v1/video_generation→ returnstask_id - Poll status —
GET /v1/query/video_generation?task_id=xxx→ poll untilSuccess- Status values:
Preparing→Queueing→Processing→Success/Fail
- Status values:
- Download —
GET /v1/files/retrieve?file_id=xxx→ getdownload_url(valid 1 hour) → save file
Typical generation time: 1–5 minutes depending on duration and resolution.
Limits
- Prompt: max 2,000 characters
- 1080P: only supports 6s duration
- 10s duration: only available at 768P with Hailuo-2.3/02
- Download URL expires after 1 hour