Introduction
MiniMax H3 LoRA Text to video turns a written scene into a 3 to 15 second clip with a stereo soundtrack, and lets you load up to three of your own LoRA files on top of the open-weights MiniMax H3. Pick 480p, 540p, 768p or 1080p and one of seven aspect ratios. The platform adds no content filter to the prompt, the weights or the output.
Choose a mode by starting material
| What you have | Mode |
|---|---|
| a written scene | MiniMax H3 LoRA Text to video |
| an opening image | MiniMax H3 LoRA Image to video |
| reference images, clips or audio | MiniMax H3 LoRA Reference to video |
Key features & highlights
Your LoRAs, loaded per request
Each request takes up to three LoRA files as direct links, each with its own strength from 0 to 4. There is no upload step and no allow-list, so any H3 LoRA you can link to is usable. We checked that the weights really load: a VHS-tape style LoRA turned a clean hotel-room prompt into tracking noise, colour bleed and a faded 1980s palette.
Picture and sound together
Every clip comes back as a 24 fps MP4 with a stereo soundtrack generated in the same pass. Describe the sound on its own Audio: line, from rain on glass to a line of dialogue, and it arrives synced to the picture.
Uncensored with custom weights
We ran a LoRA built for the strongest content on this endpoint, with our strongest prompts, and the clip came back exactly as written. Nothing is softened or swapped, and the weights you load are never reviewed.
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | Write the shot as a short timeline: who is in it, what they do, how the camera moves. Put the soundtrack on its own Audio: line. at least 1 characters · at most 7000 characters |
aspect_ratio | No | 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 or 9:21. The ratio changes the frame, not the price: at the lowest tier a 16:9 clip comes back at 832 x 480. |
resolution | No | 480p, 540p, 768p or 1080p. Price rises with each step. |
duration_seconds | No | Any whole second from 3 to 15. You pay for the seconds you ask for, so test at 3 to 5. |
loras | No | Up to three {path, scale} entries. path is a direct HTTPS link to a .safetensors file trained for MiniMax H3; scale runs 0 to 4, 1 is neutral. Default: |
seed | No | Keeps a series close when you compare LoRA scales or prompt edits. Change one thing per run. |
Pricing
Billed per second of output at the chosen resolution. Loading LoRAs adds no separate charge.
| Specification | Price |
|---|---|
| $0.05 / second |
| $0.075 / second |
| $0.10 / second |
| $0.20 / second |
Use cases
Style tests before a campaign
Run the same short prompt with three different style LoRAs at 480p for three seconds and compare them side by side. It costs a few cents per look, and once you pick one you can re-run it at 1080p with the same seed.
Short scenes for companion and creator platforms
Load the concept or motion LoRA your audience expects, write the scene and the sound, and deliver at 768p or 1080p. There is no content flag to toggle and no second review after generation.
Retro and animated shorts
Film-stock, VHS and cartoon LoRAs change the medium, not just the grade. A 1939 hand-drawn cartoon LoRA and a VHS LoRA turn the same rooftop scene into two different productions.
Prompt guide & pro tips
Trigger first, then the shot, then the sound
Most community LoRAs expect a trigger word at the very start, such as vh5tape for the VHS LoRA. After it, write the shot as a short timeline and finish with an Audio: line. Restating what the LoRA already does usually fights it.
One scale change per run
With two or three LoRAs loaded, move one scale at a time and keep the seed fixed. Start style LoRAs at 1 and concept LoRAs at 0.6 to 0.8. If a clip looks overcooked, drop the strongest weight first.
Draft cheap, deliver once
Three to five seconds at 480p is the cheapest shape and usually comes back in well under a minute. Settle the look, the camera and the sound there, then spend on the 1080p version.
API quick start
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "minimax/h3-lora/text-to-video",
"input": {
"aspect_ratio": "16:9",
"duration_seconds": 5,
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "480p"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
See the API reference for authentication, the complete schema, polling, and error handling.

















